#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>
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());
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…"));
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);
}
}
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);
}
}
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);
}
}