diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/qtbase-1.patch | 786 | ||||
-rw-r--r-- | src/qtmultimedia-1.patch | 268 | ||||
-rw-r--r-- | src/qtwinextras-1.patch | 257 |
3 files changed, 1289 insertions, 22 deletions
diff --git a/src/qtbase-1.patch b/src/qtbase-1.patch index 6c2d62d..8ff7f2b 100644 --- a/src/qtbase-1.patch +++ b/src/qtbase-1.patch @@ -4,7 +4,7 @@ See index.html for further information. From e903b5cddaaa606300292ad2cf26c2b6ee111cdd Mon Sep 17 00:00:00 2001 From: Simon Hausmann <simon.hausmann@digia.com> Date: Tue, 26 Nov 2013 10:45:53 +0100 -Subject: [PATCH 01/17] Fix for co-existence of QtDeclarative and QtQml +Subject: [PATCH 01/31] Fix for co-existence of QtDeclarative and QtQml As a follow-up to commit 2f87fde9bb4bad6787101c0d135419b350b201a5, we also need to change "hack" in the QGraphicsItem and QWidget destructor for early item @@ -54,7 +54,7 @@ index 1da0be9..421ce57 100644 From 939a001c3ac33ebf801d2594ac9073da28d09a46 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Date: Tue, 26 Nov 2013 10:13:04 +0100 -Subject: [PATCH 02/17] Android: Remove invalid error message +Subject: [PATCH 02/31] Android: Remove invalid error message All usage of context menus prints out an error message because onContextMenuClosed() is called more than once. We just return @@ -87,7 +87,7 @@ index 3dcffeb..3bcd6ea 100644 From 08f3177fdfc9aefbd4232dcd1529b537b2ca9402 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Date: Mon, 25 Nov 2013 13:41:49 +0100 -Subject: [PATCH 03/17] CoreWLan: Fix potential unhandled exception assert +Subject: [PATCH 03/31] CoreWLan: Fix potential unhandled exception assert -[QNSListener notificationHandler:] was declared as not taking any parameter, but used as taking a single NSNotification. This would lead to an 'unrecognized @@ -152,7 +152,7 @@ index 1b95ae2..7044e96 100644 From f03fd0d82a50361c0b89165b3f8d98d66b0a4e16 Mon Sep 17 00:00:00 2001 From: Stephen Kelly <stephen.kelly@kdab.com> Date: Tue, 26 Nov 2013 15:06:20 +0100 -Subject: [PATCH 04/17] Remove leading '/' from target paths. +Subject: [PATCH 04/31] Remove leading '/' from target paths. This is inappropriate on Windows, and breaks non-prefix builds there. @@ -187,7 +187,7 @@ index a9b0c86..1e6b05c 100644 From 94c17dce04c7726afbdd6ac67c569eedc629a81a Mon Sep 17 00:00:00 2001 From: Frank Osterfeld <frank.osterfeld.qnx@kdab.com> Date: Fri, 22 Nov 2013 10:43:49 +0100 -Subject: [PATCH 05/17] QNX: Fix retrieving the window group name +Subject: [PATCH 05/31] QNX: Fix retrieving the window group name The code assumes that there is a root window, and crashed otherwise. @@ -223,7 +223,7 @@ index 8958a5c..24af5c2 100644 From 4fbe50e77a8d24d42581cdeabd1e93cb993b0d8d Mon Sep 17 00:00:00 2001 From: Yoann Lopes <yoann.lopes@digia.com> Date: Fri, 22 Nov 2013 18:45:49 +0100 -Subject: [PATCH 06/17] Revert "Store the font's scalability in QFontEngine." +Subject: [PATCH 06/31] Revert "Store the font's scalability in QFontEngine." This reverts commit 65b12fbdb13d34c61bcadd5cc8fd6ee28a8dfafd. @@ -281,7 +281,7 @@ index 07be498..c181d61 100644 From 82a2d28d841c7f59fa76fae6a67e1712a5fb4740 Mon Sep 17 00:00:00 2001 From: Stephen Kelly <stephen.kelly@kdab.com> Date: Wed, 27 Nov 2013 12:22:54 +0100 -Subject: [PATCH 07/17] CMake: Parse the output of new CMake versions. +Subject: [PATCH 07/31] CMake: Parse the output of new CMake versions. As of CMake 3.0, the output of `cmake --version` now has a second line showing that it is maintained by Kitware. Change the version parsing to @@ -315,7 +315,7 @@ index 118eed1..a9461eb 100644 From 7c029e83a3e5058f7b82efd0235e766952357ffd Mon Sep 17 00:00:00 2001 From: Simon Hausmann <simon.hausmann@digia.com> Date: Thu, 28 Nov 2013 11:00:15 +0100 -Subject: [PATCH 08/17] Fix invalid memory read when shutting down QML +Subject: [PATCH 08/31] Fix invalid memory read when shutting down QML applications As the last line in the QObject destructor, we call setParentHelper(0) to @@ -405,7 +405,7 @@ index ece88d4..f1e0451 100644 From bedc5a3ae268594100b5e0eb8f35c0ce2b95ee96 Mon Sep 17 00:00:00 2001 From: Marc Mutz <marc.mutz@kdab.com> Date: Tue, 26 Nov 2013 12:27:45 +0100 -Subject: [PATCH 09/17] Update ChangeLog for 5.2.0 [QtWidgets II] +Subject: [PATCH 09/31] Update ChangeLog for 5.2.0 [QtWidgets II] Second batch of changes. @@ -651,7 +651,7 @@ index f513d64..30cd288 100644 From c5b19f252188a01dd7b12090f4776420e3714000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@digia.com> Date: Thu, 28 Nov 2013 15:33:06 +0100 -Subject: [PATCH 10/17] iOS: Forward [UIApplicationDelegate handleOpenURL:] to +Subject: [PATCH 10/31] iOS: Forward [UIApplicationDelegate handleOpenURL:] to QDesktopServices The user may use QDesktopServices::setUrlHandler() in combination with @@ -785,7 +785,7 @@ index 32203ae..0ac6c59 100644 From 9b782dca45331c0e0246b8439d5cf007a440afc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@digia.com> Date: Wed, 27 Nov 2013 18:20:10 +0100 -Subject: [PATCH 11/17] iOS: Update screen properties when we trigger statusbar +Subject: [PATCH 11/31] iOS: Update screen properties when we trigger statusbar changes on iOS7 Ideally we'd have a callback from iOS when this happens, so we can also @@ -848,7 +848,7 @@ index 57522cb..9641095 100644 From 7016ea797a4ceefc8df8a6e13971045a215c5e4c Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Date: Wed, 27 Nov 2013 09:12:08 +0100 -Subject: [PATCH 13/17] Add a few notes to changes-5.2.0 +Subject: [PATCH 13/31] Add a few notes to changes-5.2.0 Mostly changes for Android. One change in Qt Gui. @@ -918,7 +918,7 @@ index 30cd288..a51cc91 100644 From 6c3adb5f966e349f0488c194462e48cc8ddf248e Mon Sep 17 00:00:00 2001 From: Nico Vertriest <nico.vertriest@digia.com> Date: Wed, 27 Nov 2013 14:47:26 +0100 -Subject: [PATCH 14/17] Doc: corrected invalid ref. to output iterators +Subject: [PATCH 14/31] Doc: corrected invalid ref. to output iterators MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -961,7 +961,7 @@ index cd38947..412b9cf 100644 From 7d5448d9e2ae4d2d10c0cff867cf34b315336feb Mon Sep 17 00:00:00 2001 From: J-P Nurmi <jpnurmi@digia.com> Date: Wed, 27 Nov 2013 13:24:59 +0100 -Subject: [PATCH 15/17] Docs: add important QWheelEvent::phase() related notes +Subject: [PATCH 15/31] Docs: add important QWheelEvent::phase() related notes Change-Id: I4901b96b44b7c1179e678689af5962cb4570d50d Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com> @@ -1012,10 +1012,760 @@ index 2866608..88f132b 100644 1.8.4 -From 7483cd9fe3ce4b1bd99fa789ee076b23a5520545 Mon Sep 17 00:00:00 2001 +From b8ccacbb03cb8d265209970c4443218dac33fc81 Mon Sep 17 00:00:00 2001 +From: BogDan Vatra <bogdan@kde.org> +Date: Mon, 2 Dec 2013 16:48:18 +0200 +Subject: [PATCH 16/31] Default to 5.2 source repository for Qt 5.2.x + +We can't use latest anymore because the qreal change +is not back compatible and all the apps that used latest +will stop to run when Ministro will upgrade the libs. + +Change-Id: I5286e72eccf86b4dead773a637aa28e29d120605 +Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com> + +diff --git a/src/android/java/res/values/libs.xml b/src/android/java/res/values/libs.xml +index 231406d..797e6bb 100644 +--- a/src/android/java/res/values/libs.xml ++++ b/src/android/java/res/values/libs.xml +@@ -1,7 +1,7 @@ + <?xml version='1.0' encoding='utf-8'?> + <resources> + <array name="qt_sources"> +- <item>https://download.qt-project.org/ministro/android/qt5/latest</item> ++ <item>https://download.qt-project.org/ministro/android/qt5/qt-5.2</item> + </array> + + <!-- The following is handled automatically by the deployment tool. It should +diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java +index 7c741ed..a10e58b 100644 +--- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java ++++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java +@@ -150,7 +150,7 @@ public class QtActivity extends Activity + + private ActivityInfo m_activityInfo = null; // activity info object, used to access the libs and the strings + private DexClassLoader m_classLoader = null; // loader object +- private String[] m_sources = {"https://download.qt-project.org/ministro/android/qt5/latest"}; // Make sure you are using ONLY secure locations ++ private String[] m_sources = {"https://download.qt-project.org/ministro/android/qt5/qt-5.2"}; // Make sure you are using ONLY secure locations + private String m_repository = "default"; // Overwrites the default Ministro repository + // Possible values: + // * default - Ministro default repository set with "Ministro configuration tool". +-- +1.8.4 + + +From 923d498029be406a684f8953afc68f10c07e2789 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= <tor.arne.vestbo@digia.com> +Date: Tue, 26 Nov 2013 14:48:02 +0100 +Subject: [PATCH 17/31] Add PBXCopyFilesBuildPhases to main target, not + preprocessing step + +Otherwise the 'Wrapper' destination of the PBXCopyFilesBuildPhase +will be empty, and the files end up outside of the application +bundle. + +Task-number: QTBUG-34457 + +Change-Id: I799db28185a6c5d3d940602914fd8ba14c538bf2 +Reviewed-by: Caroline Chao <caroline.chao@digia.com> +Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> + +diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp +index 5ea1ff1..e50df93 100644 +--- a/qmake/generators/mac/pbuilder_pbx.cpp ++++ b/qmake/generators/mac/pbuilder_pbx.cpp +@@ -1140,7 +1140,7 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) + //### + } + +- project->values("QMAKE_PBX_PRESCRIPT_BUILDPHASES").append(phase_key); ++ project->values("QMAKE_PBX_BUILDPHASES").append(phase_key); + t << "\t\t" << phase_key << " = {\n" + << "\t\t\t" << writeSettings("name", "Copy '" + bundle_data[i] + "' Files to Bundle") << ";\n" + << "\t\t\t" << writeSettings("buildActionMask", "2147483647", SettingsNoQuote) << ";\n" +-- +1.8.4 + + +From 5361513ec812c545ca2cedea6c8a30c362cb8e5d Mon Sep 17 00:00:00 2001 +From: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com> +Date: Mon, 25 Nov 2013 19:45:06 +0100 +Subject: [PATCH 18/31] Cocoa: Mouse enter events on window activation. + +This patch tells the window system that it should create a mouse enter +event if a window was activated when the mouse was inside. This wasn't +working and was a regression. + +Task-number: QTBUG-35109 + +[ChangeLog][Cocoa] Fix enterEvent not being called on activate. + +Change-Id: I4e4662b4a4c58dafa8d0a2c09458ab88f678d243 +Reviewed-by: Liang Qi <liang.qi@digia.com> + +diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h +index ca2a15a..403f8dc 100644 +--- a/src/plugins/platforms/cocoa/qnsview.h ++++ b/src/plugins/platforms/cocoa/qnsview.h +@@ -93,6 +93,8 @@ QT_END_NAMESPACE + - (BOOL)hasMask; + - (BOOL)isOpaque; + ++- (void)convertFromScreen:(NSPoint)mouseLocation toWindowPoint:(QPointF *)qtWindowPoint andScreenPoint:(QPointF *)qtScreenPoint; ++ + - (void)resetMouseButtons; + + - (void)handleMouseEvent:(NSEvent *)theEvent; +diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.h b/src/plugins/platforms/cocoa/qnswindowdelegate.h +index 06e11ff..5717551 100644 +--- a/src/plugins/platforms/cocoa/qnswindowdelegate.h ++++ b/src/plugins/platforms/cocoa/qnswindowdelegate.h +@@ -53,6 +53,7 @@ + + - (id)initWithQCocoaWindow: (QCocoaWindow *) cocoaWindow; + ++- (void)windowDidBecomeKey:(NSNotification *)notification; + - (void)windowDidResize:(NSNotification *)notification; + - (void)windowDidMove:(NSNotification *)notification; + - (void)windowWillMove:(NSNotification *)notification; +diff --git a/src/plugins/platforms/cocoa/qnswindowdelegate.mm b/src/plugins/platforms/cocoa/qnswindowdelegate.mm +index 10536bd..c9b3d69 100644 +--- a/src/plugins/platforms/cocoa/qnswindowdelegate.mm ++++ b/src/plugins/platforms/cocoa/qnswindowdelegate.mm +@@ -56,6 +56,17 @@ + return self; + } + ++- (void)windowDidBecomeKey:(NSNotification *)notification ++{ ++ Q_UNUSED(notification); ++ if (m_cocoaWindow->m_windowUnderMouse) { ++ QPointF windowPoint; ++ QPointF screenPoint; ++ [m_cocoaWindow->m_qtView convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; ++ QWindowSystemInterface::handleEnterEvent(m_cocoaWindow->m_enterLeaveTargetWindow, windowPoint, screenPoint); ++ } ++} ++ + - (void)windowDidResize:(NSNotification *)notification + { + Q_UNUSED(notification); +-- +1.8.4 + + +From d1f9f2125e6cbba236dc50309a4aee2dc16a6345 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint <Friedemann.Kleint@digia.com> +Date: Tue, 3 Dec 2013 09:01:50 +0100 +Subject: [PATCH 19/31] Stabilize tst_QColumnView::dynamicModelChanges(). + +Use QTest::qWaitForWindowExposed() and QTRY_COMPARE() instead of +hardcoded timeout. + +Task-number: QTBUG-35308 +Change-Id: I27eee9932dd3b6087db4ad13b1a4fb184a487f57 +Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> + +diff --git a/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp b/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp +index 6c04e5b..e2b2fb9 100644 +--- a/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp ++++ b/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp +@@ -1043,13 +1043,14 @@ void tst_QColumnView::dynamicModelChanges() + ColumnView view; + view.setModel(&model); + view.setItemDelegate(&delegate); ++ centerOnScreen(&view); + view.show(); + + QStandardItem *item = new QStandardItem(QLatin1String("item")); + model.appendRow(item); + +- QTest::qWait(200); //let the time for painting to occur +- QCOMPARE(delegate.paintedIndexes.count(), 1); ++ QVERIFY(QTest::qWaitForWindowExposed(&view)); //let the time for painting to occur ++ QTRY_COMPARE(delegate.paintedIndexes.count(), 1); + QCOMPARE(*delegate.paintedIndexes.begin(), model.index(0,0)); + + +-- +1.8.4 + + +From 789b556ef1241dd3169c6040944fff44b88d9be6 Mon Sep 17 00:00:00 2001 +From: Topi Reinio <topi.reinio@digia.com> +Date: Fri, 29 Nov 2013 15:51:12 +0100 +Subject: [PATCH 20/31] Use Q_QDOC for Qt namespace declaration in Qt Gui + +This is a workaround for letting qdoc to successfully +generate documentation for the Qt namespace. qdoc +doesn't properly handle multiple declarations for the +same namespace spread across multiple modules. + +Task-number: QTBUG-35230 +Change-Id: I449b17e1171d1a4481b9cf07cd48c803feed5be9 +Reviewed-by: Martin Smith <martin.smith@digia.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> + +diff --git a/src/gui/text/qtextdocument.h b/src/gui/text/qtextdocument.h +index a85e9c8..d8f52e9 100644 +--- a/src/gui/text/qtextdocument.h ++++ b/src/gui/text/qtextdocument.h +@@ -71,6 +71,7 @@ class QTextCursor; + + template<typename T> class QVector; + ++#ifndef Q_QDOC // Workaround for QTBUG-35230 + namespace Qt + { + Q_GUI_EXPORT bool mightBeRichText(const QString&); +@@ -80,6 +81,7 @@ namespace Qt + Q_GUI_EXPORT QTextCodec *codecForHtml(const QByteArray &ba); + #endif + } ++#endif // Q_QDOC + + class Q_GUI_EXPORT QAbstractUndoItem + { +-- +1.8.4 + + +From edd51e44869c9774071355f32830ea510eafde04 Mon Sep 17 00:00:00 2001 +From: Oswald Buddenhagen <oswald.buddenhagen@digia.com> +Date: Wed, 13 Nov 2013 19:14:45 +0100 +Subject: [PATCH 21/31] Revert "configure: Abort if Xlib isn't present when + building for XCB." +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +the change is wrong for multiple reasons: +- it is possible to build qt (the offscreen plugin) with xlib but + without xcb, which was impossible after the change +- the check was built in a way that if xcb is auto-detected but xlib is + missing, configure would abort (instead of disabling xcb), which is + unreasonable (cf. linked task) +- it should be possible to build the xcb plugin without xlib - it's + testing for xcb-xlib and should have the correct #ifdefs. if these are + broken, they should be fixed. if this is unrealistic, the build system + should be adjusted to this fact ... differently. + +This reverts commit 683451e7c74d23abb0268a187d28cf7dc7afd032. + +Task-number: QTBUG-34382 +Change-Id: I1c5811e2fb1f09b084b6aeb7350e5f376e1b9b82 +Reviewed-by: Nicolás Alvarez <nicolas.alvarez@gmail.com> +Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> + +diff --git a/configure b/configure +index d0b0ed8..a330dd6 100755 +--- a/configure ++++ b/configure +@@ -5080,6 +5080,11 @@ if [ "$CFG_TSLIB" != "no" ]; then + fi + fi + ++# Check we actually have X11 :-) ++if compileTest x11/xlib "XLib"; then ++ QT_CONFIG="$QT_CONFIG xlib" ++fi ++ + if [ "$CFG_XCB" != "no" ]; then + if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then + QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`" +@@ -5125,17 +5130,6 @@ if [ "$CFG_XCB" != "no" ]; then + fi + fi + +- # Check for X11. Eventually we should port everything to XCB, +- # but for now the port is incomplete and Xlib is a requirement. +- if compileTest x11/xlib "XLib"; then +- QT_CONFIG="$QT_CONFIG xlib" +- else +- echo "The test for linking against Xlib failed!" +- echo " You might need to install dependency packages." +- echo " See src/plugins/platforms/xcb/README." +- exit 1 +- fi +- + if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then + QT_CONFIG="$QT_CONFIG xcb-xlib" + fi +-- +1.8.4 + + +From c70750f5363999640cc99278ccf90679fb27c84d Mon Sep 17 00:00:00 2001 +From: Marc Mutz <marc.mutz@kdab.com> +Date: Fri, 29 Nov 2013 10:06:20 +0100 +Subject: [PATCH 23/31] Stabilize tst_QGraphicsItem + +The cursor() test was missing a QTest::moveMouse() before sending of the +mouse event (as all the following subtests do). When run on a desktop with +the panel on the left side of the screen, the mouse pointer would land over +the left item instead of in between them, as assumed by the subtest, and +the following QCOMPARE failed. + +Change-Id: Ib74fdf0cfbfbc8ecb79a906610a2da5cb50c89d0 +Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> + +diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +index 6c26ddb..fc1d0e3 100644 +--- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp ++++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +@@ -4221,6 +4221,7 @@ void tst_QGraphicsItem::cursor() + QCursor cursor = view.viewport()->cursor(); + + { ++ QTest::mouseMove(view.viewport(), QPoint(100, 50)); + QMouseEvent event(QEvent::MouseMove, QPoint(100, 50), Qt::NoButton, 0, 0); + QApplication::sendEvent(view.viewport(), &event); + } +-- +1.8.4 + + +From 9302169bd5ad8380ebe95f50986d2b32eb486901 Mon Sep 17 00:00:00 2001 +From: Nikolai Kosjar <nikolai.kosjar@digia.com> +Date: Fri, 29 Nov 2013 14:06:50 +0100 +Subject: [PATCH 24/31] QtConcurrent: Workaround GCC bug 58800 in median + calculation + +1) Revert 880b614 for libstdc++ <= 4.7.3 || (4.8.0 >= ... <= 4.8.2) +2) Fix off-by-one error in reverted code for Median::_bufferSize <= 2. + +Task-number: QTBUG-35058 +Change-Id: I9d226c2806c1cf06c3d5b9c9f371262d2d69bf2b +Reviewed-by: Olivier Goffart <ogoffart@woboq.com> +Reviewed-by: Marc Mutz <marc.mutz@kdab.com> + +diff --git a/src/concurrent/qtconcurrentmedian.h b/src/concurrent/qtconcurrentmedian.h +index b39b3ed..ce2afb9 100644 +--- a/src/concurrent/qtconcurrentmedian.h ++++ b/src/concurrent/qtconcurrentmedian.h +@@ -102,10 +102,19 @@ public: + { + if (dirty) { + dirty = false; ++ ++// This is a workaround for http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58800 ++// Avoid using std::nth_element for stdlibc++ <= 4.7.3 || (>= 4.8.0 && <= 4.8.2) ++#if defined(__GLIBCXX__) && (__GLIBCXX__ <= 20130411 || (__GLIBCXX__ >= 20130322 && __GLIBCXX__ <= 20131016)) ++ QVector<T> sorted = values; ++ std::sort(sorted.begin(), sorted.end()); ++ currentMedian = sorted.at(bufferSize / 2); ++#else + 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 = *mid; ++#endif + } + return currentMedian; + } +diff --git a/tests/auto/concurrent/concurrent.pro b/tests/auto/concurrent/concurrent.pro +index 20bad24..e67c51a 100644 +--- a/tests/auto/concurrent/concurrent.pro ++++ b/tests/auto/concurrent/concurrent.pro +@@ -3,6 +3,7 @@ SUBDIRS=\ + qtconcurrentfilter \ + qtconcurrentiteratekernel \ + qtconcurrentmap \ ++ qtconcurrentmedian \ + qtconcurrentrun \ + qtconcurrentthreadengine + +diff --git a/tests/auto/concurrent/qtconcurrentmedian/qtconcurrentmedian.pro b/tests/auto/concurrent/qtconcurrentmedian/qtconcurrentmedian.pro +new file mode 100644 +index 0000000..1eb27d8 +--- /dev/null ++++ b/tests/auto/concurrent/qtconcurrentmedian/qtconcurrentmedian.pro +@@ -0,0 +1,5 @@ ++CONFIG += testcase parallel_test ++TARGET = tst_qtconcurrentmedian ++QT = core testlib concurrent ++SOURCES = tst_qtconcurrentmedian.cpp ++DEFINES += QT_STRICT_ITERATORS +diff --git a/tests/auto/concurrent/qtconcurrentmedian/tst_qtconcurrentmedian.cpp b/tests/auto/concurrent/qtconcurrentmedian/tst_qtconcurrentmedian.cpp +new file mode 100644 +index 0000000..c9fbc79 +--- /dev/null ++++ b/tests/auto/concurrent/qtconcurrentmedian/tst_qtconcurrentmedian.cpp +@@ -0,0 +1,87 @@ ++/**************************************************************************** ++** ++** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). ++** Contact: http://www.qt-project.org/legal ++** ++** This file is part of the test suite of the Qt Toolkit. ++** ++** $QT_BEGIN_LICENSE:LGPL$ ++** Commercial License Usage ++** Licensees holding valid commercial Qt licenses may use this file in ++** accordance with the commercial license agreement provided with the ++** Software or, alternatively, in accordance with the terms contained in ++** a written agreement between you and Digia. For licensing terms and ++** conditions see http://qt.digia.com/licensing. For further information ++** use the contact form at http://qt.digia.com/contact-us. ++** ++** GNU Lesser General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU Lesser ++** General Public License version 2.1 as published by the Free Software ++** Foundation and appearing in the file LICENSE.LGPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU Lesser General Public License version 2.1 requirements ++** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ++** ++** In addition, as a special exception, Digia gives you certain additional ++** rights. These rights are described in the Digia Qt LGPL Exception ++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ++** ++** GNU General Public License Usage ++** Alternatively, this file may be used under the terms of the GNU ++** General Public License version 3.0 as published by the Free Software ++** Foundation and appearing in the file LICENSE.GPL included in the ++** packaging of this file. Please review the following information to ++** ensure the GNU General Public License version 3.0 requirements will be ++** met: http://www.gnu.org/copyleft/gpl.html. ++** ++** ++** $QT_END_LICENSE$ ++** ++****************************************************************************/ ++#include <qtconcurrentmedian.h> ++ ++#include <QtTest/QtTest> ++ ++class tst_QtConcurrentMedian: public QObject ++{ ++ Q_OBJECT ++private slots: ++ void median_data(); ++ void median(); ++}; ++ ++void tst_QtConcurrentMedian::median_data() ++{ ++ QTest::addColumn<QList<int> >("values"); ++ QTest::addColumn<int>("expectedMedian"); ++ ++ QTest::newRow("size=1") ++ << (QList<int>() << 1) ++ << 1; ++ ++ QTest::newRow("size=2") ++ << (QList<int>() << 3 << 2) ++ << 3; ++ ++ QTest::newRow("size=3") ++ << (QList<int>() << 3 << 1 << 2) ++ << 2; ++ ++ QTest::newRow("gcc bug 58800 (nth_element)") ++ << (QList<int>() << 207089 << 202585 << 180067 << 157549 << 211592 << 216096 << 207089) ++ << 207089; ++} ++ ++void tst_QtConcurrentMedian::median() ++{ ++ QFETCH(QList<int> , values); ++ QFETCH(int, expectedMedian); ++ ++ QtConcurrent::Median<int> m(values.size()); ++ foreach (int value, values) ++ m.addValue(value); ++ QCOMPARE(m.median(), expectedMedian); ++} ++ ++QTEST_MAIN(tst_QtConcurrentMedian) ++#include "tst_qtconcurrentmedian.moc" +-- +1.8.4 + + +From 119ea0f2dbaa4cdea6929e542c59f99b2dfd0ef9 Mon Sep 17 00:00:00 2001 +From: Richard Moe Gustavsen <richard.gustavsen@digia.com> +Date: Mon, 2 Dec 2013 22:34:26 +0100 +Subject: [PATCH 25/31] iOS: fix application hangs when opening keyboard +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +QIOSInputContext controls QUIViews first responder status +based on whether or not the keyboard should be open. +But since QGuiApplication updates focusObject before +focusWindow (when e.g a popup closes), we sometimes ended up +activating the old window upon a call to becomeFirstResponder. +This in turn led the application to hang because of +recursive dependencies in qioscontext when the focus window +changed. + +So the solution for now is to avoid activating the window +when the view becomes first responder. This should be +fine since we now activate the window from +QIOSWindow::requestActivateWindow (ref: 6272a816d1) + +Task-number: QTBUG-35340 +Change-Id: I3068c14fec18d84d4b0b348a043c4c054e366c75 +Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com> + +diff --git a/src/plugins/platforms/ios/qioswindow.mm b/src/plugins/platforms/ios/qioswindow.mm +index 0dd810b..43f36e3 100644 +--- a/src/plugins/platforms/ios/qioswindow.mm ++++ b/src/plugins/platforms/ios/qioswindow.mm +@@ -330,13 +330,9 @@ + + - (BOOL)becomeFirstResponder + { +- // On iOS, a QWindow should only have input focus when the input panel is +- // open. This is to stop cursors and focus rects from being drawn when the +- // user cannot type. And since the keyboard will open when a view becomes +- // the first responder, it's now a good time to inform QPA that the QWindow +- // this view backs became active: ++ // Note: QIOSInputContext controls our first responder status based on ++ // whether or not the keyboard should be open or closed. + [self updateTextInputTraits]; +- QWindowSystemInterface::handleWindowActivated(m_qioswindow->window()); + return [super becomeFirstResponder]; + } + +-- +1.8.4 + + +From 1fc28716e67cb9a4384c99c39e8a283ca344e771 Mon Sep 17 00:00:00 2001 +From: Martin Smith <martin.smith@digia.com> +Date: Mon, 2 Dec 2013 10:46:21 +0100 +Subject: [PATCH 26/31] qdoc: Replaced hard-coded href with computed href +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +For enum types that have QFlags versions, qdoc was +outputting the documentation with a hard-coded link +to qflags.html, which only workjed in the single +directory mode. When qdoc outputs modular documentation, +the href for the link should be "../qtcore/qflags.html" . +Now qdoc computes this href correctly before it writes +the docs. The href is no longer hard-coded. + +Task-number: QTBUG-35209 +Change-Id: Ibdf5b11dbd063726eb77048de78f8874c65752ca +Reviewed-by: Topi Reiniö <topi.reinio@digia.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> + +diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp +index 986b4ae..511dc32 100644 +--- a/src/tools/qdoc/htmlgenerator.cpp ++++ b/src/tools/qdoc/htmlgenerator.cpp +@@ -269,6 +269,9 @@ QString HtmlGenerator::format() + void HtmlGenerator::generateTree() + { + qdb_->buildCollections(); ++ Node* qflags = qdb_->findNodeByNameAndType(QStringList("QFlags"), Node::Class, Node::NoSubType); ++ if (qflags) ++ qflagsHref_ = linkForNode(qflags,0); + if (!runPrepareOnly()) { + Generator::generateTree(); + generateCollisionPages(); +@@ -3660,7 +3663,7 @@ void HtmlGenerator::generateDetailedMember(const Node *node, + if (enume->flagsType()) { + out() << "<p>The " << protectEnc(enume->flagsType()->name()) + << " type is a typedef for " +- << "<a href=\"qflags.html\">QFlags</a><" ++ << "<a href=\"" << qflagsHref_ << "\">QFlags</a><" + << protectEnc(enume->name()) + << ">. It stores an OR combination of " + << protectEnc(enume->name()) +diff --git a/src/tools/qdoc/htmlgenerator.h b/src/tools/qdoc/htmlgenerator.h +index f252532..ae16f3c 100644 +--- a/src/tools/qdoc/htmlgenerator.h ++++ b/src/tools/qdoc/htmlgenerator.h +@@ -262,6 +262,7 @@ private: + QString cppclassespage; + QString qmltypespage; + QString buildversion; ++ QString qflagsHref_; + + public: + static bool debugging_on; +-- +1.8.4 + + +From ef61bf6eff48aaccebadf8aedad4e87b50df9e04 Mon Sep 17 00:00:00 2001 +From: Tobias Koenig <tobias.koenig.qnx@kdab.com> +Date: Wed, 27 Nov 2013 13:11:01 +0100 +Subject: [PATCH 27/31] Fix sub-second handling in SQLite driver + +Use explicit format string, that contains milliseconds, when +converting an QDateTime/QTime to a SQLite field content. + +Task-number: QTBUG-24200 +[ChangeLog][QtSql][QSQLITE] Fix sub-second handling +Change-Id: Ib89152b7c3dd780b57a8826beff8b6b118e9d3d6 +Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +Reviewed-by: Mark Brand <mabrand@mabrand.nl> + +(cherry picked from commit 9e64fc9e1cebf1e11694c4f536881128f5aee288) + +diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp +index 0a8b71a..27bc80e 100644 +--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp ++++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp +@@ -42,6 +42,7 @@ + #include "qsql_sqlite_p.h" + + #include <qcoreapplication.h> ++#include <qdatetime.h> + #include <qvariant.h> + #include <qsqlerror.h> + #include <qsqlfield.h> +@@ -447,6 +448,20 @@ bool QSQLiteResult::exec() + case QVariant::LongLong: + res = sqlite3_bind_int64(d->stmt, i + 1, value.toLongLong()); + break; ++ case QVariant::DateTime: { ++ const QDateTime dateTime = value.toDateTime(); ++ const QString str = dateTime.toString(QStringLiteral("yyyy-MM-ddThh:mm:ss.zzz")); ++ res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(), ++ str.size() * sizeof(ushort), SQLITE_TRANSIENT); ++ break; ++ } ++ case QVariant::Time: { ++ const QTime time = value.toTime(); ++ const QString str = time.toString(QStringLiteral("hh:mm:ss.zzz")); ++ res = sqlite3_bind_text16(d->stmt, i + 1, str.utf16(), ++ str.size() * sizeof(ushort), SQLITE_TRANSIENT); ++ break; ++ } + case QVariant::String: { + // lifetime of string == lifetime of its qvariant + const QString *str = static_cast<const QString*>(value.constData()); +-- +1.8.4 + + +From 6b466682f5e843c393b58644252ec32457df8123 Mon Sep 17 00:00:00 2001 +From: Tobias Koenig <tobias.koenig.qnx@kdab.com> +Date: Sat, 30 Nov 2013 14:40:11 +0100 +Subject: [PATCH 28/31] Fix evaluation of SQLite driver options + +Ensure that the options, which are passed to the SQLite driver, are +evaluated in the correct order and do not overwrite each other. +According to http://www.sqlite.org/c3ref/open.html the +SQLITE_OPEN_READONLY and (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE) are +mutual exclusive, but SQLITE_OPEN_URI can be combined with both of them. + +Task-number: QTBUG-35186 +[ChangeLog][QtSql][QSQLITE] Fixed evaluation of driver options +Change-Id: I8e74fe1ce43b9118b15f7b13fc71670bdcd73f68 +Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> +Reviewed-by: Mark Brand <mabrand@mabrand.nl> + +(cherry picked from commit 4f28464ab7dfe9f18cd72fc022257e66a8e2b279) + +diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp +index 27bc80e..c98d643 100644 +--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp ++++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp +@@ -599,24 +599,32 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c + + if (db.isEmpty()) + return false; ++ ++ int timeOut = 5000; + bool sharedCache = false; +- int openMode = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, timeOut=5000; +- QStringList opts=QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';')); +- foreach(const QString &option, opts) { ++ bool openReadOnlyOption = false; ++ bool openUriOption = false; ++ ++ const QStringList opts = QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';')); ++ foreach (const QString &option, opts) { + if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) { + bool ok; +- int nt = option.mid(21).toInt(&ok); ++ const int nt = option.mid(21).toInt(&ok); + if (ok) + timeOut = nt; +- } +- if (option == QLatin1String("QSQLITE_OPEN_READONLY")) +- openMode = SQLITE_OPEN_READONLY; +- if (option == QLatin1String("QSQLITE_OPEN_URI")) +- openMode |= SQLITE_OPEN_URI; +- if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE")) ++ } else if (option == QLatin1String("QSQLITE_OPEN_READONLY")) { ++ openReadOnlyOption = true; ++ } else if (option == QLatin1String("QSQLITE_OPEN_URI")) { ++ openUriOption = true; ++ } else if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE")) { + sharedCache = true; ++ } + } + ++ int openMode = (openReadOnlyOption ? SQLITE_OPEN_READONLY : (SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE)); ++ if (openUriOption) ++ openMode |= SQLITE_OPEN_URI; ++ + sqlite3_enable_shared_cache(sharedCache); + + if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, openMode, NULL) == SQLITE_OK) { +-- +1.8.4 + + +From 8a1cbc506eaa6816676898517c1c4a22309739ca Mon Sep 17 00:00:00 2001 +From: Nicolas Cornu <ncornu@aldebaran-robotics.com> +Date: Thu, 28 Nov 2013 00:06:41 +0100 +Subject: [PATCH 29/31] Allow temporary databases in sqlite driver + +http://www3.sqlite.org/inmemorydb.html#temp_db +[ChangeLog][QtSql][QSQLITE] Enable creating temporary databases + +Change-Id: I9972fba5c91eca55cfc5a84f94cff03d19992324 +Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com> +Reviewed-by: Mark Brand <mabrand@mabrand.nl> +(cherry picked from commit 9de879c8a43a012254036d7f08b55793fa325cb2) + +diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc +index d8d1058..82dfa27 100644 +--- a/src/sql/doc/src/sql-driver.qdoc ++++ b/src/sql/doc/src/sql-driver.qdoc +@@ -599,8 +599,8 @@ + is not necessary to have a database server. SQLite operates on a + single file, which must be set as the database name when opening + a connection. If the file does not exist, SQLite will try to +- create it. SQLite also supports in-memory databases, simply pass +- ":memory:" as the database name. ++ create it. SQLite also supports in-memory and temporary databases. Simply ++ pass respectively ":memory:" or an empty string as the database name. + + SQLite has some restrictions regarding multiple users and + multiple transactions. If you try to read/write on a resource from different +diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp +index c98d643..55ef092 100644 +--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp ++++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp +@@ -597,9 +597,6 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c + if (isOpen()) + close(); + +- if (db.isEmpty()) +- return false; +- + int timeOut = 5000; + bool sharedCache = false; + bool openReadOnlyOption = false; +-- +1.8.4 + + +From af3276b7217497e82256d031bcc4b3b0bf7209f3 Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Tue, 26 Feb 2013 13:23:33 +0100 -Subject: [PATCH 16/17] use pkg-config for freetype +Subject: [PATCH 30/31] use pkg-config for freetype Change-Id: Id2f78ed9dbdcacd570eb25982cbd700d0437542a @@ -1035,10 +1785,10 @@ index 88be809..8fc19d2 100644 1.8.4 -From 12e80060cd06ac79016357cfbfcf56b3786d8c4a Mon Sep 17 00:00:00 2001 +From 44adac2c8b0223c0cf12494d4dfb44ff5431a716 Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Sat, 18 May 2013 23:07:46 +0200 -Subject: [PATCH 17/17] use pkgconfig for icu detection (MXE specific) +Subject: [PATCH 31/31] use pkgconfig for icu detection (MXE specific) Change-Id: I874171361fec812cb5a5a56e4d8d90a630be3bf3 diff --git a/src/qtmultimedia-1.patch b/src/qtmultimedia-1.patch index 4b3fa95..4950c0c 100644 --- a/src/qtmultimedia-1.patch +++ b/src/qtmultimedia-1.patch @@ -1,10 +1,274 @@ This file is part of MXE. See index.html for further information. -From 24d6489d5e485663afc15adc3e969d0da42fd571 Mon Sep 17 00:00:00 2001 +From fd3efc0163d9963c91e24ece43b774c70ec57640 Mon Sep 17 00:00:00 2001 +From: Yoann Lopes <yoann.lopes@digia.com> +Date: Wed, 27 Nov 2013 16:05:19 +0100 +Subject: [PATCH 1/5] Android: print a warning when using SurfaceTexture on + Android 2.3. + +SurfaceTexture is available since Android 3.0, print a warning when +camera preview or video playback is used on an older Android version. + +Task-number: QTBUG-35075 +Change-Id: Ie04c62df99048a25e8fd971e0708157d0d32c503 +Reviewed-by: Christian Stromme <christian.stromme@digia.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> + +diff --git a/src/plugins/android/src/wrappers/jsurfacetexture.cpp b/src/plugins/android/src/wrappers/jsurfacetexture.cpp +index 1505443..47487f1 100644 +--- a/src/plugins/android/src/wrappers/jsurfacetexture.cpp ++++ b/src/plugins/android/src/wrappers/jsurfacetexture.cpp +@@ -62,6 +62,8 @@ JSurfaceTexture::JSurfaceTexture(unsigned int texName) + { + if (isValid()) + g_objectMap.insert(int(texName), this); ++ else // If the class is not available, it means the Android version is < 3.0 ++ qWarning("Camera preview and video playback require Android 3.0 (API level 11) or later."); + } + + JSurfaceTexture::~JSurfaceTexture() +@@ -94,16 +96,24 @@ static JNINativeMethod methods[] = { + + bool JSurfaceTexture::initJNI(JNIEnv *env) + { +- jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtSurfaceTexture"); ++ // SurfaceTexture is available since API 11, try to find it first before loading ++ // our custom class ++ jclass surfaceTextureClass = env->FindClass("android/graphics/SurfaceTexture"); + if (env->ExceptionCheck()) + env->ExceptionClear(); + +- if (clazz) { +- g_qtSurfaceTextureClass = static_cast<jclass>(env->NewGlobalRef(clazz)); +- if (env->RegisterNatives(g_qtSurfaceTextureClass, +- methods, +- sizeof(methods) / sizeof(methods[0])) < 0) { +- return false; ++ if (surfaceTextureClass) { ++ jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtSurfaceTexture"); ++ if (env->ExceptionCheck()) ++ env->ExceptionClear(); ++ ++ if (clazz) { ++ g_qtSurfaceTextureClass = static_cast<jclass>(env->NewGlobalRef(clazz)); ++ if (env->RegisterNatives(g_qtSurfaceTextureClass, ++ methods, ++ sizeof(methods) / sizeof(methods[0])) < 0) { ++ return false; ++ } + } + } + +-- +1.8.4 + + +From e4654ca5ee255598269c0805507384c4a02ebdb2 Mon Sep 17 00:00:00 2001 +From: Yoann Lopes <yoann.lopes@digia.com> +Date: Wed, 27 Nov 2013 18:01:56 +0100 +Subject: [PATCH 2/5] Fix version availability for VideoOutput's + autoOrientation property. + +This new property is available since 5.2, not 5.1. + +Change-Id: Ie3b5cd3c5d909f6d4ba662a2eaf03f1e6bb8b21b +Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> +Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> + +diff --git a/src/imports/multimedia/multimedia.cpp b/src/imports/multimedia/multimedia.cpp +index d2bc829..f05252f 100644 +--- a/src/imports/multimedia/multimedia.cpp ++++ b/src/imports/multimedia/multimedia.cpp +@@ -76,7 +76,7 @@ public: + qmlRegisterType<QDeclarativeAudio>(uri, 5, 0, "Audio"); + qmlRegisterType<QDeclarativeAudio>(uri, 5, 0, "MediaPlayer"); + qmlRegisterType<QDeclarativeVideoOutput>(uri, 5, 0, "VideoOutput"); +- qmlRegisterType<QDeclarativeVideoOutput, 1>(uri, 5, 1, "VideoOutput"); ++ qmlRegisterType<QDeclarativeVideoOutput, 2>(uri, 5, 2, "VideoOutput"); + qmlRegisterType<QDeclarativeRadio>(uri, 5, 0, "Radio"); + qmlRegisterType<QDeclarativeRadioData>(uri, 5, 0, "RadioData"); + qmlRegisterType<QDeclarativeCamera>(uri, 5, 0, "Camera"); +diff --git a/src/imports/multimedia/qdeclarativevideooutput.cpp b/src/imports/multimedia/qdeclarativevideooutput.cpp +index 07c78b7..240dc46 100644 +--- a/src/imports/multimedia/qdeclarativevideooutput.cpp ++++ b/src/imports/multimedia/qdeclarativevideooutput.cpp +@@ -429,7 +429,7 @@ void QDeclarativeVideoOutput::setOrientation(int orientation) + + By default \c autoOrientation is disabled. + +- \since QtMultimedia 5.1 ++ \since QtMultimedia 5.2 + */ + bool QDeclarativeVideoOutput::autoOrientation() const + { +diff --git a/src/imports/multimedia/qdeclarativevideooutput_p.h b/src/imports/multimedia/qdeclarativevideooutput_p.h +index 1de1fcc..07fdb41 100644 +--- a/src/imports/multimedia/qdeclarativevideooutput_p.h ++++ b/src/imports/multimedia/qdeclarativevideooutput_p.h +@@ -62,7 +62,7 @@ class QDeclarativeVideoOutput : public QQuickItem + Q_PROPERTY(QObject* source READ source WRITE setSource NOTIFY sourceChanged) + Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) + Q_PROPERTY(int orientation READ orientation WRITE setOrientation NOTIFY orientationChanged) +- Q_PROPERTY(bool autoOrientation READ autoOrientation WRITE setAutoOrientation NOTIFY autoOrientationChanged REVISION 1) ++ Q_PROPERTY(bool autoOrientation READ autoOrientation WRITE setAutoOrientation NOTIFY autoOrientationChanged REVISION 2) + Q_PROPERTY(QRectF sourceRect READ sourceRect NOTIFY sourceRectChanged) + Q_PROPERTY(QRectF contentRect READ contentRect NOTIFY contentRectChanged) + Q_ENUMS(FillMode) +-- +1.8.4 + + +From 288e49d49308f84afa180086aebb9ce61738e626 Mon Sep 17 00:00:00 2001 +From: Yoann Lopes <yoann.lopes@digia.com> +Date: Wed, 27 Nov 2013 19:20:27 +0100 +Subject: [PATCH 3/5] Add changes-5.2.0 file. + +Change-Id: Ieec89755a30996a5b0ed37ecaa6ee957344f8594 +Reviewed-by: Sergio Ahumada <sahumada@gmail.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> + +diff --git a/dist/changes-5.2.0 b/dist/changes-5.2.0 +new file mode 100644 +index 0000000..e485659 +--- /dev/null ++++ b/dist/changes-5.2.0 +@@ -0,0 +1,86 @@ ++Qt 5.2 introduces many new features and improvements as well as bugfixes ++over the 5.1.x series. For more details, refer to the online documentation ++included in this distribution. The documentation is also available online: ++ ++ http://qt-project.org/doc/qt-5.2 ++ ++The Qt version 5.2 series is binary compatible with the 5.1.x series. ++Applications compiled for 5.1 will continue to run with 5.2. ++ ++Some of the changes listed in this file include issue tracking numbers ++corresponding to tasks in the Qt Bug Tracker: ++ ++ http://bugreports.qt-project.org/ ++ ++Each of these identifiers can be entered in the bug tracker to obtain more ++information about a particular change. ++ ++**************************************************************************** ++* General * ++**************************************************************************** ++ ++ - Improved ALSA implementation of the audio APIs. ++ - Improved WAV support in QSoundEffect. ++ - New resource policy plugin based on libresourceqt. ++ - Fix QVideoSurfaceArbFpPainter mistakenly failing to start in some cases. ++ - Improved QAudioRecorder implementation on Windows and Mac OS. ++ - Various documentation fixes. ++ - Improved audiorecorder example. ++ - [QTBUG-32487] Make PulseAudio implementation of QSoundEffect more robust. ++ - [QTBUG-32882] Enable QSoundEffect with loopCount of Infinite to play. ++ - [QTBUG-31731] WMF and GStreamer: fixed incorrect frame startTime and endTime. ++ - [QTBUG-30442] VideoOutput: take the video format's scanLineDirection into account. ++ - [QTBUG-34125] Correctly clear the current media in Audio and MediaPlayer qml elements. ++ ++Qt for Android ++-------------- ++ ++ - New OpenSL ES plugin for low-latency audio support on Android. ++ - New camera support on Android. ++ - Improved video renderering with Qt Quick. ++ - Camera and recording permissions are now automatically added when using QtMultimedia on Android. ++ - [QTBUG-32635] Fixed media player buffering logic. ++ - [QTBUG-34558] Fix two race conditions in the media player. ++ ++Qt for iOS ++---------- ++ ++ - New media player and basic camera support on iOS. ++ ++Qt for BlackBerry ++----------------- ++ ++ - Fix setting a URL containing reserved characters on a media player. ++ - Enable camera on the Playbook. ++ - New QAudioRecorder support. ++ - Fix video recording with BB 10.2. ++ - Improve camera focus handling. ++ - Fixed pixel aspect ratio for video windows. ++ - [QTBUG-33739] Fix camera viewfinder. ++ ++Qt for Windows ++-------------- ++ ++ - WMF: emit positionChanged() signal when reaching the end of a media. ++ - [QTBUG-30776] DirectShow: improve metadata support. ++ - [QTBUG-33631][QTBUG-33518] WMF: allow to load media whose content doesn't match its file extension. ++ - [QTBUG-33518] WMF: allow to load QRC files with QAudioDecoder. ++ - [QTBUG-30435] WMF: fixed the media player failing to play some media formats. ++ - [QTBUG-32360] WMF: fixed compilation with Visual Studio 2008. ++ - [QTBUG-34479] DirectShow: fixed compilation with Visual Studio 2008. ++ - [QTBUG-32864] WMF: fixed compilation on Windows Vista. ++ - [QTBUG-30825] WMF: fixed QMediaPlayer changing to EndOfMedia status too early. ++ - [QTBUG-33160] Fix QAudioOutput::setVolume() limited to 50% on 32-bit Windows. ++ ++Qt for QNX ++---------- ++ ++ - New camera and media player support when mmrenderer is available. ++ ++**************************************************************************** ++* Plugins * ++**************************************************************************** ++ ++ - New QML import version QtMultimedia 5.2 adds a new autoOrientation ++ property to the VideoOutput type, which allows the video output to ++ always match the screen orientation. +-- +1.8.4 + + +From ea9f9788d502d4a4307a464d87a00be198df09ad Mon Sep 17 00:00:00 2001 +From: Frank Osterfeld <frank.osterfeld.qnx@kdab.com> +Date: Thu, 28 Nov 2013 10:27:46 +0100 +Subject: [PATCH 4/5] QNX/PPS: Fix end-of-track handling + +The state to check for is actually "stopped", not "STOPPED". +Fixes end-of-track detection. + +Task-number: QTBUG-35189 +Change-Id: Ifa2f0635b31ef8c584c1800ef870c0dbef2b1daf +Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com> +Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com> +Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> + +diff --git a/src/plugins/qnx/mediaplayer/ppsmediaplayercontrol.cpp b/src/plugins/qnx/mediaplayer/ppsmediaplayercontrol.cpp +index eb0842f..b54c796 100644 +--- a/src/plugins/qnx/mediaplayer/ppsmediaplayercontrol.cpp ++++ b/src/plugins/qnx/mediaplayer/ppsmediaplayercontrol.cpp +@@ -57,7 +57,7 @@ PpsMediaPlayerControl::PpsMediaPlayerControl(QObject *parent) + m_ppsStatusFd(-1), + m_ppsStateNotifier(0), + m_ppsStateFd(-1) +- , m_previouslySeenState("STOPPED") ++ , m_previouslySeenState("stopped") + { + openConnection(); + } +@@ -177,7 +177,7 @@ void PpsMediaPlayerControl::ppsReadyRead(int fd) + + if (pps_decoder_get_string(&decoder, "state", &value) == PPS_DECODER_OK) { + const QByteArray state = value; +- if (state != m_previouslySeenState && state == "STOPPED") ++ if (state != m_previouslySeenState && state == "stopped") + handleMmStopped(); + m_previouslySeenState = state; + } +-- +1.8.4 + + +From b3ca574eaada965dbd20a90f89c3eb524627321a Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Thu, 13 Dec 2012 20:23:48 +0100 -Subject: [PATCH] remove duplicate defs (mxe-specific) +Subject: [PATCH 5/5] remove duplicate defs (mxe-specific) diff --git a/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp diff --git a/src/qtwinextras-1.patch b/src/qtwinextras-1.patch index 4bac8cb..0babae1 100644 --- a/src/qtwinextras-1.patch +++ b/src/qtwinextras-1.patch @@ -1,10 +1,263 @@ This file is part of MXE. See index.html for further information. -From 78cac864153eb0bddb4436bfa929f21712e197e1 Mon Sep 17 00:00:00 2001 +From ed4d73908be1a077bec94ba669e5e46d6d422818 Mon Sep 17 00:00:00 2001 +From: Kai Koehne <kai.koehne@digia.com> +Date: Thu, 28 Nov 2013 16:48:37 +0100 +Subject: [PATCH 1/3] Add plugins.qmltypes file + +Task-number: QTBUG-35207 +Change-Id: If6843d71c2d6e0a9afec3dca3683ac0fcd1188b6 +Reviewed-by: J-P Nurmi <jpnurmi@digia.com> +Reviewed-by: Lars Knoll <lars.knoll@digia.com> + +diff --git a/src/imports/winextras/plugins.qmltypes b/src/imports/winextras/plugins.qmltypes +new file mode 100644 +index 0000000..f5963ce +--- /dev/null ++++ b/src/imports/winextras/plugins.qmltypes +@@ -0,0 +1,207 @@ ++import QtQuick.tooling 1.1 ++ ++// This file describes the plugin-supplied types contained in the library. ++// It is used for QML tooling purposes only. ++// ++// This file was auto-generated by: ++// 'qmlplugindump -nonrelocatable QtWinExtras 1.0' ++ ++Module { ++ Component { ++ name: "QQuickDwmFeatures" ++ defaultProperty: "data" ++ prototype: "QQuickItem" ++ exports: ["QtWinExtras/DwmFeatures 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "compositionEnabled"; type: "bool" } ++ Property { name: "colorizationColor"; type: "QColor"; isReadonly: true } ++ Property { name: "realColorizationColor"; type: "QColor"; isReadonly: true } ++ Property { name: "colorizationOpaqueBlend"; type: "bool"; isReadonly: true } ++ Property { name: "topGlassMargin"; type: "int" } ++ Property { name: "rightGlassMargin"; type: "int" } ++ Property { name: "bottomGlassMargin"; type: "int" } ++ Property { name: "leftGlassMargin"; type: "int" } ++ Property { name: "blurBehindEnabled"; type: "bool" } ++ Property { name: "excludedFromPeek"; type: "bool" } ++ Property { name: "peekDisallowed"; type: "bool" } ++ Property { name: "flip3DPolicy"; type: "QQuickWin::WindowFlip3DPolicy" } ++ } ++ Component { ++ name: "QQuickJumpList" ++ defaultProperty: "data" ++ prototype: "QObject" ++ exports: ["QtWinExtras/JumpList 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "recent"; type: "QQuickJumpListCategory"; isReadonly: true; isPointer: true } ++ Property { name: "frequent"; type: "QQuickJumpListCategory"; isReadonly: true; isPointer: true } ++ Property { name: "tasks"; type: "QQuickJumpListCategory"; isPointer: true } ++ Property { name: "categories"; type: "QQuickJumpListCategory"; isList: true; isReadonly: true } ++ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } ++ } ++ Component { ++ name: "QQuickJumpListCategory" ++ defaultProperty: "data" ++ prototype: "QObject" ++ exports: ["QtWinExtras/JumpListCategory 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } ++ Property { name: "items"; type: "QQuickJumpListItem"; isList: true; isReadonly: true } ++ Property { name: "title"; type: "string" } ++ Property { name: "visible"; type: "bool" } ++ Signal { name: "visibilityChanged" } ++ } ++ Component { ++ name: "QQuickJumpListItem" ++ prototype: "QObject" ++ exports: ["QtWinExtras/JumpListItem 1.0"] ++ exportMetaObjectRevisions: [0] ++ Enum { ++ name: "JumpListItemType" ++ values: { ++ "ItemTypeLink": 1, ++ "ItemTypeDestination": 2, ++ "ItemTypeSeparator": 3 ++ } ++ } ++ Property { name: "__jumpListItemType"; type: "int" } ++ } ++ Component { ++ name: "QQuickTaskbarButton" ++ defaultProperty: "data" ++ prototype: "QQuickItem" ++ exports: ["QtWinExtras/TaskbarButton 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "overlay"; type: "QQuickTaskbarOverlay"; isReadonly: true; isPointer: true } ++ Property { name: "progress"; type: "QWinTaskbarProgress"; isReadonly: true; isPointer: true } ++ } ++ Component { ++ name: "QQuickTaskbarOverlay" ++ prototype: "QObject" ++ exports: ["QtWinExtras/TaskbarOverlay 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "iconSource"; type: "QUrl" } ++ Property { name: "accessibleDescription"; type: "string" } ++ } ++ Component { ++ name: "QQuickThumbnailToolBar" ++ defaultProperty: "data" ++ prototype: "QQuickItem" ++ exports: ["QtWinExtras/ThumbnailToolBar 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "count"; type: "int"; isReadonly: true } ++ Property { name: "data"; type: "QObject"; isList: true; isReadonly: true } ++ Property { name: "buttons"; type: "QQuickThumbnailToolButton"; isList: true; isReadonly: true } ++ Method { name: "clear" } ++ Method { ++ name: "addButton" ++ Parameter { name: "button"; type: "QQuickThumbnailToolButton"; isPointer: true } ++ } ++ Method { ++ name: "removeButton" ++ Parameter { name: "button"; type: "QQuickThumbnailToolButton"; isPointer: true } ++ } ++ } ++ Component { ++ name: "QQuickThumbnailToolButton" ++ prototype: "QObject" ++ exports: ["QtWinExtras/ThumbnailToolButton 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "iconSource"; type: "QUrl" } ++ Property { name: "tooltip"; type: "string" } ++ Property { name: "enabled"; type: "bool" } ++ Property { name: "interactive"; type: "bool" } ++ Property { name: "visible"; type: "bool" } ++ Property { name: "dismissOnClick"; type: "bool" } ++ Property { name: "flat"; type: "bool" } ++ Signal { name: "clicked" } ++ } ++ Component { ++ name: "QQuickWin" ++ prototype: "QObject" ++ exports: ["QtWinExtras/QtWin 1.0"] ++ exportMetaObjectRevisions: [0] ++ Enum { ++ name: "HBitmapFormat" ++ values: { ++ "HBitmapNoAlpha": 0, ++ "HBitmapPremultipliedAlpha": 1, ++ "HBitmapAlpha": 2 ++ } ++ } ++ Enum { ++ name: "WindowFlip3DPolicy" ++ values: { ++ "FlipDefault": 0, ++ "FlipExcludeBelow": 1, ++ "FlipExcludeAbove": 2 ++ } ++ } ++ } ++ Component { ++ name: "QWinTaskbarProgress" ++ prototype: "QObject" ++ exports: ["QtWinExtras/TaskbarProgress 1.0"] ++ exportMetaObjectRevisions: [0] ++ Property { name: "value"; type: "int" } ++ Property { name: "minimum"; type: "int" } ++ Property { name: "maximum"; type: "int" } ++ Property { name: "visible"; type: "bool" } ++ Property { name: "paused"; type: "bool" } ++ Property { name: "stopped"; type: "bool"; isReadonly: true } ++ Signal { ++ name: "valueChanged" ++ Parameter { name: "value"; type: "int" } ++ } ++ Signal { ++ name: "minimumChanged" ++ Parameter { name: "minimum"; type: "int" } ++ } ++ Signal { ++ name: "maximumChanged" ++ Parameter { name: "maximum"; type: "int" } ++ } ++ Signal { ++ name: "visibilityChanged" ++ Parameter { name: "visible"; type: "bool" } ++ } ++ Signal { ++ name: "pausedChanged" ++ Parameter { name: "paused"; type: "bool" } ++ } ++ Signal { ++ name: "stoppedChanged" ++ Parameter { name: "stopped"; type: "bool" } ++ } ++ Method { ++ name: "setValue" ++ Parameter { name: "value"; type: "int" } ++ } ++ Method { ++ name: "setMinimum" ++ Parameter { name: "minimum"; type: "int" } ++ } ++ Method { ++ name: "setMaximum" ++ Parameter { name: "maximum"; type: "int" } ++ } ++ Method { ++ name: "setRange" ++ Parameter { name: "minimum"; type: "int" } ++ Parameter { name: "maximum"; type: "int" } ++ } ++ Method { name: "reset" } ++ Method { name: "show" } ++ Method { name: "hide" } ++ Method { ++ name: "setVisible" ++ Parameter { name: "visible"; type: "bool" } ++ } ++ Method { name: "pause" } ++ Method { name: "resume" } ++ Method { ++ name: "setPaused" ++ Parameter { name: "paused"; type: "bool" } ++ } ++ Method { name: "stop" } ++ } ++} +-- +1.8.4 + + +From c996740162dd63fa20e549e57c78ca990b2ca1c2 Mon Sep 17 00:00:00 2001 +From: Friedemann Kleint <Friedemann.Kleint@digia.com> +Date: Mon, 2 Dec 2013 16:38:50 +0200 +Subject: [PATCH 2/3] Add missing include for QQuickDwmFeatures plugin. + +Task-number: QTBUG-35260 + +Change-Id: I8145fd8a98b8549de7e819740e6b7529d0785488 +Reviewed-by: J-P Nurmi <jpnurmi@digia.com> + +diff --git a/src/imports/winextras/qquickdwmfeatures_p.h b/src/imports/winextras/qquickdwmfeatures_p.h +index 231424a..037872f 100644 +--- a/src/imports/winextras/qquickdwmfeatures_p.h ++++ b/src/imports/winextras/qquickdwmfeatures_p.h +@@ -45,6 +45,7 @@ + + #include <QQuickItem> + #include <QtWin> ++#include <QColor> + + #include "qquickwin_p.h" + +-- +1.8.4 + + +From bb7d4141f14dfd22365df4991a066e9b760b088d Mon Sep 17 00:00:00 2001 From: Mark Brand <mabrand@mabrand.nl> Date: Thu, 24 Oct 2013 22:29:51 +0200 -Subject: [PATCH] Fix MinGW-w64 GCC 4.8.2 compilation +Subject: [PATCH 3/3] Fix MinGW-w64 GCC 4.8.2 compilation diff --git a/src/winextras/winshobjidl_p.h b/src/winextras/winshobjidl_p.h |