diff options
| author | Frank Reininghaus <[email protected]> | 2013-01-11 17:24:05 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-01-11 17:24:05 +0100 |
| commit | 1e2481c9748252e8e323cbee959aec036d582bd7 (patch) | |
| tree | d81b283f66609d4ce6360772d06292a0aa6811d8 /src/kitemviews/private | |
| parent | 1877eb74e8eaf93cc9a3771d4643ce0d34d7d8d7 (diff) | |
| parent | d3b92d2d670f39aee1b48e676cdfa4067211f515 (diff) | |
Merge remote-tracking branch 'origin/KDE/4.10'
Diffstat (limited to 'src/kitemviews/private')
| -rw-r--r-- | src/kitemviews/private/kfileitemmodelsortalgorithm.cpp | 13 | ||||
| -rw-r--r-- | src/kitemviews/private/knepomukrolesprovider.cpp | 2 | ||||
| -rw-r--r-- | src/kitemviews/private/knepomukrolesprovider.h | 2 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp index 9588d19bf..ab650efea 100644 --- a/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp +++ b/src/kitemviews/private/kfileitemmodelsortalgorithm.cpp @@ -26,8 +26,17 @@ void KFileItemModelSortAlgorithm::sort(KFileItemModel* model, QList<KFileItemModel::ItemData*>::iterator begin, QList<KFileItemModel::ItemData*>::iterator end) { - static const int numberOfThreads = QThread::idealThreadCount(); - parallelSort(model, begin, end, numberOfThreads); + if (model->sortRole() == model->roleForType(KFileItemModel::NameRole)) { + // Sorting by name can be expensive, in particular if natural sorting is + // enabled. Use all CPU cores to speed up the sorting process. + static const int numberOfThreads = QThread::idealThreadCount(); + parallelSort(model, begin, end, numberOfThreads); + } else { + // Sorting by other roles is quite fast. Use only one thread to prevent + // problems caused by non-reentrant comparison functions, see + // https://bugs.kde.org/show_bug.cgi?id=312679 + sequentialSort(model, begin, end); + } } void KFileItemModelSortAlgorithm::sequentialSort(KFileItemModel* model, diff --git a/src/kitemviews/private/knepomukrolesprovider.cpp b/src/kitemviews/private/knepomukrolesprovider.cpp index 1bdac6dfc..3b1899278 100644 --- a/src/kitemviews/private/knepomukrolesprovider.cpp +++ b/src/kitemviews/private/knepomukrolesprovider.cpp @@ -183,7 +183,7 @@ QString KNepomukRolesProvider::orientationFromValue(int value) const QString KNepomukRolesProvider::durationFromValue(int value) const { QTime duration; - duration = duration.addMSecs(value); + duration = duration.addSecs(value); return duration.toString("hh:mm:ss"); } diff --git a/src/kitemviews/private/knepomukrolesprovider.h b/src/kitemviews/private/knepomukrolesprovider.h index 8290b571e..b8c7e51e6 100644 --- a/src/kitemviews/private/knepomukrolesprovider.h +++ b/src/kitemviews/private/knepomukrolesprovider.h @@ -73,7 +73,7 @@ private: /** * @return Duration in the format HH::MM::SS for the value given - * in milliseconds. + * in seconds. */ QString durationFromValue(int value) const; |
