Always make sure that settings are saved.

This commit is contained in:
John Preston 2021-02-17 19:19:00 +04:00
parent baccec623d
commit 70570e0987
2 changed files with 9 additions and 3 deletions

View File

@ -152,6 +152,10 @@ Application::Application(not_null<Launcher*> 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() {

View File

@ -368,7 +368,7 @@ private:
crl::time _shouldLockAt = 0;
base::Timer _autoLockTimer;
base::Timer _saveSettingsTimer;
std::optional<base::Timer> _saveSettingsTimer;
struct LeaveSubscription {
LeaveSubscription(