diff options
| -rw-r--r-- | src/dolphinmainwindow.cpp | 9 | ||||
| -rw-r--r-- | src/dolphinpart.rc | 26 | ||||
| -rw-r--r-- | src/dolphinui.rc | 41 | ||||
| -rw-r--r-- | src/dolphinviewactionhandler.cpp | 63 | ||||
| -rw-r--r-- | src/dolphinviewactionhandler.h | 7 |
5 files changed, 65 insertions, 81 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index eaa8ebb8a..3d9b92f52 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -52,6 +52,7 @@ #include <kaction.h> #include <kactioncollection.h> +#include <kactionmenu.h> #include <kconfig.h> #include <kdesktopfile.h> #include <kdeversion.h> @@ -1638,6 +1639,14 @@ void DolphinMainWindow::setupDockWidgets() this, SLOT(handlePlacesClick(KUrl, Qt::MouseButtons))); connect(this, SIGNAL(urlChanged(KUrl)), placesPanel, SLOT(setUrl(KUrl))); + + KActionMenu* panelsMenu = new KActionMenu(i18nc("@action:inmenu File", "Panels"), this); + actionCollection()->addAction("panels", panelsMenu); + panelsMenu->setDelayed(false); + panelsMenu->addAction(placesAction); + panelsMenu->addAction(infoAction); + panelsMenu->addAction(foldersAction); + panelsMenu->addAction(terminalAction); } void DolphinMainWindow::updateEditActions() diff --git a/src/dolphinpart.rc b/src/dolphinpart.rc index 7340c4dc1..1ff1e040f 100644 --- a/src/dolphinpart.rc +++ b/src/dolphinpart.rc @@ -21,30 +21,8 @@ </Menu> </Menu> <Menu name="view"><text>&View</text> - <Menu name="sort"> - <text context="@title:menu">Sort By</text> - <Action name="sort_by_name" /> - <Action name="sort_by_size" /> - <Action name="sort_by_date" /> - <Action name="sort_by_permissions" /> - <Action name="sort_by_owner" /> - <Action name="sort_by_group" /> - <Action name="sort_by_type" /> - <Action name="sort_by_rating" /> - <Action name="sort_by_tags" /> - <Separator/> - <Action name="descending" /> - <Action name="folders_first" /> - </Menu> - <Menu name="additional_info"> - <text context="@title:menu">Additional Information</text> - <Action name="show_size_info" /> - <Action name="show_date_info" /> - <Action name="show_permissions_info" /> - <Action name="show_owner_info" /> - <Action name="show_group_info" /> - <Action name="show_mime_info" /> - </Menu> + <Action name="sort" /> + <Action name="additional_info" /> <Action name="show_preview" /> <Action name="show_in_groups" /> <Action name="show_hidden_files" /> diff --git a/src/dolphinui.rc b/src/dolphinui.rc index 61b7df615..3ec650daa 100644 --- a/src/dolphinui.rc +++ b/src/dolphinui.rc @@ -18,36 +18,9 @@ <Action name="invert_selection" /> </Menu> <Menu name="view"> - <Menu name="view_mode" > - <text context="@title:menu">View Mode</text> - <Action name="icons" /> - <Action name="details" /> - <Action name="columns" /> - </Menu> - <Menu name="sort"> - <text context="@title:menu">Sort By</text> - <Action name="sort_by_name" /> - <Action name="sort_by_size" /> - <Action name="sort_by_date" /> - <Action name="sort_by_permissions" /> - <Action name="sort_by_owner" /> - <Action name="sort_by_group" /> - <Action name="sort_by_type" /> - <Action name="sort_by_rating" /> - <Action name="sort_by_tags" /> - <Separator/> - <Action name="descending" /> - <Action name="folders_first" /> - </Menu> - <Menu name="additional_info"> - <text context="@title:menu">Additional Information</text> - <Action name="show_size_info" /> - <Action name="show_date_info" /> - <Action name="show_permissions_info" /> - <Action name="show_owner_info" /> - <Action name="show_group_info" /> - <Action name="show_mime_info" /> - </Menu> + <Action name="view_mode" /> + <Action name="sort" /> + <Action name="additional_info" /> <Action name="show_preview" /> <Action name="show_in_groups" /> <Action name="show_hidden_files" /> @@ -56,13 +29,7 @@ <Action name="reload" /> <Action name="stop" /> <Separator/> - <Menu name="panels"> - <text context="@title:menu">Panels</text> - <Action name="show_places_panel" /> - <Action name="show_info_panel" /> - <Action name="show_folders_panel" /> - <Action name="show_terminal_panel" /> - </Menu> + <Action name="panels" /> <Menu name="navigation_bar"> <text context="@title:menu">Location Bar</text> <Action name="editable_location" /> diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 9082e0dd0..8c07148d7 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -26,6 +26,8 @@ #include <kaction.h> #include <kactioncollection.h> +#include <kactionmenu.h> +#include <kselectaction.h> #include <klocale.h> #include <knewmenu.h> #include <ktoggleaction.h> @@ -126,11 +128,16 @@ void DolphinViewActionHandler::createActions() connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); // View menu + KToggleAction* iconsAction = iconsModeAction(); + KToggleAction* detailsAction = detailsModeAction(); + KToggleAction* columnsAction = columnsModeAction(); - QActionGroup* viewModeActions = new QActionGroup(this); - viewModeActions->addAction(iconsModeAction()); - viewModeActions->addAction(detailsModeAction()); - viewModeActions->addAction(columnsModeAction()); + KSelectAction* viewModeActions = m_actionCollection->add<KSelectAction>("view_mode"); + viewModeActions->setText(i18nc("@action:intoolbar", "View Mode")); + viewModeActions->addAction(iconsAction); + viewModeActions->addAction(detailsAction); + viewModeActions->addAction(columnsAction); + viewModeActions->setToolBarMode(KSelectAction::MenuMode); connect(viewModeActions, SIGNAL(triggered(QAction*)), this, SLOT(slotViewModeActionTriggered(QAction*))); KStandardAction::zoomIn(this, @@ -158,8 +165,19 @@ void DolphinViewActionHandler::createActions() QActionGroup* sortByActionGroup = createSortByActionGroup(); connect(sortByActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(slotSortTriggered(QAction*))); - QActionGroup* showInformationActionGroup = createAdditionalInformationActionGroup(); - connect(showInformationActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); + KActionMenu* sortActionMenu = m_actionCollection->add<KActionMenu>("sort"); + sortActionMenu->setText(i18nc("@action:inmenu View", "Sort By")); + sortActionMenu->setDelayed(false); + + foreach(QAction* actionItem, sortByActionGroup->actions()) { + sortActionMenu->addAction(actionItem); + } + sortActionMenu->addSeparator(); + sortActionMenu->addAction(sortDescending); + sortActionMenu->addAction(sortFoldersFirst); + + KActionMenu* showInformationActionMenu = createAdditionalInformationActionMenu(); + connect(showInformationActionMenu, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); KToggleAction* showInGroups = m_actionCollection->add<KToggleAction>("show_in_groups"); showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups")); @@ -183,42 +201,43 @@ void DolphinViewActionHandler::createActions() connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile())); } -QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() +KActionMenu* DolphinViewActionHandler::createAdditionalInformationActionMenu() { - QActionGroup* showInformationGroup = new QActionGroup(m_actionCollection); - showInformationGroup->setExclusive(false); + KActionMenu* showInformationMenu = m_actionCollection->add<KActionMenu>("additional_info"); + showInformationMenu->setText(i18nc("@action:inmenu View", "Additional Information")); + showInformationMenu->setDelayed(false); KToggleAction* showSizeInfo = m_actionCollection->add<KToggleAction>("show_size_info"); showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size")); showSizeInfo->setData(KFileItemDelegate::Size); - showSizeInfo->setActionGroup(showInformationGroup); + showInformationMenu->addAction(showSizeInfo); KToggleAction* showDateInfo = m_actionCollection->add<KToggleAction>("show_date_info"); showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date")); showDateInfo->setData(KFileItemDelegate::ModificationTime); - showDateInfo->setActionGroup(showInformationGroup); + showInformationMenu->addAction(showDateInfo); KToggleAction* showPermissionsInfo = m_actionCollection->add<KToggleAction>("show_permissions_info"); showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); showPermissionsInfo->setData(KFileItemDelegate::Permissions); - showPermissionsInfo->setActionGroup(showInformationGroup); + showInformationMenu->addAction(showPermissionsInfo); KToggleAction* showOwnerInfo = m_actionCollection->add<KToggleAction>("show_owner_info"); showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); showOwnerInfo->setData(KFileItemDelegate::Owner); - showOwnerInfo->setActionGroup(showInformationGroup); + showInformationMenu->addAction(showOwnerInfo); KToggleAction* showGroupInfo = m_actionCollection->add<KToggleAction>("show_group_info"); showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup); - showGroupInfo->setActionGroup(showInformationGroup); + showInformationMenu->addAction(showGroupInfo); KToggleAction* showMimeInfo = m_actionCollection->add<KToggleAction>("show_mime_info"); showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); - showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType); - showMimeInfo->setActionGroup(showInformationGroup); + showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType);; + showInformationMenu->addAction(showMimeInfo); - return showInformationGroup; + return showInformationMenu; } Q_DECLARE_METATYPE(DolphinView::Sorting) @@ -270,6 +289,9 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) { const DolphinView::Mode mode = action->data().value<DolphinView::Mode>(); m_currentView->setMode(mode); + + QAction* viewModeMenu = m_actionCollection->action("view_mode"); + viewModeMenu->setIcon(KIcon(action->icon())); } void DolphinViewActionHandler::slotRename() @@ -332,6 +354,9 @@ void DolphinViewActionHandler::updateViewActions() QAction* viewModeAction = m_actionCollection->action(currentViewModeActionName()); if (viewModeAction != 0) { viewModeAction->setChecked(true); + + QAction* viewModeMenu = m_actionCollection->action("view_mode"); + viewModeMenu->setIcon(KIcon(viewModeAction->icon())); } QAction* showPreviewAction = m_actionCollection->action("show_preview"); @@ -346,7 +371,6 @@ void DolphinViewActionHandler::updateViewActions() QAction* showHiddenFilesAction = m_actionCollection->action("show_hidden_files"); showHiddenFilesAction->setChecked(m_currentView->showHiddenFiles()); - } void DolphinViewActionHandler::zoomIn() @@ -485,6 +509,9 @@ void DolphinViewActionHandler::slotSortingChanged(DolphinView::Sorting sorting) if (action != 0) { action->setChecked(true); + + QAction* sortByMenu = m_actionCollection->action("sort"); + sortByMenu->setIcon(KIcon(action->icon())); } } diff --git a/src/dolphinviewactionhandler.h b/src/dolphinviewactionhandler.h index 5193da719..4186a479f 100644 --- a/src/dolphinviewactionhandler.h +++ b/src/dolphinviewactionhandler.h @@ -23,7 +23,10 @@ #include "dolphinview.h" #include "libdolphin_export.h" +#include <kactionmenu.h> +#include <kselectaction.h> #include <QtCore/QObject> + class KToggleAction; class QAction; class QActionGroup; @@ -217,10 +220,10 @@ private: */ void createActions(); /** - * Creates an action group with all the "show additional information" actions in it. + * Creates an action menu with all the "show additional information" actions in it. * Helper method for createActions(); */ - QActionGroup* createAdditionalInformationActionGroup(); + KActionMenu* createAdditionalInformationActionMenu(); /** * Creates an action group with all the "sort by" actions in it. |
