File 2000-selection-mode.patch of Package dolphin
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 8bc066455ea1a2cd7d2ddb1e6001737e7461c9e8..696c6492edb6049f6a10865f6f5012821884cebc 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -833,9 +833,7 @@ void DolphinMainWindow::undo()
void DolphinMainWindow::cut()
{
- if (m_activeViewContainer->view()->selectedItems().isEmpty()) {
- m_activeViewContainer->setSelectionModeEnabled(true, actionCollection(), SelectionMode::BottomBar::Contents::CutContents);
- } else {
+ if (m_activeViewContainer->view()->selectedItemsCount() > 0) {
m_activeViewContainer->view()->cutSelectedItemsToClipboard();
m_activeViewContainer->setSelectionModeEnabled(false);
}
@@ -843,9 +841,7 @@ void DolphinMainWindow::cut()
void DolphinMainWindow::copy()
{
- if (m_activeViewContainer->view()->selectedItems().isEmpty()) {
- m_activeViewContainer->setSelectionModeEnabled(true, actionCollection(), SelectionMode::BottomBar::Contents::CopyContents);
- } else {
+ if (m_activeViewContainer->view()->selectedItemsCount() > 0) {
m_activeViewContainer->view()->copySelectedItemsToClipboard();
m_activeViewContainer->setSelectionModeEnabled(false);
}
@@ -1832,7 +1828,6 @@ void DolphinMainWindow::setupActions()
"</para>"));
toggleSelectionModeAction->setIcon(QIcon::fromTheme(QStringLiteral("quickwizard")));
toggleSelectionModeAction->setCheckable(true);
- actionCollection()->setDefaultShortcut(toggleSelectionModeAction, Qt::Key_Space);
connect(toggleSelectionModeAction, &QAction::triggered, this, &DolphinMainWindow::toggleSelectionMode);
// A special version of the toggleSelectionModeAction for the toolbar that also contains a menu
@@ -2419,19 +2414,10 @@ void DolphinMainWindow::updateFileAndEditActions()
QAction *copyLocation = col->action(QString("copy_location"));
if (list.isEmpty()) {
+ m_actionTextHelper->textsWhenNothingIsSelectedEnabled(true);
stateChanged(QStringLiteral("has_no_selection"));
- // All actions that need a selection to function can be enabled because they should trigger selection mode.
- renameAction->setEnabled(true);
- moveToTrashAction->setEnabled(true);
- deleteAction->setEnabled(true);
- cutAction->setEnabled(true);
- duplicateAction->setEnabled(true);
addToPlacesAction->setEnabled(true);
- copyLocation->setEnabled(true);
- // Them triggering selection mode and not directly acting on selected items is signified by adding "…" to their text.
- m_actionTextHelper->textsWhenNothingIsSelectedEnabled(true);
-
} else {
m_actionTextHelper->textsWhenNothingIsSelectedEnabled(false);
stateChanged(QStringLiteral("has_selection"));
@@ -2455,7 +2441,7 @@ void DolphinMainWindow::updateFileAndEditActions()
cutAction->setEnabled(capabilitiesSource.supportsMoving());
m_disabledActionNotifier->setDisabledReason(cutAction, i18nc("@info", "Cannot cut: You do not have permission to move items from this folder."));
copyLocation->setEnabled(list.length() == 1);
- showTarget->setEnabled(list.length() == 1 && list.at(0).isLink());
+ showTarget->setEnabled(list.length() == 1 && list.first().isLink());
duplicateAction->setEnabled(capabilitiesSource.supportsWriting());
m_disabledActionNotifier->setDisabledReason(duplicateAction,
i18nc("@info", "Cannot duplicate here: You do not have permission to create items in this folder."));
diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp
index 392dc410e605a9b4a069dd985071732933eed807..40410b987bb8a176b32f6fcb034093fd15242b0f 100644
--- a/src/kitemviews/kitemlistcontroller.cpp
+++ b/src/kitemviews/kitemlistcontroller.cpp
@@ -478,6 +478,7 @@ bool KItemListController::keyPressEvent(QKeyEvent *event)
const int current = m_selectionManager->currentItem();
if (!m_selectionManager->isSelected(current)) {
m_selectionManager->setSelected(current);
+ m_selectionManager->beginAnchoredSelection(current);
break;
}
}
diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp
index 2934e800582e28dd48d7da835a8361d4cf56e93a..41605467d76037912159d52d4e759babd43daae1 100644
--- a/src/views/dolphinviewactionhandler.cpp
+++ b/src/views/dolphinviewactionhandler.cpp
@@ -423,20 +423,15 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction *action)
void DolphinViewActionHandler::slotRename()
{
- if (m_currentView->selectedItemsCount() == 0) {
- Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::RenameContents);
- } else {
+ if (m_currentView->selectedItemsCount() > 0) {
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 selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::MoveToTrashContents);
- } else {
+ if (m_currentView->selectedItemsCount() > 0) {
Q_EMIT actionBeingHandled();
m_currentView->trashSelectedItems();
Q_EMIT selectionModeChangeTriggered(false);
@@ -445,9 +440,7 @@ void DolphinViewActionHandler::slotTrashActivated()
void DolphinViewActionHandler::slotDeleteItems()
{
- if (m_currentView->selectedItemsCount() == 0) {
- Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DeleteContents);
- } else {
+ if (m_currentView->selectedItemsCount() > 0) {
Q_EMIT actionBeingHandled();
m_currentView->deleteSelectedItems();
Q_EMIT selectionModeChangeTriggered(false);
@@ -748,9 +741,7 @@ void DolphinViewActionHandler::slotAdjustViewProperties()
void DolphinViewActionHandler::slotDuplicate()
{
- if (m_currentView->selectedItemsCount() == 0) {
- Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::DuplicateContents);
- } else {
+ if (m_currentView->selectedItemsCount() > 0) {
Q_EMIT actionBeingHandled();
m_currentView->duplicateSelectedItems();
Q_EMIT selectionModeChangeTriggered(false);
@@ -776,9 +767,7 @@ void DolphinViewActionHandler::slotProperties()
void DolphinViewActionHandler::slotCopyPath()
{
- if (m_currentView->selectedItemsCount() == 0) {
- Q_EMIT selectionModeChangeTriggered(true, SelectionMode::BottomBar::Contents::CopyLocationContents);
- } else {
+ if (m_currentView->selectedItemsCount() > 0) {
m_currentView->copyPathToClipboard();
Q_EMIT selectionModeChangeTriggered(false);
}