From: Peter Penz Date: Sun, 12 Apr 2009 16:41:14 +0000 (+0000) Subject: Allow to enable/disable which information should be shown in the Information Panel. X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/cc124237db0e6b8011de934648a728fdc1d6ac92 Allow to enable/disable which information should be shown in the Information Panel. BUG: 156205 svn path=/trunk/KDE/kdebase/apps/; revision=952833 --- diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index b38dd96c8..753fbe0f8 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -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); diff --git a/src/panels/information/informationpanel.h b/src/panels/information/informationpanel.h index e8e497f98..67722f6e3 100644 --- a/src/panels/information/informationpanel.h +++ b/src/panels/information/informationpanel.h @@ -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; diff --git a/src/panels/information/metadatawidget.cpp b/src/panels/information/metadatawidget.cpp index 44a4c029f..46eef558c 100644 --- a/src/panels/information/metadatawidget.cpp +++ b/src/panels/information/metadatawidget.cpp @@ -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) { diff --git a/src/panels/information/metadatawidget.h b/src/panels/information/metadatawidget.h index 881c23c42..b1e774492 100644 --- a/src/panels/information/metadatawidget.h +++ b/src/panels/information/metadatawidget.h @@ -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);