From: Peter Penz Date: Fri, 16 Oct 2009 14:17:49 +0000 (+0000) Subject: prepare MetaDataConfigurationDialog to be a public class in the Nepomuk libs X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/a6355d1ca42ae6ff57da81dbc1a3b097fbc333ca?ds=inline prepare MetaDataConfigurationDialog to be a public class in the Nepomuk libs svn path=/trunk/KDE/kdebase/apps/; revision=1036074 --- diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index dfa88be17..41f9e2c5a 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -48,6 +48,7 @@ #include "dolphin_informationpanelsettings.h" #include "settings/dolphinsettings.h" #include "metadatawidget.h" +#include "metadataconfigurationdialog.h" #include "phononwidget.h" #include "pixmapviewer.h" diff --git a/src/panels/information/metadataconfigurationdialog.cpp b/src/panels/information/metadataconfigurationdialog.cpp index aa9ae5d96..a725e976f 100644 --- a/src/panels/information/metadataconfigurationdialog.cpp +++ b/src/panels/information/metadataconfigurationdialog.cpp @@ -17,7 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * ***************************************************************************/ -#include "metadataconfigurationdialog_p.h" +#include "metadataconfigurationdialog.h" #include "metadatawidget.h" @@ -35,62 +35,31 @@ #include #include -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" diff --git a/src/panels/information/metadataconfigurationdialog_p.h b/src/panels/information/metadataconfigurationdialog.h similarity index 94% rename from src/panels/information/metadataconfigurationdialog_p.h rename to src/panels/information/metadataconfigurationdialog.h index b566bbde3..18f0ecde6 100644 --- a/src/panels/information/metadataconfigurationdialog_p.h +++ b/src/panels/information/metadataconfigurationdialog.h @@ -21,9 +21,6 @@ #define META_DATA_CONFIGURATION_DIALOG_H #include -#include - -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 diff --git a/src/panels/information/metadatawidget.cpp b/src/panels/information/metadatawidget.cpp index 090a23cb2..3ba964a26 100644 --- a/src/panels/information/metadatawidget.cpp +++ b/src/panels/information/metadatawidget.cpp @@ -20,7 +20,7 @@ #include "metadatawidget.h" -#include "metadataconfigurationdialog_p.h" +#include "metadataconfigurationdialog.h" #include #include @@ -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