]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinitemlistview.cpp
Make details view mode's full row activation optional
[dolphin.git] / src / views / dolphinitemlistview.cpp
index d667081da38451c2f12d07e393712cf9d6b7c57c..60d5577b83237b927dbca4b7ffd85b6e09ee702a 100644 (file)
 #include "dolphin_generalsettings.h"
 #include "dolphin_iconsmodesettings.h"
 #include "dolphinfileitemlistwidget.h"
-#include "kitemviews/kfileitemmodel.h"
-#include "kitemviews/kitemlistcontroller.h"
 #include "settings/viewmodes/viewmodesettings.h"
-#include "views/viewmodecontroller.h"
 #include "zoomlevelinfo.h"
 
 #include <KIO/PreviewJob>
@@ -65,6 +62,19 @@ int DolphinItemListView::zoomLevel() const
     return m_zoomLevel;
 }
 
+void DolphinItemListView::setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled selectionTogglesEnabled)
+{
+    m_selectionTogglesEnabled = selectionTogglesEnabled;
+    switch (m_selectionTogglesEnabled) {
+    case True:
+        return setEnabledSelectionToggles(true);
+    case False:
+        return setEnabledSelectionToggles(false);
+    case FollowSetting:
+        return setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
+    }
+}
+
 void DolphinItemListView::readSettings()
 {
     ViewModeSettings settings(itemLayout());
@@ -72,8 +82,8 @@ void DolphinItemListView::readSettings()
 
     beginTransaction();
 
-    setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
-    setHighlightEntireRow(DetailsModeSettings::sidePadding());
+    setEnabledSelectionToggles(m_selectionTogglesEnabled);
+    setHighlightEntireRow(itemLayoutHighlightEntireRow(itemLayout()));
     setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout()));
 
     updateFont();
@@ -97,6 +107,11 @@ KItemListWidgetCreatorBase* DolphinItemListView::defaultWidgetCreator() const
     return new KItemListWidgetCreator<DolphinFileItemListWidget>();
 }
 
+bool DolphinItemListView::itemLayoutHighlightEntireRow(ItemLayout layout) const
+{
+    return layout == DetailsLayout && DetailsModeSettings::highlightEntireRow();
+}
+
 bool DolphinItemListView::itemLayoutSupportsItemExpanding(ItemLayout layout) const
 {
     return layout == DetailsLayout && DetailsModeSettings::expandableFolders();