M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +1 -5
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include <application-settings/ApplicationSettings.hpp>
@@ 25,7 25,6 @@
#include <application-settings/windows/network/ApnOptionsWindow.hpp>
#include <application-settings/windows/display-keypad/DisplayAndKeypadWindow.hpp>
#include <application-settings/windows/display-keypad/DisplayLightWindow.hpp>
-#include <application-settings/windows/display-keypad/FontSizeWindow.hpp>
#include <application-settings/windows/display-keypad/WallpaperWindow.hpp>
#include <application-settings/windows/display-keypad/QuotesMainWindow.hpp>
#include <application-settings/windows/display-keypad/QuotesAddWindow.hpp>
@@ 439,9 438,6 @@ namespace app
windowsFactory.attach(gui::window::name::display_light, [](ApplicationCommon *app, const std::string &name) {
return std::make_unique<gui::DisplayLightWindow>(app, static_cast<ApplicationSettings *>(app));
});
- windowsFactory.attach(gui::window::name::font_size, [](ApplicationCommon *app, const std::string &name) {
- return std::make_unique<gui::FontSizeWindow>(app);
- });
windowsFactory.attach(gui::window::name::wallpaper, [](ApplicationCommon *app, const std::string &name) {
return std::make_unique<gui::WallpaperWindow>(app, static_cast<ApplicationSettings *>(app));
});
M module-apps/application-settings/CMakeLists.txt => module-apps/application-settings/CMakeLists.txt +0 -2
@@ 66,7 66,6 @@ target_sources(application-settings
windows/display-keypad/DisplayAndKeypadWindow.cpp
windows/display-keypad/DisplayLightWindow.cpp
windows/display-keypad/EditQuotesWindow.cpp
- windows/display-keypad/FontSizeWindow.cpp
windows/display-keypad/InputLanguageWindow.cpp
windows/display-keypad/KeypadLightWindow.cpp
windows/display-keypad/QuoteCategoriesWindow.cpp
@@ 116,7 115,6 @@ target_sources(application-settings
windows/display-keypad/DisplayAndKeypadWindow.hpp
windows/display-keypad/DisplayLightWindow.hpp
windows/display-keypad/EditQuotesWindow.hpp
- windows/display-keypad/FontSizeWindow.hpp
windows/display-keypad/InputLanguageWindow.hpp
windows/display-keypad/KeypadLightWindow.hpp
windows/display-keypad/QuoteCategoriesWindow.hpp
M module-apps/application-settings/windows/BaseSettingsWindow.hpp => module-apps/application-settings/windows/BaseSettingsWindow.hpp +2 -2
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 21,7 21,7 @@ namespace gui
void onBeforeShow(ShowMode mode, SwitchData *data) override;
- protected:
+ private:
virtual auto buildOptionsList() -> std::list<gui::Option> = 0;
};
} // namespace gui
M module-apps/application-settings/windows/apps/AlarmClockWindow.hpp => module-apps/application-settings/windows/apps/AlarmClockWindow.hpp +3 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 46,5 46,7 @@ namespace gui
/// Audio settings model
std::unique_ptr<audio_settings::AbstractAudioSettingsModel> mAudioModel;
+
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/apps/MessagesWindow.hpp => module-apps/application-settings/windows/apps/MessagesWindow.hpp +3 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 54,5 54,7 @@ namespace gui
/// Audio settings model
std::unique_ptr<audio_settings::AbstractAudioSettingsModel> mAudioModel;
+
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/bluetooth/AllDevicesWindow.hpp => module-apps/application-settings/windows/bluetooth/AllDevicesWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 25,6 25,7 @@ namespace gui
auto handleDeviceAction(const Devicei &) -> bool;
std::shared_ptr<BluetoothSettingsModel> bluetoothSettingsModel{};
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/bluetooth/BluetoothWindow.hpp => module-apps/application-settings/windows/bluetooth/BluetoothWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 22,5 22,6 @@ namespace gui
std::unique_ptr<BluetoothSettingsModel> bluetoothSettingsModel;
bool isBluetoothSwitchOn = false;
bool isPhoneVisibilitySwitchOn = false;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp => module-apps/application-settings/windows/display-keypad/DisplayLightWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 38,5 38,6 @@ namespace gui
float ambientLight = 0.0;
sys::TimerHandle timerTask;
[[nodiscard]] auto onTimerTimeout(Item &self, sys::Timer &task) -> bool;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp => module-apps/application-settings/windows/display-keypad/EditQuotesWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 22,5 22,6 @@ namespace gui
bool isCustomSwitchOn = false;
Item *quotes;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
D module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.cpp +0 -21
@@ 1,21 0,0 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#include "FontSizeWindow.hpp"
-
-#include <application-settings/windows/WindowNames.hpp>
-
-namespace gui
-{
-
- FontSizeWindow::FontSizeWindow(app::ApplicationCommon *app) : BaseSettingsWindow(app, gui::window::name::font_size)
- {
- setTitle(utils::translate("app_settings_display_font_size"));
- }
-
- auto FontSizeWindow::buildOptionsList() -> std::list<gui::Option>
- {
- return std::list<gui::Option>();
- }
-
-} // namespace gui
D module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp => module-apps/application-settings/windows/display-keypad/FontSizeWindow.hpp +0 -17
@@ 1,17 0,0 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#pragma once
-
-#include <application-settings/windows/BaseSettingsWindow.hpp>
-
-namespace gui
-{
-
- class FontSizeWindow : public BaseSettingsWindow
- {
- public:
- explicit FontSizeWindow(app::ApplicationCommon *app);
- auto buildOptionsList() -> std::list<gui::Option> override;
- };
-} // namespace gui
M module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp => module-apps/application-settings/windows/display-keypad/InputLanguageWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 24,5 24,6 @@ namespace gui
const std::vector<Language> langList;
Language selectedLanguage;
unsigned int selectedLanguageIndex{0};
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp => module-apps/application-settings/windows/display-keypad/KeypadLightWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 19,5 19,6 @@ namespace gui
std::list<Option> buildOptionsList() override;
bool isActiveSwitchOn = false;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp => module-apps/application-settings/windows/display-keypad/QuotesOptionsWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 19,5 19,6 @@ namespace gui
std::shared_ptr<Quotes::QuotesModel> quotesModel;
Quotes::QuoteRecord quote;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp => module-apps/application-settings/windows/display-keypad/WallpaperWindow.hpp +3 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 21,5 21,7 @@ namespace gui
std::unique_ptr<WallpaperOptionModel> optionModel;
Item *quotes;
+
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/network/SimCardsWindow.cpp => module-apps/application-settings/windows/network/SimCardsWindow.cpp +0 -5
@@ 15,11 15,6 @@ namespace gui
: BaseSettingsWindow(app, gui::window::name::sim_cards), simParams(simParams)
{}
- SimCardsWindow::~SimCardsWindow()
- {
- destroyForTheFuture();
- }
-
void SimCardsWindow::onBeforeShow(ShowMode mode, SwitchData *data)
{
setTitle(utils::translate("app_settings_network_sim_cards"));
M module-apps/application-settings/windows/network/SimCardsWindow.hpp => module-apps/application-settings/windows/network/SimCardsWindow.hpp +1 -1
@@ 20,8 20,8 @@ namespace gui
public:
SimCardsWindow(app::ApplicationCommon *app, app::settingsInterface::SimParams *simParams);
- ~SimCardsWindow();
void onBeforeShow(ShowMode mode, SwitchData *data) override;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/network/SimPINSettingsWindow.hpp => module-apps/application-settings/windows/network/SimPINSettingsWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 18,5 18,6 @@ namespace gui
void changePinState(bool ¤tState);
bool pinIsOn = false;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp => module-apps/application-settings/windows/phone-modes/ConnectionFrequencyWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 20,6 20,7 @@ namespace gui
app::settingsInterface::ConnectionSettings *connectionSettings;
void updateInterval(uint8_t value);
std::vector<uint8_t> frequency{0, 15, 30, 45, 60};
+ OptionWindowDestroyer destroyer = OptionWindowDestroyer(*this);
public:
ConnectionFrequencyWindow(app::ApplicationCommon *app,
M module-apps/application-settings/windows/security/SecurityMainWindow.hpp => module-apps/application-settings/windows/security/SecurityMainWindow.hpp +2 -1
@@ 1,4 1,4 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#pragma once
@@ 17,5 17,6 @@ namespace gui
void onBeforeShow(ShowMode mode, SwitchData *data) override;
bool isPhoneLockEnabled;
+ OptionWindowDestroyer destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.cpp +0 -5
@@ 23,11 23,6 @@ namespace gui
changeDateAndTimeWindow = window::name::change_date_and_time;
}
- DateAndTimeMainWindow::~DateAndTimeMainWindow()
- {
- destroyForTheFuture();
- }
-
auto DateAndTimeMainWindow::buildOptionsList() -> std::list<Option>
{
std::list<Option> optionList;
M module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp => module-apps/application-settings/windows/system/DateAndTimeMainWindow.hpp +1 -1
@@ 13,7 13,6 @@ namespace gui
{
public:
DateAndTimeMainWindow(app::ApplicationCommon *app, std::string name);
- ~DateAndTimeMainWindow();
protected:
auto buildOptionsList() -> std::list<Option> override;
@@ 25,5 24,6 @@ namespace gui
utils::time::Locale::DateFormat dateFormat = utils::time::Locale::defaultDateFormat;
std::string changeDateAndTimeWindow;
+ OptionWindowDestroyer rai_destroyer = OptionWindowDestroyer(*this);
};
} // namespace gui
M module-apps/apps-common/windows/OptionWindow.hpp => module-apps/apps-common/windows/OptionWindow.hpp +16 -1
@@ 10,6 10,7 @@
namespace gui
{
+ class OptionWindowDestroyer;
/// @brief Options window generating various options based on provided Option list.
///
/// Options GUI window with ListView populated accordingly to provided options in window constructor.
@@ 32,10 33,24 @@ namespace gui
void rebuild() override;
void buildInterface() override;
- protected:
+ private:
+ friend OptionWindowDestroyer;
/// this have to be called in inheriting window if someone passes callback to it
/// othervise destruction order will cause call to non existing parent element
/// this is because on how OptionWindows are designed
void destroyForTheFuture();
};
+
+ class OptionWindowDestroyer
+ {
+ OptionWindow &w;
+
+ public:
+ OptionWindowDestroyer(OptionWindow &w) : w(w)
+ {}
+ ~OptionWindowDestroyer()
+ {
+ w.destroyForTheFuture();
+ }
+ };
}; // namespace gui