X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/eaeee9f7d68d120b1982f24e73d8183db3418261..bd7b4faa4aa54e8bbfeee345449cd9d29c8c16c3:/src/dolphinviewactionhandler.cpp diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 3c010f80f..2bbdec013 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -26,6 +26,8 @@ #include #include +#include +#include #include #include #include @@ -79,14 +81,14 @@ DolphinView* DolphinViewActionHandler::currentView() void DolphinViewActionHandler::createActions() { // This action doesn't appear in the GUI, it's for the shortcut only. - // KNewMenu takes care of the GUI stuff. + // KNewFileMenu takes care of the GUI stuff. KAction* newDirAction = m_actionCollection->addAction("create_dir"); newDirAction->setText(i18nc("@action", "Create Folder...")); newDirAction->setShortcut(Qt::Key_F10); newDirAction->setIcon(KIcon("folder-new")); connect(newDirAction, SIGNAL(triggered()), this, SIGNAL(createDirectory())); - // Edit menu + // File menu KAction* rename = m_actionCollection->addAction("rename"); rename->setText(i18nc("@action:inmenu File", "Rename...")); @@ -126,11 +128,16 @@ void DolphinViewActionHandler::createActions() connect(propertiesAction, SIGNAL(triggered()), SLOT(slotProperties())); // View menu - - QActionGroup* viewModeActions = new QActionGroup(this); - viewModeActions->addAction(iconsModeAction()); - viewModeActions->addAction(detailsModeAction()); - viewModeActions->addAction(columnsModeAction()); + KToggleAction* iconsAction = iconsModeAction(); + KToggleAction* detailsAction = detailsModeAction(); + KToggleAction* columnsAction = columnsModeAction(); + + KSelectAction* viewModeActions = m_actionCollection->add("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, @@ -143,6 +150,7 @@ void DolphinViewActionHandler::createActions() KToggleAction* showPreview = m_actionCollection->add("show_preview"); showPreview->setText(i18nc("@action:intoolbar", "Preview")); + showPreview->setToolTip(i18nc("@info", "Show preview of files and folders")); showPreview->setIcon(KIcon("view-preview")); connect(showPreview, SIGNAL(triggered(bool)), this, SLOT(togglePreview(bool))); @@ -154,11 +162,31 @@ void DolphinViewActionHandler::createActions() sortFoldersFirst->setText(i18nc("@action:inmenu Sort", "Folders First")); connect(sortFoldersFirst, SIGNAL(triggered()), this, SLOT(toggleSortFoldersFirst())); + // View -> Sort By 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* sortByActionMenu = m_actionCollection->add("sort"); + sortByActionMenu->setText(i18nc("@action:inmenu View", "Sort By")); + sortByActionMenu->setDelayed(false); + + foreach (QAction* action, sortByActionGroup->actions()) { + sortByActionMenu->addAction(action); + } + sortByActionMenu->addSeparator(); + sortByActionMenu->addAction(sortDescending); + sortByActionMenu->addAction(sortFoldersFirst); + + // View -> Additional Information + QActionGroup* additionalInfoGroup = createAdditionalInformationActionGroup(); + connect(additionalInfoGroup, SIGNAL(triggered(QAction*)), this, SLOT(toggleAdditionalInfo(QAction*))); + + KActionMenu* additionalInfoMenu = m_actionCollection->add("additional_info"); + additionalInfoMenu->setText(i18nc("@action:inmenu View", "Additional Information")); + additionalInfoMenu->setDelayed(false); + foreach (QAction* action, additionalInfoGroup->actions()) { + additionalInfoMenu->addAction(action); + } KToggleAction* showInGroups = m_actionCollection->add("show_in_groups"); showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups")); @@ -184,40 +212,44 @@ void DolphinViewActionHandler::createActions() QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() { - QActionGroup* showInformationGroup = new QActionGroup(m_actionCollection); - showInformationGroup->setExclusive(false); + QActionGroup* additionalInfoGroup = new QActionGroup(m_actionCollection); + additionalInfoGroup->setExclusive(false); + + KActionMenu* showInformationMenu = m_actionCollection->add("additional_info"); + showInformationMenu->setText(i18nc("@action:inmenu View", "Additional Information")); + showInformationMenu->setDelayed(false); KToggleAction* showSizeInfo = m_actionCollection->add("show_size_info"); showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size")); showSizeInfo->setData(KFileItemDelegate::Size); - showSizeInfo->setActionGroup(showInformationGroup); + showSizeInfo->setActionGroup(additionalInfoGroup); KToggleAction* showDateInfo = m_actionCollection->add("show_date_info"); showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date")); showDateInfo->setData(KFileItemDelegate::ModificationTime); - showDateInfo->setActionGroup(showInformationGroup); + showDateInfo->setActionGroup(additionalInfoGroup); KToggleAction* showPermissionsInfo = m_actionCollection->add("show_permissions_info"); showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); showPermissionsInfo->setData(KFileItemDelegate::Permissions); - showPermissionsInfo->setActionGroup(showInformationGroup); + showPermissionsInfo->setActionGroup(additionalInfoGroup); KToggleAction* showOwnerInfo = m_actionCollection->add("show_owner_info"); showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); showOwnerInfo->setData(KFileItemDelegate::Owner); - showOwnerInfo->setActionGroup(showInformationGroup); + showOwnerInfo->setActionGroup(additionalInfoGroup); KToggleAction* showGroupInfo = m_actionCollection->add("show_group_info"); showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup); - showGroupInfo->setActionGroup(showInformationGroup); + showGroupInfo->setActionGroup(additionalInfoGroup); KToggleAction* showMimeInfo = m_actionCollection->add("show_mime_info"); showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType); - showMimeInfo->setActionGroup(showInformationGroup); + showMimeInfo->setActionGroup(additionalInfoGroup); - return showInformationGroup; + return additionalInfoGroup; } Q_DECLARE_METATYPE(DolphinView::Sorting) @@ -269,6 +301,9 @@ void DolphinViewActionHandler::slotViewModeActionTriggered(QAction* action) { const DolphinView::Mode mode = action->data().value(); m_currentView->setMode(mode); + + QAction* viewModeMenu = m_actionCollection->action("view_mode"); + viewModeMenu->setIcon(KIcon(action->icon())); } void DolphinViewActionHandler::slotRename() @@ -331,6 +366,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"); @@ -345,7 +383,6 @@ void DolphinViewActionHandler::updateViewActions() QAction* showHiddenFilesAction = m_actionCollection->action("show_hidden_files"); showHiddenFilesAction->setChecked(m_currentView->showHiddenFiles()); - } void DolphinViewActionHandler::zoomIn() @@ -424,6 +461,7 @@ KToggleAction* DolphinViewActionHandler::iconsModeAction() { KToggleAction* iconsView = m_actionCollection->add("icons"); iconsView->setText(i18nc("@action:inmenu View Mode", "Icons")); + iconsView->setToolTip(i18nc("@info", "Icons view mode")); iconsView->setShortcut(Qt::CTRL | Qt::Key_1); iconsView->setIcon(KIcon("view-list-icons")); iconsView->setData(QVariant::fromValue(DolphinView::IconsView)); @@ -434,6 +472,7 @@ KToggleAction* DolphinViewActionHandler::detailsModeAction() { KToggleAction* detailsView = m_actionCollection->add("details"); detailsView->setText(i18nc("@action:inmenu View Mode", "Details")); + detailsView->setToolTip(i18nc("@info", "Details view mode")); detailsView->setShortcut(Qt::CTRL | Qt::Key_2); detailsView->setIcon(KIcon("view-list-details")); detailsView->setData(QVariant::fromValue(DolphinView::DetailsView)); @@ -444,6 +483,7 @@ KToggleAction* DolphinViewActionHandler::columnsModeAction() { KToggleAction* columnView = m_actionCollection->add("columns"); columnView->setText(i18nc("@action:inmenu View Mode", "Columns")); + columnView->setToolTip(i18nc("@info", "Columns view mode")); columnView->setShortcut(Qt::CTRL | Qt::Key_3); columnView->setIcon(KIcon("view-file-columns")); columnView->setData(QVariant::fromValue(DolphinView::ColumnView)); @@ -481,6 +521,9 @@ void DolphinViewActionHandler::slotSortingChanged(DolphinView::Sorting sorting) if (action != 0) { action->setChecked(true); + + QAction* sortByMenu = m_actionCollection->action("sort"); + sortByMenu->setIcon(KIcon(action->icon())); } }