]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/views/dolphinviewactionhandler.cpp
Fix build with older KF versions
[dolphin.git] / src / views / dolphinviewactionhandler.cpp
index ef30e91c9f46fd9b97102ab40d34383de44a1050..fc88f5c1790b742c985582cf0258d3dcc7826873 100644 (file)
@@ -7,13 +7,11 @@
 
 #include "dolphinviewactionhandler.h"
 
-#include "dolphindebug.h"
 #include "kitemviews/kfileitemlisttostring.h"
 #include "kitemviews/kfileitemmodel.h"
 #include "selectionmode/actiontexthelper.h"
 #include "settings/viewpropertiesdialog.h"
 #include "views/zoomlevelinfo.h"
-#include "kconfig_version.h"
 
 #if HAVE_BALOO
 #include <Baloo/IndexerConfig>
@@ -73,8 +71,8 @@ void DolphinViewActionHandler::setCurrentView(DolphinView* view)
             this, &DolphinViewActionHandler::slotZoomLevelChanged);
     connect(view, &DolphinView::writeStateChanged,
             this, &DolphinViewActionHandler::slotWriteStateChanged);
-    connect(view, &DolphinView::selectionModeRequested,
-            this, [this]() { Q_EMIT setSelectionMode(true); });
+    connect(view, &DolphinView::selectionModeChangeRequested,
+            this, [this](bool enabled) { Q_EMIT selectionModeChangeTriggered(enabled); });
     connect(view, &DolphinView::selectionChanged,
             this, &DolphinViewActionHandler::slotSelectionChanged);
     slotSelectionChanged(m_currentView->selectedItems());
@@ -166,6 +164,7 @@ void DolphinViewActionHandler::createActions(SelectionMode::ActionTextHelper *ac
     connect(copyPathAction, &QAction::triggered, this, &DolphinViewActionHandler::slotCopyPath);
 
     if (actionTextHelper) {
+        // The "…" at the end make clear that they won't trigger their respective actions directly.
         actionTextHelper->registerTextWhenNothingIsSelected(trashAction, i18nc("@action:inmenu File", "Move to Trash…"));
         actionTextHelper->registerTextWhenNothingIsSelected(deleteAction, i18nc("@action:inmenu File", "Delete…"));
         actionTextHelper->registerTextWhenNothingIsSelected(duplicateAction, i18nc("@action:inmenu File", "Duplicate Here…"));
@@ -434,32 +433,33 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action)
 void DolphinViewActionHandler::slotRename()
 {
     if (m_currentView->selectedItemsCount() == 0) {
-        Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::RenameContents);
+        Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::RenameContents);
     } else {
         Q_EMIT actionBeingHandled();
         m_currentView->renameSelectedItems();
+        // We don't exit selectionMode here because users might want to rename more items.
     }
 }
 
 void DolphinViewActionHandler::slotTrashActivated()
 {
     if (m_currentView->selectedItemsCount() == 0) {
-        Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::MoveToTrashContents);
+        Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::MoveToTrashContents);
     } else {
         Q_EMIT actionBeingHandled();
         m_currentView->trashSelectedItems();
-        Q_EMIT setSelectionMode(false);
+        Q_EMIT selectionModeChangeTriggered(false);
     }
 }
 
 void DolphinViewActionHandler::slotDeleteItems()
 {
     if (m_currentView->selectedItemsCount() == 0) {
-        Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::DeleteContents);
+        Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DeleteContents);
     } else {
         Q_EMIT actionBeingHandled();
         m_currentView->deleteSelectedItems();
-        Q_EMIT setSelectionMode(false);
+        Q_EMIT selectionModeChangeTriggered(false);
     }
 }
 
@@ -760,11 +760,11 @@ void DolphinViewActionHandler::slotAdjustViewProperties()
 void DolphinViewActionHandler::slotDuplicate()
 {
     if (m_currentView->selectedItemsCount() == 0) {
-        Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::DuplicateContents);
+        Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DuplicateContents);
     } else {
         Q_EMIT actionBeingHandled();
         m_currentView->duplicateSelectedItems();
-        Q_EMIT setSelectionMode(false);
+        Q_EMIT selectionModeChangeTriggered(false);
     }
 }
 
@@ -788,10 +788,10 @@ void DolphinViewActionHandler::slotProperties()
 void DolphinViewActionHandler::slotCopyPath()
 {
     if (m_currentView->selectedItemsCount() == 0) {
-        Q_EMIT setSelectionMode(true, SelectionMode::BottomBar::Contents::CopyLocationContents);
+        Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::CopyLocationContents);
     } else {
         m_currentView->copyPathToClipboard();
-        Q_EMIT setSelectionMode(false);
+        Q_EMIT selectionModeChangeTriggered(false);
     }
 }