]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Enable the meta data configuration dialog again after the KFileMetaDataWidget code...
authorPeter Penz <peter.penz19@gmail.com>
Thu, 25 Mar 2010 16:34:40 +0000 (16:34 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Thu, 25 Mar 2010 16:34:40 +0000 (16:34 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1107432

src/CMakeLists.txt
src/panels/information/informationpanelcontent.cpp
src/settings/behaviorsettingspage.cpp
src/settings/filemetadataconfigurationdialog.cpp [new file with mode: 0644]
src/settings/filemetadataconfigurationdialog.h [new file with mode: 0644]

index c56140e5c83546eed1f34d32a6a8a03845b6daa7..ae267cfb29ce72e4ef21baf99c056d3e8bae5d94 100644 (file)
@@ -40,6 +40,7 @@ set(dolphinprivate_LIB_SRCS
     settings/additionalinfodialog.cpp
     settings/applyviewpropsjob.cpp
     settings/dolphinsettings.cpp
+    settings/filemetadataconfigurationdialog.cpp
     settings/viewpropertiesdialog.cpp
     settings/viewpropsprogressinfo.cpp
     tooltips/ktooltip.cpp
index 351b2d9c157f1ce6212caf1d256fc97cf7bb6e0b..7b707db6f732ce6fb74108d9691cbc1720e250ba 100644 (file)
@@ -47,6 +47,7 @@
 
 #include "dolphin_informationpanelsettings.h"
 #include "settings/dolphinsettings.h"
+#include "settings/filemetadataconfigurationdialog.h"
 #include "phononwidget.h"
 #include "pixmapviewer.h"
 
@@ -292,14 +293,13 @@ void InformationPanelContent::configureSettings()
         m_preview->setVisible(isChecked);
         InformationPanelSettings::setShowPreview(isChecked);
     } else if (action == configureAction) {
-        // TODO:
-        //QPointer<KFileMetaDataConfigurationDialog> dialog =
-        //        new KFileMetaDataConfigurationDialog(this);
-        //dialog->setDescription(i18nc("@label::textbox",
-        //                       "Configure which data should be shown in the Information Panel."));
-        //dialog->setItems(m_metaDataWidget->items());
-        //dialog->exec();
-        //delete dialog;
+        QPointer<FileMetaDataConfigurationDialog> dialog =
+                new FileMetaDataConfigurationDialog(this);
+        dialog->setDescription(i18nc("@label::textbox",
+                               "Configure which data should be shown in the Information Panel."));
+        dialog->setItems(m_metaDataWidget->items());
+        dialog->exec();
+        delete dialog;
     }
 
     if (!m_item.isNull() && m_item.nepomukUri().isValid()) {
index 3335ab2d5acf5f4a6290ac3b16610c690c41489c..f4133994d96ea7452e6240a5632e7f063dca1c55 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "dolphinsettings.h"
 #include "dolphin_generalsettings.h"
+#include "filemetadataconfigurationdialog.h"
 
 #include <viewproperties.h>
 
@@ -192,14 +193,13 @@ void BehaviorSettingsPage::updateConfigureButton()
 
 void BehaviorSettingsPage::configureToolTips()
 {
-    // TODO:
-    //KFileMetaDataConfigurationDialog* dialog = new KFileMetaDataConfigurationDialog();
-    //dialog->setDescription(i18nc("@label::textbox",
-    //                             "Configure which data should be shown in the tooltip."));
-    //dialog->setAttribute(Qt::WA_DeleteOnClose);
-    //dialog->show();
-    //dialog->raise();
-    //dialog->activateWindow();
+    FileMetaDataConfigurationDialog* dialog = new FileMetaDataConfigurationDialog();
+    dialog->setDescription(i18nc("@label::textbox",
+                                 "Configure which data should be shown in the tooltip."));
+    dialog->setAttribute(Qt::WA_DeleteOnClose);
+    dialog->show();
+    dialog->raise();
+    dialog->activateWindow();
 }
 
 void BehaviorSettingsPage::loadSettings()
diff --git a/src/settings/filemetadataconfigurationdialog.cpp b/src/settings/filemetadataconfigurationdialog.cpp
new file mode 100644 (file)
index 0000000..7e26325
--- /dev/null
@@ -0,0 +1,93 @@
+/***************************************************************************
+ *   Copyright (C) 2010 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#include "filemetadataconfigurationdialog.h"
+
+#include <kfilemetadataconfigurationwidget.h>
+#include <klocale.h>
+#include <QLabel>
+#include <QVBoxLayout>
+
+FileMetaDataConfigurationDialog::FileMetaDataConfigurationDialog(QWidget* parent) :
+    KDialog(parent),
+    m_descriptionLabel(0),
+    m_configWidget(0)
+
+{
+    setCaption(i18nc("@title:window", "Configure Shown Data"));
+    setButtons(KDialog::Ok | KDialog::Cancel);
+    setDefaultButton(KDialog::Ok);
+
+
+    m_descriptionLabel = new QLabel(i18nc("@label::textbox",
+                                          "Configure which data should "
+                                          "be shown"), this);
+    m_descriptionLabel->setWordWrap(true);
+
+    m_configWidget = new KFileMetaDataConfigurationWidget(this);
+
+    QWidget* mainWidget = new QWidget(this);
+    QVBoxLayout* topLayout = new QVBoxLayout(mainWidget);
+    topLayout->addWidget(m_descriptionLabel);
+    topLayout->addWidget(m_configWidget);
+    setMainWidget(mainWidget);
+
+    const KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+                                    "FileMetaDataConfigurationDialog");
+    restoreDialogSize(dialogConfig);
+}
+
+FileMetaDataConfigurationDialog::~FileMetaDataConfigurationDialog()
+{
+    KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+                              "FileMetaDataConfigurationDialog");
+    saveDialogSize(dialogConfig, KConfigBase::Persistent);
+}
+
+void FileMetaDataConfigurationDialog::setItems(const KFileItemList& items)
+{
+    m_configWidget->setItems(items);
+}
+
+KFileItemList FileMetaDataConfigurationDialog::items() const
+{
+    return m_configWidget->items();
+}
+
+void FileMetaDataConfigurationDialog::slotButtonClicked(int button)
+{
+    if (button == KDialog::Ok) {
+        m_configWidget->save();
+        accept();
+    } else {
+        KDialog::slotButtonClicked(button);
+    }
+}
+
+void FileMetaDataConfigurationDialog::setDescription(const QString& description)
+{
+    m_descriptionLabel->setText(description);
+}
+
+QString FileMetaDataConfigurationDialog::description() const
+{
+    return m_descriptionLabel->text();
+}
+
+#include "filemetadataconfigurationdialog.moc"
diff --git a/src/settings/filemetadataconfigurationdialog.h b/src/settings/filemetadataconfigurationdialog.h
new file mode 100644 (file)
index 0000000..22d2ac7
--- /dev/null
@@ -0,0 +1,70 @@
+/***************************************************************************
+ *   Copyright (C) 2010 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
+ ***************************************************************************/
+
+#ifndef KMETA_DATA_CONFIGURATION_DIALOG_H
+#define KMETA_DATA_CONFIGURATION_DIALOG_H
+
+#include <kdialog.h>
+#include <kfileitem.h>
+#include <libdolphin_export.h>
+
+class QLabel;
+class KFileMetaDataConfigurationWidget;
+
+/**
+ * @brief Dialog which allows to configure which meta data should be shown
+ *        in the KFileMetaDataWidget.
+ */
+class LIBDOLPHINPRIVATE_EXPORT FileMetaDataConfigurationDialog : public KDialog
+{
+    Q_OBJECT
+
+public:
+    explicit FileMetaDataConfigurationDialog(QWidget* parent = 0);
+    virtual ~FileMetaDataConfigurationDialog();
+
+    /**
+     * Sets the items, for which the visibility of the meta data should
+     * be configured. Note that the visibility of the meta data is not
+     * bound to the items itself, the items are only used to determine
+     * which meta data should be configurable. For example when a JPEG image
+     * is set as item, it will be configurable which EXIF data should be
+     * shown. If an audio file is set as item, it will be configurable
+     * whether the artist, album name, ... should be shown.
+     */
+    void setItems(const KFileItemList& items);
+    KFileItemList items() const;
+
+    /**
+     * Sets the description that is shown above the list
+     * of meta data. Per default the translated text for
+     * "Configure which data should be shown." is set.
+     */
+    void setDescription(const QString& description);
+    QString description() const;
+
+protected slots:
+    virtual void slotButtonClicked(int button);
+
+private:
+    QLabel* m_descriptionLabel;
+    KFileMetaDataConfigurationWidget* m_configWidget;
+};
+
+#endif