#pragma once #include #include #include #include #include #include namespace scwx { namespace qt { namespace manager { class PlacefileManager : public QObject { Q_OBJECT public: explicit PlacefileManager(); ~PlacefileManager(); using FontMap = boost::unordered_flat_map, units::font_size::pixels>>; bool placefile_enabled(const std::string& name); bool placefile_thresholded(const std::string& name); std::string placefile_title(const std::string& name); std::shared_ptr placefile(const std::string& name); FontMap placefile_fonts(const std::string& name); void set_placefile_enabled(const std::string& name, bool enabled); void set_placefile_thresholded(const std::string& name, bool thresholded); void set_placefile_url(const std::string& name, const std::string& newUrl); void SetRadarSite(std::shared_ptr radarSite); void AddUrl(const std::string& urlString, const std::string& title = {}, bool enabled = false, bool thresholded = false); void RemoveUrl(const std::string& urlString); void Refresh(const std::string& name); static std::shared_ptr Instance(); signals: void PlacefilesInitialized(); void PlacefileEnabled(const std::string& name, bool enabled); void PlacefileRemoved(const std::string& name); void PlacefileRenamed(const std::string& oldName, const std::string& newName); void PlacefileUpdated(const std::string& name); private: class Impl; std::unique_ptr p; }; } // namespace manager } // namespace qt } // namespace scwx