]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/viewpropertiesdialog.cpp
SVN_SILENT coding style fixes
[dolphin.git] / src / viewpropertiesdialog.cpp
index 102629875a448a22e170a61d0b67e8bcf713a656..fc670e3eb17b00383f1d91df86acdf2f03c30693 100644 (file)
@@ -25,6 +25,7 @@
 #include "dolphinsettings.h"
 #include "dolphinsortfilterproxymodel.h"
 #include "dolphin_generalsettings.h"
+#include "dolphin_iconsmodesettings.h"
 #include "viewproperties.h"
 #include "viewpropsprogressinfo.h"
 
@@ -110,10 +111,13 @@ ViewPropertiesDialog::ViewPropertiesDialog(DolphinView* dolphinView) :
     m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Group"));
     m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Type"));
 #ifdef HAVE_NEPOMUK
-    if (!Nepomuk::ResourceManager::instance()->init()) {
-        m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Rating"));
-        m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Tags"));
-    }
+    // TODO: Hided "sort by rating" and "sort by tags" as without caching the performance
+    // is too slow currently (Nepomuk will support caching in future releases).
+    //
+    // if (!Nepomuk::ResourceManager::instance()->init()) {
+    //    m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Rating"));
+    //    m_sorting->addItem(i18nc("@item:inlistbox Sort", "By Tags"));
+    // }
 #endif
 
     QHBoxLayout* sortingLayout = new QHBoxLayout();
@@ -282,7 +286,19 @@ void ViewPropertiesDialog::markAsDirty()
 
 void ViewPropertiesDialog::configureAdditionalInfo()
 {
-    const KFileItemDelegate::InformationList info = m_viewProps->additionalInfo();
+    KFileItemDelegate::InformationList info = m_viewProps->additionalInfo();
+    const bool useDefaultInfo = (m_viewProps->viewMode() == DolphinView::DetailsView) &&
+                                (info.isEmpty() || info.contains(KFileItemDelegate::NoInformation));
+    if (useDefaultInfo) {
+        // Using the details view without any additional information (-> additional column)
+        // makes no sense and leads to a usability problem as no viewport area is available
+        // anymore. Hence as fallback provide at least a size and date column.
+        info.clear();
+        info.append(KFileItemDelegate::Size);
+        info.append(KFileItemDelegate::ModificationTime);
+        m_viewProps->setAdditionalInfo(info);
+    }
+
     AdditionalInfoDialog dialog(this, info);
     if (dialog.exec() == QDialog::Accepted) {
         m_viewProps->setAdditionalInfo(dialog.additionalInfo());
@@ -339,7 +355,7 @@ void ViewPropertiesDialog::applyViewProperties()
 
     m_isDirty = false;
 
-    if (m_useAsDefault->isChecked()) {
+    if (m_useAsDefault && m_useAsDefault->isChecked()) {
         // For directories where no .directory file is available, the .directory
         // file stored for the global view properties is used as fallback. To update
         // this file we temporary turn on the global view properties mode.
@@ -365,7 +381,10 @@ void ViewPropertiesDialog::loadSettings()
     m_sortOrder->setCurrentIndex(sortOrderIndex);
     m_sorting->setCurrentIndex(m_viewProps->sorting());
 
-    m_additionalInfo->setEnabled(index != DolphinView::ColumnView);
+    const IconsModeSettings* settings = DolphinSettings::instance().iconsModeSettings();
+    const bool enabled = (index == DolphinView::DetailsView) ||
+                         ((index == DolphinView::IconsView) && settings->showAdditionalInfo());
+    m_additionalInfo->setEnabled(enabled);
 
     // load show preview, show in groups and show hidden files settings
     m_showPreview->setChecked(m_viewProps->showPreview());