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