diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/configwidgets/combodatawidget.cpp | 63 |
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); +} |
