diff options
| author | Frank Reininghaus <[email protected]> | 2013-01-15 18:44:00 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-01-15 18:44:42 +0100 |
| commit | c652807a195d82e85df7b3aafc924a5f83ca590e (patch) | |
| tree | 704c7f82592bf24525bf1d2e034002bfdd54ee48 /src | |
| parent | cad45e41509794774e4201f33c1fb6193422f85a (diff) | |
Use std::rotate, rather than reversing three times
We need less code now, and moreover, the STL implementation of rotate
should be more efficient than three reverse() calls.
Diffstat (limited to 'src')
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelsortalgorithm.cpp | 18 | ||||
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelsortalgorithm.h | 3 |
2 files changed, 3 insertions, 18 deletions
diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp index ab650efea..a09d0cd80 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp @@ -22,6 +22,8 @@ #include <QThread> #include <QtCore> +#include <algorithm> + void KFileItemModelSortAlgorithm::sort(KFileItemModel* model, QList<KFileItemModel::ItemData*>::iterator begin, QList<KFileItemModel::ItemData*>::iterator end) @@ -115,9 +117,7 @@ void KFileItemModelSortAlgorithm::merge(KFileItemModel* model, firstCut = upperBound(model, begin, pivot, *secondCut); } - reverse(firstCut, pivot); - reverse(pivot, secondCut); - reverse(firstCut, secondCut); + std::rotate(firstCut, pivot, secondCut); const QList<KFileItemModel::ItemData*>::iterator newPivot = firstCut + len2Half; merge(model, begin, firstCut, newPivot); @@ -176,15 +176,3 @@ KFileItemModelSortAlgorithm::upperBound(KFileItemModel* model, } return begin; } - -void KFileItemModelSortAlgorithm::reverse(QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end) -{ - // The implementation is based on qReverse() from qalgorithms.h - // Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - - --end; - while (begin < end) { - qSwap(*begin++, *end--); - } -} diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.h b/src/kitemviews/private/kfileitemmodelsortalgorithm.h index 07e5d4a81..b86d490aa 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.h +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.h @@ -69,9 +69,6 @@ private: QList<KFileItemModel::ItemData*>::iterator begin, QList<KFileItemModel::ItemData*>::iterator end, const KFileItemModel::ItemData* value); - - static void reverse(QList<KFileItemModel::ItemData*>::iterator begin, - QList<KFileItemModel::ItemData*>::iterator end); }; #endif |
