[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/network/kmldonkey/kmldonkey
From:       Aleksey Markelov <markelovai () gmail ! com>
Date:       2009-07-06 10:45:45
Message-ID: 1246877145.584836.22190.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 992132 by amarkelov:

Sorting support in MLDonkey config dialog, --qt3


 M  +23 -23    mlconfig.cpp  
 M  +2 -1      mlconfig.h  
 M  +8 -4      optioneditor.cpp  
 M  +1 -1      optioneditor.h  


--- trunk/extragear/network/kmldonkey/kmldonkey/mlconfig.cpp #992131:992132
@@ -38,7 +38,7 @@
 {
     setObjectName(name);
     QVBoxLayout* layout = new QVBoxLayout(this);
-    setLayout(layout);
+
     Q3IntDictIterator<Network> nwit( KMLDonkey::App->donkey->availableNetworks() );
     for ( ; nwit.current(); ++nwit ) {
         Network* net = nwit.current();
@@ -78,21 +78,19 @@
 
     // Add regular option sections
     OptionEditorWidget* page;
-    const QList<DonkeyOption>& list = KMLDonkey::App->donkey->sectionOptions();
-    QList<DonkeyOption>::ConstIterator it;
-    for (it = list.begin(); it != list.end(); ++it) {
-        if (!KMLDonkey::App->advancedConfig && (*it).optionAdvanced())
+    foreach (const DonkeyOption &opt, KMLDonkey::App->donkey->sectionOptions()) {
+        if (!KMLDonkey::App->advancedConfig && opt.optionAdvanced())
             continue;
-        page = pages[(*it).optionSection()];
+        const QString section = opt.optionSection();
+        page = pages.value(section);
         if (!page) {
             page = new OptionEditorWidget(this);
-            addPage(page, (*it).optionSection());
+            addPage(page, section);
             connect(page, SIGNAL(listIsDirty()), SLOT(setDirtyDialog()));
-            pages.insert((*it).optionSection(), page);
+            pages.insert(section, page);
         }
-        page->addOption(*it);
+        page->addOption(opt);
     }
-
     // Add the root network page
     QString networksName = i18nc("mldonkey config: network options page", "Networks");
 
@@ -100,31 +98,33 @@
     QVBoxLayout* l = new QVBoxLayout(w);
     l->setSpacing(0);
     l->setMargin(0);
-    w->setLayout(l);
+
     KPageWidgetItem* networkItem = addPage(w, networksName);
     m_networkPage = new NetworkPage(w);
     l->addWidget(m_networkPage);
     connect(m_networkPage, SIGNAL(pageDirty()), SLOT(setDirtyDialog()));
 
     // Add the network sub-pages
-    const QList<DonkeyOption>& plist = KMLDonkey::App->donkey->pluginOptions();
-    for (it = plist.begin(); it != plist.end(); ++it) {
-        if (!KMLDonkey::App->advancedConfig && (*it).optionAdvanced())
+    foreach (const DonkeyOption &opt, KMLDonkey::App->donkey->pluginOptions()) {
+        if (!KMLDonkey::App->advancedConfig && opt.optionAdvanced())
             continue;
-        QStringList section;
-        section << networksName << (*it).optionSection();
-        page = pages[(*it).optionSection()];
+        const QString section = opt.optionSection();
+        page = pages.value(section);
         if (!page) {
             page = new OptionEditorWidget(this);
-            addSubPage(networkItem, page, /*section,*/ (*it).optionSection());
+            addSubPage(networkItem, page, section);
             connect(page, SIGNAL(listIsDirty()), SLOT(setDirtyDialog()));
-            pages.insert((*it).optionSection(), page);
+            pages.insert(section, page);
         }
-        page->addOption(*it);
+        page->addOption(opt);
     }
 
     resize(QSize(580, 420).expandedTo( minimumSizeHint() ));
     //setInitialSize(configDialogSize("MLConfigDialog"));
+    foreach (OptionEditorWidget *w, pages) {
+        w->sortByColumn(-1, Qt::AscendingOrder);
+        w->setSortingEnabled(true);
+    }
 
     connect(this, SIGNAL(applyClicked()), this, SLOT(applyOptions()));
     connect(this, SIGNAL(accepted()), this, SLOT(applyOptions()));
@@ -138,9 +138,9 @@
 
 void MLDonkeyConfigDialog::applyOptions()
 {
-    Q3DictIterator<OptionEditorWidget> it(pages);
-    for (; it.current(); ++it)
-        it.current()->applyChangedOptions(KMLDonkey::App->donkey);
+    foreach (OptionEditorWidget *w, pages) {
+        w->applyChangedOptions(KMLDonkey::App->donkey);
+    }
     m_networkPage->applyOptions(KMLDonkey::App->donkey);
     enableButton(Apply, false);
 }
--- trunk/extragear/network/kmldonkey/kmldonkey/mlconfig.h #992131:992132
@@ -25,6 +25,7 @@
 #define __kmldonkey_mlconfig_h__
 
 #include <q3dict.h>
+#include <QHash>
 #include <kpagedialog.h>
 
 #include "optioneditor.h"
@@ -55,7 +56,7 @@
         void applyOptions();
         void closeDialog();
     private:
-        Q3Dict<OptionEditorWidget> pages;
+        QHash<QString, OptionEditorWidget*> pages;
         NetworkPage* m_networkPage;
 };
 
--- trunk/extragear/network/kmldonkey/kmldonkey/optioneditor.cpp #992131:992132
@@ -102,7 +102,6 @@
 
     QTableWidgetItem *nameItem = new QTableWidgetItem(option.optionLabel());
     nameItem->setFlags(nameItem->flags() & ~Qt::ItemIsEditable);
-    setItem(row, 0, nameItem);
 
     QString value = KMLDonkey::App->donkey->getOption(option.optionName());
     QVariant variantValue = value;
@@ -121,11 +120,14 @@
     default: break;
     }
     valueItem->setData(Qt::DisplayRole, variantValue);
-    setItem(row, 1, valueItem);
+    valueItem->setData(OptionIndexRole, row);
 
     nameItem->setToolTip(option.optionHelp());
     valueItem->setToolTip(option.optionHelp());
 
+    setItem(row, 0, nameItem);
+    setItem(row, 1, valueItem);
+
     resizeColumnToContents(0);
     resizeRowToContents(row);
 
@@ -135,10 +137,12 @@
 
 void OptionEditorWidget::optionChanged(QTableWidgetItem *item)
 {
-    if (m_options.size() <= item->row()) {
+    if (item->column() != 1) return; // ignore name change
+    const int index = item->data(OptionIndexRole).toInt();
+    if (m_options.size() <= index) {
         return;//ignore signals emitted in addOption
     }
-    m_options[item->row()].setValue(item->text());
+    m_options[index].setValue(item->text());
     emit listIsDirty();
 }
 
--- trunk/extragear/network/kmldonkey/kmldonkey/optioneditor.h #992131:992132
@@ -53,7 +53,7 @@
     Q_OBJECT
 
 public:
-
+    enum { OptionIndexRole = Qt::UserRole + 1};
     OptionEditorWidget(QWidget* parent = 0);
     
     void addOption(const DonkeyOption& option);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic