aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/configmapper.h
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:42 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2016-06-13 18:42:42 -0400
commit5d9314f134ddd3dc4c853e398ac90ba247fb2e4f (patch)
tree5c457fc188036988d7abd29a3eb09931e406510f /SQLiteStudio3/guiSQLiteStudio/configmapper.h
parent8e640722c62692818ab840d50b3758f89a41a54e (diff)
Imported Upstream version 3.1.0upstream/3.1.0
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/configmapper.h')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/configmapper.h16
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";