Changeset View
Changeset View
Standalone View
Standalone View
libtaskmanager/taskgroupingproxymodel.cpp
Show First 20 Lines • Show All 1003 Lines • ▼ Show 20 Line(s) | 1003 | if (!d->abstractTasksSourceModel || !index.isValid() || index.model() != this) { | |||
---|---|---|---|---|---|
1004 | return; | 1004 | return; | ||
1005 | } | 1005 | } | ||
1006 | 1006 | | |||
1007 | if (index.parent().isValid() || !d->isGroup(index.row())) { | 1007 | if (index.parent().isValid() || !d->isGroup(index.row())) { | ||
1008 | d->abstractTasksSourceModel->requestToggleMaximized(mapToSource(index)); | 1008 | d->abstractTasksSourceModel->requestToggleMaximized(mapToSource(index)); | ||
1009 | } else { | 1009 | } else { | ||
1010 | const bool goalState = !index.data(AbstractTasksModel::IsMaximized).toBool(); | 1010 | const bool goalState = !index.data(AbstractTasksModel::IsMaximized).toBool(); | ||
1011 | 1011 | | |||
1012 | QModelIndexList inStackingOrder; | ||||
1013 | | ||||
1012 | for (int i = 0; i < rowCount(index); ++i) { | 1014 | for (int i = 0; i < rowCount(index); ++i) { | ||
1013 | const QModelIndex &child = index.child(i, 0); | 1015 | const QModelIndex &child = index.child(i, 0); | ||
1014 | 1016 | | |||
1015 | if (child.data(AbstractTasksModel::IsMaximized).toBool() != goalState) { | 1017 | if (child.data(AbstractTasksModel::IsMaximized).toBool() != goalState) { | ||
1016 | d->abstractTasksSourceModel->requestToggleMaximized(mapToSource(child)); | 1018 | inStackingOrder << mapToSource(child); | ||
1019 | } | ||||
1017 | } | 1020 | } | ||
1021 | | ||||
1022 | std::sort(inStackingOrder.begin(), inStackingOrder.end(), | ||||
1023 | [](const QModelIndex &a, const QModelIndex &b) { | ||||
1024 | return (a.data(AbstractTasksModel::StackingOrder).toInt() | ||||
1025 | < b.data(AbstractTasksModel::StackingOrder).toInt()); | ||||
1026 | } | ||||
1027 | ); | ||||
1028 | | ||||
1029 | for (const QModelIndex &sourceChild : inStackingOrder) { | ||||
1030 | d->abstractTasksSourceModel->requestToggleMaximized(sourceChild); | ||||
1018 | } | 1031 | } | ||
1019 | } | 1032 | } | ||
1020 | } | 1033 | } | ||
1021 | 1034 | | |||
1022 | void TaskGroupingProxyModel::requestToggleKeepAbove(const QModelIndex &index) | 1035 | void TaskGroupingProxyModel::requestToggleKeepAbove(const QModelIndex &index) | ||
1023 | { | 1036 | { | ||
1024 | if (!d->abstractTasksSourceModel || !index.isValid() || index.model() != this) { | 1037 | if (!d->abstractTasksSourceModel || !index.isValid() || index.model() != this) { | ||
1025 | return; | 1038 | return; | ||
▲ Show 20 Lines • Show All 216 Lines • Show Last 20 Lines |