]> cloud.milkyroute.net Git - dolphin.git/commitdiff
assure that the "size" information can be hidden by the user
authorPeter Penz <peter.penz19@gmail.com>
Tue, 20 Oct 2009 17:36:28 +0000 (17:36 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 20 Oct 2009 17:36:28 +0000 (17:36 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1038142

src/panels/information/metadatawidget.cpp

index 3329b58319e9951abbbe640d38b3c8d76e8d6f13..67e3d1e444d7feb43ffef77033770344a322b0c8 100644 (file)
@@ -95,6 +95,7 @@ public:
      */
     void startChangeDataJob(KJob* job);
 
      */
     void startChangeDataJob(KJob* job);
 
+    bool m_isSizeVisible;
     MetaDataTypes m_hiddenData;
     QList<KFileItem> m_fileItems;
     QList<Row> m_rows;
     MetaDataTypes m_hiddenData;
     QList<KFileItem> m_fileItems;
     QList<Row> m_rows;
@@ -168,6 +169,7 @@ private:
 };
 
 MetaDataWidget::Private::Private(MetaDataWidget* parent) :
 };
 
 MetaDataWidget::Private::Private(MetaDataWidget* parent) :
+    m_isSizeVisible(true),
     m_hiddenData(None),
     m_fileItems(),
     m_rows(),
     m_hiddenData(None),
     m_fileItems(),
     m_rows(),
@@ -316,29 +318,40 @@ void MetaDataWidget::Private::updateRowsVisibility()
 {
     KConfig config("kmetainformationrc", KConfig::NoGlobals);
     KConfigGroup settings = config.group("Show");
 {
     KConfig config("kmetainformationrc", KConfig::NoGlobals);
     KConfigGroup settings = config.group("Show");
+
     setRowVisible(m_typeInfo,
                   !(m_hiddenData & MetaDataWidget::TypeData) &&
                   settings.readEntry("type", true));
     setRowVisible(m_typeInfo,
                   !(m_hiddenData & MetaDataWidget::TypeData) &&
                   settings.readEntry("type", true));
-    setRowVisible(m_sizeInfo,
-                  !(m_hiddenData & MetaDataWidget::SizeData) &&
-                  settings.readEntry("size", true));
+
+    // Cache in m_isSizeVisible whether the size should be shown. This
+    // is necessary as the size is temporary hidden when the target
+    // file item is a directory.
+    m_isSizeVisible = !(m_hiddenData & MetaDataWidget::SizeData) &&
+                      settings.readEntry("size", true);
+    setRowVisible(m_sizeInfo, m_isSizeVisible);
+
     setRowVisible(m_modifiedInfo,
                   !(m_hiddenData & MetaDataWidget::ModifiedData) &&
                   settings.readEntry("modified", true));
     setRowVisible(m_modifiedInfo,
                   !(m_hiddenData & MetaDataWidget::ModifiedData) &&
                   settings.readEntry("modified", true));
+
     setRowVisible(m_ownerInfo,
                   !(m_hiddenData & MetaDataWidget::OwnerData) &&
                   settings.readEntry("owner", true));
     setRowVisible(m_ownerInfo,
                   !(m_hiddenData & MetaDataWidget::OwnerData) &&
                   settings.readEntry("owner", true));
+
     setRowVisible(m_permissionsInfo,
                   !(m_hiddenData & MetaDataWidget::PermissionsData) &&
                   settings.readEntry("permissions", true));
     setRowVisible(m_permissionsInfo,
                   !(m_hiddenData & MetaDataWidget::PermissionsData) &&
                   settings.readEntry("permissions", true));
+
 #ifdef HAVE_NEPOMUK
     if (Nepomuk::ResourceManager::instance()->init() == 0) {
         setRowVisible(m_ratingWidget,
                       !(m_hiddenData & MetaDataWidget::RatingData) &&
                       settings.readEntry("rating", true));
 #ifdef HAVE_NEPOMUK
     if (Nepomuk::ResourceManager::instance()->init() == 0) {
         setRowVisible(m_ratingWidget,
                       !(m_hiddenData & MetaDataWidget::RatingData) &&
                       settings.readEntry("rating", true));
+
         setRowVisible(m_taggingWidget,
                       !(m_hiddenData & MetaDataWidget::TagsData) &&
                       settings.readEntry("tags", true));
         setRowVisible(m_taggingWidget,
                       !(m_hiddenData & MetaDataWidget::TagsData) &&
                       settings.readEntry("tags", true));
+
         setRowVisible(m_commentWidget,
                       !(m_hiddenData & MetaDataWidget::CommentData) &&
                       settings.readEntry("comment", true));
         setRowVisible(m_commentWidget,
                       !(m_hiddenData & MetaDataWidget::CommentData) &&
                       settings.readEntry("comment", true));
@@ -587,7 +600,7 @@ void MetaDataWidget::setItem(const KFileItem& item)
     } else {
         d->m_typeInfo->setText(item.mimeComment());
         d->m_sizeInfo->setText(KIO::convertSize(item.size()));
     } else {
         d->m_typeInfo->setText(item.mimeComment());
         d->m_sizeInfo->setText(KIO::convertSize(item.size()));
-        d->setRowVisible(d->m_sizeInfo, true);
+        d->setRowVisible(d->m_sizeInfo, d->m_isSizeVisible);
     }
     d->m_modifiedInfo->setText(item.timeString());
     d->m_ownerInfo->setText(item.user());
     }
     d->m_modifiedInfo->setText(item.timeString());
     d->m_ownerInfo->setText(item.user());
@@ -604,7 +617,7 @@ void MetaDataWidget::setItems(const KFileItemList& items)
         // calculate the size of all items and show this
         // information to the user
         d->m_sizeLabel->setText(i18nc("@label", "Total Size:"));
         // calculate the size of all items and show this
         // information to the user
         d->m_sizeLabel->setText(i18nc("@label", "Total Size:"));
-        d->setRowVisible(d->m_sizeInfo, true);
+        d->setRowVisible(d->m_sizeInfo, d->m_isSizeVisible);
 
         quint64 totalSize = 0;
         foreach (const KFileItem& item, items) {
 
         quint64 totalSize = 0;
         foreach (const KFileItem& item, items) {