X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/38d293ae410e60f25615bbca7e61596b7febf47d..6f6f080bb883afbfcd8e4208348630d73e4ba559:/src/views/dolphinviewactionhandler.cpp diff --git a/src/views/dolphinviewactionhandler.cpp b/src/views/dolphinviewactionhandler.cpp index 7454ed0b9..ccf4ca119 100644 --- a/src/views/dolphinviewactionhandler.cpp +++ b/src/views/dolphinviewactionhandler.cpp @@ -302,6 +302,18 @@ void DolphinViewActionHandler::createActions(SelectionMode::ActionTextHelper *ac // View -> Group By QActionGroup *groupByActionGroup = createFileItemRolesActionGroup(QStringLiteral("group_by_")); + KToggleAction *groupAsNone = m_actionCollection->add(QStringLiteral("group_none")); + groupAsNone->setData("none"); + groupAsNone->setActionGroup(groupByActionGroup); + groupAsNone->setText(i18nc("@label", "No grouping")); + m_groupByActions.insert("none", groupAsNone); + + KToggleAction *groupAsFollowSort = m_actionCollection->add(QStringLiteral("group_followSort")); + groupAsFollowSort->setData("followSort"); + groupAsFollowSort->setActionGroup(groupByActionGroup); + groupAsFollowSort->setText(i18nc("@label", "Follow sorting")); + m_groupByActions.insert("followSort", groupAsFollowSort); + KActionMenu *groupByActionMenu = m_actionCollection->add(QStringLiteral("group")); groupByActionMenu->setIcon(QIcon::fromTheme(QStringLiteral("view-group"))); groupByActionMenu->setText(i18nc("@action:inmenu View", "Group By")); @@ -404,9 +416,6 @@ QActionGroup *DolphinViewActionHandler::createFileItemRolesActionGroup(const QSt #endif QList rolesInfo = KFileItemModel::rolesInformation(); - // Unlike sorting, grouping is optional. If creating for group_by_, include a None role. - if (isGroupGroup) - rolesInfo.append(KFileItemModel::roleInformation(nullptr)); for (const KFileItemModel::RoleInfo &info : rolesInfo) { if (!isSortGroup && !isGroupGroup && info.role == "text") { @@ -787,6 +796,15 @@ void DolphinViewActionHandler::slotGroupRoleChanged(const QByteArray &role) ascending->setText(i18nc("Group ascending", "Ascending")); } + // Disable group order selector if grouping behavior does not support it + if (role == "none" || role == "followSort") { + descending->setEnabled(false); + ascending->setEnabled(false); + } else { + descending->setEnabled(true); + ascending->setEnabled(true); + } + slotGroupOrderChanged(m_currentView->groupOrder()); }