diff options
| author | Jin Liu <[email protected]> | 2025-04-10 12:30:29 +0800 |
|---|---|---|
| committer | Jin Liu <[email protected]> | 2025-04-16 06:24:46 +0000 |
| commit | 676c7fee62a42605d8f896be1089158159a8003c (patch) | |
| tree | a461cae0ca3440ee33d0d9154c59feff34085c07 /src | |
| parent | e6b1ecc3f7802c677c68646e2674212a31e78957 (diff) | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/dolphinmainwindow.cpp | 15 | ||||
| -rw-r--r-- | src/dolphinui.rc | 5 | ||||
| -rw-r--r-- | src/dolphinuiforphones.rc | 3 | ||||
| -rw-r--r-- | src/views/dolphinviewactionhandler.cpp | 25 |
4 files changed, 39 insertions, 9 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index efcd4190e..106f0e44b 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -1558,14 +1558,17 @@ void DolphinMainWindow::updateHamburgerMenu() // and to change the more general UI. if (!toolBar()->isVisible() || (!toolbarActions.contains(ac->action(QStringLiteral("icons"))) && !toolbarActions.contains(ac->action(QStringLiteral("compact"))) - && !toolbarActions.contains(ac->action(QStringLiteral("details"))) && !toolbarActions.contains(ac->action(QStringLiteral("view_mode"))))) { + && !toolbarActions.contains(ac->action(QStringLiteral("details"))) && !toolbarActions.contains(ac->action(QStringLiteral("view_mode")))) + && !toolbarActions.contains(ac->action(QStringLiteral("view_settings")))) { menu->addAction(ac->action(QStringLiteral("view_mode"))); } - menu->addAction(ac->action(QStringLiteral("show_hidden_files"))); - menu->addAction(ac->action(QStringLiteral("sort"))); - menu->addAction(ac->action(QStringLiteral("additional_info"))); - if (!GeneralSettings::showStatusBar() || !GeneralSettings::showZoomSlider()) { - menu->addAction(ac->action(QStringLiteral("zoom"))); + if (!toolBar()->isVisible() || !toolbarActions.contains(ac->action(QStringLiteral("view_settings")))) { + menu->addAction(ac->action(QStringLiteral("show_hidden_files"))); + menu->addAction(ac->action(QStringLiteral("sort"))); + menu->addAction(ac->action(QStringLiteral("additional_info"))); + if (!GeneralSettings::showStatusBar() || !GeneralSettings::showZoomSlider()) { + menu->addAction(ac->action(QStringLiteral("zoom"))); + } } menu->addAction(ac->action(QStringLiteral("panels"))); diff --git a/src/dolphinui.rc b/src/dolphinui.rc index 34631c494..36f4a9dee 100644 --- a/src/dolphinui.rc +++ b/src/dolphinui.rc @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE gui SYSTEM "kpartgui.dtd"> -<gui name="dolphin" version="44"> +<gui name="dolphin" version="45"> <MenuBar> <Menu name="file"> <Action name="new_menu" /> @@ -105,7 +105,7 @@ <text context="@title:menu">Main Toolbar</text> <Action name="go_back" /> <Action name="go_forward" /> - <Action name="view_mode" /> + <Action name="view_settings" /> <Action name="url_navigators" /> <Action name="split_view" /> <Action name="split_stash" /> @@ -122,6 +122,7 @@ <Action priority="0" name="compact"/> <Action priority="0" name="details"/> <Action priority="0" name="view_mode" /> + <Action priority="0" name="view_settings" /> <Action priority="0" name="view_zoom_in"/> <Action priority="0" name="view_zoom_reset"/> <Action priority="0" name="view_zoom_out"/> diff --git a/src/dolphinuiforphones.rc b/src/dolphinuiforphones.rc index 51457cf87..e7bf495c5 100644 --- a/src/dolphinuiforphones.rc +++ b/src/dolphinuiforphones.rc @@ -1,6 +1,6 @@ <?xml version="1.0"?> <!DOCTYPE gui SYSTEM "kpartgui.dtd"> -<gui name="dolphin" version="1"> +<gui name="dolphin" version="2"> <MenuBar> <Menu name="file"> <Action name="new_menu" /> @@ -124,6 +124,7 @@ <Action priority="0" name="compact"/> <Action priority="0" name="details"/> <Action priority="0" name="view_mode" /> + <Action priority="0" name="view_settings" /> <Action priority="0" name="view_zoom_in"/> <Action priority="0" name="view_zoom_reset"/> <Action priority="0" name="view_zoom_out"/> 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<KActionMenu>(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")); |
