From 676c7fee62a42605d8f896be1089158159a8003c Mon Sep 17 00:00:00 2001 From: Jin Liu Date: Thu, 10 Apr 2025 12:30:29 +0800 Subject: Add a new "view_settings" action This should replace the "View Mode" button in the toolbar by default. Its dropdown menu contains more actions related to the view: zoom, sort by, show additional columns, show hidden files, grouping, show file previews. The original "view_mode" action is kept so the "Change View Mode" submenu in the main menu (or in the hamburger menu when this button is invisible) is unchanged. --- src/views/dolphinviewactionhandler.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/views/dolphinviewactionhandler.cpp') diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index 682a4314a..b7c21c8b9 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -358,6 +358,25 @@ void DolphinViewActionHandler::createActions(SelectionMode::ActionTextHelper *ac "This opens a window " "in which all folder view properties can be adjusted.")); connect(adjustViewProps, &QAction::triggered, this, &DolphinViewActionHandler::slotAdjustViewProperties); + + // View settings: the dropdown menu contains various view-related actions + KActionMenu *viewSettings = m_actionCollection->add(QStringLiteral("view_settings")); + viewSettings->setText(i18nc("@action:intoolbar", "View Settings")); + viewSettings->setWhatsThis( + xi18nc("@info:whatsthis View Settings Toolbutton", "This cycles through all view modes. The dropdown menu contains various view-related actions.")); + for (QAction *action : viewModeActions->actions()) { + viewSettings->addAction(action); + } + viewSettings->addSeparator(); + viewSettings->addAction(zoomMenu); + viewSettings->addAction(sortByActionMenu); + viewSettings->addAction(visibleRolesMenu); + viewSettings->addAction(showPreview); + viewSettings->addAction(showInGroups); + viewSettings->addAction(showHiddenFiles); + viewSettings->addAction(adjustViewProps); + viewSettings->setPopupMode(QToolButton::ToolButtonPopupMode::MenuButtonPopup); + connect(viewSettings, &KActionMenu::triggered, viewModeActions, &KSelectAction::triggered); } QActionGroup *DolphinViewActionHandler::createFileItemRolesActionGroup(const QString &groupPrefix) @@ -438,6 +457,9 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction *action) QAction *viewModeMenu = m_actionCollection->action(QStringLiteral("view_mode")); viewModeMenu->setIcon(action->icon()); + + QAction *viewSettingsAction = m_actionCollection->action(QStringLiteral("view_settings")); + viewSettingsAction->setIcon(action->icon()); } void DolphinViewActionHandler::slotRename() @@ -516,6 +538,9 @@ void DolphinViewActionHandler::updateViewActions() QAction *viewModeMenu = m_actionCollection->action(QStringLiteral("view_mode")); viewModeMenu->setIcon(viewModeAction->icon()); + + QAction *viewSettingsAction = m_actionCollection->action(QStringLiteral("view_settings")); + viewSettingsAction->setIcon(viewModeAction->icon()); } QAction *showPreviewAction = m_actionCollection->action(QStringLiteral("show_preview")); -- cgit v1.3