From: Peter Penz Date: Mon, 3 May 2010 17:49:49 +0000 (+0000) Subject: Create QActionGroup like done for other sub menus for consistency. Although a few... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/2aa41e71676a7fa9e745a4bd9b1d0fb372ad65e3?ds=inline Create QActionGroup like done for other sub menus for consistency. Although a few more lines of code are required, this approach is more flexible.bar, but as the group "Panels" can be added instead, this should be no issue. svn path=/trunk/KDE/kdebase/apps/; revision=1122365 --- diff --git a/src/dolphinviewactionhandler.cpp b/src/dolphinviewactionhandler.cpp index 8c07148d7..2bbdec013 100644 --- a/src/dolphinviewactionhandler.cpp +++ b/src/dolphinviewactionhandler.cpp @@ -162,22 +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*))); - KActionMenu* sortActionMenu = m_actionCollection->add("sort"); - sortActionMenu->setText(i18nc("@action:inmenu View", "Sort By")); - sortActionMenu->setDelayed(false); + KActionMenu* sortByActionMenu = m_actionCollection->add("sort"); + sortByActionMenu->setText(i18nc("@action:inmenu View", "Sort By")); + sortByActionMenu->setDelayed(false); - foreach(QAction* actionItem, sortByActionGroup->actions()) { - sortActionMenu->addAction(actionItem); + 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); } - 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("show_in_groups"); showInGroups->setText(i18nc("@action:inmenu View", "Show in Groups")); @@ -201,8 +210,11 @@ void DolphinViewActionHandler::createActions() connect(findFile, SIGNAL(triggered()), this, SLOT(slotFindFile())); } -KActionMenu* DolphinViewActionHandler::createAdditionalInformationActionMenu() +QActionGroup* DolphinViewActionHandler::createAdditionalInformationActionGroup() { + 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); @@ -210,34 +222,34 @@ KActionMenu* DolphinViewActionHandler::createAdditionalInformationActionMenu() KToggleAction* showSizeInfo = m_actionCollection->add("show_size_info"); showSizeInfo->setText(i18nc("@action:inmenu Additional information", "Size")); showSizeInfo->setData(KFileItemDelegate::Size); - showInformationMenu->addAction(showSizeInfo); + showSizeInfo->setActionGroup(additionalInfoGroup); KToggleAction* showDateInfo = m_actionCollection->add("show_date_info"); showDateInfo->setText(i18nc("@action:inmenu Additional information", "Date")); showDateInfo->setData(KFileItemDelegate::ModificationTime); - showInformationMenu->addAction(showDateInfo); + showDateInfo->setActionGroup(additionalInfoGroup); KToggleAction* showPermissionsInfo = m_actionCollection->add("show_permissions_info"); showPermissionsInfo->setText(i18nc("@action:inmenu Additional information", "Permissions")); showPermissionsInfo->setData(KFileItemDelegate::Permissions); - showInformationMenu->addAction(showPermissionsInfo); + showPermissionsInfo->setActionGroup(additionalInfoGroup); KToggleAction* showOwnerInfo = m_actionCollection->add("show_owner_info"); showOwnerInfo->setText(i18nc("@action:inmenu Additional information", "Owner")); showOwnerInfo->setData(KFileItemDelegate::Owner); - showInformationMenu->addAction(showOwnerInfo); + showOwnerInfo->setActionGroup(additionalInfoGroup); KToggleAction* showGroupInfo = m_actionCollection->add("show_group_info"); showGroupInfo->setText(i18nc("@action:inmenu Additional information", "Group")); showGroupInfo->setData(KFileItemDelegate::OwnerAndGroup); - showInformationMenu->addAction(showGroupInfo); + showGroupInfo->setActionGroup(additionalInfoGroup); KToggleAction* showMimeInfo = m_actionCollection->add("show_mime_info"); showMimeInfo->setText(i18nc("@action:inmenu Additional information", "Type")); - showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType);; - showInformationMenu->addAction(showMimeInfo); + showMimeInfo->setData(KFileItemDelegate::FriendlyMimeType); + showMimeInfo->setActionGroup(additionalInfoGroup); - return showInformationMenu; + return additionalInfoGroup; } Q_DECLARE_METATYPE(DolphinView::Sorting) diff --git a/src/dolphinviewactionhandler.h b/src/dolphinviewactionhandler.h index 4186a479f..0bdb88764 100644 --- a/src/dolphinviewactionhandler.h +++ b/src/dolphinviewactionhandler.h @@ -219,11 +219,12 @@ private: * This is called only once (by the constructor) */ void createActions(); + /** - * Creates an action menu with all the "show additional information" actions in it. + * Creates an action group with all the "show additional information" actions in it. * Helper method for createActions(); */ - KActionMenu* createAdditionalInformationActionMenu(); + QActionGroup* createAdditionalInformationActionGroup(); /** * Creates an action group with all the "sort by" actions in it.