summaryrefslogtreecommitdiffstats
path: root/src/concurrent
diff options
context:
space:
mode:
Diffstat (limited to 'src/concurrent')
-rw-r--r--src/concurrent/doc/qtconcurrent.qdocconf3
-rw-r--r--src/concurrent/doc/src/qtconcurrent-module.qdoc1
-rw-r--r--src/concurrent/qtconcurrentmedian.h12
3 files changed, 11 insertions, 5 deletions
diff --git a/src/concurrent/doc/qtconcurrent.qdocconf b/src/concurrent/doc/qtconcurrent.qdocconf
index 3d5e9de5e0..7fa437c17f 100644
--- a/src/concurrent/doc/qtconcurrent.qdocconf
+++ b/src/concurrent/doc/qtconcurrent.qdocconf
@@ -40,3 +40,6 @@ exampledirs += ../../../examples/qtconcurrent \
excludedirs += ../../../examples/widgets/doc
imagedirs += images
+
+navigation.landingpage = "Qt Concurrent"
+navigation.cppclassespage = "Qt Concurrent C++ Classes"
diff --git a/src/concurrent/doc/src/qtconcurrent-module.qdoc b/src/concurrent/doc/src/qtconcurrent-module.qdoc
index b8d89cbde3..37298017c7 100644
--- a/src/concurrent/doc/src/qtconcurrent-module.qdoc
+++ b/src/concurrent/doc/src/qtconcurrent-module.qdoc
@@ -31,6 +31,7 @@
\brief The Qt Concurrent module contains functionality to support concurrent execution of program code
\ingroup modules
+ \qtvariable concurrent
The Qt Concurrent module extends the basic threading support found in \l{Qt Core} module and
simplifies the development of code that can be executed in parallel on all available CPU cores.
diff --git a/src/concurrent/qtconcurrentmedian.h b/src/concurrent/qtconcurrentmedian.h
index f93dc1d60b..29342e6402 100644
--- a/src/concurrent/qtconcurrentmedian.h
+++ b/src/concurrent/qtconcurrentmedian.h
@@ -47,7 +47,8 @@
#ifndef QT_NO_CONCURRENT
#include <QtCore/qvector.h>
-#include <QtCore/qalgorithms.h>
+
+#include <algorithm>
QT_BEGIN_NAMESPACE
@@ -89,7 +90,7 @@ public:
dirty = true;
}
- values[currentIndex] = value;
+ values[currentIndex] = qMove(value);
}
bool isMedianValid() const
@@ -101,9 +102,10 @@ public:
{
if (dirty) {
dirty = false;
- QVector<T> sorted = values;
- qSort(sorted);
- currentMedian = sorted.at(bufferSize / 2);
+ QVector<T> copy = values;
+ typename QVector<T>::iterator begin = copy.begin(), mid = copy.begin() + bufferSize/2, end = copy.end();
+ std::nth_element(begin, mid, end);
+ currentMedian = qMove(*mid);
}
return currentMedian;
}