#ifndef DECK_EDITOR_SETTINGS_H #define DECK_EDITOR_SETTINGS_H #include "settings_manager.h" #include enum commanderSpellbookIntegrationEnabledIndex { commanderSpellbookIntegrationEnabledIndexDisabled, commanderSpellbookIntegrationEnabledIndexEnabled, commanderSpellbookIntegrationEnabledIndexAutomatic, commanderSpellbookIntegrationEnabledIndexUnprompted, }; enum VdeStartupTab { VdeStartupTabContext, ///< Match the opened deck: new decks show the database display, existing decks the deck view VdeStartupTabDeckDisplay, ///< Always open the Visual Deck View VdeStartupTabDatabaseDisplay, ///< Always open the Visual Database Display }; class DeckEditorSettings : public SettingsManager, public IDeckEditorSettingsProvider { Q_OBJECT friend class SettingsCache; public: [[nodiscard]] bool getOpenDeckInNewTab() const override; [[nodiscard]] bool getBannerCardComboBoxVisible() const override; [[nodiscard]] bool getTagsWidgetVisible() const override; [[nodiscard]] int getDefaultDeckEditorType() const override; [[nodiscard]] int getVdeStartupTab() const; [[nodiscard]] int getCommanderSpellbookIntegrationEnabled() const; [[nodiscard]] bool getCommanderSpellbookIntegrationUseOfficialBracketNames() const; void setOpenDeckInNewTab(bool _openDeckInNewTab); void setBannerCardComboBoxVisible(bool _bannerCardComboBoxVisible); void setTagsWidgetVisible(bool _tagsWidgetVisible); void setDefaultDeckEditorType(int _defaultDeckEditorType); void setVdeStartupTab(int _vdeStartupTab); void setCommanderSpellbookIntegrationEnabled(int _commanderSpellbookIntegrationEnabled); void setCommanderSpellbookIntegrationUseOfficialBracketNames(bool _useOfficialBracketNames); signals: void bannerCardComboBoxVisibleChanged(bool visible); void tagsWidgetVisibleChanged(bool visible); void commanderSpellbookIntegrationEnabledChanged(int enabled); void commanderSpellbookIntegrationUseOfficialBracketNamesChanged(bool useOfficialBracketNames); void vdeStartupTabChanged(int vdeStartupTab); public: explicit DeckEditorSettings(const QString &settingPath, QObject *parent = nullptr); private: DeckEditorSettings(const DeckEditorSettings & /*other*/); }; #endif // DECK_EDITOR_SETTINGS_H