X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fc965a725cd0cfdca520b1a08e1f144f06aab7d2..402b4a5698f3d12d1848b298c38828d509abfd0d:/src/views/dolphinviewactionhandler.cpp diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index c02d7856b..b2e45a5f6 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -14,7 +14,7 @@ #include "views/zoomlevelinfo.h" #include "kconfig_version.h" -#ifdef HAVE_BALOO +#if HAVE_BALOO #include #endif #include @@ -72,6 +72,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::selectionChanged, this, &DolphinViewActionHandler::slotSelectionChanged); slotSelectionChanged(m_currentView->selectedItems()); @@ -355,7 +357,7 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt QActionGroup* groupMenuGroup = nullptr; bool indexingEnabled = false; -#ifdef HAVE_BALOO +#if HAVE_BALOO Baloo::IndexerConfig config; indexingEnabled = config.fileIndexingEnabled(); #endif @@ -415,7 +417,7 @@ QActionGroup* DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) { const DolphinView::Mode mode = action->data().value(); - m_currentView->setMode(mode); + m_currentView->setViewMode(mode); QAction* viewModeMenu = m_actionCollection->action(QStringLiteral("view_mode")); viewModeMenu->setIcon(action->icon()); @@ -423,20 +425,34 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) void DolphinViewActionHandler::slotRename() { - Q_EMIT actionBeingHandled(); - m_currentView->renameSelectedItems(); + if (m_currentView->selectedItemsCount() == 0) { + Q_EMIT setSelectionMode(true, SelectionModeBottomBar::Contents::RenameContents); + } else { + Q_EMIT actionBeingHandled(); + m_currentView->renameSelectedItems(); + } } void DolphinViewActionHandler::slotTrashActivated() { - Q_EMIT actionBeingHandled(); - m_currentView->trashSelectedItems(); + if (m_currentView->selectedItemsCount() == 0) { + Q_EMIT setSelectionMode(true, SelectionModeBottomBar::Contents::MoveToTrashContents); + } else { + Q_EMIT actionBeingHandled(); + m_currentView->trashSelectedItems(); + Q_EMIT setSelectionMode(false); + } } void DolphinViewActionHandler::slotDeleteItems() { - Q_EMIT actionBeingHandled(); - m_currentView->deleteSelectedItems(); + if (m_currentView->selectedItemsCount() == 0) { + Q_EMIT setSelectionMode(true, SelectionModeBottomBar::Contents::DeleteContents); + } else { + Q_EMIT actionBeingHandled(); + m_currentView->deleteSelectedItems(); + Q_EMIT setSelectionMode(false); + } } void DolphinViewActionHandler::togglePreview(bool show) @@ -455,7 +471,7 @@ void DolphinViewActionHandler::slotPreviewsShownChanged(bool shown) QString DolphinViewActionHandler::currentViewModeActionName() const { - switch (m_currentView->mode()) { + switch (m_currentView->viewMode()) { case DolphinView::IconsView: return QStringLiteral("icons"); case DolphinView::DetailsView: @@ -664,7 +680,7 @@ void DolphinViewActionHandler::slotSortRoleChanged(const QByteArray& role) QAction* descending = m_actionCollection->action(QStringLiteral("descending")); QAction* ascending = m_actionCollection->action(QStringLiteral("ascending")); - if (role == "text" || role == "type" || role == "tags" || role == "comment") { + if (role == "text" || role == "type" || role == "extension" || role == "tags" || role == "comment") { descending->setText(i18nc("Sort descending", "Z-A")); ascending->setText(i18nc("Sort ascending", "A-Z")); } else if (role == "size") { @@ -735,8 +751,13 @@ void DolphinViewActionHandler::slotAdjustViewProperties() void DolphinViewActionHandler::slotDuplicate() { - Q_EMIT actionBeingHandled(); - m_currentView->duplicateSelectedItems(); + if (m_currentView->selectedItemsCount() == 0) { + Q_EMIT setSelectionMode(true, SelectionModeBottomBar::Contents::DuplicateContents); + } else { + Q_EMIT actionBeingHandled(); + m_currentView->duplicateSelectedItems(); + Q_EMIT setSelectionMode(false); + } } void DolphinViewActionHandler::slotProperties() @@ -758,7 +779,12 @@ void DolphinViewActionHandler::slotProperties() void DolphinViewActionHandler::slotCopyPath() { - m_currentView->copyPathToClipboard(); + if (m_currentView->selectedItemsCount() == 0) { + Q_EMIT setSelectionMode(true, SelectionModeBottomBar::Contents::CopyLocationContents); + } else { + m_currentView->copyPathToClipboard(); + Q_EMIT setSelectionMode(false); + } } void DolphinViewActionHandler::slotSelectionChanged(const KFileItemList& selection)