┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kitemlistwidget.cpp11
-rw-r--r--src/views/dolphinitemlistview.cpp15
-rw-r--r--src/views/dolphinitemlistview.h16
-rw-r--r--src/views/dolphinview.cpp4
4 files changed, 44 insertions, 2 deletions
diff --git a/src/kitemviews/kitemlistwidget.cpp b/src/kitemviews/kitemlistwidget.cpp
index 5541aa9f8..ae721c7e4 100644
--- a/src/kitemviews/kitemlistwidget.cpp
+++ b/src/kitemviews/kitemlistwidget.cpp
@@ -333,6 +333,17 @@ void KItemListWidget::setEnabledSelectionToggle(bool enable)
{
if (m_enabledSelectionToggle != enable) {
m_enabledSelectionToggle = enable;
+
+ // We want the change to take effect immediately.
+ if (m_enabledSelectionToggle) {
+ if (m_hovered) {
+ initializeSelectionToggle();
+ }
+ } else if (m_selectionToggle) {
+ m_selectionToggle->deleteLater();
+ m_selectionToggle = nullptr;
+ }
+
update();
}
}
diff --git a/src/views/dolphinitemlistview.cpp b/src/views/dolphinitemlistview.cpp
index d667081da..0210dd594 100644
--- a/src/views/dolphinitemlistview.cpp
+++ b/src/views/dolphinitemlistview.cpp
@@ -65,6 +65,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,7 +85,7 @@ void DolphinItemListView::readSettings()
beginTransaction();
- setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
+ setEnabledSelectionToggles(m_selectionTogglesEnabled);
setHighlightEntireRow(DetailsModeSettings::sidePadding());
setSupportsItemExpanding(itemLayoutSupportsItemExpanding(itemLayout()));
diff --git a/src/views/dolphinitemlistview.h b/src/views/dolphinitemlistview.h
index 1637752a6..464aec1b4 100644
--- a/src/views/dolphinitemlistview.h
+++ b/src/views/dolphinitemlistview.h
@@ -30,6 +30,18 @@ public:
void setZoomLevel(int level);
int zoomLevel() const;
+ enum SelectionTogglesEnabled {
+ True,
+ False,
+ FollowSetting
+ };
+ /**
+ * Sets whether the items in this view should show a small selection toggle area on mouse hover.
+ * The default for this view is to follow the "showSelectionToggle" setting but this method can
+ * be used to ignore that setting and force a different value.
+ */
+ void setEnabledSelectionToggles(SelectionTogglesEnabled selectionTogglesEnabled);
+
void readSettings();
void writeSettings();
@@ -46,6 +58,10 @@ protected:
private:
void updateGridSize();
+ using KItemListView::setEnabledSelectionToggles; // Makes sure that the setEnabledSelectionToggles() declaration above doesn't hide
+ // the one from the base class so we can still use it privately.
+ SelectionTogglesEnabled m_selectionTogglesEnabled = FollowSetting;
+
private:
int m_zoomLevel;
};
diff --git a/src/views/dolphinview.cpp b/src/views/dolphinview.cpp
index 5a36ad103..c34600678 100644
--- a/src/views/dolphinview.cpp
+++ b/src/views/dolphinview.cpp
@@ -111,7 +111,7 @@ DolphinView::DolphinView(const QUrl& url, QWidget* parent) :
m_model = new KFileItemModel(this);
m_view = new DolphinItemListView();
- m_view->setEnabledSelectionToggles(GeneralSettings::showSelectionToggle());
+ m_view->setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled::FollowSetting);
m_view->setVisibleRoles({"text"});
applyModeToView();
@@ -289,9 +289,11 @@ void DolphinView::setSelectionModeEnabled(const bool enabled)
m_proxyStyle = std::make_unique<SelectionMode::SingleClickSelectionProxyStyle>();
setStyle(m_proxyStyle.get());
m_view->setStyle(m_proxyStyle.get());
+ m_view->setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled::False);
} else {
setStyle(QApplication::style());
m_view->setStyle(QApplication::style());
+ m_view->setEnabledSelectionToggles(DolphinItemListView::SelectionTogglesEnabled::FollowSetting);
}
m_container->controller()->setSelectionModeEnabled(enabled);
}