]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Allow to enable/disable which information should be shown in the Information Panel.
authorPeter Penz <peter.penz19@gmail.com>
Sun, 12 Apr 2009 16:41:14 +0000 (16:41 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Sun, 12 Apr 2009 16:41:14 +0000 (16:41 +0000)
BUG: 156205

svn path=/trunk/KDE/kdebase/apps/; revision=952833

src/panels/information/informationpanel.cpp
src/panels/information/informationpanel.h
src/panels/information/metadatawidget.cpp
src/panels/information/metadatawidget.h

index b38dd96c87070d7577eb70b4823b46dcc9159385..753fbe0f899cb3e2a10aca0d004bb0005f6c0fc5 100644 (file)
@@ -86,8 +86,10 @@ InformationPanel::InformationPanel(QWidget* parent) :
     m_selection(),
     m_nameLabel(0),
     m_preview(0),
+    m_previewSeparator(0),
     m_phononWidget(0),
     m_metaDataWidget(0),
+    m_metaDataSeparator(0),
     m_metaTextArea(0),
     m_metaTextLabel(0)
 {
@@ -95,6 +97,7 @@ InformationPanel::InformationPanel(QWidget* parent) :
 
 InformationPanel::~InformationPanel()
 {
+    InformationPanelSettings::self()->writeConfig();
 }
 
 QSize InformationPanel::sizeHint() const
@@ -316,19 +319,30 @@ void InformationPanel::contextMenuEvent(QContextMenuEvent* event)
         return;
     }
 
+    const bool isChecked = action->isChecked();
     if (action == previewAction) {
-        // TODO
+        m_preview->setVisible(isChecked);
+        m_previewSeparator->setVisible(isChecked);
+        InformationPanelSettings::setShowPreview(isChecked);
     } else if (action == ratingAction) {
-        // TODO
+        m_metaDataWidget->setRatingVisible(isChecked);
+        InformationPanelSettings::setShowRating(isChecked);
     } else if (action == commentAction) {
-        // TODO
+        m_metaDataWidget->setCommentVisible(isChecked);
+        InformationPanelSettings::setShowComment(isChecked);
     } else if (action == tagsAction) {
-        // TODO
+        m_metaDataWidget->setTagsVisible(isChecked);
+        InformationPanelSettings::setShowTags(isChecked);
     } else {
         settings.writeEntry(action->data().toString(), action->isChecked());
         settings.sync();
         showMetaInfo();
     }
+
+    const bool visible = m_metaDataWidget->isRatingVisible() ||
+                         m_metaDataWidget->isCommentVisible() ||
+                         m_metaDataWidget->areTagsVisible();
+    m_metaDataSeparator->setVisible(visible);
 #endif
 }
 
@@ -712,10 +726,27 @@ void InformationPanel::init()
     m_preview->setMinimumWidth(KIconLoader::SizeEnormous + KIconLoader::SizeMedium);
     m_preview->setMinimumHeight(KIconLoader::SizeEnormous);
 
+    m_previewSeparator = new KSeparator(this);
+
+    const bool showPreview = InformationPanelSettings::showPreview();
+    m_preview->setVisible(showPreview);
+    m_previewSeparator->setVisible(showPreview);
+
     if (MetaDataWidget::metaDataAvailable()) {
         // rating, comment and tags
         m_metaDataWidget = new MetaDataWidget(this);
         m_metaDataWidget->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+
+        const bool showRating  = InformationPanelSettings::showRating();
+        const bool showComment = InformationPanelSettings::showComment();
+        const bool showTags    = InformationPanelSettings::showTags();
+
+        m_metaDataWidget->setRatingVisible(showRating);
+        m_metaDataWidget->setCommentVisible(showComment);
+        m_metaDataWidget->setTagsVisible(showTags);
+
+        m_metaDataSeparator = new KSeparator(this);
+        m_metaDataSeparator->setVisible(showRating || showComment || showTags);
     }
 
     // general meta text information
@@ -737,10 +768,10 @@ void InformationPanel::init()
     layout->addWidget(m_nameLabel);
     layout->addWidget(new KSeparator(this));
     layout->addWidget(m_preview);
-    layout->addWidget(new KSeparator(this));
+    layout->addWidget(m_previewSeparator);
     if (m_metaDataWidget != 0) {
         layout->addWidget(m_metaDataWidget);
-        layout->addWidget(new KSeparator(this));
+        layout->addWidget(m_metaDataSeparator);
     }
     layout->addWidget(m_metaTextArea);
     setLayout(layout);
index e8e497f985f7b6c2083b21a049f1e3f06d232216..67722f6e3924c0dcd277e80fe3e6c387f46a9c8b 100644 (file)
@@ -42,6 +42,7 @@ class MetaTextLabel;
 class QPixmap;
 class QString;
 class KFileItem;
+class KSeparator;
 class QLabel;
 class QScrollArea;
 
@@ -202,8 +203,10 @@ private:
 
     QLabel* m_nameLabel;
     PixmapViewer* m_preview;
+    KSeparator* m_previewSeparator;
     PhononWidget* m_phononWidget;
     MetaDataWidget* m_metaDataWidget;
+    KSeparator* m_metaDataSeparator;
 
     QScrollArea* m_metaTextArea;
     MetaTextLabel* m_metaTextLabel;
index 44a4c029f16e0d1292f82247af8b2fafc63b3080..46eef558c13fe6e8f0c3a758d59f2d2bcc9a4da9 100644 (file)
@@ -198,6 +198,41 @@ MetaDataWidget::~MetaDataWidget()
     delete d;
 }
 
+void MetaDataWidget::setRatingVisible(bool visible)
+{
+    d->ratingWidget->setVisible(visible);
+}
+
+
+bool MetaDataWidget::isRatingVisible() const
+{
+    return d->ratingWidget->isVisible();
+}
+
+
+void MetaDataWidget::setCommentVisible(bool visible)
+{
+    d->editComment->setVisible(visible);
+}
+
+
+bool MetaDataWidget::isCommentVisible() const
+{
+    return d->editComment->isVisible();
+}
+
+
+void MetaDataWidget::setTagsVisible(bool visible)
+{
+    d->tagWidget->setVisible(visible);
+}
+
+
+bool MetaDataWidget::areTagsVisible() const
+{
+    return d->tagWidget->isVisible();
+}
+
 
 void MetaDataWidget::setFile(const KUrl& url)
 {
index 881c23c4233ecdb805b9bf308a27237b2995df07..b1e7744921c6f6fc36b2b1a8327ac6918e40772c 100644 (file)
@@ -43,6 +43,15 @@ public:
      */
     static bool metaDataAvailable();
 
+    void setRatingVisible(bool visible);
+    bool isRatingVisible() const;
+
+    void setCommentVisible(bool visible);
+    bool isCommentVisible() const;
+
+    void setTagsVisible(bool visible);
+    bool areTagsVisible() const;
+
 public Q_SLOTS:
     void setFile(const KUrl& url);
     void setFiles(const KUrl::List& urls);