diff --git a/Telegram/SourceFiles/application.cpp b/Telegram/SourceFiles/application.cpp index 9a10ab15a..149965ce4 100644 --- a/Telegram/SourceFiles/application.cpp +++ b/Telegram/SourceFiles/application.cpp @@ -103,10 +103,13 @@ Application::Application( char **argv) : QApplication(argc, argv) , _mainThreadId(QThread::currentThreadId()) -, _launcher(launcher) -, _updateChecker(Core::UpdaterDisabled() - ? nullptr - : std::make_unique()) { +, _launcher(launcher) { +} + +int Application::execute() { + if (!Core::UpdaterDisabled()) { + _updateChecker = std::make_unique(); + } const auto d = QFile::encodeName(QDir(cWorkingDir()).absolutePath()); char h[33] = { 0 }; hashMd5Hex(d.constData(), d.size(), h); @@ -134,6 +137,8 @@ Application::Application( LOG(("Connecting local socket to %1...").arg(_localServerName)); _localSocket.connectToServer(_localServerName); } + + return exec(); } Application::~Application() = default; diff --git a/Telegram/SourceFiles/application.h b/Telegram/SourceFiles/application.h index e88e520fb..ad849ff2e 100644 --- a/Telegram/SourceFiles/application.h +++ b/Telegram/SourceFiles/application.h @@ -21,7 +21,7 @@ class Application : public QApplication, private QAbstractNativeEventFilter { public: Application(not_null launcher, int &argc, char **argv); - bool event(QEvent *e) override; + int execute(); void createMessenger(); void refreshGlobalProxy(); @@ -49,6 +49,9 @@ public slots: void startApplication(); // will be done in exec() void closeApplication(); // will be done in aboutToQuit() +protected: + bool event(QEvent *e) override; + private: typedef QPair LocalClient; typedef QList LocalClients; diff --git a/Telegram/SourceFiles/core/launcher.cpp b/Telegram/SourceFiles/core/launcher.cpp index d4bdadc17..83f869e36 100644 --- a/Telegram/SourceFiles/core/launcher.cpp +++ b/Telegram/SourceFiles/core/launcher.cpp @@ -243,11 +243,10 @@ void Launcher::processArguments() { } int Launcher::executeApplication() { + Application application(this, _argc, _argv); MainQueueProcessor processor; base::ConcurrentTimerEnvironment environment; - - Application app(this, _argc, _argv); - return app.exec(); + return application.execute(); } } // namespace Core