diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index e525d258ed..eef393c476 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 33f520bbbc..6f67ab66a8 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 fa5639aed9..29b8cdccc7 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 82010d7c7c..4671e7696e 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 1d68457bb0..bdf10e0c8c 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 ba1d2100c3..e36f64e38c 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 6b99ad30a6..bb398dbc03 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 14700976be..7f2ff8afcc 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(); }