aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2014-12-06 17:33:25 -0500
commit7167ce41b61d2ba2cdb526777a4233eb84a3b66a (patch)
treea35c14143716e1f2c98f808c81f89426045a946f /SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp
Imported Upstream version 2.99.6upstream/2.99.6
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp b/SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp
new file mode 100644
index 0000000..48b46cc
--- /dev/null
+++ b/SQLiteStudio3/guiSQLiteStudio/configwidgets/listtostringlisthash.cpp
@@ -0,0 +1,67 @@
+#include "listtostringlisthash.h"
+#include "config_builder.h"
+#include "common/unused.h"
+#include <QListWidget>
+
+ListToStringListHash::ListToStringListHash(CfgEntry* key) :
+ assignedKey(key)
+{
+}
+
+bool ListToStringListHash::isConfigForWidget(CfgEntry* key, QWidget* widget)
+{
+ UNUSED(widget);
+ return (assignedKey == key);
+}
+
+void ListToStringListHash::applyConfigToWidget(CfgEntry* key, QWidget* widget, const QVariant& value)
+{
+ UNUSED(key);
+
+ QListWidget* list = dynamic_cast<QListWidget*>(widget);
+ QHash<QString,QListWidgetItem*> itemsByName;
+ for (int i = 0; i < list->count(); i++)
+ itemsByName[list->item(i)->text()] = list->item(i);
+
+ QHash<QString,QVariant> orderHash = value.toHash();
+
+ for (const QString& typeName : itemsByName.keys())
+ {
+ if (!orderHash.contains(typeName))
+ continue;
+
+ itemsByName[typeName]->setData(QListWidgetItem::UserType, orderHash[typeName]);
+ }
+}
+
+QVariant ListToStringListHash::getWidgetConfigValue(QWidget* widget, bool& ok)
+{
+ QListWidget* list = dynamic_cast<QListWidget*>(widget);
+ if (!list)
+ {
+ ok = false;
+ return QVariant();
+ }
+
+ QHash<QString,QVariant> orderHash;
+ for (int i = 0; i < list->count(); i++)
+ orderHash[list->item(i)->text()] = list->item(i)->data(QListWidgetItem::UserType);
+
+ ok = true;
+ return orderHash;
+}
+
+const char*ListToStringListHash::getModifiedNotifier() const
+{
+ return SIGNAL(itemChanged(QListWidgetItem*));
+}
+
+QString ListToStringListHash::getFilterString(QWidget* widget) const
+{
+ QListWidget* list = dynamic_cast<QListWidget*>(widget);
+ QStringList strList;
+ for (int i = 0; i < list->count(); i++)
+ strList += list->item(i)->text() + " " + list->item(i)->data(QListWidgetItem::UserType).toStringList().join(" ");
+
+ return strList.join(" ");
+}