From 49a8d657b611cd3eb3308489b98a5ba657ccf516 Mon Sep 17 00:00:00 2001 From: Mateusz Piesta Date: Mon, 3 Jan 2022 14:20:46 +0100 Subject: [PATCH] [BH-1234] Fix settings save upon idle exit Fixed settings being saved upon idle exit. --- .../BellSettingsAlarmSettingsWindow.cpp | 11 ++++++++++- .../BellSettingsAlarmSettingsWindow.hpp | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp b/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp index 7daece762ace9207e059b87f6c9204d51bfc8498..8524180e814081098dc55be672ec850d6f6164d0 100644 --- a/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp +++ b/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp @@ -64,7 +64,7 @@ namespace gui void BellSettingsAlarmSettingsWindow::exit() { - presenter->saveData(); + isSaveNeeded = true; application->switchWindow( window::bell_finished::defaultName, BellFinishedWindowData::Factory::create("circle_success_big", BellSettingsAlarmSettingsMenuWindow::name)); @@ -76,4 +76,13 @@ namespace gui presenter->eraseProviderData(); } } + BellSettingsAlarmSettingsWindow::~BellSettingsAlarmSettingsWindow() + { + if (isSaveNeeded) { + presenter->saveData(); + } + else { + presenter->exitWithoutSave(); + } + } } /* namespace gui */ diff --git a/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp b/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp index 04bb552d7e423498a2d47a7e19b0cb1e6e41837c..9c5a4363c598425b5603ddc6a11ed2d2477c0fa8 100644 --- a/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp +++ b/products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp @@ -21,6 +21,8 @@ namespace gui app::ApplicationCommon *app, std::unique_ptr presenter); + ~BellSettingsAlarmSettingsWindow(); + void buildInterface() override; void onClose(CloseReason reason) override; bool onInput(const InputEvent &inputEvent) override; @@ -30,5 +32,6 @@ namespace gui private: SideListView *sidelistview{}; std::unique_ptr presenter; + bool isSaveNeeded{false}; }; } /* namespace gui */