#pragma once #include #include #include namespace scwx { namespace qt { namespace settings { class GeneralSettingsImpl; class GeneralSettings { public: explicit GeneralSettings(); ~GeneralSettings(); GeneralSettings(const GeneralSettings&) = delete; GeneralSettings& operator=(const GeneralSettings&) = delete; GeneralSettings(GeneralSettings&&) noexcept; GeneralSettings& operator=(GeneralSettings&&) noexcept; bool debug_enabled() const; std::string default_radar_site() const; std::vector font_sizes() const; int64_t grid_height() const; int64_t grid_width() const; std::string mapbox_api_key() const; boost::json::value ToJson() const; static std::shared_ptr Create(); static std::shared_ptr Load(const boost::json::value* json, bool& jsonDirty); friend bool operator==(const GeneralSettings& lhs, const GeneralSettings& rhs); private: std::unique_ptr p; }; } // namespace settings } // namespace qt } // namespace scwx