From 5fc7caeec9feed2062223e8f2b61fcbd553438cc Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Thu, 1 Sep 2022 10:44:23 +0400 Subject: [PATCH] Provide old version to Platform::NewVersionLaunched --- Telegram/SourceFiles/core/application.cpp | 4 +-- .../platform/linux/specific_linux.cpp | 32 +++++++++---------- .../platform/linux/specific_linux.h | 2 -- .../SourceFiles/platform/mac/specific_mac.h | 2 -- .../SourceFiles/platform/mac/specific_mac.mm | 6 ++-- .../SourceFiles/platform/platform_specific.h | 1 + .../SourceFiles/platform/win/specific_win.cpp | 11 +++---- .../SourceFiles/platform/win/specific_win.h | 2 -- 8 files changed, 27 insertions(+), 33 deletions(-) diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index e525d258e..eef393c47 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -233,9 +233,9 @@ void Application::run() { refreshGlobalProxy(); // Depends on app settings being read. - if (Local::oldSettingsVersion() < AppVersion) { + if (const auto old = Local::oldSettingsVersion(); old < AppVersion) { RegisterUrlScheme(); - psNewVersion(); + Platform::NewVersionLaunched(old); } if (cAutoStart() && !Platform::AutostartSupported()) { diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 33f520bbb..6f67ab66a 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -622,6 +622,22 @@ bool OpenSystemSettings(SystemSettingsType type) { return true; } +void NewVersionLaunched(int oldVersion) { + InstallLauncher(); + if (oldVersion > 0 + && oldVersion <= 4000002 + && qEnvironmentVariableIsSet("WAYLAND_DISPLAY") + && DesktopEnvironment::IsGnome() + && !QFile::exists(cWorkingDir() + qsl("tdata/nowayland"))) { + QFile f(cWorkingDir() + qsl("tdata/nowayland")); + if (f.open(QIODevice::WriteOnly)) { + f.write("1"); + f.close(); + Core::Restart(); // restart with X backend + } + } +} + namespace ThirdParty { void start() { @@ -642,22 +658,6 @@ void finish() { } // namespace Platform -void psNewVersion() { - Platform::InstallLauncher(); - if (Local::oldSettingsVersion() > 0 - && Local::oldSettingsVersion() <= 4000002 - && qEnvironmentVariableIsSet("WAYLAND_DISPLAY") - && DesktopEnvironment::IsGnome() - && !QFile::exists(cWorkingDir() + qsl("tdata/nowayland"))) { - QFile f(cWorkingDir() + qsl("tdata/nowayland")); - if (f.open(QIODevice::WriteOnly)) { - f.write("1"); - f.close(); - Core::Restart(); // restart with X backend - } - } -} - void psSendToMenu(bool send, bool silent) { } diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.h b/Telegram/SourceFiles/platform/linux/specific_linux.h index fa5639aed..29b8cdccc 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.h +++ b/Telegram/SourceFiles/platform/linux/specific_linux.h @@ -48,8 +48,6 @@ void psSendToMenu(bool send, bool silent = false); int psCleanup(); int psFixPrevious(); -void psNewVersion(); - inline QByteArray psDownloadPathBookmark(const QString &path) { return QByteArray(); } diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.h b/Telegram/SourceFiles/platform/mac/specific_mac.h index 82010d7c7..4671e7696 100644 --- a/Telegram/SourceFiles/platform/mac/specific_mac.h +++ b/Telegram/SourceFiles/platform/mac/specific_mac.h @@ -58,8 +58,6 @@ void psSendToMenu(bool send, bool silent = false); int psCleanup(); int psFixPrevious(); -void psNewVersion(); - void psDownloadPathEnableAccess(); QByteArray psDownloadPathBookmark(const QString &path); QByteArray psPathBookmark(const QString &path); diff --git a/Telegram/SourceFiles/platform/mac/specific_mac.mm b/Telegram/SourceFiles/platform/mac/specific_mac.mm index 1d68457bb..bdf10e0c8 100644 --- a/Telegram/SourceFiles/platform/mac/specific_mac.mm +++ b/Telegram/SourceFiles/platform/mac/specific_mac.mm @@ -191,11 +191,11 @@ bool AutostartSkip() { return !cAutoStart(); } -} // namespace Platform - -void psNewVersion() { +void NewVersionLaunched(int oldVersion) { } +} // namespace Platform + void psSendToMenu(bool send, bool silent) { } diff --git a/Telegram/SourceFiles/platform/platform_specific.h b/Telegram/SourceFiles/platform/platform_specific.h index ba1d2100c..e36f64e38 100644 --- a/Telegram/SourceFiles/platform/platform_specific.h +++ b/Telegram/SourceFiles/platform/platform_specific.h @@ -41,6 +41,7 @@ void AutostartToggle(bool enabled, Fn done = nullptr); bool TrayIconSupported(); bool SkipTaskbarSupported(); void WriteCrashDumpDetails(); +void NewVersionLaunched(int oldVersion); [[nodiscard]] std::optional IsDarkMode(); [[nodiscard]] inline bool IsDarkModeSupported() { diff --git a/Telegram/SourceFiles/platform/win/specific_win.cpp b/Telegram/SourceFiles/platform/win/specific_win.cpp index 6b99ad30a..bb398dbc0 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.cpp +++ b/Telegram/SourceFiles/platform/win/specific_win.cpp @@ -567,14 +567,11 @@ bool OpenSystemSettings(SystemSettingsType type) { return true; } -} // namespace Platform - -void psNewVersion() { - if (Local::oldSettingsVersion() < 8051) { +void NewVersionLaunched(int oldVersion) { + if (oldVersion < 8051) { AppUserModelId::checkPinned(); } - if (Local::oldSettingsVersion() > 0 - && Local::oldSettingsVersion() < 2008012) { + if (oldVersion > 0 && oldVersion < 2008012) { // Reset icons cache, because we've changed the application icon. if (Dlls::SHChangeNotify) { Dlls::SHChangeNotify( @@ -586,6 +583,8 @@ void psNewVersion() { } } +} // namespace Platform + void psSendToMenu(bool send, bool silent) { ManageAppLink(send, silent, CSIDL_SENDTO, L"-sendpath", L"Telegram send to link.\nYou can disable send to menu item in Telegram settings."); } diff --git a/Telegram/SourceFiles/platform/win/specific_win.h b/Telegram/SourceFiles/platform/win/specific_win.h index 14700976b..7f2ff8afc 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.h +++ b/Telegram/SourceFiles/platform/win/specific_win.h @@ -48,8 +48,6 @@ void psSendToMenu(bool send, bool silent = false); int psCleanup(); int psFixPrevious(); -void psNewVersion(); - inline QByteArray psDownloadPathBookmark(const QString &path) { return QByteArray(); }