+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"