#ifndef SETTINGS_H #define SETTINGS_H #include "GUI/IGeometrySettings.h" #include "GUI/IStateSettings.h" #include #include #include #include #include #include #include #include #include #include class Settings final : public GUI::IGeometrySettings, public GUI::IStateSettings, public GUI::IStateSettings, public GUI::IStateSettings { public: using SignalSettingChanged = boost::signals2::signal; static void init(MOBase::IOrganizer* organizer); [[nodiscard]] static Settings* instance(); void set(const QString& setting, const QVariant& value); [[nodiscard]] QVariant get(const QString& setting, const QVariant& def) const; template [[nodiscard]] T get(const QString& setting, const QVariant& def) const { return get(setting, def).value(); } bool onSettingChanged(const std::function& func); [[nodiscard]] QColor overwrittenLooseFilesColor() const; [[nodiscard]] QColor overwritingLooseFilesColor() const; [[nodiscard]] QColor overwrittenArchiveFilesColor() const; [[nodiscard]] QColor overwritingArchiveFilesColor() const; [[nodiscard]] QColor containedColor() const; [[nodiscard]] bool offlineMode() const; [[nodiscard]] lootcli::LogLevels lootLogLevel() const; [[nodiscard]] bool externalChangeWarning() const; [[nodiscard]] bool enableSortButton() const; [[nodiscard]] bool lootShowDirty() const; [[nodiscard]] bool lootShowMessages() const; [[nodiscard]] bool lootShowProblems() const; void saveTreeExpandState(const QTreeView* view); void restoreTreeExpandState(QTreeView* view) const; void saveState(const QHeaderView* header) override; void restoreState(QHeaderView* header) const override; void saveState(const QSplitter* splitter) override; void restoreState(QSplitter* splitter) const override; void saveState(const MOBase::ExpanderWidget* expander) override; void restoreState(MOBase::ExpanderWidget* expander) const override; // IGeometrySettings void saveGeometry(const QDialog* dialog) override; void restoreGeometry(QDialog* dialog) const override; private: void onPluginSettingChanged(const QString& pluginName, const QString& key, const QVariant& oldValue, const QVariant& newValue); explicit Settings(MOBase::IOrganizer* organizer); MOBase::IOrganizer* Organizer; QSettings MOSettings; SignalSettingChanged SettingChanged; }; #endif // SETTINGS_H