From 2a8670abc3e31ed5d01795a950af6354745d73f9 Mon Sep 17 00:00:00 2001 From: Fushan Wen Date: Thu, 21 Apr 2022 16:26:07 +0800 Subject: [PATCH] libtaskmanager: Port to `std::accumulate` Fixes "Consider using std::accumulate algorithm instead of a raw loop." --- libtaskmanager/tasksmodel.cpp | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/libtaskmanager/tasksmodel.cpp b/libtaskmanager/tasksmodel.cpp index 128b566f7..0ea36f8ec 100644 --- a/libtaskmanager/tasksmodel.cpp +++ b/libtaskmanager/tasksmodel.cpp @@ -893,24 +893,15 @@ bool TasksModel::Private::lessThan(const QModelIndex &left, const QModelIndex &r // activity. This will sort tasks by comparing a cumulative score made // up of the task counts for each activity a task is assigned to, and // otherwise fall through to alphabetical sorting. - int leftScore = -1; - int rightScore = -1; - const QStringList &leftActivities = left.data(AbstractTasksModel::Activities).toStringList(); - - if (!leftActivities.isEmpty()) { - foreach (const QString &activity, leftActivities) { - leftScore += activityTaskCounts[activity]; - } - } + int leftScore = std::accumulate(leftActivities.cbegin(), leftActivities.cend(), -1, [this](int a, const QString &activity) { + return a + activityTaskCounts[activity]; + }); const QStringList &rightActivities = right.data(AbstractTasksModel::Activities).toStringList(); - - if (!rightActivities.isEmpty()) { - foreach (const QString &activity, rightActivities) { - rightScore += activityTaskCounts[activity]; - } - } + int rightScore = std::accumulate(rightActivities.cbegin(), rightActivities.cend(), -1, [this](int a, const QString &activity) { + return a + activityTaskCounts[activity]; + }); if (leftScore == -1 || rightScore == -1) { const int sumScore = std::accumulate(activityTaskCounts.constBegin(), activityTaskCounts.constEnd(), 0);