]> cloud.milkyroute.net Git - dolphin.git/commitdiff
prepare MetaDataConfigurationDialog to be a public class in the Nepomuk libs
authorPeter Penz <peter.penz19@gmail.com>
Fri, 16 Oct 2009 14:17:49 +0000 (14:17 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 16 Oct 2009 14:17:49 +0000 (14:17 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1036074

src/panels/information/informationpanelcontent.cpp
src/panels/information/metadataconfigurationdialog.cpp
src/panels/information/metadataconfigurationdialog.h [moved from src/panels/information/metadataconfigurationdialog_p.h with 94% similarity]
src/panels/information/metadatawidget.cpp

index dfa88be17f8b871d127cf41609eaeb6a4e9879be..41f9e2c5ad7ac4fc76538e6de4a63fa0bde9a9ed 100644 (file)
@@ -48,6 +48,7 @@
 #include "dolphin_informationpanelsettings.h"
 #include "settings/dolphinsettings.h"
 #include "metadatawidget.h"
+#include "metadataconfigurationdialog.h"
 #include "phononwidget.h"
 #include "pixmapviewer.h"
 
index aa9ae5d960cc0db4e71d5e169e0893a2c43aff9c..a725e976fd867f2bf955f6dc7c6a31d0f0de9166 100644 (file)
@@ -17,7 +17,7 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
  ***************************************************************************/
 
-#include "metadataconfigurationdialog_p.h"
+#include "metadataconfigurationdialog.h"
 
 #include "metadatawidget.h"
 
 #include <QListWidget>
 #include <QVBoxLayout>
 
-MetaDataConfigurationDialog::MetaDataConfigurationDialog(const KUrl& url,
-                                                         QWidget* parent,
-                                                         Qt::WFlags flags) :
-    KDialog(parent, flags),
-    m_url(url),
-    m_metaDataList(0)
+class MetaDataConfigurationDialog::Private
 {
-    setCaption(i18nc("@title:window", "Configure Shown Data"));
-    setButtons(KDialog::Ok | KDialog::Cancel);
-    setDefaultButton(KDialog::Ok);
-
-    QWidget* mainWidget = new QWidget(this);
-    QVBoxLayout* topLayout = new QVBoxLayout(mainWidget);
-
-    QLabel* label = new QLabel(i18nc("@label:textbox",
-                                     "Configure which data should "
-                                     "be shown."), this);
+public:
+    Private(MetaDataConfigurationDialog* parent);
+    ~Private();
 
-    m_metaDataList = new QListWidget(this);
-    m_metaDataList->setSelectionMode(QAbstractItemView::NoSelection);
+    void loadMetaData();
 
-    topLayout->addWidget(label);
-    topLayout->addWidget(m_metaDataList);
+    KUrl m_url;
+    QListWidget* m_metaDataList;
 
-    setMainWidget(mainWidget);
+private:
+    MetaDataConfigurationDialog* const q;
+};
 
-    loadMetaData();
-}
-
-MetaDataConfigurationDialog::~MetaDataConfigurationDialog()
+MetaDataConfigurationDialog::Private::Private(MetaDataConfigurationDialog* parent) :
+    q(parent)
 {
 }
 
-void MetaDataConfigurationDialog::slotButtonClicked(int button)
+MetaDataConfigurationDialog::Private::~Private()
 {
-    if (button == KDialog::Ok) {
-        KConfig config("kmetainformationrc", KConfig::NoGlobals);
-        KConfigGroup showGroup = config.group("Show");
-    
-        const int count = m_metaDataList->count();
-        for (int i = 0; i < count; ++i) {
-            QListWidgetItem* item = m_metaDataList->item(i);
-            const bool show = (item->checkState() == Qt::Checked);
-            const QString key = item->data(Qt::UserRole).toString();
-            showGroup.writeEntry(key, show);
-        }
-    
-        showGroup.sync();
-
-        accept();
-    } else {
-        KDialog::slotButtonClicked(button);
-    }
 }
 
-void MetaDataConfigurationDialog::loadMetaData()
+void MetaDataConfigurationDialog::Private::loadMetaData()
 {
     KConfig config("kmetainformationrc", KConfig::NoGlobals);
     KConfigGroup settings = config.group("Show");
@@ -152,4 +121,66 @@ void MetaDataConfigurationDialog::loadMetaData()
 #endif
 }
 
-#include "metadataconfigurationdialog_p.moc"
+MetaDataConfigurationDialog::MetaDataConfigurationDialog(const KUrl& url,
+                                                         QWidget* parent,
+                                                         Qt::WFlags flags) :
+    KDialog(parent, flags),
+    d(new Private(this))
+{
+    d->m_url = url;
+
+    setCaption(i18nc("@title:window", "Configure Shown Data"));
+    setButtons(KDialog::Ok | KDialog::Cancel);
+    setDefaultButton(KDialog::Ok);
+
+    QWidget* mainWidget = new QWidget(this);
+    QVBoxLayout* topLayout = new QVBoxLayout(mainWidget);
+
+    QLabel* label = new QLabel(i18nc("@label:textbox",
+                                     "Configure which data should "
+                                     "be shown."), this);
+
+    d->m_metaDataList = new QListWidget(this);
+    d->m_metaDataList->setSelectionMode(QAbstractItemView::NoSelection);
+
+    topLayout->addWidget(label);
+    topLayout->addWidget(d->m_metaDataList);
+
+    setMainWidget(mainWidget);
+
+    d->loadMetaData();
+
+    const KConfigGroup dialogConfig(KGlobal::config(), "Nepomuk MetaDataConfigurationDialog");
+    restoreDialogSize(dialogConfig);
+}
+
+MetaDataConfigurationDialog::~MetaDataConfigurationDialog()
+{
+    KConfigGroup dialogConfig(KGlobal::config(), "Nepomuk MetaDataConfigurationDialog");
+    saveDialogSize(dialogConfig, KConfigBase::Persistent);
+}
+
+void MetaDataConfigurationDialog::slotButtonClicked(int button)
+{
+    if (button == KDialog::Ok) {
+        KConfig config("kmetainformationrc", KConfig::NoGlobals);
+        KConfigGroup showGroup = config.group("Show");
+    
+        const int count = d->m_metaDataList->count();
+        for (int i = 0; i < count; ++i) {
+            QListWidgetItem* item = d->m_metaDataList->item(i);
+            const bool show = (item->checkState() == Qt::Checked);
+            const QString key = item->data(Qt::UserRole).toString();
+            showGroup.writeEntry(key, show);
+        }
+    
+        showGroup.sync();
+
+        accept();
+    } else {
+        KDialog::slotButtonClicked(button);
+    }
+}
+
+
+#include "metadataconfigurationdialog.moc"
similarity index 94%
rename from src/panels/information/metadataconfigurationdialog_p.h
rename to src/panels/information/metadataconfigurationdialog.h
index b566bbde3df4f17f7b2d3f28f75b4eee8fa4a19c..18f0ecde6ae99f50da162469697c966eeb160402 100644 (file)
@@ -21,9 +21,6 @@
 #define META_DATA_CONFIGURATION_DIALOG_H
 
 #include <kdialog.h>
-#include <kurl.h>
-
-class QListWidget;
 
 /**
  * @brief Dialog which allows to configure which meta data should be shown.
@@ -42,11 +39,8 @@ protected slots:
     virtual void slotButtonClicked(int button);
 
 private:
-    void loadMetaData();
-
-private:
-    KUrl m_url;
-    QListWidget* m_metaDataList;
+    class Private;
+    Private* d;
 };
 
 #endif
index 090a23cb2b8b3d8219d25dff95a8728dd2ffed0d..3ba964a26986dd06de0e99e1af883f974ae5ce4e 100644 (file)
@@ -20,7 +20,7 @@
 
 #include "metadatawidget.h"
 
-#include "metadataconfigurationdialog_p.h"
+#include "metadataconfigurationdialog.h"
 
 #include <kconfig.h>
 #include <kconfiggroup.h>
@@ -604,21 +604,15 @@ void MetaDataWidget::setItems(const KFileItemList& items)
 
 void MetaDataWidget::openConfigurationDialog()
 {
-    if (d->m_fileItems.count() > 1) {
-        return;
-    }
     const KUrl url = d->m_fileItems[0].nepomukUri();
     if (!url.isValid()) {
         return;
     }
 
     MetaDataConfigurationDialog dialog(url, this, Qt::Dialog);
-    KConfigGroup dialogConfig(KGlobal::config(), "Nepomuk MetaDataConfigurationDialog");
-    dialog.restoreDialogSize(dialogConfig);
     if (dialog.exec() == KDialog::Accepted) {
         d->updateRowsVisibility();
     }
-    dialog.saveDialogSize(dialogConfig, KConfigBase::Persistent);
 }
 
 unsigned int MetaDataWidget::rating() const