From 70570e098754fe795ea78433485ce533026a29fd Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 17 Feb 2021 19:19:00 +0400 Subject: [PATCH] Always make sure that settings are saved. --- Telegram/SourceFiles/core/application.cpp | 10 ++++++++-- Telegram/SourceFiles/core/application.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index 719f9fbe3..2990e596f 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -152,6 +152,10 @@ Application::Application(not_null launcher) } Application::~Application() { + if (_saveSettingsTimer && _saveSettingsTimer->isActive()) { + Local::writeSettings(); + } + // Depend on activeWindow() for now :( Shortcuts::Finish(); @@ -465,7 +469,9 @@ bool Application::eventFilter(QObject *object, QEvent *e) { } void Application::saveSettingsDelayed(crl::time delay) { - _saveSettingsTimer.callOnce(delay); + if (_saveSettingsTimer) { + _saveSettingsTimer->callOnce(delay); + } } void Application::saveSettings() { @@ -533,7 +539,7 @@ void Application::badMtprotoConfigurationError() { void Application::startLocalStorage() { Local::start(); - _saveSettingsTimer.setCallback([=] { saveSettings(); }); + _saveSettingsTimer.emplace([=] { saveSettings(); }); } void Application::startEmojiImageLoader() { diff --git a/Telegram/SourceFiles/core/application.h b/Telegram/SourceFiles/core/application.h index 4342f315f..8fe0c986a 100644 --- a/Telegram/SourceFiles/core/application.h +++ b/Telegram/SourceFiles/core/application.h @@ -368,7 +368,7 @@ private: crl::time _shouldLockAt = 0; base::Timer _autoLockTimer; - base::Timer _saveSettingsTimer; + std::optional _saveSettingsTimer; struct LeaveSubscription { LeaveSubscription(