diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/configmapper.h')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/configmapper.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/configmapper.h b/SQLiteStudio3/guiSQLiteStudio/configmapper.h index 049d25a..47c1087 100644 --- a/SQLiteStudio3/guiSQLiteStudio/configmapper.h +++ b/SQLiteStudio3/guiSQLiteStudio/configmapper.h @@ -4,6 +4,7 @@ #include "common/bihash.h" #include "guiSQLiteStudio_global.h" #include <QObject> +#include <QSet> class CfgMain; class CfgEntry; @@ -22,6 +23,7 @@ class GUI_API_EXPORT ConfigMapper : public QObject void loadToWidget(CfgEntry* config, QWidget* widget); void saveFromWidget(QWidget* widget, bool noTransaction = false); void setInternalCustomConfigWidgets(const QList<CustomConfigWidgetPlugin*>& value); + bool isPersistant() const; /** * @brief Scans widget and binds widgets to proper config objects. @@ -49,6 +51,7 @@ class GUI_API_EXPORT ConfigMapper : public QObject * This simply revokes what was done with bindToConfig(). */ void unbindFromConfig(); + void removeMainCfgEntry(CfgMain* cfgMain); QWidget* getBindWidgetForConfig(CfgEntry* key) const; CfgEntry* getBindConfigForWidget(QWidget* widget) const; @@ -69,10 +72,13 @@ class GUI_API_EXPORT ConfigMapper : public QObject void addExtraWidget(QWidget* w); void addExtraWidgets(const QList<QWidget*>& list); void clearExtraWidgets(); + void ignoreWidget(QWidget* w); + void removeIgnoredWidget(QWidget* w); private: void applyConfigToWidget(QWidget *widget, const QHash<QString, CfgEntry*>& allConfigEntries, const QHash<QString, QVariant> &config); void applyConfigToWidget(QWidget *widget, CfgEntry* cfgEntry, const QVariant& configValue); + void applyConfigDefaultValueToWidget(QWidget *widget); void handleSpecialWidgets(QWidget *widget, const QHash<QString, CfgEntry*>& allConfigEntries); void handleConfigComboBox(QWidget *widget, const QHash<QString, CfgEntry*>& allConfigEntries); void connectCommonNotifierToWidget(QWidget *widget, CfgEntry* key); @@ -86,12 +92,17 @@ class GUI_API_EXPORT ConfigMapper : public QObject QVariant getCommonConfigValueFromWidget(QWidget *widget, CfgEntry* key, bool& ok); QVariant getCustomConfigValueFromWidget(QWidget *widget, CfgEntry* key, bool& ok); QVariant getConfigValueFromWidget(QWidget *widget, CfgEntry* key); + QVariant getConfigValueFromWidget(QWidget *widget); CfgEntry* getConfigEntry(QWidget* widget, const QHash<QString, CfgEntry*>& allConfigEntries); CfgEntry* getEntryForProperty(QWidget* widget, const char* propertyName, const QHash<QString, CfgEntry*>& allConfigEntries); QHash<QString,CfgEntry*> getAllConfigEntries(); QList<QWidget*> getAllConfigWidgets(QWidget* parent); - bool isPersistant() const; + void handleDependencySettings(QWidget* widget); + void handleBoolDependencySettings(const QString& boolDependency, QWidget* widget); + void handleDependencyChange(QWidget* widget); + bool handleBoolDependencyChange(QWidget* widget); + QWidget* configDialogWidget = nullptr; QList<CfgMain*> cfgMainList; QList<CustomConfigWidgetPlugin*> internalCustomConfigWidgets; bool realTimeUpdates = false; @@ -100,9 +111,12 @@ class GUI_API_EXPORT ConfigMapper : public QObject QHash<CfgEntry*,QWidget*> specialConfigEntryToWidgets; bool updatingEntry = false; QList<QWidget*> extraWidgets; + QList<QWidget*> widgetsToIgnore; // main mapper will ignore plugin's forms, they have their own mappers QHash<QString, CfgEntry*> allEntries; + QHash<QWidget*, QWidget*> boolDependencyToDependingWidget; static constexpr const char* CFG_MODEL_PROPERTY = "cfg"; + static constexpr const char* CFG_BOOL_DEPENDENCY_PROPERTY = "boolDependency"; static constexpr const char* CFG_NOTIFY_PROPERTY = "notify"; static constexpr const char* CFG_PREVIEW_PROPERTY = "preview"; |
