┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/private
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-01-11 17:24:05 +0100
committerFrank Reininghaus <[email protected]>2013-01-11 17:24:05 +0100
commit1e2481c9748252e8e323cbee959aec036d582bd7 (patch)
treed81b283f66609d4ce6360772d06292a0aa6811d8 /src/kitemviews/private
parent1877eb74e8eaf93cc9a3771d4643ce0d34d7d8d7 (diff)
parentd3b92d2d670f39aee1b48e676cdfa4067211f515 (diff)
Merge remote-tracking branch 'origin/KDE/4.10'
Diffstat (limited to 'src/kitemviews/private')
-rw-r--r--src/kitemviews/private/kfileitemmodelsortalgorithm.cpp13
-rw-r--r--src/kitemviews/private/knepomukrolesprovider.cpp2
-rw-r--r--src/kitemviews/private/knepomukrolesprovider.h2
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;