From 51f830068cb6b4847468aced1aa654932c39bf80 Mon Sep 17 00:00:00 2001 From: Arno Date: Mon, 27 Dec 2010 15:52:30 +0100 Subject: Made all icons in qresource available for UI Every registered icon can be chosen as Qt::DecorationRole for all models at once. Suitable icons must be added to SmGlobals::mIcons. Key is a descriptive text, value is the icon path. To make things easier SmTreeModel got two new member functions: -QIcon decorationIcon() returning the current Icon -void setDecorationIcon() to set the current Icon The current Icon is initialized in the constructor from QSettings - ui/iconfolder To update the TreeViews connected to the FileSystemModel a little hack is needed: Just set the QFileIconProvider again. This causes the Model to update connected views. --- configurationdialog.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'configurationdialog.cpp') diff --git a/configurationdialog.cpp b/configurationdialog.cpp index 7008e76..96c1d1b 100644 --- a/configurationdialog.cpp +++ b/configurationdialog.cpp @@ -33,9 +33,12 @@ #include #include #include +#include +#include #include "configurationdialog.h" #include "programconfigurator.h" +#include "smglobals.h" ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f){ //setup @@ -109,8 +112,13 @@ ConfigurationDialog::ConfigurationDialog(QWidget *parent, Qt::WindowFlags f) : Q QGroupBox *iconBox = new QGroupBox(tr("Icon for folders")); QHBoxLayout *iconLayout = new QHBoxLayout; mIconForFolder = new QComboBox; - QStringList icons = QStringList() << tr("Dildo") << tr("Normal"); - mIconForFolder->addItems(icons); + mIconModel = new QStandardItemModel; + const QHash icons = SmGlobals::instance()->icons(); + for(QHash::const_iterator it = icons.constBegin(); it != icons.constEnd(); ++it){ + QStandardItem *item = new QStandardItem(QIcon(it.value()), it.key()); + mIconModel->appendRow(item); + } + mIconForFolder->setModel(mIconModel); iconLayout->addWidget(mIconForFolder); iconBox->setLayout(iconLayout); @@ -289,7 +297,7 @@ void ConfigurationDialog::readSettings(){ QSettings s; //read misc - QString icon = s.value("ui/foldericon", "Normal").toString(); + QString icon = s.value("ui/foldericon", "Dildo").toString(); int pos = mIconForFolder->findText(icon); if(pos != -1){ mIconForFolder->setCurrentIndex(pos); -- cgit v1.2.3-70-g09d2