summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp b/SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp
new file mode 100644
index 0000000..93433a0
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp
@@ -0,0 +1,63 @@
+#include "combodatawidget.h"
+#include "common/unused.h"
+#include "config_builder.h"
+#include "dialogs/configdialog.h"
+#include <QComboBox>
+#include <QDebug>
+
+ComboDataWidget::ComboDataWidget(CfgEntry* key) :
+ assignedKey(key)
+{
+}
+
+bool ComboDataWidget::isConfigForWidget(CfgEntry* key, QWidget* widget)
+{
+ UNUSED(widget);
+ return (assignedKey == key);
+}
+
+void ComboDataWidget::applyConfigToWidget(CfgEntry* key, QWidget* widget, const QVariant& value)
+{
+ QComboBox* cb = dynamic_cast<QComboBox*>(widget);
+ if (!cb)
+ {
+ qWarning() << "ComboDataWidget assigned to widget which is not combobox, but:" << widget->metaObject()->className()
+ << ", config key:" << key->getFullKey();
+ return;
+ }
+
+ QVariant data;
+ for (int i = 0; i < cb->count(); i++)
+ {
+ data = cb->itemData(i);
+ if (data == value)
+ {
+ cb->setCurrentIndex(i);
+ break;
+ }
+ }
+}
+
+QVariant ComboDataWidget::getWidgetConfigValue(QWidget* widget, bool& ok)
+{
+ QComboBox* cb = dynamic_cast<QComboBox*>(widget);
+ if (!cb)
+ {
+ ok = false;
+ qWarning() << "ComboDataWidget assigned to widget which is not combobox, but:" << widget->metaObject()->className();
+ return QVariant();
+ }
+
+ ok = true;
+ return cb->itemData(cb->currentIndex());
+}
+
+const char* ComboDataWidget::getModifiedNotifier() const
+{
+ return SIGNAL(currentTextChanged(QString));
+}
+
+QString ComboDataWidget::getFilterString(QWidget *widget) const
+{
+ return ConfigDialog::getFilterString(widget);
+}