M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.cpp +10 -1
@@ 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 */
M products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp => products/BellHybrid/apps/application-bell-settings/windows/alarm_settings/BellSettingsAlarmSettingsWindow.hpp +3 -0
@@ 21,6 21,8 @@ namespace gui
app::ApplicationCommon *app,
std::unique_ptr<app::bell_settings::AlarmSettingsWindowContract::Presenter> 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<app::bell_settings::AlarmSettingsWindowContract::Presenter> presenter;
+ bool isSaveNeeded{false};
};
} /* namespace gui */