#pragma once #include #include #include #include namespace scwx::qt::settings { class UiSettingsImpl; class UiSettings : public SettingsCategory { public: explicit UiSettings(); ~UiSettings() override; UiSettings(const UiSettings&) = delete; UiSettings& operator=(const UiSettings&) = delete; UiSettings(UiSettings&&) noexcept; UiSettings& operator=(UiSettings&&) noexcept; [[nodiscard]] SettingsVariable& level2_products_expanded() const; [[nodiscard]] SettingsVariable& level2_settings_expanded() const; [[nodiscard]] SettingsVariable& level3_products_expanded() const; [[nodiscard]] SettingsVariable& map_settings_expanded() const; [[nodiscard]] SettingsVariable& timeline_expanded() const; [[nodiscard]] SettingsVariable& main_ui_state() const; [[nodiscard]] SettingsVariable& main_ui_geometry() const; bool Shutdown(); static UiSettings& Instance(); friend bool operator==(const UiSettings& lhs, const UiSettings& rhs); private: std::unique_ptr p; }; } // namespace scwx::qt::settings