From 01054603a797805cc5c18c65aed7f0f192b68851 Mon Sep 17 00:00:00 2001 From: Marko Kangas Date: Thu, 23 Oct 2014 10:27:02 +0300 Subject: [PATCH 01/50] Fix tab icon vertical alignment Fixes case if custom icon size is given and height is more than width. Check of minimum valid height was compared wrongly to width and caused invalid vertical alignment. After fix vertical alignment is correct aligned to vertical center with the tab text. Change-Id: I6c4a710b15e91225edeabb629bfea7049ab2f42a Task-number: QTBUG-42143 Reviewed-by: Timur Pocheptsov Reviewed-by: Jens Bache-Wiig --- src/widgets/styles/qcommonstyle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/styles/qcommonstyle.cpp b/src/widgets/styles/qcommonstyle.cpp index 85793088209..1c5dcf5f0aa 100644 --- a/src/widgets/styles/qcommonstyle.cpp +++ b/src/widgets/styles/qcommonstyle.cpp @@ -1114,7 +1114,7 @@ void QCommonStylePrivate::tabLayout(const QStyleOptionTabV3 *opt, const QWidget (opt->state & QStyle::State_Enabled) ? QIcon::Normal : QIcon::Disabled, (opt->state & QStyle::State_Selected) ? QIcon::On : QIcon::Off ); // High-dpi icons do not need adjustmet; make sure tabIconSize is not larger than iconSize - tabIconSize = QSize(qMin(tabIconSize.width(), iconSize.width()), qMin(tabIconSize.height(), iconSize.width())); + tabIconSize = QSize(qMin(tabIconSize.width(), iconSize.width()), qMin(tabIconSize.height(), iconSize.height())); *iconRect = QRect(tr.left(), tr.center().y() - tabIconSize.height() / 2, tabIconSize.width(), tabIconSize .height()); From e8f1b9917008d978c29cda9a2b40b841bc7a9df4 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Mon, 20 Oct 2014 14:09:33 +0200 Subject: [PATCH 02/50] Don't delete QLibrarySettings configuration in ~QCoreApplication Do not clear the QLibrarySettings configuration information already in ~QCoreApplication (via qAddPostRoutine). This fixes issues where multiple QCoreApplication objects are created over time (in plugins). Task-number: QTBUG-34290 Change-Id: Ib5c58f825619ede484492e057e08d73b2b4c6101 Reviewed-by: Oswald Buddenhagen Reviewed-by: Friedemann Kleint Reviewed-by: Thiago Macieira --- src/corelib/global/qlibraryinfo.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index c3ec2bc7f67..7ca0aa7f0bf 100644 --- a/src/corelib/global/qlibraryinfo.cpp +++ b/src/corelib/global/qlibraryinfo.cpp @@ -84,14 +84,7 @@ class QLibraryInfoPrivate { public: static QSettings *findConfiguration(); -#ifndef QT_BOOTSTRAPPED - static void cleanup() - { - QLibrarySettings *ls = qt_library_settings(); - if (ls) - ls->settings.reset(0); - } -#else +#ifdef QT_BOOTSTRAPPED static bool haveGroup(QLibraryInfo::PathGroup group) { QLibrarySettings *ls = qt_library_settings(); @@ -114,7 +107,6 @@ QLibrarySettings::QLibrarySettings() : settings(QLibraryInfoPrivate::findConfiguration()) { #ifndef QT_BOOTSTRAPPED - qAddPostRoutine(QLibraryInfoPrivate::cleanup); bool haveEffectivePaths; bool havePaths; #endif From 0d679261176aadb3dd8efdc8e130bcbe6f3ce6f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 3 Nov 2014 17:41:04 +0100 Subject: [PATCH 03/50] Use __aarch64__ instead of __arm64__ to detect AArch64 The latter name was used by Apple in their internal AArch64 LLVM backend, but has since been merged into LLVM upstream and renamed to AArch64. https://github.com/llvm-mirror/llvm/commit/29f94c72014eaa5d0d3b920686e68 Change-Id: I319f42f07c95dfbcd121134fbe6e554e2d36453d Reviewed-by: Thiago Macieira --- src/corelib/global/qprocessordetection.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h index 26ac56396b7..55cb31c62b9 100644 --- a/src/corelib/global/qprocessordetection.h +++ b/src/corelib/global/qprocessordetection.h @@ -87,9 +87,9 @@ ARM is bi-endian, detect using __ARMEL__ or __ARMEB__, falling back to auto-detection implemented below. */ -#if defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_M_ARM) || defined(__arm64__) +#if defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_M_ARM) || defined(__aarch64__) # define Q_PROCESSOR_ARM -# if defined(__arm64__) +# if defined(__aarch64__) # define Q_PROCESSOR_ARM_64 # else # define Q_PROCESSOR_ARM_32 From f08ddefac7d4495c28370c84bf9b383d6cf3abd1 Mon Sep 17 00:00:00 2001 From: Robert Griebl Date: Mon, 3 Nov 2014 15:52:04 +0100 Subject: [PATCH 04/50] Check the Q_SCRIPTABLE tag of signals and slots as early as possible. This makes is possible to generate a valid D-Bus XML from a class that has e.g. internal slots with pointer parameters by explicitly marking all D-Bus exports with Q_SCRIPTABLE and running qdbuscpp2xml with the '-a' switch. Change-Id: Iab32a0a7f46f2516f6385808bbf35b26c7708b1a Reviewed-by: Thiago Macieira --- src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp b/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp index ea24c35a071..dc735df2978 100644 --- a/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp +++ b/src/tools/qdbuscpp2xml/qdbuscpp2xml.cpp @@ -243,6 +243,8 @@ static QString generateInterfaceXml(const ClassDef *mo) foreach (const FunctionDef &mm, mo->signalList) { if (mm.wasCloned) continue; + if (!mm.isScriptable && !(flags & QDBusConnection::ExportNonScriptableSignals)) + continue; retval += addFunction(mm, true); } @@ -250,10 +252,14 @@ static QString generateInterfaceXml(const ClassDef *mo) if (flags & (QDBusConnection::ExportScriptableSlots | QDBusConnection::ExportNonScriptableSlots)) { foreach (const FunctionDef &slot, mo->slotList) { + if (!slot.isScriptable && !(flags & QDBusConnection::ExportNonScriptableSlots)) + continue; if (slot.access == FunctionDef::Public) retval += addFunction(slot); } foreach (const FunctionDef &method, mo->methodList) { + if (!method.isScriptable && !(flags & QDBusConnection::ExportNonScriptableSlots)) + continue; if (method.access == FunctionDef::Public) retval += addFunction(method); } From 293207b50377eef2b8f2bec10a24eae02bcedc93 Mon Sep 17 00:00:00 2001 From: Venu Date: Tue, 4 Nov 2014 11:06:35 +0100 Subject: [PATCH 05/50] qdoc: Delayed the examples manifest file creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This avoids the creation of demos-manifest.xml if there are no demos in the repo. Change-Id: I4d3bbe4540f4b1532c0d51f62b8d1494864a7b1c Reviewed-by: Martin Smith Reviewed-by: Topi Reiniö --- src/tools/qdoc/htmlgenerator.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp index 32399f11c76..5b8ccd9902d 100644 --- a/src/tools/qdoc/htmlgenerator.cpp +++ b/src/tools/qdoc/htmlgenerator.cpp @@ -4301,8 +4301,6 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element) return; QString fileName = manifest +"-manifest.xml"; QFile file(outputDir() + QLatin1Char('/') + fileName); - if (!file.open(QFile::WriteOnly | QFile::Text)) - return ; bool demos = false; if (manifest == "demos") demos = true; @@ -4323,7 +4321,7 @@ void HtmlGenerator::generateManifestFile(QString manifest, QString element) } ++i; } - if (!proceed) + if (!proceed || !file.open(QFile::WriteOnly | QFile::Text)) return; QXmlStreamWriter writer(&file); From dce13e4b7b0d6cf04879fc3b1f2a241579296e73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B8rgen=20Lind?= Date: Wed, 22 Oct 2014 13:29:52 +0200 Subject: [PATCH 06/50] Fix too many resizes and move events for native widgets When the QWidgetWindow receives a resize or move event, it should check with the widget if its crect already has this geometry. if not then send the resize or move event Ideally events should be sent whenever the QWidgetWindow receives them. QTBUG-42383 is created for this problem Task-number: QTBUG-29937 Task-number: QTBUG-38768 Task-number: QTBUG-30744 Change-Id: I1e9a5d25de29a98885edece927ba14d7a763eb01 Reviewed-by: Shawn Rutledge --- src/widgets/dialogs/qwizard.cpp | 8 ++ src/widgets/kernel/qwidget.cpp | 5 +- src/widgets/kernel/qwidgetwindow.cpp | 53 ++++++--- src/widgets/kernel/qwidgetwindow_p.h | 4 +- .../qwidget_window/tst_qwidget_window.cpp | 101 ++++++++++++++++++ 5 files changed, 151 insertions(+), 20 deletions(-) mode change 100755 => 100644 tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp index 1f7b18e8247..a378daa3d33 100644 --- a/src/widgets/dialogs/qwizard.cpp +++ b/src/widgets/dialogs/qwizard.cpp @@ -2571,6 +2571,14 @@ void QWizard::setWizardStyle(WizardStyle style) d->disableUpdates(); d->wizStyle = style; d->updateButtonTexts(); +#if !defined(QT_NO_STYLE_WINDOWSVISTA) + if (aeroStyleChange) { + //Send a resizeevent since the antiflicker widget probably needs a new size + //because of the backbutton in the window title + QResizeEvent ev(geometry().size(), geometry().size()); + QApplication::sendEvent(this, &ev); + } +#endif d->updateLayout(); updateGeometry(); d->enableUpdates(); diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index cc262fa3e2c..315d615d897 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -7155,10 +7155,7 @@ void QWidgetPrivate::setGeometry_sys(int x, int y, int w, int h, bool isMove) } } - // generate a move event for QWidgets without window handles. QWidgets with native - // window handles already receive a move event from - // QGuiApplicationPrivate::processGeometryChangeEvent. - if (isMove && (!q->windowHandle() || q->testAttribute(Qt::WA_DontShowOnScreen))) { + if (isMove) { QMoveEvent e(q->pos(), oldPos); QApplication::sendEvent(q, &e); } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 1cd042f99d2..e455b772fbd 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -543,14 +543,36 @@ void QWidgetWindow::handleKeyEvent(QKeyEvent *event) QGuiApplication::sendSpontaneousEvent(receiver, event); } -void QWidgetWindow::updateGeometry() +bool QWidgetWindow::updateSize() { + bool changed = false; if (m_widget->testAttribute(Qt::WA_OutsideWSRange)) - return; + return changed; + if (m_widget->data->crect.size() != geometry().size()) { + changed = true; + m_widget->data->crect.setSize(geometry().size()); + } + updateMargins(); + return changed; +} + +bool QWidgetWindow::updatePos() +{ + bool changed = false; + if (m_widget->testAttribute(Qt::WA_OutsideWSRange)) + return changed; + if (m_widget->data->crect.topLeft() != geometry().topLeft()) { + changed = true; + m_widget->data->crect.moveTopLeft(geometry().topLeft()); + } + updateMargins(); + return changed; +} + +void QWidgetWindow::updateMargins() +{ const QMargins margins = frameMargins(); - - m_widget->data->crect = geometry(); QTLWExtra *te = m_widget->d_func()->topData(); te->posIncludesFrame= false; te->frameStrut.setCoords(margins.left(), margins.top(), margins.right(), margins.bottom()); @@ -609,24 +631,25 @@ void QWidgetWindow::updateNormalGeometry() void QWidgetWindow::handleMoveEvent(QMoveEvent *event) { - updateGeometry(); - QGuiApplication::sendSpontaneousEvent(m_widget, event); + if (updatePos()) + QGuiApplication::sendSpontaneousEvent(m_widget, event); } void QWidgetWindow::handleResizeEvent(QResizeEvent *event) { QSize oldSize = m_widget->data->crect.size(); - updateGeometry(); - QGuiApplication::sendSpontaneousEvent(m_widget, event); + if (updateSize()) { + QGuiApplication::sendSpontaneousEvent(m_widget, event); - if (m_widget->d_func()->paintOnScreen()) { - QRegion updateRegion(geometry()); - if (m_widget->testAttribute(Qt::WA_StaticContents)) - updateRegion -= QRect(0, 0, oldSize.width(), oldSize.height()); - m_widget->d_func()->syncBackingStore(updateRegion); - } else { - m_widget->d_func()->syncBackingStore(); + if (m_widget->d_func()->paintOnScreen()) { + QRegion updateRegion(geometry()); + if (m_widget->testAttribute(Qt::WA_StaticContents)) + updateRegion -= QRect(0, 0, oldSize.width(), oldSize.height()); + m_widget->d_func()->syncBackingStore(updateRegion); + } else { + m_widget->d_func()->syncBackingStore(); + } } } diff --git a/src/widgets/kernel/qwidgetwindow_p.h b/src/widgets/kernel/qwidgetwindow_p.h index 7f12ae8e206..0632a5c3647 100644 --- a/src/widgets/kernel/qwidgetwindow_p.h +++ b/src/widgets/kernel/qwidgetwindow_p.h @@ -108,7 +108,9 @@ private slots: private: void repaintWindow(); - void updateGeometry(); + bool updateSize(); + bool updatePos(); + void updateMargins(); void updateNormalGeometry(); enum FocusWidgets { diff --git a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp old mode 100755 new mode 100644 index c6c74641941..36791293ab9 --- a/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp +++ b/tests/auto/widgets/kernel/qwidget_window/tst_qwidget_window.cpp @@ -95,6 +95,8 @@ private slots: void tst_updateWinId_QTBUG40681(); void tst_recreateWindow_QTBUG40817(); + void tst_resize_count(); + void tst_move_count(); }; void tst_QWidget_window::initTestCase() @@ -660,6 +662,105 @@ void tst_QWidget_window::tst_recreateWindow_QTBUG40817() tab.setCurrentIndex(1); } +class ResizeWidget : public QWidget +{ +Q_OBJECT +public: + ResizeWidget(QWidget *parent = 0) + : QWidget(parent) + , resizeCount(0) + { } + + int resizeCount; + +protected: + void resizeEvent(QResizeEvent *) Q_DECL_OVERRIDE + { + resizeCount++; + } +}; + +void tst_QWidget_window::tst_resize_count() +{ + { + ResizeWidget resize; + resize.show(); + QVERIFY(QTest::qWaitForWindowExposed(&resize)); + QCOMPARE(resize.resizeCount, 1); + resize.resizeCount = 0; + QSize size = resize.size(); + size.rwidth() += 10; + resize.resize(size); + QGuiApplication::sync(); + QTRY_COMPARE(resize.resizeCount, 1); + + resize.resizeCount = 0; + + ResizeWidget child(&resize); + child.resize(200,200); + child.winId(); + child.show(); + QVERIFY(QTest::qWaitForWindowExposed(&child)); + QGuiApplication::sync(); + QTRY_COMPARE(child.resizeCount, 1); + child.resizeCount = 0; + size = child.size(); + size.rwidth() += 10; + child.resize(size); + QGuiApplication::sync(); + QCOMPARE(resize.resizeCount, 0); + QCOMPARE(child.resizeCount, 1); + } + { + ResizeWidget parent; + ResizeWidget child(&parent); + child.resize(200,200); + child.winId(); + parent.show(); + QVERIFY(QTest::qWaitForWindowExposed(&parent)); + parent.resizeCount = 0; + QGuiApplication::sync(); + QTRY_COMPARE(child.resizeCount, 1); + child.resizeCount = 0; + QSize size = child.size(); + size.rwidth() += 10; + child.resize(size); + QGuiApplication::sync(); + QCOMPARE(parent.resizeCount, 0); + QCOMPARE(child.resizeCount, 1); + } + +} + +class MoveWidget : public QWidget +{ +Q_OBJECT +public: + MoveWidget(QWidget *parent = 0) + : QWidget(parent) + , moveCount(0) + { } + + void moveEvent(QMoveEvent *) Q_DECL_OVERRIDE + { + moveCount++; + } + + int moveCount; +}; + +void tst_QWidget_window::tst_move_count() +{ + MoveWidget move; + move.move(500,500); + move.show(); + QVERIFY(QTest::qWaitForWindowExposed(&move)); + QTRY_VERIFY(move.moveCount >= 1); + move.moveCount = 0; + + move.move(220,250); + QTRY_VERIFY(move.moveCount >= 1); +} QTEST_MAIN(tst_QWidget_window) #include "tst_qwidget_window.moc" From 85a71381145528d446416d2744734384dbe739b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 4 Nov 2014 18:12:46 +0100 Subject: [PATCH 07/50] Define Q_CC_CLANG to be the version of upstream Clang that's in use We map the Apple Clang versions to upstream, so that we have one define to compare against. Fixes build break on iOS due to qbasicatomic.h not defining QT_BASIC_ATOMIC_HAS_CONSTRUCTORS on Apple Clang versions, which is needed after 1e9db9f5e18123f2e686c10b Change-Id: I17493c0187c20abc5d22e71944d62bfd16afbad2 Reviewed-by: Thiago Macieira --- src/corelib/global/qcompilerdetection.h | 25 ++++++++++++++++++++++--- src/corelib/thread/qbasicatomic.h | 10 +++------- src/corelib/tools/qsimd_p.h | 2 +- tests/auto/tools/moc/tst_moc.cpp | 2 +- 4 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 949617fa7c0..de8a53ea06f 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -152,7 +152,26 @@ # endif # elif defined(__clang__) /* Clang also masquerades as GCC */ -# define Q_CC_CLANG +# if defined(__apple_build_version__) +# /* http://en.wikipedia.org/wiki/Xcode#Toolchain_Versions */ +# if __apple_build_version__ >= 600051 +# define Q_CC_CLANG 305 +# elif __apple_build_version__ >= 503038 +# define Q_CC_CLANG 304 +# elif __apple_build_version__ >= 500275 +# define Q_CC_CLANG 303 +# elif __apple_build_version__ >= 425024 +# define Q_CC_CLANG 302 +# elif __apple_build_version__ >= 318045 +# define Q_CC_CLANG 301 +# elif __apple_build_version__ >= 211101 +# define Q_CC_CLANG 300 +# else +# error "Unknown Apple Clang version" +# endif +# else +# define Q_CC_CLANG ((__clang_major__ * 100) + __clang_minor__) +# endif # define Q_ASSUME_IMPL(expr) if (expr){} else __builtin_unreachable() # define Q_UNREACHABLE_IMPL() __builtin_unreachable() # if !defined(__has_extension) @@ -566,7 +585,7 @@ # endif // Variadic macros are supported for gnu++98, c++11, c99 ... since 2.9 -# if ((__clang_major__ * 100) + __clang_minor__) >= 209 +# if Q_CC_CLANG >= 209 # if !defined(__STRICT_ANSI__) || defined(__GXX_EXPERIMENTAL_CXX0X__) \ || (defined(__cplusplus) && (__cplusplus >= 201103L)) \ || (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) @@ -668,7 +687,7 @@ # define Q_COMPILER_VARIADIC_TEMPLATES # endif /* Features that have no __has_feature() check */ -# if ((__clang_major__ * 100) + __clang_minor__) >= 209 /* since clang 2.9 */ +# if Q_CC_CLANG >= 209 /* since clang 2.9 */ # define Q_COMPILER_EXTERN_TEMPLATES # endif # endif diff --git a/src/corelib/thread/qbasicatomic.h b/src/corelib/thread/qbasicatomic.h index 09500e92d76..be293f58e34 100644 --- a/src/corelib/thread/qbasicatomic.h +++ b/src/corelib/thread/qbasicatomic.h @@ -84,13 +84,9 @@ QT_END_NAMESPACE // New atomics #if defined(Q_COMPILER_CONSTEXPR) && defined(Q_COMPILER_DEFAULT_MEMBERS) && defined(Q_COMPILER_DELETE_MEMBERS) -# if defined(Q_CC_CLANG) && ((((__clang_major__ * 100) + __clang_minor__) < 303) \ - || defined(__apple_build_version__) \ - ) - /* Do not define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS for "stock" clang before version 3.3. - Apple's version has different (higher!) version numbers, so disable it for all of them for now. - (The only way to distinguish between them seems to be a check for __apple_build_version__ .) - +# if defined(Q_CC_CLANG) && Q_CC_CLANG < 303 + /* + Do not define QT_BASIC_ATOMIC_HAS_CONSTRUCTORS for Clang before version 3.3. For details about the bug: see http://llvm.org/bugs/show_bug.cgi?id=12670 */ # else diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 434819aa61d..3241e09b08f 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -219,7 +219,7 @@ // other x86 intrinsics #if defined(Q_PROCESSOR_X86) && ((defined(Q_CC_GNU) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 404)) \ - || (defined(Q_CC_CLANG) && (__clang_major__ * 100 + __clang_minor__ >= 208)) \ + || (defined(Q_CC_CLANG) && (Q_CC_CLANG >= 208)) \ || defined(Q_CC_INTEL)) # define QT_COMPILER_SUPPORTS_X86INTRIN # ifdef Q_CC_INTEL diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index 13e786cd204..edb6488eaa2 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -1564,7 +1564,7 @@ public slots: void doAnotherThing(bool a = (1 < 3), bool b = (1 > 4)) { Q_UNUSED(a); Q_UNUSED(b); } -#if defined(Q_MOC_RUN) || (defined(Q_COMPILER_AUTO_TYPE) && !(defined(Q_CC_CLANG) && (__clang_major__ * 100) + __clang_minor__) < 304) +#if defined(Q_MOC_RUN) || (defined(Q_COMPILER_AUTO_TYPE) && !(defined(Q_CC_CLANG) && Q_CC_CLANG < 304)) // There is no Q_COMPILER_>> but if compiler support auto, it should also support >> void performSomething(QVector> e = QVector>(8 < 1), QHash> h = QHash>()) From 729541f7ca1129731a2ec79492d15e7ecb3cad80 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 4 Nov 2014 11:40:30 -0800 Subject: [PATCH 08/50] Store the GCC version number in Q_CC_GNU The sequence of (__GNUC__ * 100 + __GNUC_MINOR__) was used in quite a few places. Simplify it to make the code more readable. This follows the change done for Clang, which was quite necessary since Apple's version of Clang has different build numbers. Change-Id: I886271a5a5f21ae59485ecf8d140527723345a46 Reviewed-by: Oswald Buddenhagen --- src/corelib/global/qcompilerdetection.h | 24 ++++++++++++------------ src/corelib/global/qglobal.h | 2 +- src/corelib/tools/qsimd.cpp | 2 +- src/corelib/tools/qsimd_p.h | 4 ++-- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index de8a53ea06f..ef37f001891 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -137,7 +137,7 @@ # endif #elif defined(__GNUC__) -# define Q_CC_GNU +# define Q_CC_GNU (__GNUC__ * 100 + __GNUC_MINOR__) # define Q_C_CALLBACKS # if defined(__MINGW32__) # define Q_CC_MINGW @@ -187,7 +187,7 @@ # endif # else /* Plain GCC */ -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 +# if Q_CC_GNU >= 405 # define Q_ASSUME_IMPL(expr) if (expr){} else __builtin_unreachable() # define Q_UNREACHABLE_IMPL() __builtin_unreachable() # define Q_DECL_DEPRECATED_X(text) __attribute__ ((__deprecated__(text))) @@ -221,7 +221,7 @@ # define QT_NO_ARM_EABI # endif # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403 && !defined(Q_CC_CLANG) +# if Q_CC_GNU >= 403 && !defined(Q_CC_CLANG) # define Q_ALLOC_SIZE(x) __attribute__((alloc_size(x))) # endif @@ -728,7 +728,7 @@ #if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_CLANG) # define Q_COMPILER_RESTRICTED_VLA # define Q_COMPILER_THREADSAFE_STATICS -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403 +# if Q_CC_GNU >= 403 // GCC supports binary literals in C, C++98 and C++11 modes # define Q_COMPILER_BINARY_LITERALS # endif @@ -739,13 +739,13 @@ # define Q_COMPILER_VARIADIC_MACROS # endif # if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 403 +# if Q_CC_GNU >= 403 /* C++11 features supported in GCC 4.3: */ # define Q_COMPILER_DECLTYPE # define Q_COMPILER_RVALUE_REFS # define Q_COMPILER_STATIC_ASSERT # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 +# if Q_CC_GNU >= 404 /* C++11 features supported in GCC 4.4: */ # define Q_COMPILER_AUTO_FUNCTION # define Q_COMPILER_AUTO_TYPE @@ -754,7 +754,7 @@ # define Q_COMPILER_UNICODE_STRINGS # define Q_COMPILER_VARIADIC_TEMPLATES # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 +# if Q_CC_GNU >= 405 /* C++11 features supported in GCC 4.5: */ # define Q_COMPILER_EXPLICIT_CONVERSIONS /* GCC 4.4 implements initializer_list but does not define typedefs required @@ -764,7 +764,7 @@ # define Q_COMPILER_RAW_STRINGS # define Q_COMPILER_CLASS_ENUM # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 +# if Q_CC_GNU >= 406 /* Pre-4.6 compilers implement a non-final snapshot of N2346, hence default and delete * functions are supported only if they are public. Starting from 4.6, GCC handles * final version - the access modifier is not relevant. */ @@ -776,7 +776,7 @@ # define Q_COMPILER_UNRESTRICTED_UNIONS # define Q_COMPILER_RANGE_FOR # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 +# if Q_CC_GNU >= 407 /* GCC 4.4 implemented and std::atomic using its old intrinsics. * However, the implementation is incomplete for most platforms until GCC 4.7: * instead, std::atomic would use an external lock. Since we need an std::atomic @@ -792,20 +792,20 @@ # define Q_COMPILER_TEMPLATE_ALIAS # define Q_COMPILER_UDL # endif -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 +# if Q_CC_GNU >= 408 # define Q_COMPILER_ATTRIBUTES # define Q_COMPILER_ALIGNAS # define Q_COMPILER_ALIGNOF # define Q_COMPILER_INHERITING_CONSTRUCTORS # define Q_COMPILER_THREAD_LOCAL -# if (__GNUC__ * 100 + __GNUC_MINOR__) > 408 || __GNUC_PATCHLEVEL__ >= 1 +# if Q_CC_GNU > 408 || __GNUC_PATCHLEVEL__ >= 1 # define Q_COMPILER_REF_QUALIFIERS # endif # endif /* C++11 features are complete as of GCC 4.8.1 */ # endif # if __cplusplus > 201103L -# if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 +# if Q_CC_GNU >= 409 /* C++1y features in GCC 4.9 - deprecated, do not update this list */ //# define Q_COMPILER_BINARY_LITERALS // already supported since GCC 4.3 as an extension # define Q_COMPILER_LAMBDA_CAPTURES diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 8bc489e5095..f17ff3dea08 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -877,7 +877,7 @@ public: // (http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#382). // GCC 4.3 and 4.4 have support for decltype, but are affected by DR 382. # if defined(Q_COMPILER_DECLTYPE) && \ - (defined(Q_CC_CLANG) || defined(Q_CC_INTEL) || !defined(Q_CC_GNU) || (__GNUC__ * 100 + __GNUC_MINOR__) >= 405) + (defined(Q_CC_CLANG) || defined(Q_CC_INTEL) || !defined(Q_CC_GNU) || Q_CC_GNU >= 405) # define QT_FOREACH_DECLTYPE(x) typename QtPrivate::remove_reference::type # else # define QT_FOREACH_DECLTYPE(x) __typeof__((x)) diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index 0b3bbc0ad0d..5281723c5da 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -519,7 +519,7 @@ QBasicAtomicInt qt_cpu_features = Q_BASIC_ATOMIC_INITIALIZER(0); void qDetectCpuFeatures() { #if defined(Q_CC_GNU) && !defined(Q_CC_CLANG) && !defined(Q_CC_INTEL) -# if (__GNUC__ * 100 + __GNUC_MINOR__) < 403 +# if Q_CC_GNU < 403 // GCC 4.2 (at least the one that comes with Apple's XCode, on Mac) is // known to be broken beyond repair in dealing with the inline assembly // above. It will generate bad code that could corrupt important registers diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 3241e09b08f..891a3ff0534 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -218,7 +218,7 @@ #endif // other x86 intrinsics -#if defined(Q_PROCESSOR_X86) && ((defined(Q_CC_GNU) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 404)) \ +#if defined(Q_PROCESSOR_X86) && ((defined(Q_CC_GNU) && (Q_CC_GNU >= 404)) \ || (defined(Q_CC_CLANG) && (Q_CC_CLANG >= 208)) \ || defined(Q_CC_INTEL)) # define QT_COMPILER_SUPPORTS_X86INTRIN @@ -332,7 +332,7 @@ static __forceinline unsigned long _bit_scan_forward(uint val) _BitScanForward(&result, val); return result; } -# elif (defined(Q_CC_CLANG) || (defined(Q_CC_GNU) && __GNUC__ * 100 + __GNUC_MINOR__ < 405)) \ +# elif (defined(Q_CC_CLANG) || (defined(Q_CC_GNU) && Q_CC_GNU < 405)) \ && !defined(Q_CC_INTEL) // Clang is missing the intrinsic for _bit_scan_reverse // GCC only added it in version 4.5 From ffcad3244ff6e2429da1bf985d6d1116c251c2ec Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 4 Nov 2014 11:42:08 -0800 Subject: [PATCH 09/50] Define the Intel compiler and Microsoft C++ versions in the Q_CC_ macros This is for completeness, since we've done the same for Q_CC_GNU and Q_CC_CLANG. We won't really use the macros like this because both __INTEL_COMPILER and _MSC_VER are readily usable. Change-Id: I669c60166fa4839d43f84f339e6896321d62817f Reviewed-by: Oswald Buddenhagen --- src/corelib/global/qcompilerdetection.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index ef37f001891..4c84daae136 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -78,7 +78,7 @@ # define Q_NO_USING_KEYWORD #elif defined(_MSC_VER) -# define Q_CC_MSVC +# define Q_CC_MSVC (_MSC_VER) # define Q_CC_MSVC_NET # define Q_OUTOFLINE_TEMPLATE inline # if _MSC_VER < 1600 @@ -144,7 +144,7 @@ # endif # if defined(__INTEL_COMPILER) /* Intel C++ also masquerades as GCC */ -# define Q_CC_INTEL +# define Q_CC_INTEL (__INTEL_COMPILER) # define Q_ASSUME_IMPL(expr) __assume(expr) # define Q_UNREACHABLE_IMPL() __builtin_unreachable() # if __INTEL_COMPILER >= 1300 && !defined(__APPLE__) @@ -327,7 +327,7 @@ /* Using the `using' keyword avoids Intel C++ for Linux warnings */ # elif defined(__INTEL_COMPILER) -# define Q_CC_INTEL +# define Q_CC_INTEL (__INTEL_COMPILER) /* Uses CFront, make sure to read the manual how to tweak templates. */ # elif defined(__ghs) From cf30a3d9b2e8584fa419ea1a6ee3d64a140352a0 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 4 Nov 2014 11:57:55 +0100 Subject: [PATCH 10/50] Rcc: ensure enough space for the embedded The two-pass feature depends on the QRC_DATA signature that needs to be stored in the array later overwritten by the embedded data. Task-number: QTBUG-42359 Change-Id: Ida1ccff40dda28f92a4267f86f48ee96d62bd214 Reviewed-by: aavit --- src/tools/rcc/rcc.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp index 9d8a7b70510..7623ce2e4aa 100644 --- a/src/tools/rcc/rcc.cpp +++ b/src/tools/rcc/rcc.cpp @@ -889,6 +889,8 @@ bool RCCResourceLibrary::writeDataBlobs() if (m_format == C_Code) writeString("\n};\n\n"); else if (m_format == Pass1) { + if (offset < 8) + offset = 8; writeString("\nstatic const unsigned char qt_resource_data["); writeByteArray(QByteArray::number(offset)); writeString("] = { 'Q', 'R', 'C', '_', 'D', 'A', 'T', 'A' };\n\n"); From 82e266a83b8124df327001906d2848f625effbc6 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Fri, 31 Oct 2014 13:46:01 +0100 Subject: [PATCH 11/50] New Qt logo This patch replaces the old Qt logo with the new, flatter one. The PNGs were optimized via: optipng -o7 -strip "all" Task-number: QTBUG-41685 Change-Id: I51983a45144373bf7aee31a32990ecbb2582f488 Reviewed-by: Robert Loehning Reviewed-by: Friedemann Kleint Reviewed-by: Kai Koehne Reviewed-by: Lars Knoll --- doc/global/template/images/Qt-logo.png | Bin 4344 -> 2425 bytes doc/global/template/images/logo.png | Bin 2205 -> 2370 bytes .../template/images/sprites-combined.png | Bin 62534 -> 53964 bytes .../legacy/framebufferobject2/cubelogo.png | Bin 5920 -> 2884 bytes examples/opengl/legacy/pbuffers/cubelogo.png | Bin 5920 -> 2884 bytes examples/sql/doc/images/drilldown-example.png | Bin 52950 -> 9092 bytes examples/sql/drilldown/images/qt-creator.png | Bin 46906 -> 6655 bytes examples/sql/drilldown/images/qt-logo.png | Bin 45652 -> 5527 bytes examples/sql/drilldown/images/qt-project.png | Bin 37795 -> 16832 bytes examples/sql/drilldown/images/qt-quick.png | Bin 43238 -> 26635 bytes .../animatedtiles/images/kinetic.png | Bin 6776 -> 5055 bytes .../animation/easing/images/qt-logo.png | Bin 5149 -> 1495 bytes .../widgets/doc/images/dropsite-example.png | Bin 36033 -> 29056 bytes .../doc/images/icons_qt_extended_16x16.png | Bin 1184 -> 563 bytes .../doc/images/icons_qt_extended_17x17.png | Bin 1219 -> 605 bytes .../doc/images/icons_qt_extended_32x32.png | Bin 2185 -> 916 bytes .../doc/images/icons_qt_extended_33x33.png | Bin 2435 -> 975 bytes .../doc/images/icons_qt_extended_48x48.png | Bin 3805 -> 1270 bytes .../doc/images/icons_qt_extended_64x64.png | Bin 3805 -> 1614 bytes .../doc/images/icons_qt_extended_8x8.png | Bin 685 -> 340 bytes .../widgets/draganddrop/puzzle/example.jpg | Bin 42654 -> 42654 bytes .../widgets/graphicsview/boxes/qt-logo.jpg | Bin 40886 -> 20316 bytes .../widgets/graphicsview/boxes/qt-logo.png | Bin 13923 -> 12167 bytes examples/widgets/itemviews/puzzle/example.jpg | Bin 42654 -> 42654 bytes .../painting/basicdrawing/images/qt-logo.png | Bin 3696 -> 1831 bytes .../icons/images/qt_extended_16x16.png | Bin 834 -> 524 bytes .../icons/images/qt_extended_32x32.png | Bin 1892 -> 892 bytes .../icons/images/qt_extended_48x48.png | Bin 3672 -> 1294 bytes src/tools/qdoc/doc/images/qt-logo.png | Bin 5149 -> 1495 bytes src/tools/qlalr/doc/src/images/qt-logo.png | Bin 1422 -> 892 bytes src/widgets/dialogs/images/qtlogo-64.png | Bin 2991 -> 1676 bytes 31 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/global/template/images/Qt-logo.png b/doc/global/template/images/Qt-logo.png index 64c1c4aaa34d5dfcba8c12a7dcb3352140fec4c5..01256ab08dcf24aa990dc786723439f8dca192cc 100644 GIT binary patch delta 2414 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 diff --git a/doc/global/template/images/logo.png b/doc/global/template/images/logo.png index 1e7ed4cf21300f6695a894db7a6c2376dd65c288..698dde9215ca0c91d27745031000fdf83dc48ed0 100644 GIT binary patch delta 2359 zcmV-73CQ-H5yBFXB!6H~OjJbx004i#KzqVMiN{og#!r95M1R9Ve#1h3!a{w)L43eK zd%r+?zdwDyKYGAHd%{C}!$W(-MSQ_Ulg(wC&~T*Ge5}}rv)hxq-=E3lvefIr-R{rj z@!9S6=JomU|NsBHNSlrT000DZQchCF-FDLwrc6zCuYaO}j z<>lq{?CO(o&bhYfT=Ukrrhabp$r$Tg)3$BfG)>dErfuKe^s}NXYY%SQwoThKZQH&% z*R+j$Yo87M;(wfTSMJf8rrD$2IP0pXLBDLKd+r6@G>voHpJzZp z6Xi*`I-jp?9ko5YTHEL2+UfkRWv%xBr}H|CbsxENxqtmO=K1ml^WWym`F!uSn>U}& z=P6!-eQ>iPf2-=kMPI1<%iR9LoR|HdRM)O;+jcph&r^K~@97}XP%_ps1Hf9A+81Ch zD}dq&Kq&xF$_mV7`C9Ig3R7kDuz^>lt!vxrd_JEi?T-?;bCa(CCj7fMfFWA^Z}?#DF$B7eFZ8R$qN0bM6Vq3fuic#_~dBA1D1 zoD~ILzmQuU)2-IV7-RP5qSG+|m${6_HdpRIJunhu4J3h9blpUhODQW#r0l4aQZO@h z^D;Qf%lc(pJ_efB)>>=zHrUFQdp@5hUAyZ7G7}Z#5ZB4lOq3VuN<{;(0L9ZBdk zi+`sHP&5QTe--yoi80n%Yxm?`-*b(zt~t1CA4Avop{nZ3iPv0`;f}j1s)moWh4`;? z?fFvF_GI8=5qWUy`{?GVR)9z0JoOzH4E$P+rH^WRVFtjGRFy|n2_SvP6UHHPE`R*m zPk+E|F43*;x%#tY;J^Sn3b7|OdbRfB7-{H9@etKWY6ZHW2JhAA<2;fYy)R55raC4U z=ileH%QYFyyJV>A&ys;%0?>5>IE<)b1~3py;O&Jl0UhPz;b}roiK#~-27CF6p{Dn2 z*oWG9;ntr-w-dZl#fl`esy$1`cz^9GRwO{zmHoj)1tT#>0SCn@rmvaE%zvC2I3C=t zV-Xo*7!$D&055i>p&GyL?#qjvt*P&+olL21*-^vMI^7s(=1Z9 z<h-k%C2JK@o|RMHZkOee%}*0rztLD8^i-F|Lg7##nb;`G1kfDBhPbC>67K zrO1yZ5C&3;(%=~r^}wu1MILCtL_Crrnj}<2fo4>s{D2%{2Gd9s6!jRrB0ou}h}riP z%LA^vs3zu}o{cfasP)R#w_MLyiE@l3he|?RCB_nIB3eoaDR_)F14A5FPbnyjb|hMI z=q0LYRv|AGGbs!{CVwbD5tTwTkuN#+5-CfdHQDrl+nRiTV7e-;jWK$>;p+F%MMn~% zBqHe;#ZxAdPyrn!qPe0O=sK22nP~2V1d9RG5ZX(Oe>-M3QSCp$Y&d znI9bXYjtygUVnP6?N-T*(OTEFuJ5>YB`Ty={5sp$9UBu;!W+O7JM2rfZ*>;#hJ~G<@VXR_k7tV@s)zO{TTh)_RBA+vrm8 zX~kUm;8}c#p4SpQvIQDNK0%cC+&#{9eZ$4g6_pth`|EjrDZpA}4+@r2ZaXhWr~b1uzWMg6 z7Odsrb+yJ>dz1?{TY3A~+`~14c)qVuq<*>{P#T{9eBcU)YXhhDvl@0I)TtCn(S zTTA)%d4KNzzq<0_B5TteTi`8!A8{*u|BCEpJ}Vcld6*0@&%}MT)%t7h>8ZGl=Dl3V zlLhx7_tj}Tj5$l{wRtM-V{T)u(Rx39{-8ZQ8+R)g+XbulQ^LzP--r5```S2bwstH1 z{u}i^;l4J`J{R=Y+}FlAS3TWLrk`-DC%uLD12DIG>Kml5+@|^ocXGeIy}nj2FF)i) d`O{B<;vbxPMN7MTCAI(n002ovPDHLkV1nI(re6R6 literal 2205 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 literal 62534 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 e!T^AFemsJ~Dw=tA8zX+*eA(eV_KN4lli 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 gcDBye*Fc!YybcN diff --git a/examples/sql/drilldown/images/qt-creator.png b/examples/sql/drilldown/images/qt-creator.png index fa0f6ed7cef5f69db1c781fe79eb05a992902607..0602bdcad1d643ad4b4b43600b28df5ec681543f 100644 GIT binary patch literal 6655 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 Csx$lm diff --git a/examples/sql/drilldown/images/qt-logo.png b/examples/sql/drilldown/images/qt-logo.png index 53bc39c38c11e10d7dbb567a2dcc59da7fbb2f36..7603fa0c903907396e2220d9a8b04788c9d202a0 100644 GIT binary patch literal 5527 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 QYXATM07*qoM6N<$f}T+zM*si- diff --git a/examples/sql/drilldown/images/qt-project.png b/examples/sql/drilldown/images/qt-project.png index c34d3f099dd2a2f95e1dbfd7a33fc98c8b183f44..e066fbe3f98480c65f646dc28d9897e07f8f2c24 100644 GIT binary patch literal 16832 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 a@c#mr<$02Fk=6SE0000P)&00001b5ch_0Itp) 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 VN%T@j?!N#4002ovPDHLkV1naHwAlav literal 6776 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 Ll#2rm;d|?EtfwxK literal 5149 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 diff --git a/examples/widgets/doc/images/dropsite-example.png b/examples/widgets/doc/images/dropsite-example.png index 2c42c7be69ba33fc1a4c9a3488d6a326bde109e5..c555dd3609ec974543ee85d70db8ea4986affa8a 100644 GIT binary patch literal 29056 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Μ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

{MuDgC|t8YIW(lVduA4p0w=` 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Π0`9idl})Ofq+iyh+r%FDjR~ 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 literal 36033 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 diff --git a/examples/widgets/doc/images/icons_qt_extended_16x16.png b/examples/widgets/doc/images/icons_qt_extended_16x16.png index 92743690e30d05fc47da7663b3db16c61d8a6196..8bae9499e4523137225eab0e9f125536f58ce95d 100644 GIT binary patch delta 549 zcmZ3$xtV2xWIZzj14G)Z;;BIDZGcaRE0C@`O>Z;sx4d;I?UOZPuqc<|xkqmNe} zf4cVM(~aj}ZomBc;MLcMZ@)fy_x;(s@6X@=c=7T3t4}}QeE#|N%dhuee|`M+`_qp< zUw{7j_UrGDKmUIJ{rl(dzrX+f|NH;{ze0UhgBt?_BcrE_V@SoVx7SYkIR)}GByz<~ zh)i*Fa}*SvdXv+IW$MFkf92Z`bWOdT^y&ZXy!}s9-hQm;Q!?de;Sf-8XkcJu!om0x zYCnBPhRxo!zJi%IpR1fUk2P+QN$Dt%d$xFu$JO-C74=zbxAM$i^JiK|<1s(e|7+Gy z>v(xg+df>AH&RLLzLI>urfF^8!q=1UPcwWJx7cy5ifKZp#*XV>JzZ|;_dVUDrMLgw zn(0$dJk{AJZ5ZtGq1Jp)`L^wc=dZl;&F<~G7nLh-O75=7!s9|YkldsB3VjQ7+gJSX UV?1k}4@?0Jp00i_>zopr0Ch+z+5i9m literal 1184 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On1SIdNiF{ySU`h9MaSW-L^Y)H!hD@olyWxD{H}AgCobgLci`Q@N;RALhvnM-KWx;u z-hC#~g`-VP$!q0;^a&ZWma*?`{C7mcL4uhhnIVx!p@*@>u)%;$;26W9ffJnIae?{O z=U%)^Qlu?Zc1N^cx_yk-aWHRs?c}K0&_FHl>C}~iT?L%nRkU> zTottM(Vt~gA~w3*>3BUW?ReDnn{#j9et++#rNEanZY}S7&+k$TjsJW^_snVMyXSfD z{hB11sTCGx;~%Z3KX;#ra=x;b)LHOX6oJOd%HF-zaN`%yZm_d^Sa1; ziME^VEMpMSq&ss8-)?6%wO6n`^bcj?N@T)WpWt1DP@+qNU!s>i#e z+WF*VEO-9@^Qm>}l^;vjZ(h83@nm)Nu64#HCL&*+ShWD%rm?idR!ParrSsF&_n~)R zzI-2F_vdVgRjl>q*AruvHbrQ#SZ=9%*e%%YR#!gl$mAJo{_4Ts?ceimOTD?Z3utW6DWlovrljlZiJ8Y#U>mUV`IG+$Wblgtl1#i2l6C@Ib3d38!Kvor#}zHg($BwCU&4W}M5Mc|LR2`RrNebLL+v zUVNo;@s+A&*XmYWYgl=$an<#vH8)z;+-O~Uqiy}o&J8!a>o?x&*>tOK^X&;+Z%^8G zXUev_Q?}ooy666!y$|N@yT4%Hg9Qg3EYKYRbfg~y++KK*>-#g}_8 zKi_-#_1>FrkKcZM^6vYyk3U|0{`u~E{qHY7{(SxU=i9HpKmPpt{qO(3|NsAAysbP3 z7#?DtE{-7;x87b04`K=wa7(On6*$JwwP?Wt6;Z?IJuF8%_`dwx{%A4xhEwy}i_I>? zhlYRMyD>t==(|G$Ffds-1Qf6{lvZ{0zg>Fi-`mqCMC&h3QOQ)=y{+8zgVUMU+YfLH zdh9%17CCF)Cl{5rhjXu9Sy`pD?M=kouFo#^s|f`!SfTXpi+y|&m` zDtlv-{-QkVT|Z`hbzO5~=Pv)u+rAb`kJdkq+p(%{$IHq!P1UQtW?kt~b~^d6*lkkR zJdUT)nVu{6X)EoEu=L2<-+y=Br$@&g9=<*Q*yp{>_#Do}((&KLWr6(E%lo^nd=w3U PX@$Yl)z4*}Q$iB}-v>x~ literal 1219 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On1SIdNiF{ySVCnL7aSW-L^Y)H!hD@og1%WC_fvE@zY`P_WoJ#~vNes*!ODYQLrTzcff zvV}h0?nb?Dt1tQQx%AyH*hKitrCqJ>JJ0WX-qmp}C`Ld1%fEE%ct4k*r&%Wpy|ZU) zZ`QuP?o9pjkn2tJb~-C|D=u<5=~cLQ`L|o`&dYy4cE4Bs%*XC-@#9sce?Ib`TDN$L z*wQAsoz4rp726j6pA&w3p1o!GuBummZilanwZHM@nfLF$_h)5aoR<0UC+Y%oxn7Oo zmT7F}S2tKRk#MW5 znS$4gd6#xeAI;IKOwKFXc*DBr=kG1={y6^KqFq*8Q?n-|N?(LaR#w)L|KIvUjZKyEom7Y8RL%x$oA5 zr&oKEw5Ann&7PU_dGDu1Kirna%-kP*_smzvsI^shf#E+1U%cz&((kE9*z=AW3R z|HrE4%~56lWBxLAzgj2$-0Usw{W4>>>}r$epVO8+{5R1swlx17%kFJ@54#`!u8Yq8 zbmxv_c1Uf_mn%PK>g)T~N9P)!|7Uc2@x6>*sjwqE>X%4g?0d}yRKIXf+K+j8Z$sk$ z|9N@j%aeU~9B+FaeLPV${amqjC)?aVzf;|}NUxGmv^KW6f4eI9vh41!;==O0Yrc1X z%3ZCQtR8aI-(}0y4W(&QbVAn}9dq8ie5?2Btt&*kBR#Dr<@kz3y;=91%iXv)*VwoC zu(+P}>Fs~rqFr46T$&rbE}FNZ(AG)p@#b>-nI-4mp6C0vY`)jgS^xjuzg2W4a_8G~3JontSEYmt)TbJf)e%@0HbL}rh>FeL$UGZ^}*_O;1!ISrQPU`FX^MB6= z$Cgh_`_{gD_io*~yM4i$YpqwW&X)FD8dTWc#>c*QHJ{?{`5!sB@Bi&_mmVzH4V2jx cZk>zIEYl3x{v}{9uyA7VboFyt=akR{0EML?X8-^I diff --git a/examples/widgets/doc/images/icons_qt_extended_32x32.png b/examples/widgets/doc/images/icons_qt_extended_32x32.png index cd3d0f325510c53d0e1a76bb1ac8249b781bfa7c..7b0c54bac3ae1c2b4e5edb0cd9be6557b3303ea6 100644 GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On3?$QL6;EYgU~CKU32_B->kc{9A9Aiglaq8LRIT!NgUd&&3xpdLx@+Ft6mt3h@dZl*h z)!JoO>Xu(^SaGdk<+a9D*PB*fZ(e=9WepJB0HW5lH`>XCJ@;qty+42NgSq?eFWC2B-u{OR4?J9a;Nj9kkAP^|iKpvNKHG5m z+2%9Pww-yt_3ZO)=U(hM|6=Eb7rQUM1fo5cUhcc}YVYM&`!2uQf93UotFI5OSFT=l;pi81lSpjAMI4#rT4T9+`}-?rr`szF%7=STn)3RFsmaGAJ+?v*?#(&Q z=Q}s1Z|?4mSiV0v{+8W_6&!z+y+tS5*SQd+@^D3o>^2eWQ;r?V4$H4_hnF$W&v#dFYuI`z&109)gG`nrp-XO=yh~=*oiKG* zkaJR6so47TFU#G|nfB@nSj^fK;|@!E{^EL@*rEADQPclP;T@)~OH~TuZ4zu|o^uTr z8yqoP;QgxAyRc)K5s&xu#O2=(uWFmX{zm7ImHnh5`^8f=^W$3;HkC7a+*0YCR3F|gCz3A55Rc+@OoN6w2W!vVZkN#}>spQyk zil?mTk8EJauSYk_e3MkUEjS YQrzdN^?@bz!0g4~>FVdQ&MBb@03_r5v;Y7A literal 2185 zcmd6p`#;l-0>{5AC7Me&ms}z%_ouPB_ArU0HG5*x+(r?FT*p{53N?;?y$eGlAevqag{P``;&*bdqYpqkAx+l*8XVL(nrAsBlPtpEtYFV-m z-DJ;um6Qmuz2$Cg_1lVBr}i+kQm!ce=YOmR+~+`z3m#rL!S-0;SZr6F=itXss#5*; zG(*ywHjYH8Jt{0y`hGq?#e2>qT(_!+64oz9P5&AiMfNCN4>g!a&(an2WI8ZZ*>)By zqwaLKs+r_0enrF9_|jefa0P9t5fwAmqH{4NoE)?nJOR%vAr&4Cai7}kv~zpXUTMp7 zRSuPq*@O}q?Yo+fO&|P=VQ3{Ey7lc`5t51h5)%uSKUn0HKj~rXXs2>f{B@b~yk8f1 zyQ`SY5i<{FlQQm>^_n@hhFJpYKn~>nnB$TkI()hbx3_@!j1i?n8S!PAgR~*q-k+XW zU7nyn(ghsrdXiSr@*_4grXX$MNGUB&qrB2+V~yEr{CaefRq zZf&o?Y?Q?oi1p!;27ESzvAN5kvbGE|ZxVntZ4eNNt|zGD_i@ixy4;Ns^*1H0(;&i! z#qv9b&(<|vUe|~3fIeJA*AR^v2Etz2tpqU5%R1iL*Gs&C&4nhF<>oIXwg-y;TvzZV z&2y9{qmO`3c(2Y`fE-STW$0vk6$bLJf`ZE691|%mmL=C_*=|PpTgZo}zA)Y5d9?tO zw{iZ8b`-M(wbdRz)J96!-AUahNRIm$GqKp4I}|RyMGLd+E)NG^fAD~8`OujskHO+Y zT+knGx;qZ$rAAM9;01A93bRGn#(S*udHwU(dgMh!cRiEe5glZtlyRnduac48z*f6{ z%{mx}_!`5O*^T^`4dzQ}A@g+jgCqNZQ$699`_P$>frrjNi9v6!@|(T$qTaCvE;ozC z8_kzOuh*8V%oBI3GulqzYR}~W+5n?v^Z^)9Eq03Q2vAMBs?4uNW{Vc$lG@jQew|u7 z((}5}=S7w}MGg$99tjQ!dDghFE8fE5jBT1?`i{}|82dJVP!mXdug@v~ZK(GzRy0j= zyF*kSYuFyEGrKIARdA)tXM-$lbErkp zie+kACGe2dDpfN@y(+Rr#(h{JaC2hb+(w$AN8G9T8fqeIe9bYZwV2U`5$h9oL{Zh zPgJ(Z-h7AoBWU`9MFS#!ZuUVmVBf9!yq4A_p{G*WK84e&lC=?>whnnzLxybzW-Y8G zz}@pxH>We4+`4?J{=;2}TFriF80tdF=S~mX^?<~ox;J5x{uw^4o&@SGTMV1*ck0jF zgn8kl6lLGuFRWw^d)wn>!UR>!`@LKpx2yy(sK!YoCh9~^du7|K1|+<_nA*85Ibkmp zxly~DemUKM{a8K?LqwR{{-hPWKnSkRo_~4l8W(%8C_p6!p^R;i^iSL- z@mKmc_M#?WGk5?&3JRp3yOxJed$9uRb5s5`ZWHqwE{9UO!EIGWDeYcTrM+r<80y*i zqGNpF$W76Z2)Mo@lbrB%9bh#5`J5t#*6vQG*IuL2foGwpZ=a_hYM1 zdrlO`y`QR}w!;#iTr%v4QtO9eu)*J25iRb4{)$tuyL1&5RSvST**3o!*%dgIHo~6O zB=(N93gKPWPdx4s4C*q}(iL7tVNd6#B$TS84-n}CLpScfv-;lmW6i$e^#S=Uwc0J6 zLsJoy+A0i{a|kCPpCm18xpq+&t8*V8=eC#Fj>7j(I_cvk_GhkS%aP*=B3D1Hxu<&E z{eI h7|fI_&{*SNpc(&OYtv{r_V>jAoE=>p8twgV{R6ld237z7 diff --git a/examples/widgets/doc/images/icons_qt_extended_33x33.png b/examples/widgets/doc/images/icons_qt_extended_33x33.png index a67565cc2bfe6ececef0fb3df89ad485b3f6b661..1a38f6e44b0653dd3f2f7403f5b39d74010df2c4 100644 GIT binary patch delta 964 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 diff --git a/examples/widgets/doc/images/icons_qt_extended_48x48.png b/examples/widgets/doc/images/icons_qt_extended_48x48.png index 5aa2d73f71a3ef6427ec2c3177beca338af62159..85dcb5f26c6ac71c5e01c01a0b50c5b188b5769c 100644 GIT binary patch literal 1270 zcmaLXXHe5;9Ki8^$O%EktLH$A1GE&-E2EwsyPzg!Cd zfD`%z>NGTSRu2LWHTI9hasaT~iV4OZgPs}vM>G48S^cOiGUV8O@=rL*aUA7DHU*tC z5cFUmIF}ldM?HzBV(>IfK0T~}7FGb2jxD5}DWr!N(a$^_JVzKjPhdnmVq7R@{9N+! zQYrItDKoN+b)}qjwSpB>!HRvtzW#(A_jD-k8Rupd=T_Bl{PW@4)x!xjBS|%*$+aUX zwWGfgM^lKSsdZy_>&AX>7|&>!$oz96t8o(ddNTVBH>Zi4+sw^t=HdV1<+t*RTBnNM zP7&Is9<_af6qBY(Nc>_FzoeaC+RlIcj$igpP}adO?+`#LItAsO!pbf|WtZ@2x9~}i zsOtTy=YNZ8dL?yzk{A7}UXo`TC^N4Hq_3&cCaSE7CT*fYl{F8_S{br7hP;&_fBR9< z#+1KfDo9L4J4@NYR(1}p>KamYag;qARriSc!>Ib7i8=D*9ECei<;~Nk=INgn82kmM zK*JI)3<))Cp=L;=<%l)IV(o}nJ36f$lYAbN=q6@#<5JzERL7M;79l+Os!s|%U#S-; z^+FZIAW|E|YQyxbetH(FQ8I6oE|}yCCWXeN`fQoiS?2T>jebdESkf9noe5ktfqFA& zFfSV{pwR-FEXzjAGF0=D)eKsfmTjQbx@@&UthN=~%F4>%N|+7WkY{Mr5p3$zJWp|Q z^QmnEQS1UwV?n_OVitFuv6;JN9e2O68NqFdI{qtyh{qFgbj^=?@?12w2%qZXr?Kee zb6+oBO}Lh_5RApXMhLGUklXsd$o0)}TOak`>x#QXMF?>@$p@92KHrLRL7(=_kaX8| zh`=LEPKxS425Z_Se&=3xV=Lw1#bj~Bivy^}jOUjIFAjbC%CecQ40C zWsR0renH??0V@kE?Y3j)yZXyFlsIBGGY!4D+%jxdx`%TQatGWKA>S8y*31cYj`i-9 zMP@iw8Si`A`R`^9^t$iHdjLF9Ku4OZ4(4s2=v6!mzhf_s^{oUWHaWo7W?SGbB8NS2 z@!b~3Mu$USKs_w2prU>kkeKdj5BEJ+N`>i7_c4yW!RSDbWgk0EpI7t+>Eu2va20)e zjW6*g4vDe@9@oDJ5VX*pE{AOK*7&snooRX6cDJVMX50Z(Pmfc0RF62~A_kqzPHO-O zhj~X%Rc?2A6-^Yx!}H`o@Zx*thYtSw$F)siIlJt}(HAoV)+ZI77o#tpF}}=YUTOt@s2S}JB!y1e}C7~cY~E)zhuJS$`3Lgn&HI+xpfzv zCn*>=Y=>FMq+LJ6n;x7cVQoA7uHCz|{Tr8ii~qMOAxIJ~ZH+MWWeQgn;0}FY0Qy)c Js`+Rn?q3c_)=mHb literal 3805 zcmcgv`9IT-AAiTpkz=Gna+Nblju>()#~dw-a+XjcL&z~3M#z=>9%|04+#yDCe{6E( znxjnnM9Y@kvTxt-AMt%Y9?#eF@%-WWcszf6JrnJ0uJiGT@c;n8XJKv%|Et*ll8f!{ zU6d1M0093h3sWQer$zMQh$o1t{BENE#%9+W>f(7Vf3|3b9i*sS75?b>DaD&E{Kr4G zsC(pw*y)m#D_zvjHa}^;=TJxg{pCTkN3%<@CjREhNOrg(^673&Ip&m*xiQy?#}Ydz z(pB1zt7yv8veoJgO3EWvMt1flJ;;AspZKGL*ttRC#+Zsg0BzbTAsz&Ik=4PUv0^UD zChf_E&60+|;|>4+#eyrwkc(whGR;>-O~-=Aaj=cZgBfZ~zJp8T>SWGPyQNO%#!sF0woY_w z8Hl$}EF`hCCcQqWYvbW$X;sN={o4cuc0pL|`^^E5!p{{)D;ESV9vps!OXhJL_s`pJ zrY~H&y8Z1cRLiqk+L#O2_%RIg5%K->ki^;MgHWSUS9p@vjw=SSK5>KEBXZK^@NH_7<8mb3GR(XTj1&f;M1$H}rM5 z56gNQ9sK1r6u(P2=hU^^ZB1O*HDVf8(~E}av=LUx$%-7yK3V@;;+MXLqo~Fg?D)8 zTuIDLl?%=ZTCT!YU>S(<;-SgXL`BvI10tc?MJY<&wGaW# z(gMVnVfYwR{4@`U3rVOJ)-Ydf#E*Z@nK`O+;vDaNB*8hMi~H$VAGp!U@y)J0HH2MX zjBQB4M&3D%9TA%ocJIALtO;n@S2a^9TZj+ijmB}4ZoH~W7#=(TO~ z>*(l+7)U*9Vq!w;(3Aw%gOLF8IBz6r_B(lbS(pd^GF^fLb3!gY0mH?GDU@6z$-Be+ zv?7H7slriyUS4r%;H%cw*3Qn(#>P#?mtJ;u_Sm8ORzaKUWIc7bwT?G7v&;viP;&4! zV`bG=bZLwF!u0wuZydVyp4IeRZJMl55j$eaPRbp0(Xy&SL4T(%3Hj&U=bt1J-YS>i z-1h6Rd8Jn>J^9|+O9iffT8oVbd4yMZXK++A(91IO?}N-nq>z*3x(`*|-*vmqSbsp< zqv+YWGUJ|L9s;e=SI)M&01wkl-mmu?>QX@0+wopXJ&?m6Zn?w|B-+z@)FpK3qNn(?ATAC~#;?xUL<{S>zEXUg zrjP2kV=*)}JHzy3Y|u(ds~{JpB>2EDAUd6Wy)O2N_>gMN=Qb43bn zC2y=Pd_CYWv|PgZKKngv(uryry*N>BW>V>P!pLx$qRI=1{ILDE{fe5Oj>E@{9;h%+ z zR~9>&2Cb;@{U7&`HwQ8~g*GM;*UN;Wm>+KTR?4`B?y*g1@Gck{+q6MnKny_x@ysd@in2a_=0tCgUrNIt1U_CfWDz`OA6rjz2^nJ`HeA96P_`9!T9{lPox%XhecDgH z#nd+tAFABCg23)MBZfv>VSDtO0`j?%2cP_QnkT1nEM1mnpD>1&-v2?RwdIH@3zxR& zyrW(V_FHOgeZPyT{vM{akbAY_p_t5E7{iYd34pr61sbWp+?Ou4a4Jn{O%9$ zo)OUq6LT|pn;0q}wVJ;3+sRSPUfq?j1zw1+z6MpX`G)=RP0o^^DPkW@* z<+NIDG$f+79q<|Xd=752foF}f16;*$P!kfjnVGDTSsZ)0WjZnrKp5VzD|0+75h?{K z8o`}eGI>Lun$~9LUr|sd_M!mL4W$P8ert+9tWQnx=OgPq>2nU)s*xn2Z#%%ILv8mA zUzL`}fL;KyRq#oT$>8z}rqhYnZpfN*Lt+w2t3HltfV6upng2>P@d8K}i8ojJN!9xw zLRquAT}XbW9ebem0*8G}siN3awXxB}n5wFKdTFBcbC7kD@;#BNYI8*)kTJLH8mFUz z#AVam9_S3elQvP7G8eV_tIgIQP4F(&brPAIZ|z-?kgg;c(Dd>xg1&y&$peFxg?Q85 zG4X8YMM`@BZbwrsyBo)%&&eRTv;LS_{^PqwR#189tRCu%ZlFycY&fE{4Y{}SYHwtI ztzL3mEfT26EMmi#Ldun3(&pS!04GCK)iADX-6&u~6K{{DmwM&|q&gLfu`%j}kBW~OHIZ9LCqe|lhs zy$oKpc^qf%mwTy;_F2@xHIiA36YHqL|0+*=zy`oBFlNrBwWRnTzg>nqIp9%pB<^(YxP>$0Dk@GHI(CEq^bExh-1_#M4vKId?&y#Je=aaF~m zin|3l2*H$=R*-%83vtrkcLu sjZRks84p9a6iuZ5-zMGMrjNz`eLV9O6MK~LceVl+W;Uh-WA~W<0H(DikpKVy diff --git a/examples/widgets/doc/images/icons_qt_extended_64x64.png b/examples/widgets/doc/images/icons_qt_extended_64x64.png index 5aa2d73f71a3ef6427ec2c3177beca338af62159..d0bfd97f10b47284d9ecb6999ccad8079220b274 100644 GIT binary patch literal 1614 zcmYk-d05g17zc1>hgTNbQ}S4QJeFG&YuVf?-Qj^#XLDIbT4tp^mR+V+wtU>YLsV8? zQ&aOu$F$_|C^b5OffyB^Jrn2!u76TI{-SvPML{NZdnI-MlGN>;O!Y~j`le8S zO$GIU{L*^Pr1kuk-V5@7*84lU_bj>(6p+z(4%2rY(;t}Ge<7@2EthdUj}ex~49{nV7ce3Um=XUB-YjHB77j)hu|T(rS$AKu@0GCc zmkdRfvZG4D9C}bT6kRqH^NJH&&UskDiL2l~s^C7ZsBq4B&7JRd{gWfBA!B0q~L0A-W-Sdsus8pAdS{%#lpJ#Q3(UNi}F znuNK{!o243ym#XTEuz8}QBkX?s7+MTHu17;qNIKD6?vk(W2&Nas;YCUx>H=$HC59k ze%&Rmrig1OVjM+M(=Gn5Tkq-ct9Ua2h(8MmW`QxOS~v%cW8AkD;rW^zF@wFp`fFRe(HR;Fc| zX_7Vt z3E8BZ=3a2WB16XR;rn`Mp=h`54$veM zq@9uFC*$Vl;#v4OIrh~JuMn8etw%7c_8ErvA5e3&`{_Lx!2^}WaWT{h%RR+4-{mx>^dTKz!7nzQH5s*~ z;FeqsyCQ%fAEe8HAJpd?M>*M*A-+<6qRGi-&*3M)byu0E4i&H)T}W4jK6VZ0)w+;1 zlMu@t2yarJJ06q%#-BCQ7P!aS5kd)le|3(pY(3+s&+dT3E01R8o9#E|J~V<&vBY27 zyKn-xXTf^JUQXQ0xFc4lO0nj^VCZLV)CUw>H=LQx1xj$zhAWDQ+Y8*WxpLhy5+S#a zwa@;EfDT90VDvWG?gTU)ao;(lt+(4j6(qEu^>fCidzr-FYAsZ-PZ{keX7nJOey%3k zB0R=!mFnE84j{r%Rr?x>f3ZM>Au`{k;mTjuhJKa_8?1bv>B3c)bUHXUA>wX2C8j%H z+kTpvadg{NAkxH|Wn-KQEpr(mJWNdY7YBcv2rUgJN70R+#WhODV#sZmwRR(x;ueX^ z0je_L#68Jk9I5VEN2ERU#a-oT>PYnNcKi|4vSeI*(j9u}JS-nYWI~3dV_s_NZZ$yP8nBm(fUE|$?@TLHyDyimBU!<<4CLYXXUFJAnuYUBZ^Y1# oBsJK5P@f$7CnGA6ki5EMN5lnn!hOe!;A4RJdif*kJ+3AH4;Ag7ssI20 literal 3805 zcmcgv`9IT-AAiTpkz=Gna+Nblju>()#~dw-a+XjcL&z~3M#z=>9%|04+#yDCe{6E( znxjnnM9Y@kvTxt-AMt%Y9?#eF@%-WWcszf6JrnJ0uJiGT@c;n8XJKv%|Et*ll8f!{ zU6d1M0093h3sWQer$zMQh$o1t{BENE#%9+W>f(7Vf3|3b9i*sS75?b>DaD&E{Kr4G zsC(pw*y)m#D_zvjHa}^;=TJxg{pCTkN3%<@CjREhNOrg(^673&Ip&m*xiQy?#}Ydz z(pB1zt7yv8veoJgO3EWvMt1flJ;;AspZKGL*ttRC#+Zsg0BzbTAsz&Ik=4PUv0^UD zChf_E&60+|;|>4+#eyrwkc(whGR;>-O~-=Aaj=cZgBfZ~zJp8T>SWGPyQNO%#!sF0woY_w z8Hl$}EF`hCCcQqWYvbW$X;sN={o4cuc0pL|`^^E5!p{{)D;ESV9vps!OXhJL_s`pJ zrY~H&y8Z1cRLiqk+L#O2_%RIg5%K->ki^;MgHWSUS9p@vjw=SSK5>KEBXZK^@NH_7<8mb3GR(XTj1&f;M1$H}rM5 z56gNQ9sK1r6u(P2=hU^^ZB1O*HDVf8(~E}av=LUx$%-7yK3V@;;+MXLqo~Fg?D)8 zTuIDLl?%=ZTCT!YU>S(<;-SgXL`BvI10tc?MJY<&wGaW# z(gMVnVfYwR{4@`U3rVOJ)-Ydf#E*Z@nK`O+;vDaNB*8hMi~H$VAGp!U@y)J0HH2MX zjBQB4M&3D%9TA%ocJIALtO;n@S2a^9TZj+ijmB}4ZoH~W7#=(TO~ z>*(l+7)U*9Vq!w;(3Aw%gOLF8IBz6r_B(lbS(pd^GF^fLb3!gY0mH?GDU@6z$-Be+ zv?7H7slriyUS4r%;H%cw*3Qn(#>P#?mtJ;u_Sm8ORzaKUWIc7bwT?G7v&;viP;&4! zV`bG=bZLwF!u0wuZydVyp4IeRZJMl55j$eaPRbp0(Xy&SL4T(%3Hj&U=bt1J-YS>i z-1h6Rd8Jn>J^9|+O9iffT8oVbd4yMZXK++A(91IO?}N-nq>z*3x(`*|-*vmqSbsp< zqv+YWGUJ|L9s;e=SI)M&01wkl-mmu?>QX@0+wopXJ&?m6Zn?w|B-+z@)FpK3qNn(?ATAC~#;?xUL<{S>zEXUg zrjP2kV=*)}JHzy3Y|u(ds~{JpB>2EDAUd6Wy)O2N_>gMN=Qb43bn zC2y=Pd_CYWv|PgZKKngv(uryry*N>BW>V>P!pLx$qRI=1{ILDE{fe5Oj>E@{9;h%+ z zR~9>&2Cb;@{U7&`HwQ8~g*GM;*UN;Wm>+KTR?4`B?y*g1@Gck{+q6MnKny_x@ysd@in2a_=0tCgUrNIt1U_CfWDz`OA6rjz2^nJ`HeA96P_`9!T9{lPox%XhecDgH z#nd+tAFABCg23)MBZfv>VSDtO0`j?%2cP_QnkT1nEM1mnpD>1&-v2?RwdIH@3zxR& zyrW(V_FHOgeZPyT{vM{akbAY_p_t5E7{iYd34pr61sbWp+?Ou4a4Jn{O%9$ zo)OUq6LT|pn;0q}wVJ;3+sRSPUfq?j1zw1+z6MpX`G)=RP0o^^DPkW@* z<+NIDG$f+79q<|Xd=752foF}f16;*$P!kfjnVGDTSsZ)0WjZnrKp5VzD|0+75h?{K z8o`}eGI>Lun$~9LUr|sd_M!mL4W$P8ert+9tWQnx=OgPq>2nU)s*xn2Z#%%ILv8mA zUzL`}fL;KyRq#oT$>8z}rqhYnZpfN*Lt+w2t3HltfV6upng2>P@d8K}i8ojJN!9xw zLRquAT}XbW9ebem0*8G}siN3awXxB}n5wFKdTFBcbC7kD@;#BNYI8*)kTJLH8mFUz z#AVam9_S3elQvP7G8eV_tIgIQP4F(&brPAIZ|z-?kgg;c(Dd>xg1&y&$peFxg?Q85 zG4X8YMM`@BZbwrsyBo)%&&eRTv;LS_{^PqwR#189tRCu%ZlFycY&fE{4Y{}SYHwtI ztzL3mEfT26EMmi#Ldun3(&pS!04GCK)iADX-6&u~6K{{DmwM&|q&gLfu`%j}kBW~OHIZ9LCqe|lhs zy$oKpc^qf%mwTy;_F2@xHIiA36YHqL|0+*=zy`oBFlNrBwWRnTzg>nqIp9%pB<^(YxP>$0Dk@GHI(CEq^bExh-1_#M4vKId?&y#Je=aaF~m zin|3l2*H$=R*-%83vtrkcLu sjZRks84p9a6iuZ5-zMGMrjNz`eLV9O6MK~LceVl+W;Uh-WA~W<0H(DikpKVy diff --git a/examples/widgets/doc/images/icons_qt_extended_8x8.png b/examples/widgets/doc/images/icons_qt_extended_8x8.png index 8de7fce038a3df61b43bc204fb774680cc31271f..dcbb5811c6b6548de08f4d561e80167fadb65812 100644 GIT binary patch literal 340 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On3?$QL6;B0HMFBn`u0Xo(kW>93=f=Zs9mfMZ zj|X+12<ZQr*0nd zlI8|v@Wc8@(ViP~-zB=-j1S*y)Vm`5c-jQFJyyQ4O9lJiJ(aq@ai{P0!zPPtd`?A5 t7|wcs{(QN_$8H5Qa0%5G76IKC+{e1xc~9*2*$8wfgQu&X%Q~loCIFSUqMrZ& literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^Eg;On1SIdNiF{ySU@Gx+aSW-L^Y-q3zu-if_K)Ac z90*L-Xmd=CQV9|26uL0==!+*QbLN<+@$IN!zSlCjb9Fa&Z~1|Qf(vc0f(i>W8F;yt zss8J1_-e7sLbm<8<=M|WoAN(B`MxfnTaN@F>rIU*V>YZzHVYR?l18YbquDxp=u)a{n)V)qOqp{(Y-k zUsd|)T-y5Eul7}Zdl$I>{`(TEjpd@@k0jcgn@>+RpTDnehechv;@)qGf4w)~%+WJX zey_Fe$oY_Y&lkVUSUTzdIexqS_pRsO{T1k$p7uNmBsqOzZ_3-XS6@GWS6;tu+cxw4 zVaq@NTKewY_Zz#rv(-R>VtIe@IEKe17(nABTIr?6G^HcP9MVS(2Z*a_==h#gxczo4#s&o1-*IMRJma n^8x-15d#>~=+W)*{}a2^iWD~OeRJ0WlOcnrtDnm{r-UW|>Jt{< diff --git a/examples/widgets/draganddrop/puzzle/example.jpg b/examples/widgets/draganddrop/puzzle/example.jpg index e09fb7075700b457d90e845fef814158bc2641d1..023203c57aa838e7a5df22a27bde37b909667c1e 100644 GIT binary patch literal 42654 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 z%0D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 yahI3uL*Ebwe7#c}81|KIb!<{yy%oBuDuZzQ|` diff --git a/examples/widgets/graphicsview/boxes/qt-logo.jpg b/examples/widgets/graphicsview/boxes/qt-logo.jpg index 4014b4659c1100c4a07cb562a3647fcfbb5f1cdd..8d7fab052a0b32c0adfcc18d8086faf9f8021598 100644 GIT binary patch literal 20316 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 Le{{upJ@fwo23FG3 literal 40886 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 literal 13923 zcmch;XHZjJ)G&HNN2-qk0#a0Lbm>S*tO!VxDqW>_={>Olih$CafFiww-XT#Cr1##X z_g(~&d^`BgH+Sa#xifd>MU(8Dea>EMufEq>d9SXjKzD}i3CHehFt@Om?ka7-!*{b>3ddbDygI@dVG3@$t2M&z$ixE%Gvb*B4l=&lI!= zK7u^L)VIv837dsGNh28pD*2Xynv#DFgBYQUlZTVnmIgnV>B7};-LA{}6x!oI zP!B@ElvB}kXUuNNK;2GgX!HJ|M1Aq>phb49%qg4`&xX=(j*AT={~?@x2yxBp^CmCa51G* zMKx{fI*@f3cR&cz+GA!Tq_HWAnZ8S0w5HGJqI91>&!<1@O_vn_>BaCU9vwItSj2xO z8LV78Xr{3te4bYSP2ig)YwEe@0;DJi@{z#P9^MnW$r5}KMh59&wsfDEv?qMY+btnm z<|I-BbwM0&tjP7KC2T-p!rfd#`S|j{4{mON9u@SG6OvbtOg~b5GF;&rrLwG6TmL~1 z$H)yesLXJcKJe$cDcPEb_S?F=%;C;J0UHnjXt_I_pg-?A_sNGH;GL563xA&lyn8y6 zjGo!RrAok%0}YQ=1Qfrn-w_6s3wj258gvi!quF<1v@ z5G9K3!OI+z_dk%3Dg(ujvMbuwSvb8}Dl*g!34Ge^x_M+@!Kx67({%6Ng`Zc_UYdmL zQ>qHCs^yVNaiK#u6rQ**6Ql`WTH$ADTlg3TqLDss0@@E5ppSb{7mfjYv*p)i1t7bb zTVdV@@Kgefk(QBKR)@_+r3CKe>n>7C&ppzj`u8A^#~LpagOt5c@cS%`JKvCFjiIg6 zU1J5xy+G@#Bn+Ul|6xL?ahRNBh>vi!9wQ-%hr-;D)MY4A(OV`vIj&E4$C2&sIH^-S zV4gWuK9>H$UKr}9S;BA7pWCB8z!^1(VirBTtaY=?n^QCnQ12E)95IMlT2HX%dj&o zZt@NF|NI3*K#+G%A$rFntFTnF+CZihQ<|zU7j7hIB<))AkbyJ3(Cb%K#nf{q1_24b zi*YxlTOKz{|DAjn7twKeuwQ1coidJ2?-J}UwO7|XR(%)tw(=9e8(UdI!I0B2nI^Ee zHd2PhC93UM+H9ivMK-_na;pb&ihMRj30j%x#pAJXx6EfDVk#6zG3CJV~{OV@mc5$ z5lZ!RvZPzte0!yCoojOHN>jva|JzG0V$XhGEWK#c)iScM$OOoM^0Uud??UR7vDqA6 zT}pr1ySszNw{6i8;>^-#7nNUds)M!r>5%=)=`qwKVA}fIP*30r)J$Db^M+7AATVD)hb#jDP+8r=w&d7I|_WKliFf}8s! zs8lU``@xOqHPNv{!s<@>%GzIa_aXbIxbW0bB^E2yAAU;fF^}ItyAV{k)$#$Aoy~B8 zH)7R!shzNAFtKNXqP{n8)rVcuFIrm|VK#hldS`d{guj+rO;M-Q4E$M&T0h+2;mjnB ztfKL_@VezL1yC36+b8WtN4QD2*w`Ghx58TAn~=P;9fokk3jD(KrOe9mk`_oA!>|J( z1c2MhmW5n~1io|fK!I2IE=30O(tNmy^>D|e4Gv#^(ak}qu5xm-sGFV3`{}QH!D!74vKOsLx_`%Jq}e=G zZM@@e-xoGDre)g9C2YsKQ^CFI`b*?L+t0X5WY28E++UKxfJ+p^?+X`it|+;f+bXut zgdR??;yOZF1%)pro)NvS*wajqi&&0UQhdU_I@l7huqX%kOMGZR6iA6zgx^u?exP0L zYtt{7R;Rd|^+KV)3lrJs2P82MAki7W6F{)bq$SJSG1Y` z>a9HFh9H)aLjrz-i_PKWI_+-vp+Un`-(`b9l$%PUw-C_Z^w`%BWSFVTOA?TA#PmJg zdI^V2-=>1GpKOW#EL@oOc_-j2-aR-D{KQds!p?VO0>;=3( zz#nv0M1wnK6}N3Ves37KTOelqXJAvk4rb3otsXZ7{0hhJ*W#A7siVBnX>@UTq@1fRk6fus9=ro_NFBn!;X7 zJT9PhT-=NKNhBNe|0ZTjxRgz*|z74XAhk)h_5>KBq3(5 zC*Ss~kBV5*RK!b-9t3;@^wv0@=qa1xrRl5Pg489-KC-isK`9w{owLG*>D=Nf@S2WF zHNw{p)I^@Ywu#TY?t&kKkuhdx7IVFtvn%SJ!b)q5VOoOam|d$&vgoo;wt7U$0q(mAhXN8dS*{@RBX<8ueHt8qzAg9y^xMD+K=ptuyyFE=914L#$W9TE1K5R zD9$Jb4_B+LP~P$FRW+@{HMOOz!K5N14xm_7c8~1pgE5t@n|xU>hsnpf01xE$CbjJY zS|jJ^J!YLT8*Ba=YWbCldx{bjP1$^&cCr?Io|U$7VjA z>7k49vHNw|;PKgyIzmJTzUC-CK&l=slgQ3a22J^v^}Ag#HhmDjjz9TQ20u`@L4nE#t^Jh};W$t@@RZXuBe~khEqyb*vMuA8cjBg78V&Wu-pBJnj&k1)O zpA{Oxj~UR5Tg^?dT)|5_c$oB}NhH=L%$9ERwW6v6c@hY5;hjz{KsXXxtG+ZY z;I3C2hQ=P17wuPO`V9a?>x)TvmXhH9o!fhdH%-iZU?1~UZaqus+>&`hw6_HZDb;J^r>Tqsc9 zGvfsEEbFpl6OLtCE1!bP*OKkaSW=!Vze`(jRZ=xGChd#$B$xnukwD~vVK&>{fYvtN zs)qfA+PuGCX!O@5nQI}!{sCOSN|iE$`GJ}6l*F420W`YTZ;@|oJnLxPMdNFu(TsPHOcErNzTH~?!3cpcP z5)Yc<>VkEDK8JoqZnOIEv87?ohLK14>$Q-P+D>#wv!hKga-kV+Qi?X74lNEGy!meC z-(DNr2C~CNDRleECH0m)A1+kUQKCxQ{q09;n|n0Jm5TDavW;XON3{d3w@?Z_Bbrv! z?b2~{aFXYrH(WZOs%}tyM^~-x1N%k5(A5>_+?*6`YNL^IP=+pam9tEry&?XC zz5GD08QaN=CJaRozF)Q24yN3NxcC3K9htZ(r(F%RRdV>CV^7D%yW=oU(K>ig(5Dz) z_G?Z~0z@?`7eq1?CVwG@(56iaFRsSl6+gozeM50s%9nfIRtE(^fx@Ci`p%8>yeeNg zqGj{%EH(N-HY2a2xhRFr5N9RFo}RZ*714HZ9MySO9UAy%bDGrV%vw*?y!jdTQuQpb zTiFoP*0Y*(jVwb*SGSoT`pTR!noTfY?>_S}r&>Fw<)yDSA1$);?MY$SI~Pb%LAQ#F z^ov^Of({5jIvy%>>H<#_X?9XJspYt~?q*UI=JgjuWjcl94adj~yZq;+FjPj%9-GPe z#lF8=I=^as0nWj~q6Fmb)Uz`9MyFK6zWuGh&mwO zCtr{<*M1|?7D8HZR0p-SQ&K?%sE6kaa&FJXcp4S7^fbkM8SXU99M!e`Ta_%_)znVO z2r>3TT{bn8*qfLd(rF82E)(zg%4RtGip0~p^^Ehv^dPOko$j7M1*KBbxinN7xKUuU zoQpp?GSrxF2(~8czFfcIAP>&1dLp8b@bxRBXBQ^=9B?p~I9$j9i5OWtKhoIzMQg=h zaAtUZHHi{ZdUE(^XuD}~?*ap4n}8eGfL+kfHH!&OU<81eNhsU$AgPzJxEQGH=sfmZ zTL;-t$>`Axlx{KSe2#<+YPkC%XKRmWAO7~N!Ku2IH6eKRhJ1QU|7uR*No657BLYHv zTpe~iVM1vpjgUOU2!x8t)Q>$zRrw7}3OLvq-;%rpZsG5ve4Gm{x-{Ni&u}QUF?T4h zG{E5NDO!^a{B`6{Z+Yy>DQ?Jfy_eM%ddt97)Ls}LcV?(y@(9*MouCL(Ohci=tkBiJ zGZ$atRRZ0mkB-)<#YX-}Jv~d@$%q=3qv>%J-*4WO?QeFE9)?eg*iU~F=n!a1XeXzj zf`ZZ;aYpGaObl*~SOFP+64$%V-?m04>1|<;I)=3W134cZl1noQkaSk{0DUm@g%(om zsKv!mgUFN7T!0cpy?tg3Oe~~tMA}uz4MCW)y)eJ$S&0SW&~0XMCPkCkp|F(~wS}b~ zRU!qr2EV_FQhgSq4XFuNUr^^hU-0X1;dRK#fm#dZ9gG zyO`E}PQUZevef5x|4>g>lMesw`eeb|E1fmS#!~Oy0fkIM;5K^Muu>D`>P4L**o>A( z9@a?Pz$=)r;Up4!n*7@{$#V>f&TU>v*6P<@a05oUl49?;z_8TS&`8wvLi9d6|BnCO zZG%Ju=exdbf`7xb!}y#IQ9RbVy<66q1efkN*9kS3T=kmn8u30-(KH^x_O_&7JAlu` zQ(OAbk&r-Lwr8I7W|G~{q%^&6n7Gj2`$5~oDU~PdF|Ko`9KO6JU1xUy6JLrz=f|`0 zbr@!_Ql~eC0!5^h+1h>9(3JdWm7md}Z2VRR&sM9fvGkHSRonDBrMF^1akqQZs{G=a$vqmN=TqWjh zwi=^^QA!}(2>QP7?xGCISTiAH?8$xa)`h(?1zfH8)aXcg zt|2e|S#hb-pnu599m@dI$PJJHP$1#}Q34G26Ke2;j!1({kWv9^jK4g!vvXzp1=-TQ`G89;4qU0UJ=@JM{E6OP1t{M_H zrx{O2kk02XA|Hv+p+73lch5u-Ph%jF3|{|(!T*pdl=jg9) zX}=Z+M{O+H6v@;V_d0|8ZR-Y?Pd-B4#0qp+) z&Mp64n69gg?QUQe848?9XOz{x{b#qVm)Y9AF!=HiVqpckt<RD-9sgPET)J2u#nU`o}G|DYw6e zm-QaUK0pCbxmj!K>`|y7>oaTLPGu!D3q|D0N%LM6ZH)EM41-l@(bp>+_7OZaR(3j@(lMk zX;q3>4@k|NoTC_8k0t$DAJ96RMpyEy66Ct3(upcYq5Fi3_lJc(J*WF>CHW}(KPx!J zZne&Y_%)A|N~Pp3gqx6@l9yIh;6w1v#XlTo!85ruI{$Pu8VKmLh{1l5u}^Lv<;TvS zzng!j{{fV7njZN{$>Ac{j0<0L!+ufVIIexpgaAyr!4_>_19R8__C2-A$Z!>Y z%C_f-!frM(NmA31Smm{DQtV{}*m3ti7N$ihf9WPQO{IJFnlfzr9XU9CZ3tI0Be>5y zHT)fYd5`;gwnNq_Nxn6&>O;T>OY=aUb}qTENEIGOCCFKq&2a2^XZ7Z*MQ7CuA`sMoac&cM9BmA>hpUu@foTJ$CIpsweiowG71i#zIZCpy$7LHl zBUVhi8ToT78ZJ}@Bf7EACzlk{Tk_E6O9PqCiy~M%Qd+RoJwMsT3{nS&q3MsDsJ@rc z@Q1}YP-r_}8Sv0F+yD*QkjIh}G*gjrkh>lYc9j=p95%SU&`1k39d%(ljtZLFli_%| zemZ#>aV}7$L}N ziXWTY-kUi8?U)O|nQx;d^PPmrLE(|nV!wNubTR00a439}hv|O_qCW>&fUKUVD5H~o zv8WE|#Xk6CQPceFO%yEzP$)q8CRdWbiq;V<#Z?-3T|*7uME!mGH#&a@s4&oL7!*wf zUDGAY1zDHT zzI`>2j2}Ed@{0}xaHdRGRP5+#><*X}5`A<&h?|g#1%3>JU6A{IL<+5p3@MWUgCnwC z9C84?mAQSfkoyx8B}rL1S3h27rWy)uF2pYf*uenTOfPxKyYP|ZkL`xyI>&tq=R&ir zF_pv+XJBF~h@5CC_#4;OZEY@Mk7d^2DYhV$6@GlxU^%vp9!dn#nYQ9>&{{oa2ll3; z86NSxqU{ey$54+r8kv!}DCx-p6z!&@g80x@X5OToH1j^S!Y0{W)WE+rK*CL@+PC3KaZ=&TT*xay-Uua1lOf8px zzTzUpx(iYyJHA>9c^J&nr>tK{hnv;IJ#NG7sf6Amb|l^liF4MRZkkMT>$c;q z-ALx(3<9Xd4EDHP0GSN~Cnm`rR+9O>ROGjqvXjG-AD=-!wlpvQp26}co!pw*g~i^| z2#clVX5FXqjITiuMuxf@bEI{R==jwu;kqa7`!H_Nt4&V2_F~ESjd96w0VELE|Bnv|pA$%g(Rp3rYHSd$7&bpM9!hQ=_cvFOrsbs5 zC>%8M^}6Z$(1sG_nG*h*yVTQc{Uu*GDb(z?WYe5#oP}Dt4_|M^OL)g4K=Q&t>E(xM zh+B~+TK3uT4-}}u#V6vf=8YXczwcj%sZ`D>V?!Phy5~#^eJe)BcHPk(xX#sNP(o^K z8JgCP6dKQ{#yFMFWjJ3hyFeBc8?^8P6)pw}7iSGvri2K>oVmm*S>WJP!V zG7j6aOhMeh($NC{d#4t9@exf;OtNXB<>rERFgAw=J~+#|E#rh~Z33t?$ayt&3YeG( z1hQ#)6nK>5+YeYxzBs=azvf^J)P`o7J=V&`91G9)Z9cnT5-Y73LswTg=syAKbecv4 zV%^Gs_E7)nu_2o9_<9~ODmLXyzNsQ^XaUl<%6u`m|D0Gd`x|-Tnv6F)w28VJ(#u{qqdK}gf5Y9@_4zqG@~EC zL(y2DBx5$h$}*E5$$`||CwpJM@$Hbgu?lX`Wkk|&jjV5dNv!{HQrs)ro{jJbj#GY; zB-HH`XTGBAGy{aOi>9mkQVP#Z@dEsy<;`inXeJrd&MFO%b_osyD_NX!6J_fD)&&|^ ztGnZLIyn$8b0KW4knC!vH$Y=A?H0pg>lJ(_>mW5S!C8SOHexkFJ=#~4wEw<=ugtSb zj%Le8+l6)PHr%Yd8G!e%NWIsI_BV{GncMUUOL^7@qe-k&atlul{oXihlsLj58~7kSRqM~AeJHF~r|hFSX>9l!JZw>?dEtpf%Mf3t zlR_Xfzt`(v3P28ndDR^@<8N+2V&R_qFy79_iBa71J_`JoThQZWM^B}x*V@XgG{8r7 z8T9o2CuVC{HSJ8SE_@JR(n_HNadcOUTw${QLBFyn?E#7JipNd`3W!#%xsBq7C0&^8 z=iyEhNrIGx5g`M#MSbu22@7c9pV0VK1rhIRUd=%z*ERgMlkxI9K4(Ka_;lV=UQ)V$ zvjppSvhZS8{uPkYXpm1GcWQnR(28^4V+SiXjL0dMcu(d;-@XP+eVwm$)z?kd^~Ipz zi40J;B)`4*>FsB0~Xlp+|_%m&KK?Q`Ul|L^hS9@e<5Lxk zjLWo(wc|p|TL%^LJRI4a0CdO!V)$(oG1NPH;1~c6UP)M0??~vFXHyB;joqnS`;#}SW z@^E`c``1jC?V@APKuI1&O1HV& zdn0+&iE608vHa(c+N0IO&L{70?QhR3l*m=IL^sLH4yI{H-yC6)`c~F8%^8(7R;-CM z*em)k)ZKbJs5x3Xrd`D`$9dyF++c^vvJt^V+ru=Ko|AqAxAFk6nh{FmB-s{?&@SaO z%N&C*msy!UH&Mp@7uwV~xo*@#DvJ|)X7*vbc&w+e&c<#{)-evD5NJHQU6&+))WQ3S zZ>JqcMnyCA&*VE~X=%^c>T4W)G#>v;V?TlE=}pai8A?ZPJl+KZjM^VjKM$H2`?ZEq~5u*z#)cs{u^!8bfgJl6pfj!iuepT*0{Gj<{ zWiRAQwgGSd`H`=UZ%RiztOC;p^nwbuLAPM%tiuYcJLy~dDCWwmMrKlEW5rglc+Qf1 zn{7bBGbHYU!VH+H#)PqE14GvsU4O=dvp+w5M)cw`DM#{U82A2&^l=Mr~2(g zlNdtk4@-V`$rUq@ua>KvPp_~!0Z}!hxy8JVat{qVuj^jwV6mRM zkU_QOdw&exp(>R)?FAaQ1Aj>Q9 zl|M?QkRJMT7tm~6hDSMPfUAd{UEin10{e$UTYrC%F8*JW%)#t){;jc1bS_fWjZ$(u z4TQWXzsCZK-G^tJy^+0_q8w@VZ%~1=(eBWP2i{9>%6G^49D-Y!$gB?m#Y}yOBB8R3 zzWM8Bz-xqxfjZb*ib-9ix(UWL-+|C(AG&@P5U-?e%dK_;8TZ4FNDvD~z49x$7)Sfw zLUrA+*Vs2`cwVv~A;N(RuIYiqtAd6m_r6|yRk|ccLWT85My%07@;d;+DiS<2%~}zjo_3DZOt`26de4Wlh@BNqCYv2 zDonJBrNPXLNe^gT`-7gSu=*F~C;3JR_)rwd)gNAlK$gj$iK$9UYq3XsyJd1L&EAb; zr2o7Qu5RBY+Mp&?2}s4#kHKUe5SPn;kyMTOm}r$S@v3GwxbhI}4dv>qacL6U5HVWa zfvl=im;)u0>|yn z>i<-h>^oj+jc5sq0U345243Z!0bTOu#J+f$bkk>6GGeN5>Re;O1#I}w^Uij$YV@M{1^wamx*1e~_Uf8TZ&n{xk|CT#_1>8ny{;HQkwMAZxGV_fN zK7Gapl$@qTg3AcKIt!14AUhre69_Cbg+=MPL9hT^XxTD(Y@(Yu3%h$kC@)}$h6Zq2 z+73%_LaRkBRL(1KD}sie2wj-B=|x3bLc(NezceVRR{8I$RSXr}Him)q7FoZnNDzb0 zNu6HURcmmxo?HWtw9bL<}C+#%^Q=}RCyP!b-4ZfBpt8m#6?5)iW7(q1pH^# zAQa3ySupok6||U@pC>#40ju-YvzwsNIfD|AdL&QmbM>Oy;8EQZXsyrfX7SxUn|?{ z%Q)cK<;v&$>tq)Na$%;7Xb5He2}zfHEx) zSvSZ%y~jtl%a5`U*hHq&30 zGpB(8Gl-x<)cC}na=!c$YUx#wCb6@AVJR7cq^^_gZt<}35)rNXyCoCLf%0^bA#UO# z6G>a|FLWz8kJ z8f3m&+B;I(C}PJ4lmD@%9XDA<)t6Vu&)s1lfCv_KjELlF4|}}BWApR(`DOVI5R7SP z_!l*@c=vU8D}>~Ik>h1qTqysiZgSaG5tv;ntR1VcR$`ka(~FE1 z&|3hG-1?6@zXInPuEml|3>@~3sUfLUUPaL*zz|?1!oUeM3pBRIrx%o!yMx?9j=~%$ zXNd_`BT^|DdP{D_WOL^rKw`vatwNt({Kn8kW_lO>JBGl%^Vu4Qzwh*OjQxIaPmR2a zoxq#@8f*>nPI2$t+9D~%hc(iz+MGGaT-_{jo%1ffswmAWPgiSIz_avWD<*mW;AbF1 z=FO6oS>#};y%e6kx*lz+OTz*a!xOtfVGv|>lK0UX1wlk@fk3Mv8F;^(q15y1bci_d zOas5kh|UfQ0R{(Rd;sGxnGVbI1HUUlNonNI*dFinsevaNnl%aKPX~bjK|#p@$XDN+ zo({x-FHUtM>jB71bZ`J^>f|ATNwHHnFN`>mjtcFZMu(TEK9MFp2A%@4yt(19xS}d{ zt2Xt~iJ>Uu>33vn|LwTNo@wxgM5^(|x zC|ojq<^g~Z7pH>WLJbhO8GyNVDMhEJ_4$%1*fuxRpiOndl0YN@7+X@Ap1bsK=tbrE z^ocyv-P45+&%jvt{0|szu>4y>^&Udj?(%)&93&-01_%tOeeE6=ZH`NOV@-sPGNyxt zN9{8JdH@Q4yFm7hgJcNo9i%tasi+=Rg#n}hDbb9Z_T#snfBCqch^8*;}G24W#g_17M$P?!QFM^4jXsfxVr|2T;BJ)=bXAf z&#&84wPscItY>;wO?CG?-Scnx-xd_696%NT1q}@iCG&AW{ab_j1_cNEAu#_L;o#ul z5k4Uxz{4Y;A|WGwLPy0wM@L0N!@$DF!NA1BLPNtL#=#>XBqAchz$PIhAtb{mBqIC| z2=vEN1b74#1Oya9Of*cw|7-cz2Ze zYff_}o&Q>F5&Lyl6p(w8Y1gSGd_VjDBH}&@48K$0TKGux#@MtqeR^4|`Qy|1^?%)u zG`?1iwbbI#k$neW9({#ZRjX}{DP@gxf_;*23YDSwJ=E%;b*lJFl>(x9rPa%=e*s(Q zd4_8n?Dzj7Kr8=_i@191$nuvh6q>osCaE#{`d9FOp&u@qIc60(XXx}Hvk~}Kc1=IN zycwnPOqk`|P34gJ(lU$`$g=|!JAq`19Xz9thtrQmQ4PPWj@x59e*72ylfRgT8hF2m zZ+e17tr^j<>t|=re-%*Bf@s4B&s+cz!A$2i^`>_Wsh#5rZ5_9#CbBY$g}kMR2ddcc zq(_Om?6V17k)ncnkxYRmUORG<#%FT79`4^zP`C5PbMkpfb!%w9N8IELtqZ{lI-dqr zb>o#XtBN8+cBn_?<(I@683$GYNBb2!T~qeJ98G;1wgf)MtlG8oBhj+z0=u!M9Hot9 zt<2d^-8D;^Lq%r>TE1_&0<*xMyQL%5zOpUq4JQ?Ae~33lg4)x{1eD%LZdeK&l&gjE zw0*pb-wG>iA#z@V?z#=f$`oE!Q_i@V)!%iq=m(GL)98BQ304NA4ZAMGapCm1G~IT;iJVidhWqPCa%du(?GpR?o5PK%O&{3^#Yw|wiG zznj@vSyHm~O3=#lw`>%v;_Bw64%pA6HMu8DOWD9-rLbAjbt&D0Btt<)2aMF>1q==p zKjCsE<#T;YX>Fk1u-e7=RTf|ck>kkwWnf=-_~>cfdo!tpPTbHPk8W-xBgeCl1(rY= z?7_&m%FUX`^t-*Ks$TLnn=07&AX9(Xz^pvG-tE}UzdAx{vfnQC_o8m}V$!PV{`MQ+ z_{{VEr#4_S;UUQ4kZnvdI$6iRu2u`*7Y8YE-gRAS@pqRxa@Z~5*-Ar7O87r0YL!u! zMdf9^5|g%>i+@n!H?}_I0;kiJ`4np&wnl3{eNam`Fdhqwh7OFq5D(ctbuGcY35kqsMA!k z@sueh>>Q_H^BEY;-6XZ%Q2({{{#rh<4t0lVDcN;4d}IA!MZL35t`BX!4JR`%E`|Se zP_ySBRNI8y3mJ7%?&oITx)ME`PSO?Dm7Djm{TI(lp`$ad#CpR`K>Jp@MtkQ|7JEW$ zVxWn(;Q8sI!KrN68UMGG$}%1IqlSg_)oT{RoDwVC@r0M0yXLZSz|zd_#qC{tT+z^$ zjE#&2Udv&U|1jqmGv}Q4Vi61DqNCBTt}32M{dN8PZv7e3!vbB}(iraXyPUVQ>oqOc z{1eLE+cnuiZh3H^SJ zGE4A}B+_7w*86bVcfN`oOHmKjW?fFOVel_mkqEENmaKK2!&2TkqA^kLf+29L^eFI5 zJ=nl?g59W~HtSN=p`8Ct_n|wjMTz_z8X_EuVWhRE;g$heAI|1kTz|}EazEbSm~*3a z&bgYE5k19uUpz>=8-@b2cw=o(CN^{sjZ^GhO!X+`xYI ze}`wp#(246dgpOtAFFe1ZA2;endG_WLl4`P?2cS6Ri=Dz7jMn&lgaZprN;bTYHbc| zM($5%hJU)U*u_2S1$a~z8S2Qf*6EXBb;-9;W-8Wp8Z(bq#`C}z;}o6wwNiNvlRY(y zKJ={|&C;r}=?CaqRaw1~DcYr;gdSkJ6oF5?JxV54NQbq?A4TMGha4GnnkK9|Cw)SS zIbRh1PI9Jj5kywPR^DrSo#y(f%pGmI_ENao_ZO3xPq~ZcvYx$>zoE;1J62BKJ4V0 zeD{9#dGg=f?5wi(f=~*>maj$dO z##i`cGwVOe_+$erAjuuPYZ34rQ+?d!NUo~sI3yi7dfRhpASM8AlZ`fTqUwy;df0&d5jOmto z)OeIIvNn}(4*Tm8-|r^zDSF&Bm{VA}FIr(ln{=CEJHNX*U#8~%KF@d(Q)(GM_b2s` z;6IwQl)#->&9--<+Xd?Tc&q8w6dWc>a?{hU4bujGG7Sxm>! zxz$lyerVHBO2d{M3nUlMft3~#jo`s)z#rfhh-96BOToVz;1LBKp#akxCPc7f5!135~{5-Z;^*%BK|_#*_#w(B?0 z&^EXVEUcs1uT=CM#CkJvh;~BHb7y_J#cguT8C~mF;2yQuoTke>czrvZmXw|^qOBLt(pf9v)V`hTt>yWD`j`jzX2*hl)d zLxFs>sfMH7_r2+V^0EKlN3oBrofi`d8V>qDpB(To2r#f8Ho-uDB<)ZLSlBqYUoa^- z@Hp|Q*tx{HzaoC7rs0vG{m$$3<0GR-`pEX7;bHzkoxWWg;P$61o9GRaK0}yE!mWa- zQLuXTH~&Ftb@4w2DbG*u6iyfk+_*?pCe!ZUY%{rEe7yC`-}nXBuSP2#Q&@ugbh=NM z<$Vq()Np;%gk^NZHJqPo)`q(>8&>{XRY+p&Y77%3QY0xO!Cjgv1|AY zDY#d+MTyio6a1}l!KF;wRI6)Gq8QQ3>skvRV51ht|cL#x1N^EV+~DuoRupy)!q zE-2GD_A$nCqBy{iz7aIop{}r#KFCLX4OAK!DoZxek?_nk`T)9Zm&Rz092s@8Qpn<* zdqLFS5o|k(7&N#Y-8ELiL(g%*^qxpGSDj>RjWLCxbt3(a)*5Mr+ebk`xRqaYhsWF4 zStc91;*eY9dyFlW2!vOd9l3*$zquGBJdf2^`_Fn`X4w>YuM%ti;T9^U{SfboTfa47 zAJ*fj$g~%0lLbNfR_xFNwcR^?lai#burGX5;dUtSE{2@_abg-M`7h)+hf)FHGq|Q-R zOLQCSs+>ok3h*!B>YNJ==3YZgp*bhz8YsE~NnMOVWMFhz!kl6F$x7`Z@z3g5M)8x3 z=|5{b*(RibU5a4uUN3BKLZ#=8uCopc z2tT{zIQt62PIEURuNWN9>XBN5#9r?zVqLv>88V;th_!sl%zamy(pKFp!`*w=p#0VC zZV5=!FZTC0{g_k&-6VhDKYj%h5|| z7%J;yse}zPcp3C(x*Wuc?DwOrGX+6ou?~fyr2fU5wtYn30=j>z&2h{*Ksn=HWwHW8W>eHLo_SseuhLt0 zZ!ATi%h0=!%~&u?WNcoDXz)u7Q;|=exQtqqQz#@9uQGPN+R9!`ypf^(cIpy~AeUD4 z&XQ_yj)s0hZ)a5hgp6K*cd5BvAu)G}9n3+IyH4s|z?d0A(5^w(W@*e3-|qIJZ;UXZ zBrafsnw@yJKvGsji~5KS&{q^E@c4Gqc#eq$A~;`%$CGunUzcX;-o=!u^P$Qd7Iw%R z;=vWX`AKFv`qc%t2y>fy^zpi|)2WVjNpwjxmV*u&Guc3LvTTPxD$}(1$n=lhbwX!l z*Hw!JOTIj=Va``|o$J=$&Uih}yoyUgemmu1pQQU~+El2Pz7Z}j4Hn2b+3mqK!;>jc z@?cAF17nvfbrE;9hg}rUMAg?yRlnNsPRzJI;_V(?xscj>>fzl>TFaat#ot4I4iec9o-|UI;tdn)JLuUe zUa3Q)eo^pn^#^PxP(WGKu5&Ct@j?LeeVU_(Fn#QBI@a1T^pywQHwS~hZL<)>-2|Ur z4aR>^x^*^SGTLDU5*W4g*!ta`fNxiY+`U%LYjU)6UHoS>Y9q6KCVBB?Lqbv-+As@C zB|~(r`br4X?*{33j?-y2y>hKDMb0}*fZp#m1mChU{@vK{5VVAr9M{_}9F_K8 zDpeUF!}1ML(-z{z>6NiKfI@Fm(C zrQ3c0g7NOd6;jJXbpqjCN{q(7BQ{tin^#dY(f6LHRVxlVVfEGjD&`h$y(8!FZ6ZYT zXEPZzrtoH8wcHi@-QF7a6U(`4*W&)!2|rVaS46#5Ihrmbw)qd7gmeADkndS20!=8Q z;OE^q^F8#f>?oRHJE|_{gf3;PJFWya3Gb7Q-pw*isQ`Gr?~qzxYhnU;^j8Xw+)lkA zYQPHZ4{Y<6*;H!cc?IrlyEG}$h9K_miasjuGgra;qVNQPCEBA8ym5 zwSuYvp;WQ@NQYs{!UlGB&0xPTb4Xwc*S$o5%BD8{8p~O=TzC-fV){yLDr9QE%)Uub zmv8wxG((teq3Z`tSPK zL{)dAl7x zlA%$WZvF*=SULVm#+2KlnmO8)hm`W?$Le8ayb9Mv9+u#YTovY!MZpZ5h^i)>`a|2X zQyHhfMM+wuHks)v%SUFEKN6z+x}C7$Qsz4FlTLI+gQNA3qDjIs0geTrc!hDQe^3fW zsKpZmiHS-Hx%6LmI;Y*yQgWc}p{Z(@G$;Z1&%nPKCMl?9gYG{g(SF&HG~pATC)e6^ z*kOpB99>}RNIC2X-o1?$Ml`>$V7b!_T|w6;JPwWZKJ`heC#y382Y*L8Z?3iYM)o;U zF69f;hg03yHAwn`%8ZsVr$g2?hQBapnbutt3YJ>dngXKdWX~*kBV}XWrvrBM1;^O* zNVMmNeVc(P&NA(p>cO6? z+XcWAzJ)Qbpq2W*ph_9*Eq~#VT}jN(j>{WRflX{#Hl7w8x)F5ptc`^ea>u`z87Xv; zzJn{%KlVrfZoOSj$4JSg?jh5sPIa*lbX*4@O=0_@E)$o)1c}AlHQohpAznB;q4a}H zgT$>_sD_VLf6G*6&d09MDW~9M$tbTKwVOEKt#kR`?&9r1NKcZ$UzY_>I$1&uIkauR z)l%|rpauYg>C={0$vL~NY(~`4IlM4HVkYA>lF*6^D$?*?`Ip_eYod})Z(=FK1fqx+ zT3LX4jWgb%*@yDjR;f&fv>f!>Md1{4^dp(_qinCg zyy+eq>p?|>M?oCI^491jyAAyIWMsW57e8|b<`~*7a1=t7jFIWW)?=x^;aez=U~v(S z|17N*+4_Yh^+BDb7nv7N0dG*>trex(Su0!1D4Rpu=1}qQULE>H%#EtQRyaS390ko= z>d_)e>PP0+7pFCxUTLgRuW^tGzTQj)S-tq?cYxu(5G zO1*LS9}>rzzJKD%O`dcR{>(pAo}B@x7fDk|m+(nr20Wd9e&65;kV5g-^}d>Dh+`fm zZn$^Hj3*Z#s{9D;6Nh>uU4-={sHvu`xS2TKJ)$s`*CstXXK@a+BiVIs+fmuNd6WQA z4$)=cP06GHQRgBm>jWUx(y*9dBL;f0a&M_sEg=uOJHN*I)ihq?uHU{djrcG1gViM4 zS^~TxD>S9qjjB4Iy4OhN0smhb;hcl)W1-?04H^KfgS&0*uC;dguDPRQ*a4+zqGjG$RuUF zZaV2sGUt@u)``{?AVI~7&3~FDn8XR)fAy0lN#T6Wovh-upwf*)Tl3m`D{~~06HiD| zP30@K9b`-h^}wSdg0xsOEzu>P(mubCbOMxAF7jD@IYX*PgS6Z_mXE@$vb55QE2y|Y zq$`4^*FnPtV+UV$s2&B#zYw_QBTLR-5A5W?t%aCM?IVU2DFoPuD0brd;|c5bI=J!V zg%VjvLtDHkMyMFF6}LtR^w7)}y`PZ7{gmfF+a(h|jxgzo-V)NQCspECD2&9qgiKP1jDdpy^#de3^`v)xoEA)nk2 zh2Z*K?}ZD)H|R?!QETTHMPX{l!P-S2;~>z-Ip%A$4x~eFHntwB3e8zm=9Et%G&Y?a9gW)mDS}WGvNOxBGp&Qa_#BElbTqMABdG zq$$$q}`?hz#>Q`*6oQ4ZG{GuwoQ~VKK z7*j)zkvd~|0}3vx=z1sCO{Z+?t8!|528@hJbvdS=SK|&i?n{zZ)Ucd+C#fz>d%juUeHOpBe>wTWZ<@Bs^$MZ6O~oQWt8H0z_ZD+^2`CYAzJTo~vS zcOJMiTGsvPrZ{MHy^&!J!0o{J7@+s5$0l1JRu9iDZd!m`d-lN zuXv1Mia<$ebshDR5nw9O{pI10*P6ZL{qVY^pNXks#Gc;`2LH?WkmZ;zI}xio=myXA zP!ujgz;_9&PGKDfw_(U{yBLtnKuHa@-Za!97Nf#DCfbx&CsLimck8&MDK7;3R)T#C z!8Q@RhRk5EhN5D!=y)QZ_#QAXmnA{2vOwD*<)nO86ra8-^Ik=A^DK1(1iV}b?*092 zJeE|nE~jv@e@)~v_sKj-x`~h@?qrM-j6*Z-nQ%z8mTsDGZ~(f_8p9pq)3{rAbsyA^ zdJ~(daFO9xHe*T) z4J>Awz0)SrFn&eB2%GW~a|@1;!FW_|)EGVkHWhsh@mB#)E$xY{RpJ51h2rF6j_%^k zK!A}4_pcIn3ZI!-gtKVls*dD3%2+Qhw6?j71O(xpu&q@T&f*jF3p}32NIm}5pf0>U zlEaD%zy_)w9gmrp*11UW{t1$%w+`3w;<;^X(!xA?0I`U{)3E!POwp@19?NR&Iv}_0 z87-@Q+9mm19NQOf?qvBN6b7P3=VN-zx540+MCVeT&~^_lMhEm-YK4e(TQoV(3byax z8l*4URweN2HI7(BN+Ux~|LTYHFdMjWN3B+i%hlCYX5l~o91~(fX~nk_oB$>3Sw+vN z?~6W*-EHo%tqu$f4m|OIC*4;5LAAWc`2kyU7-R5kL`El>IzrcNvpyIfkpH);%OsUuR? z!2;|O@X}pNe0Kh%(%7JPuXSK(D0LKtGr9kyWpMMj`76~9a(8_oDWkMmhvh9Y$mnAe zD14pc)Id{=T#_>k>_YTXIxLI(om`LKtY+#J{?m4k#y(C3PAh_@(kE0zB5Cc59ucEv z@-a;&_{5Jvse9R@0}?Y*f!|DRJ8;%c+(447QBbN2BK`+O&vSVEqT>CvOxS51o${V82@K-^Nr)mxucUBgRdt%a-R1?J??>%7N z=bVrzL2$BM)7P9m>N>>&vZ`}AkODhf6ZYb(raF5hl(gm% z&JAqq0Xb`E2*UihvXd+dD9)&)-}`bg@B#;x7^@1E4)IjEjA|i#9#>zuxTcWBVrglq zrNBkB@M6wn!v=$88Bsb30Q;2JR2zKk3P549mn~URNw3PgX>o5DV-5bKRM-#a@iniegd8$(<-V z_q|*9{k0^5<;zhyw}wkfDM5cmj$Xi7!7RsqyekMvqpb9Sq>6)adiH@3B54z(g{8$% zhg)Pko0$-U&8YA@2CiyE50gXc#SEdcYms&sr9oe7%*BQYO@cZH_bz{i%47~dnO>#4 zb@%Nte)el_d68%;#AlqwyLEw94#?g@Tp_D?$b_^qGQgmCSG=pWaNip%qTqDCD7n07 zK@j~MS{ZF_uBbSUxActH5RlIQbUN~Y+04)~62;dV?K?7=y1cmTQ(McT(KO;t+vvr! zrCZ0z8Tr^ts$M41(Ii9b$*SNInTSw;dkEHQ9+ay=b1vrrbVNVi6NIM`ShF%)@G?r8 z3rbutf1__q0LaUfVcLALP_;!-+^m!T@f_*4;ESq1GSbax$HuEVCVxqzE4OcmuC>a^ z`LM5y7^`koYFG@?s8(@Av|)VUqT)T1{&c<}r~j$O*=84RvvkCy>ythc?-_t$4px$I z(}KvvH&KqdtiS37bB+w;2*0`%#F;a=H|eWiAa#OUDkbWhE}N8mEOJqDA|4}qCXJ>m zwe?<%^+lv;4_r8sntsSGt5|29j+Y3=V^|%M&mKR96e!wi4-FPJ#$)S5v4e0(vH{Fe z7o5$~DtvTQL>%#^@@REO-Bi=>()q7(-=4^$ZbS(7R7whMiNo?rZ8N&f)E9VS%(OoS zwU3#is;%;S`-dmv`mZPZXd#1#g+ctE8q-G~78W+<7Y;Z|98Pf+ywB_=rtr8DKewsA zs~S6BUH{ja!TgUiW3r0E8IVZu^Jjc>XH@Nz^jXE;ku)#re|D`fHRmrQ8Hlcb z#>ua6uab{DW8^+9onUe_yL)7GXOs%u2uR8_|6K{nPTzZYG{AXFiiz~Qp>))6u5yq8RX=K%=G*(>9}QA&)X zJKqyTL)L%mh+7-U;)thl$tIk?q(br`hxto`cQi%ye?r1GtvA9qjmQ*Go{i58M}jFtcB zyr~Icd}gZk!a1(`T8mWp+g;})t}YE2+v%R9YcL&ITj^PV`I@H12~yN~7gG3(1+@d3}sND5s8^fZbB^8BI=NzP8!4$|a>#0hfokgX8CMR)aQ z_+l|Ol$2O^g9PV7IPf5t2~3{|kx8o4BCWO@ueLDV@!)J76Vky>e3#-`bEYcWpu9Ju zq7Bs@j+L|2TMnt$Vq6$@a}&9wRQ?k8%IBtj5jJ3&0OBu}j=#_yh($`*u2^S;!j8nr%LOa?rd7GeN{jb#*)9 z>Va2YNiNGpN_Z^y&+RsK{^a3-B>~d?fmGYw@mK$#Mjjpa{P=F@XRhKSBFu39E3p4_ z!oi_<@ci&Yavzmt*pCKK1O!9`SVXvw((*?SC@dTn_7@I#9B~y)TuM$8XDW%G@p*Nh zRZU$IdS|HFxwyXuC2n6K;HkL=*I)B~`<}1B-LDQ7_o@L6zKiY--T{Evi>%BPsBfIfaVpd@Wg9-3O{*HY9fX1is)|Z}6Qui%-juZ4U&zV_dw(6Z9>fsAVdv zMFLJ{L&e;enr)_AgY?FpyO$;K_*P3&%^YT`If>C7GQa{`bQ;bLt_6OF5&D5`%V zKGX(!?$zB=7h7#~F5=*ATzj-Vn`bQ!NfvaRo~GVeOuGM2Dk<``I;cdO!mj00&N$nf zsp$S3oM(B0@mS5KKIq$vI2L2Z-n!3L?C?R`|h9^&nr zpg`preuYN)QbC)R`Pzhb2`0M?R!L_4_V4R&55GU`4tJvEvok+=G#M}&8+5NS@~!yf zQM<9fn)pWW{pS<=u8q`a%O4pvq<@_n=y13S`dQ)IGbDzZ#mbIqY=r zqD|{rXemAXAI$w}sz{jotAT|~;!Vzsr#*y~ZHj3yy+{?wLDnHjVmebVQh|+Y98}0H zx8R?DP z>X+S>HDf`WIBRr9=!|mdM(trt9IdI2*4z{bpg_^UKF_22YP$EtZmH$$N>YSyDRct< zsP*a@0#R>dQLC+pLbsp&oc!&}?WzPZ02YZBrQ^b|j{Eg(Fy_b&{&|25SdsShjI`IF zrCG?Q+VdFg=IHRf$7Gb1Ys@VMS2g*5$or5b%d8u&-dI0-`=Dh zc{W9OlknP(OvoHGxg=JKw5x^5BINE)U@4jI6 zUOw7Y@hWLkbF_2mpC9|>w>IUBXOqP0I;!s4A8ux7Gl^$rVSJAK9+lRS%8bT(K20(x zH`o~xf!5@8ben~eNNWA3(i7WujKn77k^SfV_1nVqS$*!)Dze{DIUC%T z$6TN%$;mYptNdAbXhN${nzYJFHXs(!5DZ*f>NwBXJ$=t#FtxudwyGai@KX&4xXq%B zaK|0`9$)yL=*D54YqtZ)Fd`Ga3w=rHju6*oS`*E_BqEiSPS*;Mk6EP43=IvY@wAPK zWEIu`<>SNDf=r1&FQHW7N1o5Tkc`rc<$~z_k4lEs?8S7Z35AcA4Em z+SWy-ao;)btFj(6WVvkH+3fB>%{hNHS9I6cC_?VrbL6&7Jj#c8I!x|aPi8Eudhr|* z)PV$a=)n^Rxv!rO`CGtdln~+#dE5|oMw^wK^X2*-{(RGm?nZox6_x_66?1>mphrJ*s=Nf){nn&C8CA?*;_lN+^xCNy zQz!$D3u~vH;0z&NBodYxf!NEV$X2JX{IF(Db=s`-4(E&1XMG#`>u1V64%7BxJQ=Ry zyjMDFK0^PX%CD{sn*AIa@b8%#+Fa}XT=aQ%R_xC7N0kH4{%ER(P;q`f!v0NP%~wFdD+>W*J#EFOKlEcLWe`= zblgjI+`O17?tT}g_w8Ayivj~VGCq@J@wK7PuB=NQKE#Q}>`G1H-)fUPwI?>|gjV?Q zsYjox-8i~;dzH+qcl!#b3qYXu1Xv)ZJ)ik0JJAU(ZNUADSM*Zq>+?Cnf$DrNu;+#e z0KSRQ`7^G^=nRnxZ>H<9aqCU$F;c#U;f#m@=u_>_nt>7=Jw}IjjF#zD?rOHAtlOE= zC|)`$@^+4fLzC|`X;l{*Nl8Lo%dIzojJSuc&|r&a0ZZPY%WgA)W4}XFrmH^Ou#cyr z%0D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 yahI3uL*Ebwe7#c}81|KIb!<{yy%oBuDuZzQ|` diff --git a/examples/widgets/painting/basicdrawing/images/qt-logo.png b/examples/widgets/painting/basicdrawing/images/qt-logo.png index a8b452e07a5b7d55cc71121132a23c16e58725b6..abfc8caadbbcd3d1c57ad4e15db32216b23f7e1d 100644 GIT binary patch delta 1817 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 O0000JB^A9CWEa>{NHi5y-AP1VqlY zhn?zy+(VAF2b@77P;sYPkgQYNF+U(#dk84y2r>aI2vpN>$Qj6O_}>5&0UF+V)Mwh+ zw9U6C{QLj!;G?DWzyAJcIPB7R*zL!kulpV>xc}io`!WBozdnBZ{psEJ=NDh@dGO(4 z%Te#2f4-e~y1wf~NcV}*wKv+Po=s^!;<@Zg&TLSE?R=y7uMQ`%}+0&A(Lq=;M{=Uv9sz|M6ni zy;*<%{jERb+<82x;jrtUf4{%1+I<8VEOI45e!&bZ*EN?``d-|zw(+p-&(NoT3%*@g zROT&nX<2oE3RCB)2`NC8vproLLn`8Y&xP_GHV|x x7cg%>EYIR>eSaefwW^{L9 za%BKPWN%_+AW3auXJt}lVPtu6$z?nM00PuWL_t(|+Kf_NNEA^N{_f1IyF0FJx~{hV zl_^4H8xj3eR%nS4M$*qqpR2GeT9h_&tkjXDDg$cI&YNiFo1b^fp5-n*knCPUG0Ad#z5eP~U z4Lq8kG@_}q9>YEt0^_Qa6p?Zol5_j+9hN9ZU|%|AI*f=3Jpvt?u0ajU=;?Wf3&l5J zv)kG6##uz!k&^om%!s1q`VI^Erbn- zP5zGS%@=X$;8mFjA;PuF`E!u_U85vlbl|7eW$jBi$&<>6{tYk;L9iO>} zsCaM|jyOAd$GYK2h{HFf8?r3HYT^+m3KV<<%ztM*OTg1jLRB=R*;6pgwV<};qP;Qv*Ys&JvyRLjKEk(!T!+c+Q^Vm`UvxU!{fa&cd4 z6By=;B+GQjKozxLP?S;Isf9^qOjLYcL(zxh^xfCEx_$5cQ+`~&b_HIq_czUW!nW`) zVJ}bi$f3j4e>)fOAJX-@3vT!5AH2h{1V05B0N8CM1`#qdj{pDw07*qoM6N<$f+)Lw ASO5S3 diff --git a/examples/widgets/widgets/icons/images/qt_extended_32x32.png b/examples/widgets/widgets/icons/images/qt_extended_32x32.png index 7b7a790c122392b551904fc21fd31c2e7f331acd..6e7d000c0470e0f45ae714827ba72f69cc25270a 100644 GIT binary patch delta 880 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 Ll#2rm;d|?EtfwxK literal 5149 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 diff --git a/src/tools/qlalr/doc/src/images/qt-logo.png b/src/tools/qlalr/doc/src/images/qt-logo.png index 2dc67161c1b8a27686b4bfa9666c6752bb6f6c36..6e7d000c0470e0f45ae714827ba72f69cc25270a 100644 GIT binary patch delta 880 zcmeC<{=+swvYwfNfx%@-*D(eL#(4ogA+G=b|F1jbRDZ~^;c6&|aoDNukaO)J=iF_c zwFe!6B6WwIY7V;89RjiIfm|qZt~&^lsy*V^u-~EVh&514El3Ke%(3B^J49K-A!n%i zgU&!Jst>x=1GNF|s0En_G0PcfP3>Vvs5sD+gD!=~EFsSN_y6CQU+;hY{n2pPrR|ts z!(rE!qh9UD{O4ZGKl6O+#M5z$E|)+2c)96_`=gIn>km2Ke0%)lvki@h-JXBBbLi2s z%dhrtyE|plnS|G0AHMzm^v9pC6YEdMe)#dS>4?Y0mwT36sp>uvy6#5D##_B-pKsfF zZ|1k(pML-Sx$1h;`4>A^UvK{Y`}3{0Cnlds>^~K?=0@wKS9@Q5eb8|{@b3Gw6Hdi+ z9uHc7v$N+!*p7SCZ@fABEC~UPdr_J|HFl@6T$DlKc8?q_W76F z=U(hsajm{#?TxngKVEbk4|w|d=IwWD$2#hnMk|4iehTpAhf0nL^U=O=_U31CZ*;iIIHH2!j@K&v_4HkOv zOYhy+k&h=Ue-ltOB`1=4$9Ne0;e>;oI}$=g)nep?{;6=fLd_=Cu782l6*m z|5gweJGr2#gO}gc?15)Z{ncv?bqb1`7`nX=eCiTcX*8V}pRiPS!EtV@gJ-(_FdP3D zSyaFGfpNsS7iNj48DClVJesE^#*=YSfv5AbK~IJw+q1cXhu?R(JH$NU6}Z}@_h7#V zlbb8ITEmv#0mfAZY0lG6SXb!FC+xq?{Y28HexeD`H{ojQ%|!+7u^qTonEAmX&5u#& z?r)CA^JC`Dx>C1ObH=o!=b{2Xx$bXb4OqwU(~dovHDDzZ=kiDGKMuJ%vmU*>E2Q$~ zg+_;~Q&%6%zW27|;8$sL@BF)blDFR7*<1dpHJLy4;W7jp00i_>zopr E01%?-761SM delta 1414 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 From 8545821bf8c3694d0dcb5293f3b23fef2d90cd02 Mon Sep 17 00:00:00 2001 From: Aki Koskinen Date: Tue, 23 Sep 2014 14:09:21 +0300 Subject: [PATCH 12/50] Fix incorrect documentation from QTranslator::load Task-number: QTBUG-27506 Change-Id: I1b2d4ed2242efd52258c7f587c2121f9dde18a0d Reviewed-by: Oswald Buddenhagen --- src/corelib/kernel/qtranslator.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/corelib/kernel/qtranslator.cpp b/src/corelib/kernel/qtranslator.cpp index 33827926c69..dc56ad88a11 100644 --- a/src/corelib/kernel/qtranslator.cpp +++ b/src/corelib/kernel/qtranslator.cpp @@ -426,9 +426,8 @@ QTranslator::~QTranslator() directory. Returns \c true if the translation is successfully loaded; otherwise returns \c false. - If \a directory is not specified, the directory of the - application's executable is used (i.e., as - \l{QCoreApplication::}{applicationDirPath()}). + If \a directory is not specified, the current directory is used + (i.e., as \l{QDir::}{currentPath()}). The previous contents of this translator object are discarded. From a2ce7e6a6f0f5c638aaa644255e9352eb91b57d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 9 May 2014 09:40:19 +0200 Subject: [PATCH 13/50] Cocoa: Don't activate popup windows. Qt expects a handleWindowActivated call for non- popup windows only. Add a window type check, similar to the other handleWindowActivated calls. Task-number: QTBUG-38707 Change-Id: Iaa5959675f7e3ae4664bdf785d3f374debb0d0a7 Reviewed-by: Friedemann Kleint Reviewed-by: Gabriel de Dietrich Reviewed-by: Liang Qi --- src/plugins/platforms/cocoa/qnsview.mm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index fa85a2bf54a..83e913ad58c 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -603,7 +603,8 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; { if (m_window->flags() & Qt::WindowTransparentForInput) return NO; - QWindowSystemInterface::handleWindowActivated([self topLevelWindow]); + if (!m_platformWindow->windowIsPopupType()) + QWindowSystemInterface::handleWindowActivated([self topLevelWindow]); return YES; } From bb31aa853eb704bc916004ea59ad57bc6baa1276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Thu, 30 Oct 2014 16:52:36 +0100 Subject: [PATCH 14/50] Cocoa: refactor commit 876a428f. Conditions for when updateExposedGeometry() should actually send the expose event goes into the function itself. The window()->isVisible() check could arguably be moved to isWindowExposable(), but I'm keeping this as a straight refactor without any behavior changes. (isWindowExposable() is called from multiple locations) Change-Id: I6d792286ccbc50065ebfc588daca2240761a1937 Reviewed-by: Laszlo Agocs --- src/plugins/platforms/cocoa/qcocoawindow.mm | 5 +++++ src/plugins/platforms/cocoa/qnsview.mm | 8 ++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index f536e20b39a..56c356711e5 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -1754,6 +1754,11 @@ void QCocoaWindow::updateExposedGeometry() if (!m_geometryUpdateExposeAllowed) return; + // Do not send incorrect exposes in case the window is not even visible yet. + // We might get here as a result of a resize() from QWidget's show(), for instance. + if (!window()->isVisible()) + return; + if (!isWindowExposable()) return; diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 83e913ad58c..052a7cc98f1 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -361,12 +361,8 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; // Send a geometry change event to Qt, if it's ready to handle events if (!m_platformWindow->m_inConstructor) { QWindowSystemInterface::handleGeometryChange(m_window, geometry); - // Do not send incorrect exposes in case the window is not even visible yet. - // We might get here as a result of a resize() from QWidget's show(), for instance. - if (m_platformWindow->window()->isVisible()) { - m_platformWindow->updateExposedGeometry(); - QWindowSystemInterface::flushWindowSystemEvents(); - } + m_platformWindow->updateExposedGeometry(); + QWindowSystemInterface::flushWindowSystemEvents(); } } From 7146cbed6e3a42389593b775bf4a26f05b4b8d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Wed, 22 Oct 2014 00:41:55 +0200 Subject: [PATCH 15/50] Cocoa: Guard against recursive event delivery Fix "Recursive repaint" crash. Add guard to QCococaWindow::setGeometry and QNSView updateGeometry to prevent processing window system events during setGeometry. Task-number: QTBUG-41449 Change-Id: I304fdf134d433cbc50fafd997ecd91e31cb57f4e Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qcocoawindow.h | 1 + src/plugins/platforms/cocoa/qcocoawindow.mm | 3 +++ src/plugins/platforms/cocoa/qnsview.mm | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/platforms/cocoa/qcocoawindow.h b/src/plugins/platforms/cocoa/qcocoawindow.h index a43cf73d348..b232c7a4d34 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.h +++ b/src/plugins/platforms/cocoa/qcocoawindow.h @@ -268,6 +268,7 @@ public: // for QNSView bool m_inConstructor; bool m_inSetVisible; + bool m_inSetGeometry; #ifndef QT_NO_OPENGL QCocoaGLContext *m_glContext; #endif diff --git a/src/plugins/platforms/cocoa/qcocoawindow.mm b/src/plugins/platforms/cocoa/qcocoawindow.mm index 56c356711e5..6656212457c 100644 --- a/src/plugins/platforms/cocoa/qcocoawindow.mm +++ b/src/plugins/platforms/cocoa/qcocoawindow.mm @@ -381,6 +381,7 @@ QCocoaWindow::QCocoaWindow(QWindow *tlw) , m_windowUnderMouse(false) , m_inConstructor(true) , m_inSetVisible(false) + , m_inSetGeometry(false) #ifndef QT_NO_OPENGL , m_glContext(0) #endif @@ -470,6 +471,8 @@ QSurfaceFormat QCocoaWindow::format() const void QCocoaWindow::setGeometry(const QRect &rectIn) { + QBoolBlocker inSetGeometry(m_inSetGeometry, true); + QRect rect = rectIn; // This means it is a call from QWindow::setFramePosition() and // the coordinates include the frame (size is still the contents rectangle). diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 052a7cc98f1..de30972393c 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -362,7 +362,10 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; if (!m_platformWindow->m_inConstructor) { QWindowSystemInterface::handleGeometryChange(m_window, geometry); m_platformWindow->updateExposedGeometry(); - QWindowSystemInterface::flushWindowSystemEvents(); + // Guard against processing window system events during QWindow::setGeometry + // calles, which Qt and Qt applications do not excpect. + if (!m_platformWindow->m_inSetGeometry) + QWindowSystemInterface::flushWindowSystemEvents(); } } From 63c7ceaf1b352efa4c6d5a6be96819d6e013e2a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Thu, 30 Oct 2014 17:00:03 +0100 Subject: [PATCH 16/50] Revert "OS X - unified toolbar and AA_NativeWindows" Will be fixed in a different way. This reverts commit ae5f3df59b37e0ce8aaef27dc1e02f40def340ae. Change-Id: Ie706396667a5b6c9003bb92a018d88346a180e65 Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qnsview.mm | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index de30972393c..09368fa25e7 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -676,23 +676,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_platformWindow->m_forwardWindow = 0; } - NSPoint globalPos = [NSEvent mouseLocation]; - - if ([self.window parentWindow] - && (theEvent.type == NSLeftMouseDragged || theEvent.type == NSLeftMouseUp)) { - // QToolBar can be implemented as a child window on top of its main window - // (with a borderless NSWindow). If an option "unified toolbar" set on the main window, - // it's possible to drag such a window using this toolbar. - // While handling mouse drag events, QToolBar moves the window (QWidget::move). - // In such a combination [NSEvent mouseLocation] is very different from the - // real event location and as a result a window will move chaotically. - NSPoint winPoint = [theEvent locationInWindow]; - NSRect tmpRect = NSMakeRect(winPoint.x, winPoint.y, 1., 1.); - tmpRect = [[theEvent window] convertRectToScreen:tmpRect]; - globalPos = tmpRect.origin; - } - - [targetView convertFromScreen:globalPos toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; + [targetView convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; ulong timestamp = [theEvent timestamp] * 1000; QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag(); From 39be577cc2dee415129d34afffc0b3509371db68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Fri, 9 May 2014 11:22:34 +0200 Subject: [PATCH 17/50] Cocoa: get mouse position from event if possible ...instead of using the current mouse position. This is important if event processing is delayed: we want the QMouseEvent to have the position when the event happened, not the current position. Regression from Qt 4. Change-Id: Ifd4f0f02853236a204de96c5a97e72f86c29f0b7 Task-id: QTBUG-37926 Reviewed-by: Timur Pocheptsov Reviewed-by: Gabriel de Dietrich --- src/plugins/platforms/cocoa/qnsview.mm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm index 09368fa25e7..699340795de 100644 --- a/src/plugins/platforms/cocoa/qnsview.mm +++ b/src/plugins/platforms/cocoa/qnsview.mm @@ -662,6 +662,19 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_frameStrutButtons = Qt::NoButton; } +- (NSPoint) screenMousePoint:(NSEvent *)theEvent +{ + NSPoint screenPoint; + if (theEvent) { + NSPoint windowPoint = [theEvent locationInWindow]; + NSRect screenRect = [[theEvent window] convertRectToScreen:NSMakeRect(windowPoint.x, windowPoint.y, 1, 1)]; + screenPoint = screenRect.origin; + } else { + screenPoint = [NSEvent mouseLocation]; + } + return screenPoint; +} + - (void)handleMouseEvent:(NSEvent *)theEvent { [self handleTabletEvent: theEvent]; @@ -676,7 +689,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; m_platformWindow->m_forwardWindow = 0; } - [targetView convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; + [targetView convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&qtWindowPoint andScreenPoint:&qtScreenPoint]; ulong timestamp = [theEvent timestamp] * 1000; QCocoaDrag* nativeDrag = QCocoaIntegration::instance()->drag(); @@ -849,7 +862,7 @@ static NSString *_q_NSWindowDidChangeOcclusionStateNotification = nil; QPointF windowPoint; QPointF screenPoint; - [self convertFromScreen:[NSEvent mouseLocation] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; + [self convertFromScreen:[self screenMousePoint:theEvent] toWindowPoint:&windowPoint andScreenPoint:&screenPoint]; QWindow *childWindow = m_platformWindow->childWindowAt(windowPoint.toPoint()); // Top-level windows generate enter-leave events for sub-windows. From 063a54461677c0dbf75282bc367f204af792dac2 Mon Sep 17 00:00:00 2001 From: Richard Moe Gustavsen Date: Thu, 30 Oct 2014 14:19:32 +0100 Subject: [PATCH 18/50] iOS: remove unused function 'fromPortraitToPrimary' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ic768790a90ef7048bd5e7027e9682988085368fe Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/ios/qiosglobal.h | 2 +- src/plugins/platforms/ios/qiosglobal.mm | 9 --------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/plugins/platforms/ios/qiosglobal.h b/src/plugins/platforms/ios/qiosglobal.h index dbedba7e85a..f7b9cd70157 100644 --- a/src/plugins/platforms/ios/qiosglobal.h +++ b/src/plugins/platforms/ios/qiosglobal.h @@ -62,7 +62,7 @@ QPointF fromCGPoint(const CGPoint &point); Qt::ScreenOrientation toQtScreenOrientation(UIDeviceOrientation uiDeviceOrientation); UIDeviceOrientation fromQtScreenOrientation(Qt::ScreenOrientation qtOrientation); -QRect fromPortraitToPrimary(const QRect &rect, QPlatformScreen *screen); + int infoPlistValue(NSString* key, int defaultValue); QT_END_NAMESPACE diff --git a/src/plugins/platforms/ios/qiosglobal.mm b/src/plugins/platforms/ios/qiosglobal.mm index 71d5a580885..9f10c3e2876 100644 --- a/src/plugins/platforms/ios/qiosglobal.mm +++ b/src/plugins/platforms/ios/qiosglobal.mm @@ -127,15 +127,6 @@ UIDeviceOrientation fromQtScreenOrientation(Qt::ScreenOrientation qtOrientation) return uiOrientation; } -QRect fromPortraitToPrimary(const QRect &rect, QPlatformScreen *screen) -{ - // UIScreen is always in portrait. Use this function to convert CGRects - // aligned with UIScreen into whatever is the current orientation of QScreen. - QRect geometry = screen->geometry(); - return geometry.width() < geometry.height() ? rect - : QRect(rect.y(), geometry.height() - rect.width() - rect.x(), rect.height(), rect.width()); -} - int infoPlistValue(NSString* key, int defaultValue) { static NSBundle *bundle = [NSBundle mainBundle]; From 8a9addf42ef1577d5ae337a9a45ef2f2c585afc0 Mon Sep 17 00:00:00 2001 From: Dyami Caliri Date: Tue, 4 Nov 2014 13:51:53 -0800 Subject: [PATCH 19/50] QMenu check for null result from QPlatformMenu::menuItemForTag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit QMenu needs to check result of QPlatformMenu::menuItemForTag to avoid a crash dereferencing a null pointer. Task-number: QTBUG-42327 Change-Id: Ie54a94caec7a5d756c459741df182fbe4e38bec0 Reviewed-by: Morten Johan Sørvig --- src/widgets/widgets/qmenu.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/widgets/widgets/qmenu.cpp b/src/widgets/widgets/qmenu.cpp index 0fd645a4d38..acfccc8e192 100644 --- a/src/widgets/widgets/qmenu.cpp +++ b/src/widgets/widgets/qmenu.cpp @@ -3055,8 +3055,10 @@ void QMenu::actionEvent(QActionEvent *e) delete menuItem; } else if (e->type() == QEvent::ActionChanged) { QPlatformMenuItem *menuItem = d->platformMenu->menuItemForTag(reinterpret_cast(e->action())); - copyActionToPlatformItem(e->action(), menuItem); - d->platformMenu->syncMenuItem(menuItem); + if (menuItem) { + copyActionToPlatformItem(e->action(), menuItem); + d->platformMenu->syncMenuItem(menuItem); + } } d->platformMenu->syncSeparatorsCollapsible(d->collapsibleSeparators); From 7eb7dd555cc50112ae242a32976f075f070625d7 Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Wed, 5 Nov 2014 07:31:01 +0100 Subject: [PATCH 20/50] Documentation CSS: remove body text color MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Help text should use the QPalette color. Task-number: QTBUG-42399 Change-Id: Ibc8658b4a7affc2481d895c13cfa673b50a872e0 Reviewed-by: Topi Reiniö --- doc/global/template/style/offline.css | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/global/template/style/offline.css b/doc/global/template/style/offline.css index 5957e3840d0..126df9d806f 100644 --- a/doc/global/template/style/offline.css +++ b/doc/global/template/style/offline.css @@ -2,7 +2,6 @@ body { font: normal 400 14px/1.2 Arial; margin-top: 85px; font-family: Arial, Helvetica; - color: #313131; text-align: left; margin-left: 5px; margin-right: 5px; From 2d075bf651e246d57d25a95219d7358946b9f785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 4 Nov 2014 17:12:28 +0100 Subject: [PATCH 21/50] iOS: Update integrated event dispatcher to support 64-bit x86 Needed so that we can build simulator builds for x86_64 as well as i386. The function call alignment is the same, but we need to use the 64-bit versions of the instruction and operands. Change-Id: I62cc78e23b5e0923382d19570ce18f558894e6a0 Reviewed-by: Simon Hausmann --- src/plugins/platforms/ios/qioseventdispatcher.mm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/platforms/ios/qioseventdispatcher.mm b/src/plugins/platforms/ios/qioseventdispatcher.mm index 66fd9cd1e52..ffffc4cbc44 100644 --- a/src/plugins/platforms/ios/qioseventdispatcher.mm +++ b/src/plugins/platforms/ios/qioseventdispatcher.mm @@ -317,11 +317,16 @@ static bool rootLevelRunLoopIntegration() } #if defined(Q_PROCESSOR_X86) -# define SET_STACK_POINTER "mov %0, %%esp" # define FUNCTION_CALL_ALIGNMENT 16 +# if defined(Q_PROCESSOR_X86_32) +# define SET_STACK_POINTER "mov %0, %%esp" +# elif defined(Q_PROCESSOR_X86_64) +# define SET_STACK_POINTER "movq %0, %%rsp" +# endif #elif defined(Q_PROCESSOR_ARM) -# define SET_STACK_POINTER "mov sp, %0" +# // Valid for both 32 and 64-bit ARM # define FUNCTION_CALL_ALIGNMENT 4 +# define SET_STACK_POINTER "mov sp, %0" #else # error "Unknown processor family" #endif From ec63f5fbf3927b184f234f95c6003fe8496d8b9f Mon Sep 17 00:00:00 2001 From: Shawn Rutledge Date: Wed, 15 Oct 2014 14:00:05 +0200 Subject: [PATCH 22/50] docs: WindowType is important for dialogs to center themselves Task-number: QTBUG-41844 Task-number: QTBUG-36185 Change-Id: I61605006048e81d2666eea34f4d041124a24199f Reviewed-by: Laszlo Agocs --- src/gui/kernel/qwindow.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index b0fbbc15701..99bf469f871 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -1122,6 +1122,10 @@ Qt::WindowState QWindow::windowState() const This is a hint to the window manager that this window is a dialog or pop-up on behalf of the given window. + In order to cause the window to be centered above its transient parent by + default, depending on the window manager, it may also be necessary to call + setFlags() with a suitable \l Qt::WindowType (such as \c Qt::Dialog). + \sa transientParent(), parent() */ void QWindow::setTransientParent(QWindow *parent) From 3978249743559d31b793cdfcf77c8e9ae653cec4 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 28 Oct 2014 14:28:42 +0100 Subject: [PATCH 23/50] Doc: add new Qt Creator Manual topics to externalpages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New in some earlier version: - Parsing C++ Files New in Qt Creator 3.3: - Qt Quick UI Forms - Using Clang Static Analyzer Change-Id: I2821b31f4c67b79e6a178018a6acba5b828edb3e Reviewed-by: Topi Reiniö --- doc/global/externalsites/qtcreator.qdoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/doc/global/externalsites/qtcreator.qdoc b/doc/global/externalsites/qtcreator.qdoc index 46609de1606..a98fbd0a56c 100644 --- a/doc/global/externalsites/qtcreator.qdoc +++ b/doc/global/externalsites/qtcreator.qdoc @@ -483,3 +483,15 @@ \externalpage http://qt-project.org/doc/qtcreator/creator-developing-winrt.html \title Qt Creator: Connecting Windows Runtime Devices */ +/*! + \externalpage http://qt-project.org/doc/qtcreator/creator-clang-codemodel.html + \title Qt Creator: Parsing C++ Files +*/ +/*! + \externalpage http://qt-project.org/doc/qtcreator/creator-quick-ui-forms.html + \title Qt Creator: Qt Quick UI Forms +*/ +/*! + \externalpage http://qt-project.org/doc/qtcreator/creator-clang-static-analyzer.html + \title Qt Creator: Using Clang Static Analyzer +*/ From 7a8bb824ff41228913c2a3e0b969767f3c49c15f Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 27 Oct 2014 12:33:35 +0100 Subject: [PATCH 24/50] Update the copy of the Qml parser The files here are a copy of the parser from the qtdeclarative repository. This patch combines commit cfff375afcfe63d25b3c1904ff58a90bcd1edb43 and f876562de8eb978cea39fe72e76c49ae51ff2f97 from the qtdeclarative repository to fix the license and allow for read-only object property syntax. Change-Id: Idb58948cede2cd47858e3831785009f8b7ea2169 Reviewed-by: Martin Smith --- src/tools/qdoc/qmlparser/qqmljs.g | 117 +- src/tools/qdoc/qmlparser/qqmljsgrammar.cpp | 1712 ++++++++++---------- src/tools/qdoc/qmlparser/qqmljsgrammar_p.h | 12 +- src/tools/qdoc/qmlparser/qqmljsparser.cpp | 456 +++--- src/tools/qdoc/qmlparser/qqmljsparser_p.h | 4 +- 5 files changed, 1164 insertions(+), 1137 deletions(-) diff --git a/src/tools/qdoc/qmlparser/qqmljs.g b/src/tools/qdoc/qmlparser/qqmljs.g index de4fec4d568..616e3b3166b 100644 --- a/src/tools/qdoc/qmlparser/qqmljs.g +++ b/src/tools/qdoc/qmlparser/qqmljs.g @@ -1,21 +1,31 @@ ---------------------------------------------------------------------------- -- --- Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +-- Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -- Contact: http://www.qt-project.org/legal -- -- This file is part of the QtQml module of the Qt Toolkit. -- --- $QT_BEGIN_LICENSE:LGPL-ONLY$ --- GNU Lesser General Public License Usage --- 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. +-- $QT_BEGIN_LICENSE:LGPL21$ +-- 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. -- --- If you have questions regarding the use of this file, please contact --- us via http://www.qt-project.org/. +-- 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 or version 3 as published by the Free +-- Software Foundation and appearing in the file LICENSE.LGPLv21 and +-- LICENSE.LGPLv3 included in the packaging of this file. Please review the +-- following information to ensure the GNU Lesser General Public License +-- requirements will be met: https://www.gnu.org/licenses/lgpl.html and +-- 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. -- -- $QT_END_LICENSE$ -- @@ -89,41 +99,33 @@ /./**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** 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 +** 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. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** 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 +** 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$ ** ****************************************************************************/ @@ -142,41 +144,33 @@ /:/**************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the QtQml module of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL$ +** $QT_BEGIN_LICENSE:LGPL21$ ** 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 +** 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. +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** 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 +** 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$ ** ****************************************************************************/ @@ -1090,6 +1084,31 @@ case $rule_number: { } break; ./ +UiObjectMember: T_READONLY T_PROPERTY UiPropertyType JsIdentifier T_COLON UiQualifiedId UiObjectInitializer ; +/. +case $rule_number: { + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); + node->isReadonlyMember = true; + node->readonlyToken = loc(1); + node->propertyToken = loc(2); + node->typeToken = loc(3); + node->identifierToken = loc(4); + node->semicolonToken = loc(5); // insert a fake ';' before ':' + + AST::UiQualifiedId *propertyName = new (pool) AST::UiQualifiedId(stringRef(4)); + propertyName->identifierToken = loc(4); + propertyName->next = 0; + + AST::UiObjectBinding *binding = new (pool) AST::UiObjectBinding( + propertyName, sym(6).UiQualifiedId, sym(7).UiObjectInitializer); + binding->colonToken = loc(5); + + node->binding = binding; + + sym(1).Node = node; +} break; +./ + UiObjectMember: FunctionDeclaration ; /. case $rule_number: { diff --git a/src/tools/qdoc/qmlparser/qqmljsgrammar.cpp b/src/tools/qdoc/qmlparser/qqmljsgrammar.cpp index d3fb3f8d1f8..2600a5e14c8 100644 --- a/src/tools/qdoc/qmlparser/qqmljsgrammar.cpp +++ b/src/tools/qdoc/qmlparser/qqmljsgrammar.cpp @@ -57,35 +57,35 @@ const short QQmlJSGrammar::lhs [] = { 130, 130, 130, 130, 130, 130, 130, 111, 138, 138, 138, 139, 139, 140, 140, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, - 111, 111, 124, 124, 124, 124, 124, 124, 124, 143, + 111, 111, 111, 124, 124, 124, 124, 124, 124, 124, 143, 143, 143, 143, 143, 143, 143, 143, 143, 143, - 143, 143, 143, 143, 143, 143, 143, 129, 145, 145, - 145, 145, 144, 144, 149, 149, 149, 147, 147, 150, - 150, 150, 150, 153, 153, 153, 153, 153, 153, 153, + 143, 143, 143, 143, 143, 143, 143, 143, 129, 145, + 145, 145, 145, 144, 144, 149, 149, 149, 147, 147, + 150, 150, 150, 150, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 154, 154, 120, 120, 120, 120, - 120, 157, 157, 158, 158, 158, 158, 156, 156, 159, - 159, 160, 160, 161, 161, 161, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 163, 163, 163, 163, - 164, 164, 164, 165, 165, 165, 165, 166, 166, 166, - 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, - 168, 168, 168, 168, 168, 169, 169, 169, 169, 169, - 170, 170, 171, 171, 172, 172, 173, 173, 174, 174, - 175, 175, 176, 176, 177, 177, 178, 178, 179, 179, - 180, 180, 181, 181, 148, 148, 182, 182, 183, 183, + 153, 153, 153, 153, 153, 154, 154, 120, 120, 120, + 120, 120, 157, 157, 158, 158, 158, 158, 156, 156, + 159, 159, 160, 160, 161, 161, 161, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 163, 163, 163, + 163, 164, 164, 164, 165, 165, 165, 165, 166, 166, + 166, 166, 166, 166, 166, 167, 167, 167, 167, 167, + 167, 168, 168, 168, 168, 168, 169, 169, 169, 169, + 169, 170, 170, 171, 171, 172, 172, 173, 173, 174, + 174, 175, 175, 176, 176, 177, 177, 178, 178, 179, + 179, 180, 180, 181, 181, 148, 148, 182, 182, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, - 109, 109, 184, 184, 185, 185, 186, 186, 108, 108, + 183, 109, 109, 184, 184, 185, 185, 186, 186, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 131, 195, 195, 194, 194, 142, 142, - 196, 196, 197, 197, 199, 199, 198, 200, 203, 201, - 201, 204, 202, 202, 132, 133, 133, 134, 134, 187, - 187, 187, 187, 187, 187, 187, 187, 188, 188, 188, - 188, 189, 189, 189, 189, 190, 190, 135, 136, 205, - 205, 208, 208, 206, 206, 209, 207, 191, 192, 192, - 137, 137, 137, 210, 211, 193, 193, 212, 141, 155, - 155, 213, 213, 152, 152, 151, 151, 214, 112, 112, - 215, 215, 110, 110, 146, 146, 216}; + 108, 108, 108, 108, 131, 195, 195, 194, 194, 142, + 142, 196, 196, 197, 197, 199, 199, 198, 200, 203, + 201, 201, 204, 202, 202, 132, 133, 133, 134, 134, + 187, 187, 187, 187, 187, 187, 187, 187, 188, 188, + 188, 188, 189, 189, 189, 189, 190, 190, 135, 136, + 205, 205, 208, 208, 206, 206, 209, 207, 191, 192, + 192, 137, 137, 137, 210, 211, 193, 193, 212, 141, + 155, 155, 213, 213, 152, 152, 151, 151, 214, 112, + 112, 215, 215, 110, 110, 146, 146, 216}; const short QQmlJSGrammar::rhs [] = { 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, @@ -95,110 +95,110 @@ const short QQmlJSGrammar::rhs [] = { 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 0, 1, 2, 4, 6, 6, 3, 3, 7, 7, 4, 4, 5, 5, 5, 6, 6, 10, 6, + 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 3, 3, 4, 5, 3, 4, 3, 1, 1, 2, - 3, 4, 1, 2, 3, 7, 8, 1, 3, 1, + 2, 3, 3, 4, 5, 3, 4, 3, 1, 1, + 2, 3, 4, 1, 2, 3, 7, 8, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 4, 3, - 5, 1, 2, 4, 4, 4, 3, 0, 1, 1, - 3, 1, 1, 1, 2, 2, 1, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 3, 3, 3, - 1, 3, 3, 1, 3, 3, 3, 1, 3, 3, - 3, 3, 3, 3, 1, 3, 3, 3, 3, 3, - 1, 3, 3, 3, 3, 1, 3, 3, 3, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, - 1, 5, 1, 5, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, + 3, 5, 1, 2, 4, 4, 4, 3, 0, 1, + 1, 3, 1, 1, 1, 2, 2, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 3, 3, + 3, 1, 3, 3, 1, 3, 3, 3, 1, 3, + 3, 3, 3, 3, 3, 1, 3, 3, 3, 3, + 3, 1, 3, 3, 3, 3, 1, 3, 3, 3, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 3, 1, 5, 1, 5, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, + 1, 1, 3, 0, 1, 1, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 2, 0, 1, 3, 3, - 1, 1, 1, 3, 1, 3, 2, 2, 2, 0, - 1, 2, 0, 1, 1, 2, 2, 7, 5, 7, - 7, 7, 5, 9, 10, 7, 8, 2, 2, 3, - 3, 2, 2, 3, 3, 3, 3, 5, 5, 3, - 5, 1, 2, 0, 1, 4, 3, 3, 3, 3, - 3, 3, 4, 5, 2, 2, 2, 1, 8, 8, - 7, 1, 3, 0, 1, 0, 1, 1, 1, 1, - 1, 2, 1, 1, 0, 1, 2}; + 1, 1, 1, 1, 3, 1, 2, 0, 1, 3, + 3, 1, 1, 1, 3, 1, 3, 2, 2, 2, + 0, 1, 2, 0, 1, 1, 2, 2, 7, 5, + 7, 7, 7, 5, 9, 10, 7, 8, 2, 2, + 3, 3, 2, 2, 3, 3, 3, 3, 5, 5, + 3, 5, 1, 2, 0, 1, 4, 3, 3, 3, + 3, 3, 3, 4, 5, 2, 2, 2, 1, 8, + 8, 7, 1, 3, 0, 1, 0, 1, 1, 1, + 1, 1, 2, 1, 1, 0, 1, 2}; const short QQmlJSGrammar::action_default [] = { - 0, 0, 28, 0, 0, 0, 28, 0, 184, 251, - 215, 223, 219, 163, 235, 211, 3, 148, 81, 164, - 227, 231, 152, 181, 162, 167, 147, 201, 188, 0, - 88, 89, 84, 0, 78, 73, 355, 0, 0, 0, - 0, 86, 0, 0, 82, 85, 77, 0, 0, 74, - 76, 79, 75, 87, 80, 0, 83, 0, 0, 177, - 0, 0, 164, 183, 166, 165, 0, 0, 0, 179, - 180, 178, 182, 0, 212, 0, 0, 0, 0, 202, - 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, - 186, 187, 185, 190, 194, 193, 191, 189, 204, 203, - 205, 0, 220, 0, 216, 0, 0, 158, 145, 157, - 146, 114, 115, 116, 141, 117, 142, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 143, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 144, 0, 0, 156, 252, 159, 0, 160, 0, - 161, 155, 0, 248, 241, 239, 246, 247, 245, 244, - 250, 243, 242, 240, 249, 236, 0, 224, 0, 0, - 228, 0, 0, 232, 0, 0, 158, 150, 0, 149, - 0, 154, 168, 0, 344, 344, 345, 0, 342, 0, - 343, 0, 346, 259, 266, 265, 273, 261, 0, 262, - 0, 347, 0, 354, 263, 264, 81, 269, 267, 351, - 348, 353, 270, 0, 281, 0, 0, 0, 0, 338, - 0, 355, 253, 295, 0, 0, 0, 282, 0, 0, - 271, 272, 0, 260, 268, 296, 297, 0, 344, 0, - 0, 346, 0, 339, 340, 0, 328, 352, 0, 312, - 313, 314, 315, 0, 308, 309, 310, 311, 336, 337, - 0, 0, 0, 0, 0, 300, 301, 302, 257, 255, - 217, 225, 221, 237, 213, 258, 0, 164, 229, 233, - 206, 195, 0, 0, 214, 0, 0, 0, 0, 207, - 0, 0, 0, 0, 0, 199, 197, 200, 198, 196, - 209, 208, 210, 0, 222, 0, 218, 0, 256, 164, - 0, 238, 253, 254, 0, 253, 0, 0, 304, 0, - 0, 0, 306, 0, 226, 0, 0, 230, 0, 0, - 234, 293, 0, 285, 294, 288, 0, 292, 0, 253, - 286, 0, 253, 0, 0, 305, 0, 0, 0, 307, - 0, 0, 0, 299, 0, 298, 81, 108, 356, 0, - 0, 113, 275, 278, 0, 114, 281, 117, 142, 119, - 120, 84, 124, 125, 78, 126, 129, 82, 85, 253, - 79, 87, 132, 80, 134, 83, 136, 137, 282, 139, - 140, 144, 0, 110, 109, 112, 96, 111, 95, 0, - 105, 276, 274, 0, 0, 0, 346, 0, 106, 152, - 153, 158, 0, 151, 0, 316, 317, 0, 344, 0, - 0, 346, 0, 107, 0, 0, 0, 319, 324, 322, - 325, 0, 0, 323, 324, 0, 320, 0, 321, 277, - 327, 0, 277, 326, 0, 329, 330, 0, 277, 331, - 332, 0, 0, 333, 0, 0, 0, 334, 335, 170, - 169, 0, 0, 0, 303, 0, 0, 0, 318, 290, - 283, 0, 291, 287, 0, 289, 279, 0, 280, 284, - 0, 0, 346, 0, 341, 99, 0, 0, 103, 90, - 0, 92, 101, 0, 93, 102, 104, 94, 100, 91, - 0, 97, 174, 172, 176, 173, 171, 175, 349, 6, - 350, 4, 2, 71, 98, 0, 0, 74, 76, 75, - 37, 5, 0, 72, 0, 51, 50, 49, 0, 0, + 0, 0, 28, 0, 0, 0, 28, 0, 185, 252, + 216, 224, 220, 164, 236, 212, 3, 149, 82, 165, + 228, 232, 153, 182, 163, 168, 148, 202, 189, 0, + 89, 90, 85, 0, 79, 74, 356, 0, 0, 0, + 0, 87, 0, 0, 83, 86, 78, 0, 0, 75, + 77, 80, 76, 88, 81, 0, 84, 0, 0, 178, + 0, 0, 165, 184, 167, 166, 0, 0, 0, 180, + 181, 179, 183, 0, 213, 0, 0, 0, 0, 203, + 0, 0, 0, 0, 0, 0, 193, 0, 0, 0, + 187, 188, 186, 191, 195, 194, 192, 190, 205, 204, + 206, 0, 221, 0, 217, 0, 0, 159, 146, 158, + 147, 115, 116, 117, 142, 118, 143, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 144, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 145, 0, 0, 157, 253, 160, 0, 161, 0, + 162, 156, 0, 249, 242, 240, 247, 248, 246, 245, + 251, 244, 243, 241, 250, 237, 0, 225, 0, 0, + 229, 0, 0, 233, 0, 0, 159, 151, 0, 150, + 0, 155, 169, 0, 345, 345, 346, 0, 343, 0, + 344, 0, 347, 260, 267, 266, 274, 262, 0, 263, + 0, 348, 0, 355, 264, 265, 82, 270, 268, 352, + 349, 354, 271, 0, 282, 0, 0, 0, 0, 339, + 0, 356, 254, 296, 0, 0, 0, 283, 0, 0, + 272, 273, 0, 261, 269, 297, 298, 0, 345, 0, + 0, 347, 0, 340, 341, 0, 329, 353, 0, 313, + 314, 315, 316, 0, 309, 310, 311, 312, 337, 338, + 0, 0, 0, 0, 0, 301, 302, 303, 258, 256, + 218, 226, 222, 238, 214, 259, 0, 165, 230, 234, + 207, 196, 0, 0, 215, 0, 0, 0, 0, 208, + 0, 0, 0, 0, 0, 200, 198, 201, 199, 197, + 210, 209, 211, 0, 223, 0, 219, 0, 257, 165, + 0, 239, 254, 255, 0, 254, 0, 0, 305, 0, + 0, 0, 307, 0, 227, 0, 0, 231, 0, 0, + 235, 294, 0, 286, 295, 289, 0, 293, 0, 254, + 287, 0, 254, 0, 0, 306, 0, 0, 0, 308, + 0, 0, 0, 300, 0, 299, 82, 109, 357, 0, + 0, 114, 276, 279, 0, 115, 282, 118, 143, 120, + 121, 85, 125, 126, 79, 127, 130, 83, 86, 254, + 80, 88, 133, 81, 135, 84, 137, 138, 283, 140, + 141, 145, 0, 111, 110, 113, 97, 112, 96, 0, + 106, 277, 275, 0, 0, 0, 347, 0, 107, 153, + 154, 159, 0, 152, 0, 317, 318, 0, 345, 0, + 0, 347, 0, 108, 0, 0, 0, 320, 325, 323, + 326, 0, 0, 324, 325, 0, 321, 0, 322, 278, + 328, 0, 278, 327, 0, 330, 331, 0, 278, 332, + 333, 0, 0, 334, 0, 0, 0, 335, 336, 171, + 170, 0, 0, 0, 304, 0, 0, 0, 319, 291, + 284, 0, 292, 288, 0, 290, 280, 0, 281, 285, + 0, 0, 347, 0, 342, 100, 0, 0, 104, 91, + 0, 93, 102, 0, 94, 103, 105, 95, 101, 92, + 0, 98, 175, 173, 177, 174, 172, 176, 350, 6, + 351, 4, 2, 72, 99, 0, 0, 75, 77, 76, + 37, 5, 0, 73, 0, 51, 50, 49, 0, 0, 64, 0, 65, 41, 42, 43, 44, 46, 47, 68, 45, 0, 51, 0, 0, 0, 0, 0, 60, 0, 61, 0, 0, 32, 0, 0, 69, 33, 0, 36, - 34, 30, 0, 35, 31, 0, 62, 0, 63, 152, - 0, 66, 70, 0, 0, 0, 0, 67, 0, 58, + 34, 30, 0, 35, 31, 0, 62, 0, 63, 153, + 0, 66, 70, 0, 0, 0, 0, 153, 278, 0, + 67, 82, 115, 282, 118, 143, 120, 121, 85, 125, + 126, 127, 130, 83, 86, 254, 88, 133, 81, 135, + 84, 137, 138, 283, 140, 141, 145, 71, 0, 58, 52, 59, 53, 0, 0, 0, 0, 55, 0, 56, - 57, 54, 0, 0, 152, 277, 0, 0, 48, 81, - 114, 281, 117, 142, 119, 120, 84, 124, 125, 126, - 129, 82, 85, 253, 87, 132, 80, 134, 83, 136, - 137, 282, 139, 140, 144, 0, 38, 39, 0, 40, - 8, 0, 0, 9, 0, 11, 0, 10, 0, 1, - 27, 15, 14, 26, 13, 12, 29, 7, 0, 18, - 0, 19, 0, 24, 25, 0, 20, 21, 0, 22, - 23, 16, 17, 357}; + 57, 54, 0, 0, 0, 0, 48, 0, 38, 39, + 0, 40, 8, 0, 0, 9, 0, 11, 0, 10, + 0, 1, 27, 15, 14, 26, 13, 12, 29, 7, + 0, 18, 0, 19, 0, 24, 25, 0, 20, 21, + 0, 22, 23, 16, 17, 358}; const short QQmlJSGrammar::goto_default [] = { - 7, 639, 211, 198, 209, 521, 509, 634, 647, 508, - 633, 637, 635, 643, 22, 640, 638, 636, 18, 520, + 7, 641, 211, 198, 209, 521, 509, 636, 649, 508, + 635, 639, 637, 645, 22, 642, 640, 638, 18, 520, 562, 552, 559, 554, 539, 193, 197, 199, 204, 234, - 212, 231, 543, 583, 582, 203, 233, 26, 487, 486, + 212, 231, 543, 613, 612, 203, 233, 26, 487, 486, 359, 358, 9, 357, 360, 202, 480, 361, 109, 17, 147, 24, 13, 146, 19, 25, 59, 23, 8, 28, 27, 280, 15, 274, 10, 270, 12, 272, 11, 271, @@ -209,295 +209,267 @@ const short QQmlJSGrammar::goto_default [] = { 0}; const short QQmlJSGrammar::action_index [] = { - 239, 1406, 2692, 2692, 2794, 1119, 115, 29, 168, -106, - 26, -23, -60, 225, -106, 306, 33, -106, -106, 732, - -2, 145, 243, 223, -106, -106, -106, 379, 227, 1406, - -106, -106, -106, 539, -106, -106, 2488, 1698, 1406, 1406, - 1406, -106, 1023, 1406, -106, -106, -106, 1406, 1406, -106, - -106, -106, -106, -106, -106, 1406, -106, 1406, 1406, -106, - 1406, 1406, 114, 206, -106, -106, 1406, 1406, 1406, -106, - -106, -106, 211, 1406, 302, 1406, 1406, 1406, 1406, 369, - 1406, 1406, 1406, 1406, 1406, 1406, 226, 1406, 1406, 1406, - 135, 151, 110, 257, 279, 276, 256, 222, 475, 475, - 475, 1406, 7, 1406, 57, 2284, 1406, 1406, -106, -106, + 264, 1225, 2708, 2708, 2606, 938, 94, 104, 119, -106, + 92, 79, 81, 262, -106, 263, 78, -106, -106, 654, + 89, 125, 259, 229, -106, -106, -106, 322, 314, 1225, + -106, -106, -106, 412, -106, -106, 2300, 1713, 1225, 1225, + 1225, -106, 842, 1225, -106, -106, -106, 1225, 1225, -106, + -106, -106, -106, -106, -106, 1225, -106, 1225, 1225, -106, + 1225, 1225, 141, 216, -106, -106, 1225, 1225, 1225, -106, + -106, -106, 209, 1225, 281, 1225, 1225, 1225, 1225, 367, + 1225, 1225, 1225, 1225, 1225, 1225, 219, 1225, 1225, 1225, + 101, 102, 115, 314, 314, 314, 314, 314, 357, 347, + 337, 1225, 71, 1225, 70, 2198, 1225, 1225, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, - -106, -106, 136, 1406, -106, -106, 30, -24, -106, 1406, - -106, -106, 1406, -106, -106, -106, -106, -106, -106, -106, - -106, -106, -106, -106, -106, -106, 1406, 2, 1406, 1406, - 10, 97, 1406, -106, 2284, 1406, 1406, -106, 141, -106, - -45, -106, -106, 4, 457, 386, 89, 79, -106, 448, - -106, 74, 2692, -106, -106, -106, -106, -106, 164, -106, - 460, -106, 85, -106, -106, -106, 96, -106, -106, -106, - 2692, -106, -106, 547, -106, 629, 143, 2794, 62, 54, - 43, 2998, 1406, -106, 51, 1406, 52, -106, 47, 45, - -106, -106, 454, -106, -106, -106, -106, 64, 352, 31, - 61, 2692, 27, -106, -106, 2794, -106, -106, 139, -106, - -106, -106, -106, 126, -106, -106, -106, -106, -106, -106, - -6, 25, 1406, 130, 159, -106, -106, -106, 1600, -106, - 68, 65, 5, -106, 308, 60, 3, 835, 99, 105, - 337, 207, 408, 1406, 317, 1406, 1406, 1406, 1406, 353, - 1406, 1406, 1406, 1406, 1406, 186, 203, 204, 212, 219, - 333, 343, 359, 1406, 20, 1406, 202, 1406, -106, 732, - 1406, -106, 1406, 81, 72, 1406, 77, 2794, -106, 1406, - 149, 2794, -106, 1406, 80, 1406, 1406, 94, 88, 1406, - -106, -8, 128, -25, -106, -106, 1406, -106, 471, 1406, - -106, -53, 1406, -56, 2794, -106, 1406, 134, 2794, -106, - 1406, 138, 2794, -5, 2794, -106, -4, -106, 9, -9, - 37, -106, -106, 2794, -12, 555, 32, 629, 123, 1406, - 2794, 41, 18, 504, 2386, 21, 1023, 49, 46, 1505, - 2386, 42, 16, 44, 1406, 24, -10, 1406, 17, 1406, - -15, -18, 2590, -106, -106, -106, -106, -106, -106, 1406, - -106, -106, -106, -1, -26, -3, 2692, -27, -106, 277, - -106, 1406, -28, -106, 90, -106, -106, 1, 552, -40, - -11, 2692, -29, -106, 1406, 117, 14, -106, 50, -106, - 40, 119, 1406, -106, 11, 35, -106, -54, -106, 2794, - -106, 116, 2794, -106, 267, -106, -106, 121, 2794, -7, - -106, -31, -19, -106, 376, 6, 78, -106, -106, -106, - -106, 1406, 98, 2794, -106, 1406, 106, 2794, -106, 76, - -106, 254, -106, -106, 1406, -106, -106, 552, -106, -106, - 71, 75, 2692, 67, -106, -106, 122, 1992, -106, -106, - 1796, -106, -106, 1894, -106, -106, -106, -106, -106, -106, - 113, -106, -106, -106, -106, -106, -106, -106, -106, -106, - 2692, -106, -106, -106, 111, 22, 929, 152, 39, 48, - -106, -106, 301, -106, 147, -106, -106, -106, 468, 155, - -106, 2182, -106, -106, -106, -106, -106, -106, -106, -106, - -106, 178, -30, 463, 181, -14, 400, 229, -106, -32, - -106, 929, 104, -106, 0, 929, -106, -106, 1311, -106, - -106, -106, 1215, -106, -106, 248, -106, 2182, -106, 392, - 59, -106, -106, 244, 552, 73, 2182, -106, 236, -106, - 237, -106, 70, 15, 368, 214, 355, -106, 103, -106, - -106, -106, 2087, 721, 392, 2896, 1698, 34, -106, 56, - 598, 55, 629, 107, 1406, 2794, 53, 23, 544, 36, - 1023, 58, 66, 1505, 69, 38, 63, 1406, 95, 84, - 1406, 102, 1406, 83, 82, 124, -106, -106, 87, -106, - -106, 929, 813, 91, 929, -106, 271, -106, 86, -106, - -106, 100, 101, -106, -106, -106, -106, -106, 552, -106, - 209, -106, 109, -106, -106, 552, -106, -106, 92, -106, - -106, -106, -106, -106, + -106, -106, 98, 1225, -106, -106, 66, 65, -106, 1225, + -106, -106, 1225, -106, -106, -106, -106, -106, -106, -106, + -106, -106, -106, -106, -106, -106, 1225, 44, 1225, 1225, + 64, 57, 1225, -106, 2198, 1225, 1225, -106, 137, -106, + 49, -106, -106, 93, 344, 474, 95, 86, -106, 390, + -106, 85, 2708, -106, -106, -106, -106, -106, 189, -106, + 474, -106, 80, -106, -106, -106, 83, -106, -106, -106, + 2708, -106, -106, 490, -106, 551, 130, 2606, 46, 51, + 52, 2912, 1225, -106, 63, 1225, 56, -106, 58, 60, + -106, -106, 474, -106, -106, -106, -106, 61, 474, 62, + 67, 2708, 68, -106, -106, 2606, -106, -106, 87, -106, + -106, -106, -106, 110, -106, -106, -106, -106, -106, -106, + -24, 69, 1225, 122, 143, -106, -106, -106, 1419, -106, + 74, 76, 77, -106, 269, 73, 72, 611, 75, 114, + 397, 314, 474, 1225, 287, 1225, 1225, 1225, 1225, 397, + 1225, 1225, 1225, 1225, 1225, 218, 215, 198, 192, 182, + 397, 397, 312, 1225, 55, 1225, 59, 1225, -106, 654, + 1225, -106, 1225, 54, 53, 1225, 50, 2606, -106, 1225, + 124, 2606, -106, 1225, 90, 1225, 1225, 105, 88, 1225, + -106, 84, 157, -27, -106, -106, 1225, -106, 474, 1225, + -106, 82, 1225, 91, 2606, -106, 1225, 120, 2606, -106, + 1225, 103, 2606, -9, 2606, -106, -2, -106, 11, -30, + 17, -106, -106, 2606, -37, 469, 15, 551, 138, 1225, + 2606, 14, -16, 433, 2402, -20, 842, 6, 5, 1324, + 2402, 4, -36, 2, 1225, 7, -18, 1225, 10, 1225, + -26, -13, 2504, -106, -106, -106, -106, -106, -106, 1225, + -106, -106, -106, -33, -59, -25, 2708, 23, -106, 197, + -106, 1225, -12, -106, 140, -106, -106, 22, 474, -4, + 26, 2708, 12, -106, 1225, 113, 30, -106, 142, -106, + 142, 121, 1225, -106, -3, 45, -106, -5, -106, 2606, + -106, 108, 2606, -106, 207, -106, -106, 106, 2606, 37, + -106, 25, 36, -106, 474, 38, 40, -106, -106, -106, + -106, 1225, 136, 2606, -106, 1225, 166, 2606, -106, 13, + -106, 200, -106, -106, 1225, -106, -106, 474, -106, -106, + -17, 16, 2708, -11, -106, -106, 131, 1811, -106, -106, + 1615, -106, -106, 1517, -106, -106, -106, -106, -106, -106, + 109, -106, -106, -106, -106, -106, -106, -106, -106, -106, + 2708, -106, -106, -106, 233, -19, 748, 152, -60, 41, + -106, -106, 191, -106, 177, -106, -106, -106, 387, 203, + -106, 1906, -106, -106, -106, -106, -106, -106, -106, -106, + -106, 180, 43, 376, 174, 48, 474, 240, -106, 8, + -106, 748, 111, -106, -1, 748, -106, -106, 1130, -106, + -106, -106, 1034, -106, -106, 228, -106, 1906, -106, 295, + 21, -106, -106, 184, 379, 39, 2001, 288, 2810, 18, + -106, 34, 482, 33, 551, 138, 1225, 2606, 31, 9, + 399, 3, 643, 19, 29, 1324, 28, 1, 27, 1225, + 24, 0, 1225, 20, 1225, -7, -8, -106, 193, -106, + 205, -106, 47, 42, 329, 208, 319, -106, 128, -106, + -106, -106, 2096, 748, 1713, 35, -106, 132, -106, -106, + 32, -106, -106, 748, 748, 94, 748, -106, 250, -106, + 116, -106, -106, 233, 233, -106, -106, -106, -106, -106, + 393, -106, 214, -106, 100, -106, -106, 474, -106, -106, + 96, -106, -106, -106, -106, -106, - -111, 43, 59, 70, 71, 369, 40, -111, -111, -111, - -111, -111, -111, -111, -111, -111, -111, -111, -111, 21, - -111, -111, -111, -111, -111, -111, -111, -111, -111, 79, - -111, -111, -111, -16, -111, -111, 5, -26, 23, 73, - 91, -111, 83, 61, -111, -111, -111, 88, 87, -111, - -111, -111, -111, -111, -111, 29, -111, 66, 39, -111, - 97, 193, -111, -111, -111, -111, 160, 180, 183, -111, - -111, -111, -111, 176, -111, 167, 151, 155, 152, -111, - 148, 187, 195, 197, 199, 201, -111, 186, 92, 194, + -111, 15, 71, 87, 80, 305, -6, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, -42, + -111, -111, -111, -111, -111, -111, -111, -111, -111, 95, + -111, -111, -111, 3, -111, -111, -5, -11, 9, 109, + 91, -111, 62, 45, -111, -111, -111, 50, 63, -111, + -111, -111, -111, -111, -111, 32, -111, 203, 197, -111, + 189, 178, -111, -111, -111, -111, 182, 185, 188, -111, + -111, -111, -111, 193, -111, 198, 168, 113, 114, -111, + 133, 116, 123, 129, 130, 132, -111, 136, 139, 142, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, 103, -111, 108, -111, 181, -2, -42, -111, -111, + -111, 148, -111, 151, -111, 186, 6, -37, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, 34, -111, -111, -111, -111, -111, 3, - -111, -111, 10, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, -111, -111, -111, 127, -111, 109, 15, - -111, -111, 16, -111, 225, 44, 128, -111, -111, -111, - -111, -111, -111, -111, 25, 157, -111, -111, -111, 26, - -111, -111, 24, -111, -111, -111, -111, -111, -111, -111, - 22, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 179, -111, -111, 45, -111, 46, -111, 107, -111, 48, - -111, 106, 62, -111, -111, 163, -3, -111, -111, -111, - -111, -111, -14, -111, -111, -111, -111, -111, 57, -111, - -111, 224, -111, -111, -111, 227, -111, -111, -111, -111, + -111, -111, -111, 42, -111, -111, -111, -111, -111, 22, + -111, -111, 2, -111, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -111, -111, -111, 96, -111, 66, 21, + -111, -111, 0, -111, 274, 35, 88, -111, -111, -111, + -111, -111, -111, -111, 41, 75, -111, -111, -111, 49, + -111, -111, 48, -111, -111, -111, -111, -111, -111, -111, + 57, -111, -111, -111, -111, -111, -111, -111, -111, -111, + 77, -111, -111, 54, -111, 27, -111, 243, -111, 25, + -111, 160, 36, -111, -111, 169, 40, -111, -111, -111, + -111, -111, 56, -111, -111, -111, -111, -111, 180, -111, + -111, 163, -111, -111, -111, 246, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 35, -111, -111, -111, -111, -111, 72, -111, + -111, -111, 8, -111, -111, -111, -111, -111, 69, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, 12, 264, -111, 258, 246, 254, 209, -111, - 60, 51, 52, 27, 53, -111, -111, -111, -111, -111, - -111, -111, -111, 244, -111, 255, -111, 203, -111, -111, - 207, -111, 217, -111, -111, 198, -111, 208, -111, 8, - -111, 215, -111, 232, -111, 233, 234, -111, -111, 223, - -111, -111, -111, -111, -111, -111, 230, -111, 95, 113, - -111, -111, 153, -111, 156, -111, 2, -111, 147, -111, - 58, -111, 137, -111, 100, -111, -111, -111, -111, -111, - -111, -111, -111, 135, -111, 41, -111, 54, -111, 117, - 162, -111, -111, 50, 169, -111, 174, -111, -111, 32, - 178, -111, -111, -111, 31, -111, 7, 144, -111, 130, - -111, -111, 142, -111, -111, -111, -111, -111, -111, 11, - -111, -111, -111, -111, -111, -111, 214, -111, -111, -111, - -111, 140, -111, -111, -111, -111, -111, -111, 158, -111, - -111, 149, -111, -111, 47, -111, -111, -111, -111, -111, - -55, -111, 38, -111, -67, -111, -111, -111, -111, 263, - -111, -111, 262, -111, -111, -111, -111, -111, 190, -76, - -111, -111, 30, -111, 19, -111, 14, -111, -111, -111, - -111, 33, -111, 272, -111, 64, -111, 175, -111, -111, - -111, -111, -111, -111, 18, -111, -111, 69, -111, -111, - -111, -111, 114, -111, -111, -111, -111, 20, -111, -111, - 110, -111, -111, 28, -111, -111, -111, -111, -111, -111, + -111, -111, 61, 211, -111, 272, 257, 256, 236, -111, + 81, 83, 85, 68, 94, -111, -111, -111, -111, -111, + -111, -111, -111, 235, -111, 218, -111, 209, -111, -111, + 244, -111, 227, -111, -111, 228, -111, 238, -111, 33, + -111, 167, -111, 245, -111, 253, 254, -111, -111, 225, + -111, -111, -111, -111, -111, -111, 217, -111, 194, 213, + -111, -111, 208, -111, 207, -111, 52, -111, 205, -111, + 55, -111, 201, -111, 199, -111, -111, -111, -111, -111, + -111, -111, -111, 278, -111, 39, -111, 34, -111, 173, + 219, -111, -111, 53, 231, -111, 73, -111, -111, 44, + 59, -111, -111, -111, 47, -111, 24, 102, -111, 101, + -111, -111, 111, -111, -111, -111, -111, -111, -111, 26, + -111, -111, -111, -111, -111, -111, 65, -111, -111, -111, + -111, 76, -111, -111, -111, -111, -111, -111, 79, -111, + -111, 89, -111, -111, 51, -111, -111, -111, -111, -111, + -62, -111, 37, -111, -63, -111, -111, -111, -111, 387, + -111, -111, 264, -111, -111, -111, -111, -111, 158, -54, + -111, -111, 28, -111, 38, -111, 23, -111, -111, -111, + -111, 43, -111, 78, -111, 58, -111, 67, -111, -111, + -111, -111, -111, -111, 18, -111, -111, 195, -111, -111, + -111, -111, 161, -111, -111, -111, -111, 20, -111, -111, + 157, -111, -111, 31, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, - 86, -111, -111, -111, -111, -111, 55, -111, -111, -111, - -111, -111, -111, -111, -7, -111, -111, -111, 1, -111, - -111, 329, -111, -111, -111, -111, -111, -111, -111, -111, - -111, -111, -111, 0, -11, -111, -10, -111, -111, -111, - -111, 204, -111, -111, -111, 205, -111, -111, 317, -111, - -111, -111, 311, -111, -111, -111, -111, 370, -111, -111, - -9, -111, -111, -4, -12, -111, 337, -111, -111, -111, - -18, -111, -111, -111, -1, -17, -6, -111, -111, -111, - -111, -111, 466, 78, -111, 82, 307, -13, -111, -111, - -8, -111, 6, -111, 74, 76, -111, -111, 9, -111, - 85, -111, -111, 17, -111, -111, -111, 4, -111, -22, - 84, -111, 67, -111, -111, -111, -111, -111, 49, -111, - -111, 37, 42, 68, 77, -111, -111, -111, -111, -111, - -111, -111, -111, -111, -111, -111, -111, -111, 13, -111, - -111, -111, -111, -111, -111, 36, -111, -111, -111, -111, - -111, -111, -111, -111}; + 206, -111, -111, -111, -111, -111, -7, -111, -111, -111, + -111, -111, -111, -111, -24, -111, -111, -111, -12, -111, + -111, 342, -111, -111, -111, -111, -111, -111, -111, -111, + -111, -111, -111, -16, -32, -111, 5, -111, -111, -111, + -111, 152, -111, -111, -111, 248, -111, -111, 330, -111, + -111, -111, 324, -111, -111, -111, -111, 385, -111, -111, + -21, -111, -111, 1, 14, -111, 367, -111, 232, 12, + -111, -111, 11, -111, 10, -111, 164, 141, -111, -111, + 7, -111, 64, -111, -111, 19, -111, -111, -111, 17, + -111, -1, 60, -111, 46, -111, -111, -111, -111, -111, + -15, -111, -111, -111, -2, -17, -4, -111, -111, -111, + -111, -111, 484, 138, 313, -3, -111, -111, -111, -111, + 4, -111, -111, 13, 16, 97, 127, -111, -111, -111, + -111, -111, -111, -111, -111, -111, -111, -111, -111, -111, + -14, -111, -111, -111, -111, -111, -111, -8, -111, -111, + -111, -111, -111, -111, -111, -111}; const short QQmlJSGrammar::action_info [] = { - 166, 438, 551, 245, 344, 454, 346, 544, 342, 336, - 546, 354, 166, 452, 448, 181, 432, 392, 465, 103, - 420, 461, 421, 448, -138, 101, 423, 73, 408, 663, - 406, -135, 413, 558, 405, 404, 151, 418, 149, -141, - 185, 143, 439, 402, 399, 432, 398, 428, -122, -111, - 101, -133, 424, -112, 268, 432, -130, 350, 73, 268, - -122, 262, -141, 245, 312, -130, 456, 558, 307, 283, - -133, 261, 350, -112, 424, 588, -111, 578, 585, 350, - 576, 465, 243, 461, 305, 448, 103, 424, 524, 143, - 184, 240, 558, 474, 241, 329, 323, 189, 268, 305, - 238, 323, -135, 245, 172, 573, 143, 192, 482, -138, - 0, 448, 555, 303, 143, 174, 174, 448, 465, 461, - 558, 143, 484, 442, 143, 143, 174, 451, 303, 435, - 490, 481, 555, 315, 175, 175, 338, 317, 143, 191, - 244, 452, 143, 0, 143, 175, 143, 662, 661, 143, - 60, 416, 415, 660, 659, 325, 64, 143, 463, 326, - 556, 61, 531, 0, 590, 589, 467, 65, 259, 258, - 654, 653, 143, 501, 436, 60, 525, 426, 491, 0, - 626, 542, 631, 632, 259, 258, 61, 257, 256, 339, - 264, 60, 144, 174, 348, 168, 0, 179, 352, 169, - 252, 251, 61, 283, 259, 258, 631, 632, 60, 321, - 525, 87, 175, 88, 411, 0, 532, 530, 66, 61, - 267, 265, 527, 66, 89, 236, 235, 527, 87, 87, - 88, 88, 87, 526, 88, 66, 549, 87, 526, 88, - 105, 89, 89, 525, 87, 89, 88, 87, 266, 88, - 89, 87, 87, 88, 88, 567, 527, 89, 174, 106, - 89, 107, 477, 67, 89, 89, 525, 526, 67, 68, - 657, 656, 580, 525, 68, 143, 0, 175, 0, 176, - 67, 87, 87, 88, 88, 0, 68, 0, 0, 527, - 550, 548, 174, 0, 89, 89, 0, 581, 579, 0, - 526, 87, 655, 88, 87, 0, 88, 0, 592, 568, - 566, 175, 527, 411, 89, 478, 476, 89, 650, 527, - 75, 76, 0, 526, 75, 76, 285, 286, 446, 445, - 526, 0, 651, 649, 558, 285, 286, 6, 5, 4, - 1, 3, 2, 0, 0, 0, 0, 77, 78, 0, - 0, 77, 78, 287, 288, 0, 290, 291, 0, 0, - 290, 291, 287, 288, 648, 292, 290, 291, 293, 292, - 294, 0, 293, 0, 294, 292, 290, 291, 293, 0, - 294, 35, 290, 291, 35, 292, 0, 0, 293, 0, - 294, 292, 80, 81, 293, 593, 294, 35, 0, 0, - 82, 83, 80, 81, 84, 35, 85, 174, 0, 0, - 82, 83, 0, 0, 84, 35, 85, 0, 49, 52, - 50, 49, 52, 50, 0, -98, 175, 0, 176, 35, - 0, 0, 0, 0, 49, 52, 50, 35, 0, 0, - 0, 0, 49, 52, 50, 0, 46, 34, 51, 46, - 34, 51, 49, 52, 50, 0, 0, 0, 0, 0, - 0, 0, 46, 34, 51, 0, 49, 52, 50, 0, - 46, 34, 51, 0, 49, 52, 50, 35, 0, 0, - 46, 34, 51, 35, 0, 0, 35, 0, 0, 35, - 0, 0, 35, 0, 46, 34, 51, 35, 80, 81, - 35, 0, 46, 34, 51, 0, 82, 83, 0, 0, - 84, 0, 85, 0, 49, 52, 50, 0, 0, 0, - 49, 52, 50, 49, 52, 50, 49, 52, 50, 49, - 52, 50, 0, 35, 49, 52, 50, 49, 52, 50, - 184, 0, 46, 34, 51, 0, 0, 0, 46, 34, - 51, 46, 34, 51, 46, 34, 51, 46, 34, 51, - 0, 0, 46, 34, 51, 46, 34, 51, 35, 0, - 49, 52, 50, 35, 0, 184, 35, 0, 0, 0, - 184, 35, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 49, 52, 50, 250, 249, - 49, 52, 50, 49, 52, 50, 250, 249, 49, 52, - 50, 49, 52, 50, 0, 0, 0, 35, 0, 0, + 424, 405, 432, 404, 346, 245, 573, 354, 406, -134, + 461, -112, -113, -131, -136, 448, 350, -139, 402, 392, + 268, -123, -142, 465, 399, 398, -131, -139, 465, 461, + 474, -136, 558, 448, -134, -112, -113, 424, -123, 350, + -142, 245, 551, 481, 484, 268, 576, 524, 413, 482, + 438, 558, 439, 261, 558, 615, 420, 452, 418, 421, + 283, 454, 143, 428, 172, 558, 166, 423, 558, 448, + 608, 73, 546, 448, 149, 283, 0, 323, 408, 0, + 544, 307, 268, 0, 0, 0, 143, 184, 350, 448, + 245, 166, 101, 73, 461, 329, 465, 238, 456, 424, + 241, 336, 618, 189, 665, 262, 143, 323, 0, 181, + 317, 143, 451, 0, 315, 442, 143, 143, 192, 555, + 0, 143, 240, 243, 303, 151, 452, 101, 143, 185, + 143, 435, 143, 312, 305, 244, 0, 0, 303, 490, + 555, 60, 60, 342, 143, 143, 191, 432, 252, 251, + 103, 344, 61, 61, 144, 60, 305, 662, 661, 60, + 103, 656, 655, 352, 325, 338, 61, 556, 326, 501, + 61, 257, 256, 426, 143, 168, 436, 664, 663, 169, + 348, 542, 264, 64, 321, 633, 634, 491, 628, 620, + 619, 259, 258, 179, 65, 174, 463, 143, 622, 259, + 258, 416, 415, 525, 267, 265, 525, 87, 477, 88, + 531, 0, 174, 525, 175, 143, 411, 87, 339, 88, + 89, 66, 0, 87, 558, 88, 467, 527, 66, 610, + 89, 175, 266, 411, 525, 567, 89, 525, 526, 0, + 87, 66, 88, 87, 87, 88, 88, 549, 174, 527, + 236, 235, 527, 89, 611, 609, 89, 89, 0, 527, + 526, 478, 476, 526, 532, 530, 67, 175, 446, 445, + 526, 0, 68, 67, 174, 659, 658, 105, 0, 68, + 527, 75, 76, 527, 0, 623, 67, 285, 286, 568, + 566, 526, 68, 175, 526, 176, 106, 652, 107, 75, + 76, 550, 548, 174, 0, 285, 286, 657, 77, 78, + 174, 653, 651, 0, 287, 288, 0, 0, 0, 0, + 0, -99, 175, 0, 176, 0, 77, 78, -99, 175, + 0, 176, 287, 288, 0, 290, 291, 0, 0, 87, + 0, 88, 0, 650, 292, 80, 81, 293, 35, 294, + 0, 0, 89, 82, 83, 0, 0, 84, 35, 85, + 80, 81, 6, 5, 4, 1, 3, 2, 82, 83, + 80, 81, 84, 35, 85, 0, 0, 0, 82, 83, + 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, + 80, 81, 84, 0, 85, 49, 52, 50, 82, 83, + 0, 0, 84, 0, 85, 35, 0, 0, 35, 0, + 49, 52, 50, 46, 34, 51, 35, 0, 0, 35, + 290, 291, 35, 46, 34, 51, 0, 0, 35, 292, + 0, 0, 293, 0, 294, 184, 0, 0, 46, 34, + 51, 35, 49, 52, 50, 49, 52, 50, 184, 0, + 0, 0, 0, 49, 52, 50, 49, 52, 50, 49, + 52, 50, 35, 0, 0, 49, 52, 50, 0, 184, + 46, 34, 51, 46, 34, 51, 0, 0, 49, 52, + 50, 46, 34, 51, 46, 34, 51, 46, 34, 51, + 0, 0, 0, 46, 34, 51, 0, 0, 35, 49, + 52, 50, 0, 35, 0, 0, 46, 34, 51, 0, + 0, 35, 0, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 0, 0, 0, 0, 46, 34, 51, + 250, 249, 0, 0, 0, 49, 52, 50, 0, 0, + 49, 52, 50, 250, 249, 0, 0, 0, 49, 52, + 50, 250, 249, 0, 0, 0, 49, 52, 50, 0, 0, 0, 0, 46, 34, 51, 0, 0, 46, 34, - 51, 46, 34, 51, 0, 0, 46, 34, 51, 46, - 34, 51, 0, 0, 0, 0, 0, 0, 35, 250, - 249, 0, 0, 0, 49, 52, 50, 0, 0, 0, + 51, 0, 0, 0, 0, 0, 46, 34, 51, 0, + 35, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 255, 254, 46, 34, 51, 49, 52, 50, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, - 0, 0, 0, 30, 31, 153, 0, 0, 0, 0, - 0, 0, 0, 33, 0, 154, 0, 0, 0, 155, - 35, 0, 0, 0, 36, 37, 0, 38, 156, 0, - 157, 0, 0, 0, 516, 0, 0, 0, 45, 0, - 0, 158, 0, 159, 64, 0, 0, 0, 0, 0, - 0, 160, 0, 0, 161, 65, 53, 49, 52, 50, - 162, 54, 0, 0, 0, 0, 163, 0, 0, 0, - 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, - 0, 0, 164, 0, 0, 46, 34, 51, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 153, 0, - 0, 0, 35, 0, 0, 0, 36, 37, 154, 38, - 0, 0, 155, 0, 0, 0, 516, 0, 0, 0, - 45, 156, 0, 157, 0, 0, 319, 0, 0, 0, - 0, 0, 0, 0, 158, 0, 159, 64, 53, 49, - 52, 50, 0, 54, 160, 0, 0, 161, 65, 0, - 0, 0, 0, 162, 44, 56, 32, 0, 0, 163, - 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, - 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, - 0, 0, 36, 37, 0, 38, 0, 0, 0, 0, - 0, 0, 516, 0, 0, 0, 45, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 31, 0, 0, 0, - 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, - 0, 0, 0, 0, 0, 0, 42, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, - 52, 50, 0, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 255, 254, 153, 0, 0, 49, 52, 50, + 0, 0, 0, 0, 154, 0, 0, 0, 155, 0, + 0, 0, 0, 0, 0, 0, 0, 156, 0, 157, + 0, 0, 319, 0, 0, 46, 34, 51, 0, 0, + 158, 0, 159, 64, 0, 30, 31, 153, 0, 0, + 160, 0, 0, 161, 65, 33, 0, 154, 0, 162, + 0, 155, 35, 0, 0, 163, 36, 37, 0, 38, + 156, 0, 157, 0, 0, 0, 42, 0, 0, 0, + 45, 164, 0, 158, 0, 159, 64, 0, 0, 0, + 0, 0, 0, 160, 0, 0, 161, 65, 53, 49, + 52, 50, 162, 54, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 515, - 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 219, 0, 0, 0, 0, 0, 0, 35, 0, - 0, 0, 36, 37, 0, 38, 0, 0, 0, 0, - 0, 0, 516, 0, 0, 0, 45, 0, 0, 0, + 41, 0, 0, 0, 164, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 53, 517, 519, 518, 0, 54, - 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, - 44, 56, 32, 214, 0, 0, 41, 0, 0, 0, - 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 515, 0, 30, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 219, 0, 0, - 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, - 0, 38, 0, 0, 0, 0, 0, 0, 516, 0, - 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, - 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 517, 519, 518, 0, 54, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 44, 56, 32, 214, - 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, - 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 515, 0, 30, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, - 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, - 0, 0, 0, 0, 516, 0, 0, 0, 45, 0, - 0, 0, 0, 0, 0, 0, 560, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 53, 517, 519, 518, - 0, 54, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 44, 56, 32, 214, 0, 0, 41, 0, - 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, - 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, - 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, - 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -131, 0, 0, 0, 29, 30, 31, 0, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, + 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, + 0, 516, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, + 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 30, 31, 0, 0, 0, 0, + 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, + 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 45, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, + 50, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, + 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 515, 0, + 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 219, 0, 0, 0, 0, 0, 0, 35, 0, 0, + 0, 36, 37, 0, 38, 0, 0, 0, 0, 0, + 0, 516, 0, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 53, 517, 519, 518, 0, 54, 0, + 0, 0, 0, 227, 0, 0, 0, 0, 0, 44, + 56, 32, 214, 0, 0, 41, 0, 0, 0, 0, + 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 515, 0, 30, 31, 0, 0, + 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, + 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, + 38, 0, 0, 0, 0, 0, 0, 516, 0, 0, + 0, 45, 0, 0, 0, 0, 0, 0, 0, 563, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 517, 519, 518, 0, 54, 0, 0, 0, 0, 227, + 0, 0, 0, 0, 0, 44, 56, 32, 214, 0, + 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, + 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 515, 0, 30, 31, 0, 0, 0, 0, 0, 0, + 0, 0, 219, 0, 0, 0, 0, 0, 0, 35, + 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, + 0, 0, 0, 516, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 560, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 53, 517, 519, 518, 0, + 54, 0, 0, 0, 0, 227, 0, 0, 0, 0, + 0, 44, 56, 32, 214, 0, 0, 41, 0, 0, + 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, @@ -507,198 +479,228 @@ const short QQmlJSGrammar::action_info [] = { 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, - 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, - 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, - 0, 47, 0, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, - 54, 0, 55, 0, 57, 282, 58, 0, 0, 0, - 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, - 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 488, 0, 0, 29, - 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, - 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, - 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, - 0, 48, 0, 0, 489, 0, 0, 0, 0, 0, - 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, - 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, - 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, - 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 488, 0, 0, 29, 30, 31, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, - 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, - 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, - 0, 0, 494, 0, 0, 0, 0, 0, 0, 0, - 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, - 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, - 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, - 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 496, 0, 0, 29, 30, 31, 0, 0, + 0, -132, 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, - 497, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 496, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 35, 0, 0, 0, 36, 37, 0, 38, 0, - 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, - 0, 0, 0, 47, 0, 48, 0, 0, 499, 0, - 0, 0, 0, 0, 0, 0, 0, 53, 49, 52, - 50, 0, 54, 0, 55, 0, 57, 0, 58, 0, - 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, - 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 29, 30, + 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 33, 0, 0, 0, 0, 0, 0, 35, 0, + 0, 0, 36, 37, 0, 38, 0, 0, 0, 39, + 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, + 47, 0, 48, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 53, 49, 52, 50, 0, 54, + 0, 55, 0, 57, 282, 58, 0, 0, 0, 0, + 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, + 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 496, 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 0, 0, 0, 0, 0, 35, 220, 0, 0, - 595, 596, 0, 38, 0, 0, 0, 39, 0, 40, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 36, 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, 0, - 48, 0, 0, 0, 0, 0, 0, 0, 223, 0, - 0, 0, 53, 49, 52, 50, 224, 54, 0, 55, - 226, 57, 0, 58, 0, 229, 0, 0, 44, 56, + 48, 0, 0, 497, 0, 0, 0, 0, 0, 0, + 0, 0, 53, 49, 52, 50, 0, 54, 0, 55, + 0, 57, 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 30, 31, 0, 0, 0, 0, - 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, - 0, 35, 220, 0, 0, 221, 37, 0, 38, 0, - 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, - 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, - 0, 0, 0, 223, 0, 0, 0, 53, 49, 52, - 50, 224, 54, 0, 55, 226, 57, 0, 58, 0, - 229, 0, 0, 44, 56, 32, 0, 0, 0, 41, + 0, 0, 0, 488, 0, 0, 29, 30, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 35, 0, 0, 0, 36, 37, + 0, 38, 0, 0, 0, 39, 0, 40, 42, 43, + 0, 0, 45, 0, 0, 0, 47, 0, 48, 0, + 0, 494, 0, 0, 0, 0, 0, 0, 0, 0, + 53, 49, 52, 50, 0, 54, 0, 55, 0, 57, + 0, 58, 0, 0, 0, 0, 44, 56, 32, 0, + 0, 0, 41, 0, 0, 0, 0, 0, 0, 46, + 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 488, 0, 0, 29, 30, 31, 0, 0, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, + 0, 0, 35, 0, 0, 0, 36, 37, 0, 38, + 0, 0, 0, 39, 0, 40, 42, 43, 0, 0, + 45, 0, 0, 0, 47, 0, 48, 0, 0, 489, + 0, 0, 0, 0, 0, 0, 0, 0, 53, 49, + 52, 50, 0, 54, 0, 55, 0, 57, 0, 58, + 0, 0, 0, 0, 44, 56, 32, 0, 0, 0, + 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 35, 0, 0, 0, 36, 37, 0, 38, 0, 0, + 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, + 0, 0, 47, 0, 48, 0, 0, 499, 0, 0, + 0, 0, 0, 0, 0, 0, 53, 49, 52, 50, + 0, 54, 0, 55, 0, 57, 0, 58, 0, 0, + 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, + 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 35, 220, 0, 0, 221, + 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, + 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, + 57, 0, 58, 0, 229, 0, 0, 44, 56, 32, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 30, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, + 35, 220, 0, 0, 578, 37, 0, 38, 0, 0, + 0, 39, 0, 40, 42, 43, 0, 0, 45, 0, + 0, 0, 47, 0, 48, 0, 0, 0, 0, 0, + 0, 0, 223, 0, 0, 0, 53, 49, 52, 50, + 224, 54, 0, 55, 226, 57, 0, 58, 0, 229, + 0, 0, 44, 56, 32, 0, 0, 0, 41, 0, + 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 30, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 0, 0, 0, 35, 220, 0, 0, 578, + 624, 0, 38, 0, 0, 0, 39, 0, 40, 42, + 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 223, 0, 0, + 0, 53, 49, 52, 50, 224, 54, 0, 55, 226, + 57, 0, 58, 0, 229, 0, 0, 44, 56, 32, + 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, + 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111, 112, 113, 0, 0, 115, 117, 118, + 0, 0, 119, 0, 120, 0, 0, 0, 122, 123, + 124, 0, 0, 0, 0, 0, 0, 35, 125, 126, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, + 0, 0, 0, 0, 49, 52, 50, 132, 133, 134, + 0, 136, 137, 138, 139, 140, 141, 0, 0, 129, + 135, 121, 114, 116, 130, 0, 0, 0, 0, 0, + 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 111, 112, 113, 0, 0, 115, + 117, 118, 0, 0, 119, 0, 120, 0, 0, 0, + 122, 123, 124, 0, 0, 0, 0, 0, 0, 35, + 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 395, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 131, + 0, 0, 0, 0, 0, 397, 49, 52, 50, 132, + 133, 134, 0, 136, 137, 138, 139, 140, 141, 0, + 0, 129, 135, 121, 114, 116, 130, 0, 0, 0, + 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 111, 112, 113, 0, + 0, 115, 117, 118, 0, 0, 119, 0, 120, 0, + 0, 0, 122, 123, 124, 0, 0, 0, 0, 0, + 0, 35, 125, 126, 127, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 128, 0, 0, 0, 395, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 131, 0, 0, 0, 0, 0, 397, 49, 52, + 50, 132, 133, 134, 0, 136, 137, 138, 139, 140, + 141, 0, 0, 129, 135, 121, 114, 116, 130, 0, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, 112, 113, 0, 0, 115, 117, 118, 0, 0, 119, 0, 120, 0, 0, 0, 122, 123, 124, 0, 0, 0, 0, 0, 0, 35, 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 395, 0, 0, 0, 0, 0, 0, 0, 396, + 0, 0, 0, 131, 0, 0, 0, 0, 0, 397, 49, 52, 50, 132, 133, 134, 0, 136, 137, 138, 139, 140, 141, 0, 0, 129, 135, 121, 114, 116, - 130, 0, 0, 0, 0, 0, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 111, 112, 113, 0, 0, 115, 117, 118, 0, 0, - 119, 0, 120, 0, 0, 0, 122, 123, 124, 0, - 0, 0, 0, 0, 0, 35, 125, 126, 127, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, - 0, 0, 0, 395, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 131, 0, 0, 0, 0, - 0, 397, 49, 52, 50, 132, 133, 134, 0, 136, - 137, 138, 139, 140, 141, 0, 0, 129, 135, 121, - 114, 116, 130, 0, 0, 0, 0, 0, 0, 0, + 130, 0, 0, 0, 0, 0, 0, 0, 46, 374, + 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 213, 0, 0, 0, 0, 215, 0, 29, 30, 31, + 217, 0, 0, 0, 0, 0, 0, 218, 33, 0, + 0, 0, 0, 0, 0, 35, 220, 0, 0, 221, + 37, 0, 38, 0, 0, 0, 39, 0, 40, 42, + 43, 0, 0, 45, 0, 0, 0, 47, 0, 48, + 0, 0, 0, 0, 0, 222, 0, 223, 0, 0, + 0, 53, 49, 52, 50, 224, 54, 225, 55, 226, + 57, 227, 58, 228, 229, 0, 0, 44, 56, 32, + 214, 216, 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 111, 112, 113, 0, 0, 115, 117, 118, - 0, 0, 119, 0, 120, 0, 0, 0, 122, 123, - 124, 0, 0, 0, 0, 0, 0, 35, 125, 126, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 395, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 131, 0, 0, - 0, 0, 0, 397, 49, 52, 50, 132, 133, 134, - 0, 136, 137, 138, 139, 140, 141, 0, 0, 129, - 135, 121, 114, 116, 130, 0, 0, 0, 0, 0, - 0, 0, 46, 374, 380, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 111, 112, 113, 0, 0, 115, - 117, 118, 0, 0, 119, 0, 120, 0, 0, 0, - 122, 123, 124, 0, 0, 0, 0, 0, 0, 35, - 125, 126, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 128, 0, 0, 0, 395, 0, 0, - 0, 0, 0, 0, 0, 396, 0, 0, 0, 131, - 0, 0, 0, 0, 0, 397, 49, 52, 50, 132, - 133, 134, 0, 136, 137, 138, 139, 140, 141, 0, - 0, 129, 135, 121, 114, 116, 130, 0, 0, 0, + 0, 0, 213, 0, 0, 0, 0, 215, 0, 29, + 30, 31, 217, 0, 0, 0, 0, 0, 0, 218, + 219, 0, 0, 0, 0, 0, 0, 35, 220, 0, + 0, 221, 37, 0, 38, 0, 0, 0, 39, 0, + 40, 42, 43, 0, 0, 45, 0, 0, 0, 47, + 0, 48, 0, 0, 0, 0, 0, 222, 0, 223, + 0, 0, 0, 53, 49, 52, 50, 224, 54, 225, + 55, 226, 57, 227, 58, 228, 229, 0, 0, 44, + 56, 32, 214, 216, 0, 41, 0, 0, 0, 0, + 0, 0, 46, 34, 51, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 582, 112, 113, 0, 0, 584, + 117, 586, 30, 31, 587, 0, 120, 0, 0, 0, + 122, 589, 590, 0, 0, 0, 0, 0, 0, 35, + 591, 126, 127, 221, 37, 0, 38, 0, 0, 0, + 39, 0, 40, 592, 43, 0, 0, 594, 0, 0, + 0, 47, 0, 48, 0, 0, 0, 0, 0, 595, + 0, 223, 0, 0, 0, 596, 49, 52, 50, 597, + 598, 599, 55, 601, 602, 603, 604, 605, 606, 0, + 0, 593, 600, 588, 583, 585, 130, 41, 0, 0, 0, 0, 0, 0, 46, 374, 380, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 0, 0, 0, - 0, 215, 0, 29, 30, 31, 217, 0, 0, 0, - 0, 0, 0, 218, 219, 0, 0, 0, 0, 0, - 0, 35, 220, 0, 0, 221, 37, 0, 38, 0, - 0, 0, 39, 0, 40, 42, 43, 0, 0, 45, - 0, 0, 0, 47, 0, 48, 0, 0, 0, 0, - 0, 222, 0, 223, 0, 0, 0, 53, 49, 52, - 50, 224, 54, 225, 55, 226, 57, 227, 58, 228, - 229, 0, 0, 44, 56, 32, 214, 216, 0, 41, - 0, 0, 0, 0, 0, 0, 46, 34, 51, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, - 0, 0, 0, 215, 0, 29, 30, 31, 217, 0, - 0, 0, 0, 0, 0, 218, 33, 0, 0, 0, - 0, 0, 0, 35, 220, 0, 0, 221, 37, 0, - 38, 0, 0, 0, 39, 0, 40, 42, 43, 0, - 0, 45, 0, 0, 0, 47, 0, 48, 0, 0, - 0, 0, 0, 222, 0, 223, 0, 0, 0, 53, - 49, 52, 50, 224, 54, 225, 55, 226, 57, 227, - 58, 228, 229, 0, 0, 44, 56, 32, 214, 216, - 0, 41, 0, 0, 0, 0, 0, 0, 46, 34, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 600, 112, 113, 0, 0, 602, 117, 604, 30, 31, - 605, 0, 120, 0, 0, 0, 122, 607, 608, 0, - 0, 0, 0, 0, 0, 35, 609, 126, 127, 221, - 37, 0, 38, 0, 0, 0, 39, 0, 40, 610, - 43, 0, 0, 612, 0, 0, 0, 47, 0, 48, - 0, 0, 0, 0, 0, 613, 0, 223, 0, 0, - 0, 614, 49, 52, 50, 615, 616, 617, 55, 619, - 620, 621, 622, 623, 624, 0, 0, 611, 618, 606, - 601, 603, 130, 41, 0, 0, 0, 0, 0, 0, - 46, 374, 380, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 365, 112, 113, 0, 0, 367, 117, 369, - 30, 31, 370, 0, 120, 0, 0, 0, 122, 372, - 373, 0, 0, 0, 0, 0, 0, 35, 375, 126, - 127, 221, 37, 0, 38, 0, 0, 0, 39, 0, - 40, 376, 43, 0, 0, 378, 0, 0, 0, 47, - 0, 48, 0, -277, 0, 0, 0, 379, 0, 223, - 0, 0, 0, 381, 49, 52, 50, 382, 383, 384, - 55, 386, 387, 388, 389, 390, 391, 0, 0, 377, - 385, 371, 366, 368, 130, 41, 0, 0, 0, 0, - 0, 0, 46, 374, 380, 0, 0, 0, 0, 0, - 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 365, 112, 113, 0, + 0, 367, 117, 369, 30, 31, 370, 0, 120, 0, + 0, 0, 122, 372, 373, 0, 0, 0, 0, 0, + 0, 35, 375, 126, 127, 221, 37, 0, 38, 0, + 0, 0, 39, 0, 40, 376, 43, 0, 0, 378, + 0, 0, 0, 47, 0, 48, 0, -278, 0, 0, + 0, 379, 0, 223, 0, 0, 0, 381, 49, 52, + 50, 382, 383, 384, 55, 386, 387, 388, 389, 390, + 391, 0, 0, 377, 385, 371, 366, 368, 130, 41, + 0, 0, 0, 0, 0, 0, 46, 374, 380, 0, + 0, 0, 0, 0, 0, 0, 0, 0, - 148, 142, 183, 447, 469, 347, 575, 444, 547, 627, - 248, 320, 587, 572, 584, 586, 485, 591, 565, 529, - 313, 545, 447, 393, 253, 528, 500, 183, 574, 453, - 331, 652, 447, 437, 444, 313, 462, 455, 263, 457, - 237, 441, 206, 188, 190, 150, 16, 178, 433, 630, - 425, 641, 165, 400, 658, 458, 642, 171, 173, 248, - 475, 351, 498, 248, 253, 313, 183, 466, 183, 541, - 495, 629, 253, 512, 511, 188, 145, 206, 260, 645, - 644, 62, 0, 62, 362, 507, 298, 469, 206, 206, - 247, 514, 514, 62, 206, 460, 646, 409, 152, 409, - 599, 628, 355, 239, 206, 62, 62, 62, 362, 260, - 296, 297, 299, 331, 62, 62, 313, 504, 206, 295, - 62, 62, 459, 460, 356, 206, 277, 62, 62, 502, - 182, 281, 206, 62, 410, 182, 410, 401, 62, 353, - 459, 62, 62, 506, 505, 62, 62, 503, 493, 349, - 91, 62, 492, 206, 63, 206, 313, 62, 345, 483, - 393, 479, 62, 62, 260, 206, 444, 206, 510, 102, - 148, 62, 104, 182, 206, 188, 188, 468, 180, 170, - 206, 62, 148, 247, 62, 394, 460, 393, 409, 340, - 412, 341, 362, 206, 422, 167, 393, 206, 62, 108, - 459, 313, 62, 187, 419, 62, 62, 86, 206, 62, - 318, 98, 100, 403, 62, 99, 69, 322, 514, 514, - 313, 62, 417, 553, 557, 410, 206, 79, 110, 246, - 62, 343, 206, 206, 62, 0, 70, 62, 74, 71, - 62, 62, 206, 108, 90, 206, 93, 62, 62, 62, - 72, 62, 92, 62, 94, 62, 95, 309, 96, 407, - 97, 309, 281, 62, 362, 362, 281, 0, 281, 242, - 302, 0, 110, 177, 464, 0, 316, 309, 0, 308, - 206, 206, 281, 311, 309, 0, 62, 62, 309, 281, - 206, 281, 281, 281, 0, 314, 0, 0, 62, 330, - 62, 324, 0, 281, 327, 281, 337, 300, 62, 62, - 328, 304, 62, 281, 281, 301, 564, 281, 62, 289, - 306, 569, 561, 281, 0, 514, 553, 284, 625, 0, - 0, 514, 0, 0, 522, 0, 0, 0, 0, 0, - 522, 0, 0, 0, 0, 0, 513, 523, 0, 485, - 443, 440, 513, 523, 533, 534, 535, 536, 540, 537, - 538, 577, 533, 534, 535, 536, 540, 537, 538, 0, + 545, 572, 565, 632, 654, 148, 529, 541, 528, 142, + 660, 263, 500, 393, 617, 616, 621, 614, 16, 629, + 444, 183, 313, 547, 447, 183, 631, 643, 253, 248, + 644, 485, 575, 574, 607, 152, 320, 437, 178, 313, + 441, 433, 173, 183, 165, 253, 462, 313, 457, 447, + 444, 453, 253, 458, 425, 347, 455, 248, 351, 188, + 475, 466, 498, 171, 150, 447, 206, 190, 400, 468, + 0, 183, 248, 495, 469, 237, 409, 393, 409, 331, + 464, 247, 512, 206, 145, 206, 62, 409, 507, 206, + 0, 511, 0, 188, 0, 206, 206, 188, 206, 62, + 62, 504, 460, 417, 62, 206, 505, 206, 647, 646, + 407, 0, 0, 410, 62, 410, 459, 62, 148, 506, + 62, 187, 62, 277, 410, 419, 412, 298, 281, 393, + 148, 0, 0, 0, 422, 62, 170, 62, 180, 62, + 295, 514, 296, 260, 297, 62, 648, 503, 62, 62, + 62, 182, 514, 299, 394, 62, 62, 460, 459, 206, + 362, 630, 362, 62, 167, 502, 514, 62, 62, 322, + 62, 553, 444, 99, 100, 93, 206, 62, 356, 206, + 510, 206, 94, 62, 62, 206, 62, 62, 95, 96, + 62, 97, 86, 62, 90, 493, 62, 91, 188, 492, + 92, 355, 62, 353, 108, 62, 483, 349, 242, 345, + 247, 313, 331, 469, 102, 104, 313, 206, 62, 206, + 182, 260, 62, 206, 206, 206, 239, 62, 98, 182, + 313, 313, 62, 110, 362, 72, 62, 206, 69, 62, + 318, 70, 62, 62, 71, 260, 63, 62, 246, 393, + 581, 62, 62, 460, 0, 74, 206, 62, 79, 459, + 0, 206, 514, 309, 206, 62, 362, 557, 281, 0, + 281, 309, 62, 0, 284, 403, 281, 281, 0, 309, + 401, 0, 206, 306, 281, 308, 343, 479, 340, 62, + 62, 341, 108, 337, 281, 281, 206, 302, 309, 62, + 0, 330, 304, 281, 281, 314, 316, 62, 309, 0, + 62, 62, 281, 281, 324, 281, 281, 301, 300, 514, + 311, 110, 177, 0, 327, 0, 62, 569, 522, 564, + 328, 281, 553, 289, 627, 561, 0, 0, 514, 0, + 513, 523, 0, 0, 514, 0, 0, 522, 0, 0, + 0, 0, 443, 522, 0, 485, 0, 0, 0, 513, + 523, 0, 0, 0, 0, 513, 523, 533, 534, 535, + 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, + 0, 577, 0, 0, 0, 0, 0, 0, 0, 362, + 579, 580, 533, 534, 535, 536, 540, 537, 538, 569, + 0, 0, 0, 0, 0, 206, 0, 0, 570, 571, + 533, 534, 535, 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 514, 569, 0, 0, 0, 0, 0, - 0, 0, 522, 570, 571, 533, 534, 535, 536, 540, - 537, 538, 0, 0, 513, 523, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 440, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 577, 0, + 0, 0, 0, 0, 0, 0, 0, 625, 626, 533, + 534, 535, 536, 540, 537, 538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -706,170 +708,133 @@ const short QQmlJSGrammar::action_info [] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 594, 0, 0, 0, 0, 0, 0, 0, 0, 597, - 598, 533, 534, 535, 536, 540, 537, 538, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0}; + 0, 0, 0, 0, 0}; const short QQmlJSGrammar::action_check [] = { - 2, 55, 34, 7, 60, 36, 31, 37, 61, 17, - 24, 16, 2, 20, 33, 60, 5, 8, 36, 79, - 60, 36, 33, 33, 7, 48, 55, 1, 55, 0, - 33, 7, 60, 33, 60, 36, 60, 36, 8, 7, - 36, 8, 7, 55, 7, 5, 55, 33, 7, 7, - 48, 7, 36, 7, 36, 5, 7, 36, 1, 36, - 7, 36, 7, 7, 61, 7, 60, 33, 8, 1, - 7, 77, 36, 7, 36, 60, 7, 29, 8, 36, - 7, 36, 55, 36, 79, 33, 79, 36, 66, 8, - 36, 60, 33, 17, 33, 7, 2, 8, 36, 79, - 36, 2, 7, 7, 7, 66, 8, 33, 33, 7, - -1, 33, 8, 48, 8, 15, 15, 33, 36, 36, - 33, 8, 55, 7, 8, 8, 15, 6, 48, 10, - 8, 60, 8, 61, 34, 34, 8, 60, 8, 60, - 55, 20, 8, -1, 8, 34, 8, 61, 62, 8, - 40, 61, 62, 61, 62, 50, 42, 8, 60, 54, - 56, 51, 7, -1, 61, 62, 60, 53, 61, 62, - 61, 62, 8, 60, 55, 40, 29, 60, 56, -1, - 56, 29, 91, 92, 61, 62, 51, 61, 62, 61, - 60, 40, 56, 15, 60, 50, -1, 56, 60, 54, - 61, 62, 51, 1, 61, 62, 91, 92, 40, 60, - 29, 25, 34, 27, 36, -1, 61, 62, 12, 51, - 61, 62, 75, 12, 38, 61, 62, 75, 25, 25, - 27, 27, 25, 86, 27, 12, 7, 25, 86, 27, - 15, 38, 38, 29, 25, 38, 27, 25, 89, 27, - 38, 25, 25, 27, 27, 7, 75, 38, 15, 34, - 38, 36, 8, 57, 38, 38, 29, 86, 57, 63, - 61, 62, 36, 29, 63, 8, -1, 34, -1, 36, - 57, 25, 25, 27, 27, -1, 63, -1, -1, 75, - 61, 62, 15, -1, 38, 38, -1, 61, 62, -1, - 86, 25, 93, 27, 25, -1, 27, -1, 7, 61, - 62, 34, 75, 36, 38, 61, 62, 38, 47, 75, - 18, 19, -1, 86, 18, 19, 18, 19, 61, 62, - 86, -1, 61, 62, 33, 18, 19, 98, 99, 100, - 101, 102, 103, -1, -1, -1, -1, 45, 46, -1, - -1, 45, 46, 45, 46, -1, 23, 24, -1, -1, - 23, 24, 45, 46, 93, 32, 23, 24, 35, 32, - 37, -1, 35, -1, 37, 32, 23, 24, 35, -1, - 37, 29, 23, 24, 29, 32, -1, -1, 35, -1, - 37, 32, 23, 24, 35, 94, 37, 29, -1, -1, - 31, 32, 23, 24, 35, 29, 37, 15, -1, -1, - 31, 32, -1, -1, 35, 29, 37, -1, 66, 67, - 68, 66, 67, 68, -1, 33, 34, -1, 36, 29, - -1, -1, -1, -1, 66, 67, 68, 29, -1, -1, - -1, -1, 66, 67, 68, -1, 94, 95, 96, 94, - 95, 96, 66, 67, 68, -1, -1, -1, -1, -1, - -1, -1, 94, 95, 96, -1, 66, 67, 68, -1, - 94, 95, 96, -1, 66, 67, 68, 29, -1, -1, - 94, 95, 96, 29, -1, -1, 29, -1, -1, 29, - -1, -1, 29, -1, 94, 95, 96, 29, 23, 24, - 29, -1, 94, 95, 96, -1, 31, 32, -1, -1, - 35, -1, 37, -1, 66, 67, 68, -1, -1, -1, - 66, 67, 68, 66, 67, 68, 66, 67, 68, 66, - 67, 68, -1, 29, 66, 67, 68, 66, 67, 68, - 36, -1, 94, 95, 96, -1, -1, -1, 94, 95, - 96, 94, 95, 96, 94, 95, 96, 94, 95, 96, - -1, -1, 94, 95, 96, 94, 95, 96, 29, -1, - 66, 67, 68, 29, -1, 36, 29, -1, -1, -1, - 36, 29, -1, -1, 29, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 94, 95, - 96, -1, -1, -1, -1, 66, 67, 68, 61, 62, - 66, 67, 68, 66, 67, 68, 61, 62, 66, 67, - 68, 66, 67, 68, -1, -1, -1, 29, -1, -1, + 36, 60, 5, 36, 31, 7, 66, 16, 33, 7, + 36, 7, 7, 7, 7, 33, 36, 7, 55, 8, + 36, 7, 7, 36, 7, 55, 7, 7, 36, 36, + 17, 7, 33, 33, 7, 7, 7, 36, 7, 36, + 7, 7, 34, 60, 55, 36, 7, 66, 60, 33, + 55, 33, 7, 77, 33, 8, 60, 20, 36, 33, + 1, 36, 8, 33, 7, 33, 2, 55, 33, 33, + 29, 1, 24, 33, 8, 1, -1, 2, 55, -1, + 37, 8, 36, -1, -1, -1, 8, 36, 36, 33, + 7, 2, 48, 1, 36, 7, 36, 36, 60, 36, + 33, 17, 60, 8, 0, 36, 8, 2, -1, 60, + 60, 8, 6, -1, 61, 7, 8, 8, 33, 8, + -1, 8, 60, 55, 48, 60, 20, 48, 8, 36, + 8, 10, 8, 61, 79, 55, -1, -1, 48, 8, + 8, 40, 40, 61, 8, 8, 60, 5, 61, 62, + 79, 60, 51, 51, 56, 40, 79, 61, 62, 40, + 79, 61, 62, 60, 50, 8, 51, 56, 54, 60, + 51, 61, 62, 60, 8, 50, 55, 61, 62, 54, + 60, 29, 60, 42, 60, 91, 92, 56, 56, 61, + 62, 61, 62, 56, 53, 15, 60, 8, 7, 61, + 62, 61, 62, 29, 61, 62, 29, 25, 8, 27, + 7, -1, 15, 29, 34, 8, 36, 25, 61, 27, + 38, 12, -1, 25, 33, 27, 60, 75, 12, 36, + 38, 34, 89, 36, 29, 7, 38, 29, 86, -1, + 25, 12, 27, 25, 25, 27, 27, 7, 15, 75, + 61, 62, 75, 38, 61, 62, 38, 38, -1, 75, + 86, 61, 62, 86, 61, 62, 57, 34, 61, 62, + 86, -1, 63, 57, 15, 61, 62, 15, -1, 63, + 75, 18, 19, 75, -1, 94, 57, 18, 19, 61, + 62, 86, 63, 34, 86, 36, 34, 47, 36, 18, + 19, 61, 62, 15, -1, 18, 19, 93, 45, 46, + 15, 61, 62, -1, 45, 46, -1, -1, -1, -1, + -1, 33, 34, -1, 36, -1, 45, 46, 33, 34, + -1, 36, 45, 46, -1, 23, 24, -1, -1, 25, + -1, 27, -1, 93, 32, 23, 24, 35, 29, 37, + -1, -1, 38, 31, 32, -1, -1, 35, 29, 37, + 23, 24, 98, 99, 100, 101, 102, 103, 31, 32, + 23, 24, 35, 29, 37, -1, -1, -1, 31, 32, + 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, + 23, 24, 35, -1, 37, 66, 67, 68, 31, 32, + -1, -1, 35, -1, 37, 29, -1, -1, 29, -1, + 66, 67, 68, 94, 95, 96, 29, -1, -1, 29, + 23, 24, 29, 94, 95, 96, -1, -1, 29, 32, + -1, -1, 35, -1, 37, 36, -1, -1, 94, 95, + 96, 29, 66, 67, 68, 66, 67, 68, 36, -1, + -1, -1, -1, 66, 67, 68, 66, 67, 68, 66, + 67, 68, 29, -1, -1, 66, 67, 68, -1, 36, + 94, 95, 96, 94, 95, 96, -1, -1, 66, 67, + 68, 94, 95, 96, 94, 95, 96, 94, 95, 96, + -1, -1, -1, 94, 95, 96, -1, -1, 29, 66, + 67, 68, -1, 29, -1, -1, 94, 95, 96, -1, + -1, 29, -1, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, + 61, 62, -1, -1, -1, 66, 67, 68, -1, -1, + 66, 67, 68, 61, 62, -1, -1, -1, 66, 67, + 68, 61, 62, -1, -1, -1, 66, 67, 68, -1, -1, -1, -1, 94, 95, 96, -1, -1, 94, 95, - 96, 94, 95, 96, -1, -1, 94, 95, 96, 94, - 95, 96, -1, -1, -1, -1, -1, -1, 29, 61, - 62, -1, -1, -1, 66, 67, 68, -1, -1, -1, + 96, -1, -1, -1, -1, -1, 94, 95, 96, -1, + 29, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 61, 62, 94, 95, 96, 66, 67, 68, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, - -1, -1, -1, 12, 13, 3, -1, -1, -1, -1, - -1, -1, -1, 22, -1, 13, -1, -1, -1, 17, - 29, -1, -1, -1, 33, 34, -1, 36, 26, -1, - 28, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, 39, -1, 41, 42, -1, -1, -1, -1, -1, - -1, 49, -1, -1, 52, 53, 65, 66, 67, 68, - 58, 70, -1, -1, -1, -1, 64, -1, -1, -1, - -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, - -1, -1, 80, -1, -1, 94, 95, 96, -1, -1, - -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, 3, -1, - -1, -1, 29, -1, -1, -1, 33, 34, 13, 36, - -1, -1, 17, -1, -1, -1, 43, -1, -1, -1, - 47, 26, -1, 28, -1, -1, 31, -1, -1, -1, - -1, -1, -1, -1, 39, -1, 41, 42, 65, 66, - 67, 68, -1, 70, 49, -1, -1, 52, 53, -1, - -1, -1, -1, 58, 81, 82, 83, -1, -1, 64, - 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, - -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, - -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 12, 13, -1, -1, -1, - -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, - -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, - -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, - 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, - 67, 68, -1, 70, -1, -1, -1, -1, -1, -1, + -1, -1, 61, 62, 3, -1, -1, 66, 67, 68, + -1, -1, -1, -1, 13, -1, -1, -1, 17, -1, + -1, -1, -1, -1, -1, -1, -1, 26, -1, 28, + -1, -1, 31, -1, -1, 94, 95, 96, -1, -1, + 39, -1, 41, 42, -1, 12, 13, 3, -1, -1, + 49, -1, -1, 52, 53, 22, -1, 13, -1, 58, + -1, 17, 29, -1, -1, 64, 33, 34, -1, 36, + 26, -1, 28, -1, -1, -1, 43, -1, -1, -1, + 47, 80, -1, 39, -1, 41, 42, -1, -1, -1, + -1, -1, -1, 49, -1, -1, 52, 53, 65, 66, + 67, 68, 58, 70, -1, -1, -1, -1, 64, -1, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, - 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 10, - -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, - -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 33, 34, -1, 36, -1, -1, -1, -1, - -1, -1, 43, -1, -1, -1, 47, -1, -1, -1, + 87, -1, -1, -1, 80, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, - -1, -1, -1, -1, 75, -1, -1, -1, -1, -1, - 81, 82, 83, 84, -1, -1, 87, -1, -1, -1, - -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 10, -1, 12, 13, -1, - -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, - -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, - -1, 36, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, - 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 65, 66, 67, 68, -1, 70, -1, -1, -1, -1, - 75, -1, -1, -1, -1, -1, 81, 82, 83, 84, - -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, - 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 10, -1, 12, 13, -1, -1, -1, -1, -1, - -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, - 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, - -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, - -1, -1, -1, -1, -1, -1, 55, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, - -1, 70, -1, -1, -1, -1, 75, -1, -1, -1, - -1, -1, 81, 82, 83, 84, -1, -1, 87, -1, - -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, - 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, - -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 7, -1, -1, -1, 11, 12, 13, -1, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, + -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, + -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, + -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, + 68, -1, 70, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, + -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 10, -1, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, + -1, 33, 34, -1, 36, -1, -1, -1, -1, -1, + -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, + -1, -1, -1, 75, -1, -1, -1, -1, -1, 81, + 82, 83, 84, -1, -1, 87, -1, -1, -1, -1, + -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 10, -1, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, + 66, 67, 68, -1, 70, -1, -1, -1, -1, 75, + -1, -1, -1, -1, -1, 81, 82, 83, 84, -1, + -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, + 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, + -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, + -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, + -1, -1, -1, -1, -1, 55, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, + 70, -1, -1, -1, -1, 75, -1, -1, -1, -1, + -1, 81, 82, 83, 84, -1, -1, 87, -1, -1, + -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, @@ -879,101 +844,100 @@ const short QQmlJSGrammar::action_check [] = { -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, - -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, - -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, - 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, - -1, 51, -1, 53, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, - 70, -1, 72, -1, 74, 75, 76, -1, -1, -1, - -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, - -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, - 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, - 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, - -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, - 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, -1, 56, -1, -1, -1, -1, -1, - -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, - 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, - 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, - -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, - 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, - 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, - -1, -1, 56, -1, -1, -1, -1, -1, -1, -1, - -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, - 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, - -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, - 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, + -1, 7, -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - 56, -1, -1, -1, -1, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, 56, -1, - -1, -1, -1, -1, -1, -1, -1, 65, 66, 67, - 68, -1, 70, -1, 72, -1, 74, -1, 76, -1, - -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, - -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, + -1, 22, -1, -1, -1, -1, -1, -1, 29, -1, + -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, + -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, + 51, -1, 53, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 65, 66, 67, 68, -1, 70, + -1, 72, -1, 74, 75, 76, -1, -1, -1, -1, + 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, + -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, 22, - -1, -1, -1, -1, -1, -1, 29, 30, -1, -1, + -1, -1, -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, - 53, -1, -1, -1, -1, -1, -1, -1, 61, -1, - -1, -1, 65, 66, 67, 68, 69, 70, -1, 72, - 73, 74, -1, 76, -1, 78, -1, -1, 81, 82, + 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, + -1, -1, 65, 66, 67, 68, -1, 70, -1, 72, + -1, 74, -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 11, 12, 13, -1, -1, -1, -1, - -1, -1, -1, -1, 22, -1, -1, -1, -1, -1, - -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, - -1, -1, -1, 61, -1, -1, -1, 65, 66, 67, - 68, 69, 70, -1, 72, 73, 74, -1, 76, -1, - 78, -1, -1, 81, 82, 83, -1, -1, -1, 87, - -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, - 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, - 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 59, -1, -1, -1, -1, -1, -1, - 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, - 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, - 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, - 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, - 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, 66, 67, 68, 69, 70, 71, -1, 73, - 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, - 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, 11, 12, 13, -1, + -1, -1, -1, -1, -1, -1, -1, 22, -1, -1, + -1, -1, -1, -1, 29, -1, -1, -1, 33, 34, + -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, + -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, + -1, 56, -1, -1, -1, -1, -1, -1, -1, -1, + 65, 66, 67, 68, -1, 70, -1, 72, -1, 74, + -1, 76, -1, -1, -1, -1, 81, 82, 83, -1, + -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, + 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, -1, 11, 12, 13, -1, -1, -1, + -1, -1, -1, -1, -1, 22, -1, -1, -1, -1, + -1, -1, 29, -1, -1, -1, 33, 34, -1, 36, + -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, + 47, -1, -1, -1, 51, -1, 53, -1, -1, 56, + -1, -1, -1, -1, -1, -1, -1, -1, 65, 66, + 67, 68, -1, 70, -1, 72, -1, 74, -1, 76, + -1, -1, -1, -1, 81, 82, 83, -1, -1, -1, + 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, + 29, -1, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, 56, -1, -1, + -1, -1, -1, -1, -1, -1, 65, 66, 67, 68, + -1, 70, -1, 72, -1, 74, -1, 76, -1, -1, + -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, + 74, -1, 76, -1, 78, -1, -1, 81, 82, 83, + -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, + 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 11, 12, 13, -1, -1, -1, -1, -1, + -1, -1, -1, 22, -1, -1, -1, -1, -1, -1, + 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, + -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, + -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, + -1, -1, 61, -1, -1, -1, 65, 66, 67, 68, + 69, 70, -1, 72, 73, 74, -1, 76, -1, 78, + -1, -1, 81, 82, 83, -1, -1, -1, 87, -1, + -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, + -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, + 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, + 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, 65, 66, 67, 68, 69, 70, -1, 72, 73, + 74, -1, 76, -1, 78, -1, -1, 81, 82, 83, + -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 43, -1, -1, -1, 47, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, - -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, + -1, -1, -1, -1, 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, @@ -982,95 +946,126 @@ const short QQmlJSGrammar::action_check [] = { 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, -1, -1, - -1, -1, -1, -1, -1, 55, -1, -1, -1, 59, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, - -1, 9, -1, 11, 12, 13, 14, -1, -1, -1, - -1, -1, -1, 21, 22, -1, -1, -1, -1, -1, - -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, - -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, - -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, - -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, -1, -1, 81, 82, 83, 84, 85, -1, 87, + -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, + -1, 9, 10, 11, -1, -1, 14, -1, 16, -1, + -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 59, -1, -1, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, + 78, -1, -1, 81, 82, 83, 84, 85, 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, - -1, -1, -1, 9, -1, 11, 12, 13, 14, -1, - -1, -1, -1, -1, -1, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, - 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, - -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, - -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, + 6, -1, -1, 9, 10, 11, -1, -1, 14, -1, + 16, -1, -1, -1, 20, 21, 22, -1, -1, -1, + -1, -1, -1, 29, 30, 31, 32, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 43, -1, -1, + -1, 47, -1, -1, -1, -1, -1, -1, -1, 55, + -1, -1, -1, 59, -1, -1, -1, -1, -1, 65, + 66, 67, 68, 69, 70, 71, -1, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, - -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, + 86, -1, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 4, 5, 6, -1, -1, 9, 10, 11, 12, 13, - 14, -1, 16, -1, -1, -1, 20, 21, 22, -1, - -1, -1, -1, -1, -1, 29, 30, 31, 32, 33, + 4, -1, -1, -1, -1, 9, -1, 11, 12, 13, + 14, -1, -1, -1, -1, -1, -1, 21, 22, -1, + -1, -1, -1, -1, -1, 29, 30, -1, -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, 82, 83, - 84, 85, 86, 87, -1, -1, -1, -1, -1, -1, + 84, 85, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 4, 5, 6, -1, -1, 9, 10, 11, - 12, 13, 14, -1, 16, -1, -1, -1, 20, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, -1, 36, -1, -1, -1, 40, -1, + -1, -1, 4, -1, -1, -1, -1, 9, -1, 11, + 12, 13, 14, -1, -1, -1, -1, -1, -1, 21, + 22, -1, -1, -1, -1, -1, -1, 29, 30, -1, + -1, 33, 34, -1, 36, -1, -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, -1, 51, - -1, 53, -1, 55, -1, -1, -1, 59, -1, 61, + -1, 53, -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, -1, 81, - 82, 83, 84, 85, 86, 87, -1, -1, -1, -1, + 82, 83, 84, 85, -1, 87, -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, -1, -1, - -1, -1, -1, -1, + -1, -1, -1, -1, 4, 5, 6, -1, -1, 9, + 10, 11, 12, 13, 14, -1, 16, -1, -1, -1, + 20, 21, 22, -1, -1, -1, -1, -1, -1, 29, + 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, + 40, -1, 42, 43, 44, -1, -1, 47, -1, -1, + -1, 51, -1, 53, -1, -1, -1, -1, -1, 59, + -1, 61, -1, -1, -1, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, -1, + -1, 81, 82, 83, 84, 85, 86, 87, -1, -1, + -1, -1, -1, -1, 94, 95, 96, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 4, 5, 6, -1, + -1, 9, 10, 11, 12, 13, 14, -1, 16, -1, + -1, -1, 20, 21, 22, -1, -1, -1, -1, -1, + -1, 29, 30, 31, 32, 33, 34, -1, 36, -1, + -1, -1, 40, -1, 42, 43, 44, -1, -1, 47, + -1, -1, -1, 51, -1, 53, -1, 55, -1, -1, + -1, 59, -1, 61, -1, -1, -1, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, -1, -1, 81, 82, 83, 84, 85, 86, 87, + -1, -1, -1, -1, -1, -1, 94, 95, 96, -1, + -1, -1, -1, -1, -1, -1, -1, -1, - 42, 3, 18, 25, 18, 3, 18, 3, 18, 22, - 18, 3, 18, 22, 32, 32, 42, 18, 18, 18, - 3, 32, 25, 18, 18, 32, 3, 18, 32, 105, - 18, 18, 25, 100, 3, 3, 3, 18, 3, 25, - 18, 3, 18, 18, 18, 42, 3, 3, 103, 9, - 3, 14, 42, 42, 18, 25, 14, 42, 42, 18, - 42, 3, 42, 18, 18, 3, 18, 3, 18, 14, - 42, 22, 18, 2, 4, 18, 42, 18, 2, 11, - 12, 54, -1, 54, 2, 56, 59, 18, 18, 18, - 4, 14, 14, 54, 18, 56, 19, 14, 77, 14, - 18, 23, 2, 46, 18, 54, 54, 54, 2, 2, - 59, 59, 59, 18, 54, 54, 3, 56, 18, 59, - 54, 54, 56, 56, 18, 18, 54, 54, 54, 56, - 56, 59, 18, 54, 51, 56, 51, 2, 54, 2, - 56, 54, 54, 56, 56, 54, 54, 56, 38, 2, - 58, 54, 42, 18, 57, 18, 3, 54, 2, 45, - 18, 92, 54, 54, 2, 18, 3, 18, 109, 66, - 42, 54, 64, 56, 18, 18, 18, 2, 50, 70, - 18, 54, 42, 4, 54, 43, 56, 18, 14, 94, - 50, 78, 2, 18, 45, 68, 18, 18, 54, 18, - 56, 3, 54, 46, 46, 54, 54, 59, 18, 54, - 2, 60, 60, 44, 54, 60, 56, 2, 14, 14, - 3, 54, 44, 19, 19, 51, 18, 60, 47, 2, - 54, 78, 18, 18, 54, -1, 56, 54, 62, 56, - 54, 54, 18, 18, 58, 18, 59, 54, 54, 54, - 57, 54, 58, 54, 59, 54, 59, 54, 59, 45, - 59, 54, 59, 54, 2, 2, 59, -1, 59, 45, - 61, -1, 47, 48, 2, -1, 78, 54, -1, 76, - 18, 18, 59, 76, 54, -1, 54, 54, 54, 59, - 18, 59, 59, 59, -1, 78, -1, -1, 54, 76, - 54, 69, -1, 59, 71, 59, 76, 61, 54, 54, - 76, 67, 54, 59, 59, 61, 5, 59, 54, 61, - 65, 14, 5, 59, -1, 14, 19, 63, 21, -1, - -1, 14, -1, -1, 23, -1, -1, -1, -1, -1, - 23, -1, -1, -1, -1, -1, 35, 36, -1, 42, - 88, 88, 35, 36, 25, 26, 27, 28, 29, 30, - 31, 24, 25, 26, 27, 28, 29, 30, 31, -1, + 32, 22, 18, 9, 18, 42, 18, 14, 32, 3, + 18, 3, 3, 18, 18, 32, 18, 32, 3, 22, + 3, 18, 3, 18, 25, 18, 22, 14, 18, 18, + 14, 42, 18, 32, 22, 77, 3, 100, 3, 3, + 3, 103, 42, 18, 42, 18, 3, 3, 25, 25, + 3, 105, 18, 25, 3, 3, 18, 18, 3, 18, + 42, 3, 42, 42, 42, 25, 18, 18, 42, 2, + -1, 18, 18, 42, 18, 18, 14, 18, 14, 18, + 2, 4, 2, 18, 42, 18, 54, 14, 56, 18, + -1, 4, -1, 18, -1, 18, 18, 18, 18, 54, + 54, 56, 56, 44, 54, 18, 56, 18, 11, 12, + 45, -1, -1, 51, 54, 51, 56, 54, 42, 56, + 54, 46, 54, 54, 51, 46, 50, 59, 59, 18, + 42, -1, -1, -1, 45, 54, 70, 54, 50, 54, + 59, 14, 59, 2, 59, 54, 19, 56, 54, 54, + 54, 56, 14, 59, 43, 54, 54, 56, 56, 18, + 2, 23, 2, 54, 68, 56, 14, 54, 54, 2, + 54, 19, 3, 60, 60, 59, 18, 54, 18, 18, + 109, 18, 59, 54, 54, 18, 54, 54, 59, 59, + 54, 59, 59, 54, 58, 38, 54, 58, 18, 42, + 58, 2, 54, 2, 18, 54, 45, 2, 45, 2, + 4, 3, 18, 18, 66, 64, 3, 18, 54, 18, + 56, 2, 54, 18, 18, 18, 46, 54, 60, 56, + 3, 3, 54, 47, 2, 57, 54, 18, 56, 54, + 2, 56, 54, 54, 56, 2, 57, 54, 2, 18, + 18, 54, 54, 56, -1, 62, 18, 54, 60, 56, + -1, 18, 14, 54, 18, 54, 2, 19, 59, -1, + 59, 54, 54, -1, 63, 44, 59, 59, -1, 54, + 2, -1, 18, 65, 59, 76, 78, 92, 94, 54, + 54, 78, 18, 76, 59, 59, 18, 61, 54, 54, + -1, 76, 67, 59, 59, 78, 78, 54, 54, -1, + 54, 54, 59, 59, 69, 59, 59, 61, 61, 14, + 76, 47, 48, -1, 71, -1, 54, 14, 23, 5, + 76, 59, 19, 61, 21, 5, -1, -1, 14, -1, + 35, 36, -1, -1, 14, -1, -1, 23, -1, -1, + -1, -1, 88, 23, -1, 42, -1, -1, -1, 35, + 36, -1, -1, -1, -1, 35, 36, 25, 26, 27, + 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, + -1, 14, -1, -1, -1, -1, -1, -1, -1, 2, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 14, + -1, -1, -1, -1, -1, 18, -1, -1, 23, 24, + 25, 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 14, 14, -1, -1, -1, -1, -1, - -1, -1, 23, 23, 24, 25, 26, 27, 28, 29, - 30, 31, -1, -1, 35, 36, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 88, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 14, -1, + -1, -1, -1, -1, -1, -1, -1, 23, 24, 25, + 26, 27, 28, 29, 30, 31, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, @@ -1078,15 +1073,6 @@ const short QQmlJSGrammar::action_check [] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 14, -1, -1, -1, -1, -1, -1, -1, -1, 23, - 24, 25, 26, 27, 28, 29, 30, 31, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1}; + -1, -1, -1, -1, -1}; QT_END_NAMESPACE diff --git a/src/tools/qdoc/qmlparser/qqmljsgrammar_p.h b/src/tools/qdoc/qmlparser/qqmljsgrammar_p.h index 6b3d1c80135..7a369be194e 100644 --- a/src/tools/qdoc/qmlparser/qqmljsgrammar_p.h +++ b/src/tools/qdoc/qmlparser/qqmljsgrammar_p.h @@ -161,15 +161,15 @@ public: T_XOR = 79, T_XOR_EQ = 80, - ACCEPT_STATE = 663, - RULE_COUNT = 357, - STATE_COUNT = 664, + ACCEPT_STATE = 665, + RULE_COUNT = 358, + STATE_COUNT = 666, TERMINAL_COUNT = 106, NON_TERMINAL_COUNT = 111, - GOTO_INDEX_OFFSET = 664, - GOTO_INFO_OFFSET = 3104, - GOTO_CHECK_OFFSET = 3104 + GOTO_INDEX_OFFSET = 666, + GOTO_INFO_OFFSET = 3018, + GOTO_CHECK_OFFSET = 3018 }; static const char *const spell []; diff --git a/src/tools/qdoc/qmlparser/qqmljsparser.cpp b/src/tools/qdoc/qmlparser/qqmljsparser.cpp index 262043b3b80..762e60c8276 100644 --- a/src/tools/qdoc/qmlparser/qqmljsparser.cpp +++ b/src/tools/qdoc/qmlparser/qqmljsparser.cpp @@ -567,56 +567,78 @@ case 69: { } break; case 70: { - sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); + AST::UiPublicMember *node = new (pool) AST::UiPublicMember(stringRef(3), stringRef(4)); + node->isReadonlyMember = true; + node->readonlyToken = loc(1); + node->propertyToken = loc(2); + node->typeToken = loc(3); + node->identifierToken = loc(4); + node->semicolonToken = loc(5); // insert a fake ';' before ':' + + AST::UiQualifiedId *propertyName = new (pool) AST::UiQualifiedId(stringRef(4)); + propertyName->identifierToken = loc(4); + propertyName->next = 0; + + AST::UiObjectBinding *binding = new (pool) AST::UiObjectBinding( + propertyName, sym(6).UiQualifiedId, sym(7).UiObjectInitializer); + binding->colonToken = loc(5); + + node->binding = binding; + + sym(1).Node = node; } break; case 71: { sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); } break; -case 79: { +case 72: { + sym(1).Node = new (pool) AST::UiSourceElement(sym(1).Node); +} break; + +case 80: { AST::ThisExpression *node = new (pool) AST::ThisExpression(); node->thisToken = loc(1); sym(1).Node = node; } break; -case 80: { +case 81: { AST::IdentifierExpression *node = new (pool) AST::IdentifierExpression(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 81: { +case 82: { AST::NullExpression *node = new (pool) AST::NullExpression(); node->nullToken = loc(1); sym(1).Node = node; } break; -case 82: { +case 83: { AST::TrueLiteral *node = new (pool) AST::TrueLiteral(); node->trueToken = loc(1); sym(1).Node = node; } break; -case 83: { +case 84: { AST::FalseLiteral *node = new (pool) AST::FalseLiteral(); node->falseToken = loc(1); sym(1).Node = node; } break; -case 84: { +case 85: { AST::NumericLiteral *node = new (pool) AST::NumericLiteral(sym(1).dval); node->literalToken = loc(1); sym(1).Node = node; } break; -case 85: -case 86: { +case 86: +case 87: { AST::StringLiteral *node = new (pool) AST::StringLiteral(stringRef(1)); node->literalToken = loc(1); sym(1).Node = node; } break; -case 87: { +case 88: { bool rx = lexer->scanRegExp(Lexer::NoPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -632,7 +654,7 @@ case 87: { sym(1).Node = node; } break; -case 88: { +case 89: { bool rx = lexer->scanRegExp(Lexer::EqualPrefix); if (!rx) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Error, location(lexer), lexer->errorMessage())); @@ -648,28 +670,28 @@ case 88: { sym(1).Node = node; } break; -case 89: { +case 90: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral((AST::Elision *) 0); node->lbracketToken = loc(1); node->rbracketToken = loc(2); sym(1).Node = node; } break; -case 90: { +case 91: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).Elision->finish()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 91: { +case 92: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish ()); node->lbracketToken = loc(1); node->rbracketToken = loc(3); sym(1).Node = node; } break; -case 92: { +case 93: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), (AST::Elision *) 0); node->lbracketToken = loc(1); @@ -678,7 +700,7 @@ case 92: { sym(1).Node = node; } break; -case 93: { +case 94: { AST::ArrayLiteral *node = new (pool) AST::ArrayLiteral(sym(2).ElementList->finish (), sym(4).Elision->finish()); node->lbracketToken = loc(1); @@ -687,7 +709,7 @@ case 93: { sym(1).Node = node; } break; -case 94: { +case 95: { AST::ObjectLiteral *node = 0; if (sym(2).Node) node = new (pool) AST::ObjectLiteral( @@ -699,7 +721,7 @@ case 94: { sym(1).Node = node; } break; -case 95: { +case 96: { AST::ObjectLiteral *node = new (pool) AST::ObjectLiteral( sym(2).PropertyAssignmentList->finish ()); node->lbraceToken = loc(1); @@ -707,14 +729,14 @@ case 95: { sym(1).Node = node; } break; -case 96: { +case 97: { AST::NestedExpression *node = new (pool) AST::NestedExpression(sym(2).Expression); node->lparenToken = loc(1); node->rparenToken = loc(3); sym(1).Node = node; } break; -case 97: { +case 98: { if (AST::ArrayMemberExpression *mem = AST::cast(sym(1).Expression)) { diagnostic_messages.append(DiagnosticMessage(DiagnosticMessage::Warning, mem->lbracketToken, QLatin1String("Ignored annotation"))); @@ -734,48 +756,48 @@ case 97: { } } break; -case 98: { +case 99: { sym(1).Node = new (pool) AST::ElementList((AST::Elision *) 0, sym(1).Expression); } break; -case 99: { +case 100: { sym(1).Node = new (pool) AST::ElementList(sym(1).Elision->finish(), sym(2).Expression); } break; -case 100: { +case 101: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, (AST::Elision *) 0, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 101: { +case 102: { AST::ElementList *node = new (pool) AST::ElementList(sym(1).ElementList, sym(3).Elision->finish(), sym(4).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 102: { +case 103: { AST::Elision *node = new (pool) AST::Elision(); node->commaToken = loc(1); sym(1).Node = node; } break; -case 103: { +case 104: { AST::Elision *node = new (pool) AST::Elision(sym(1).Elision); node->commaToken = loc(2); sym(1).Node = node; } break; -case 104: { +case 105: { AST::PropertyNameAndValue *node = new (pool) AST::PropertyNameAndValue( sym(1).PropertyName, sym(3).Expression); node->colonToken = loc(2); sym(1).Node = node; } break; -case 105: { +case 106: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(6).FunctionBody); node->getSetToken = loc(1); @@ -786,7 +808,7 @@ case 105: { sym(1).Node = node; } break; -case 106: { +case 107: { AST::PropertyGetterSetter *node = new (pool) AST::PropertyGetterSetter( sym(2).PropertyName, sym(4).FormalParameterList, sym(7).FunctionBody); node->getSetToken = loc(1); @@ -797,56 +819,56 @@ case 106: { sym(1).Node = node; } break; -case 107: { +case 108: { sym(1).Node = new (pool) AST::PropertyAssignmentList(sym(1).PropertyAssignment); } break; -case 108: { +case 109: { AST::PropertyAssignmentList *node = new (pool) AST::PropertyAssignmentList( sym(1).PropertyAssignmentList, sym(3).PropertyAssignment); node->commaToken = loc(2); sym(1).Node = node; } break; -case 109: { - AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); - node->propertyNameToken = loc(1); - sym(1).Node = node; -} break; - case 110: { - AST::StringLiteralPropertyName *node = new (pool) AST::StringLiteralPropertyName(stringRef(1)); + AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; case 111: { - AST::NumericLiteralPropertyName *node = new (pool) AST::NumericLiteralPropertyName(sym(1).dval); + AST::StringLiteralPropertyName *node = new (pool) AST::StringLiteralPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; case 112: { + AST::NumericLiteralPropertyName *node = new (pool) AST::NumericLiteralPropertyName(sym(1).dval); + node->propertyNameToken = loc(1); + sym(1).Node = node; +} break; + +case 113: { AST::IdentifierPropertyName *node = new (pool) AST::IdentifierPropertyName(stringRef(1)); node->propertyNameToken = loc(1); sym(1).Node = node; } break; -case 148: { +case 149: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 149: { +case 150: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 150: { +case 151: { AST::NewMemberExpression *node = new (pool) AST::NewMemberExpression(sym(2).Expression, sym(4).ArgumentList); node->newToken = loc(1); node->lparenToken = loc(3); @@ -854,19 +876,12 @@ case 150: { sym(1).Node = node; } break; -case 152: { +case 153: { AST::NewExpression *node = new (pool) AST::NewExpression(sym(2).Expression); node->newToken = loc(1); sym(1).Node = node; } break; -case 153: { - AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); - node->lparenToken = loc(2); - node->rparenToken = loc(4); - sym(1).Node = node; -} break; - case 154: { AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); node->lparenToken = loc(2); @@ -875,363 +890,370 @@ case 154: { } break; case 155: { + AST::CallExpression *node = new (pool) AST::CallExpression(sym(1).Expression, sym(3).ArgumentList); + node->lparenToken = loc(2); + node->rparenToken = loc(4); + sym(1).Node = node; +} break; + +case 156: { AST::ArrayMemberExpression *node = new (pool) AST::ArrayMemberExpression(sym(1).Expression, sym(3).Expression); node->lbracketToken = loc(2); node->rbracketToken = loc(4); sym(1).Node = node; } break; -case 156: { +case 157: { AST::FieldMemberExpression *node = new (pool) AST::FieldMemberExpression(sym(1).Expression, stringRef(3)); node->dotToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 157: { +case 158: { sym(1).Node = 0; } break; -case 158: { +case 159: { sym(1).Node = sym(1).ArgumentList->finish(); } break; -case 159: { +case 160: { sym(1).Node = new (pool) AST::ArgumentList(sym(1).Expression); } break; -case 160: { +case 161: { AST::ArgumentList *node = new (pool) AST::ArgumentList(sym(1).ArgumentList, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; -case 164: { +case 165: { AST::PostIncrementExpression *node = new (pool) AST::PostIncrementExpression(sym(1).Expression); node->incrementToken = loc(2); sym(1).Node = node; } break; -case 165: { +case 166: { AST::PostDecrementExpression *node = new (pool) AST::PostDecrementExpression(sym(1).Expression); node->decrementToken = loc(2); sym(1).Node = node; } break; -case 167: { +case 168: { AST::DeleteExpression *node = new (pool) AST::DeleteExpression(sym(2).Expression); node->deleteToken = loc(1); sym(1).Node = node; } break; -case 168: { +case 169: { AST::VoidExpression *node = new (pool) AST::VoidExpression(sym(2).Expression); node->voidToken = loc(1); sym(1).Node = node; } break; -case 169: { +case 170: { AST::TypeOfExpression *node = new (pool) AST::TypeOfExpression(sym(2).Expression); node->typeofToken = loc(1); sym(1).Node = node; } break; -case 170: { +case 171: { AST::PreIncrementExpression *node = new (pool) AST::PreIncrementExpression(sym(2).Expression); node->incrementToken = loc(1); sym(1).Node = node; } break; -case 171: { +case 172: { AST::PreDecrementExpression *node = new (pool) AST::PreDecrementExpression(sym(2).Expression); node->decrementToken = loc(1); sym(1).Node = node; } break; -case 172: { +case 173: { AST::UnaryPlusExpression *node = new (pool) AST::UnaryPlusExpression(sym(2).Expression); node->plusToken = loc(1); sym(1).Node = node; } break; -case 173: { +case 174: { AST::UnaryMinusExpression *node = new (pool) AST::UnaryMinusExpression(sym(2).Expression); node->minusToken = loc(1); sym(1).Node = node; } break; -case 174: { +case 175: { AST::TildeExpression *node = new (pool) AST::TildeExpression(sym(2).Expression); node->tildeToken = loc(1); sym(1).Node = node; } break; -case 175: { +case 176: { AST::NotExpression *node = new (pool) AST::NotExpression(sym(2).Expression); node->notToken = loc(1); sym(1).Node = node; } break; -case 177: { +case 178: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mul, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 178: { +case 179: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Div, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 179: { +case 180: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Mod, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 181: { +case 182: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Add, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 182: { +case 183: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Sub, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 184: { +case 185: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::LShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 185: { +case 186: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::RShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 186: { +case 187: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::URShift, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 188: { - AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Lt, sym(3).Expression); - node->operatorToken = loc(2); - sym(1).Node = node; -} break; - case 189: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Gt, sym(3).Expression); + QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 190: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Le, sym(3).Expression); + QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 191: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Ge, sym(3).Expression); + QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 192: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::InstanceOf, sym(3).Expression); + QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 193: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::In, sym(3).Expression); + QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 195: { +case 194: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Lt, sym(3).Expression); + QSOperator::In, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 196: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Gt, sym(3).Expression); + QSOperator::Lt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 197: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Le, sym(3).Expression); + QSOperator::Gt, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 198: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Ge, sym(3).Expression); + QSOperator::Le, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 199: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::InstanceOf, sym(3).Expression); + QSOperator::Ge, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 201: { +case 200: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Equal, sym(3).Expression); + QSOperator::InstanceOf, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 202: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::NotEqual, sym(3).Expression); + QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 203: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::StrictEqual, sym(3).Expression); + QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 204: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::StrictNotEqual, sym(3).Expression); + QSOperator::StrictEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 206: { +case 205: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::Equal, sym(3).Expression); + QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 207: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::NotEqual, sym(3).Expression); + QSOperator::Equal, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 208: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - QSOperator::StrictEqual, sym(3).Expression); + QSOperator::NotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; case 209: { + AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, + QSOperator::StrictEqual, sym(3).Expression); + node->operatorToken = loc(2); + sym(1).Node = node; +} break; + +case 210: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::StrictNotEqual, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 211: { +case 212: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 213: { +case 214: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitAnd, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 215: { +case 216: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 217: { +case 218: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitXor, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 219: { +case 220: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 221: { +case 222: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::BitOr, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 223: { +case 224: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 225: { +case 226: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::And, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 227: { +case 228: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 229: { +case 230: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, QSOperator::Or, sym(3).Expression); node->operatorToken = loc(2); sym(1).Node = node; } break; -case 231: { +case 232: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1239,7 +1261,7 @@ case 231: { sym(1).Node = node; } break; -case 233: { +case 234: { AST::ConditionalExpression *node = new (pool) AST::ConditionalExpression(sym(1).Expression, sym(3).Expression, sym(5).Expression); node->questionToken = loc(2); @@ -1247,14 +1269,7 @@ case 233: { sym(1).Node = node; } break; -case 235: { - AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, - sym(2).ival, sym(3).Expression); - node->operatorToken = loc(2); - sym(1).Node = node; -} break; - -case 237: { +case 236: { AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, sym(2).ival, sym(3).Expression); node->operatorToken = loc(2); @@ -1262,97 +1277,104 @@ case 237: { } break; case 238: { - sym(1).ival = QSOperator::Assign; + AST::BinaryExpression *node = new (pool) AST::BinaryExpression(sym(1).Expression, + sym(2).ival, sym(3).Expression); + node->operatorToken = loc(2); + sym(1).Node = node; } break; case 239: { - sym(1).ival = QSOperator::InplaceMul; + sym(1).ival = QSOperator::Assign; } break; case 240: { - sym(1).ival = QSOperator::InplaceDiv; + sym(1).ival = QSOperator::InplaceMul; } break; case 241: { - sym(1).ival = QSOperator::InplaceMod; + sym(1).ival = QSOperator::InplaceDiv; } break; case 242: { - sym(1).ival = QSOperator::InplaceAdd; + sym(1).ival = QSOperator::InplaceMod; } break; case 243: { - sym(1).ival = QSOperator::InplaceSub; + sym(1).ival = QSOperator::InplaceAdd; } break; case 244: { - sym(1).ival = QSOperator::InplaceLeftShift; + sym(1).ival = QSOperator::InplaceSub; } break; case 245: { - sym(1).ival = QSOperator::InplaceRightShift; + sym(1).ival = QSOperator::InplaceLeftShift; } break; case 246: { - sym(1).ival = QSOperator::InplaceURightShift; + sym(1).ival = QSOperator::InplaceRightShift; } break; case 247: { - sym(1).ival = QSOperator::InplaceAnd; + sym(1).ival = QSOperator::InplaceURightShift; } break; case 248: { - sym(1).ival = QSOperator::InplaceXor; + sym(1).ival = QSOperator::InplaceAnd; } break; case 249: { + sym(1).ival = QSOperator::InplaceXor; +} break; + +case 250: { sym(1).ival = QSOperator::InplaceOr; } break; -case 251: { - AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); - node->commaToken = loc(2); - sym(1).Node = node; -} break; - case 252: { - sym(1).Node = 0; -} break; - -case 255: { AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); node->commaToken = loc(2); sym(1).Node = node; } break; +case 253: { + sym(1).Node = 0; +} break; + case 256: { + AST::Expression *node = new (pool) AST::Expression(sym(1).Expression, sym(3).Expression); + node->commaToken = loc(2); + sym(1).Node = node; +} break; + +case 257: { sym(1).Node = 0; } break; -case 273: { +case 274: { AST::Block *node = new (pool) AST::Block(sym(2).StatementList); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 274: { +case 275: { sym(1).Node = new (pool) AST::StatementList(sym(1).Statement); } break; -case 275: { +case 276: { sym(1).Node = new (pool) AST::StatementList(sym(1).StatementList, sym(2).Statement); } break; -case 276: { +case 277: { sym(1).Node = 0; } break; -case 277: { +case 278: { sym(1).Node = sym(1).StatementList->finish (); } break; -case 279: { +case 280: { AST::VariableStatement *node = new (pool) AST::VariableStatement( sym(2).VariableDeclarationList->finish (/*readOnly=*/sym(1).ival == T_CONST)); node->declarationKindToken = loc(1); @@ -1360,37 +1382,31 @@ case 279: { sym(1).Node = node; } break; -case 280: { +case 281: { sym(1).ival = T_CONST; } break; -case 281: { +case 282: { sym(1).ival = T_VAR; } break; -case 282: { +case 283: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 283: { +case 284: { AST::VariableDeclarationList *node = new (pool) AST::VariableDeclarationList( sym(1).VariableDeclarationList, sym(3).VariableDeclaration); node->commaToken = loc(2); sym(1).Node = node; } break; -case 284: { +case 285: { sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclaration); } break; -case 285: { - sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclarationList, sym(3).VariableDeclaration); -} break; - case 286: { - AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); - node->identifierToken = loc(1); - sym(1).Node = node; + sym(1).Node = new (pool) AST::VariableDeclarationList(sym(1).VariableDeclarationList, sym(3).VariableDeclaration); } break; case 287: { @@ -1400,36 +1416,42 @@ case 287: { } break; case 288: { - // ### TODO: AST for initializer - sym(1) = sym(2); + AST::VariableDeclaration *node = new (pool) AST::VariableDeclaration(stringRef(1), sym(2).Expression); + node->identifierToken = loc(1); + sym(1).Node = node; } break; case 289: { - sym(1).Node = 0; -} break; - -case 291: { // ### TODO: AST for initializer sym(1) = sym(2); } break; -case 292: { +case 290: { sym(1).Node = 0; } break; -case 294: { +case 292: { + // ### TODO: AST for initializer + sym(1) = sym(2); +} break; + +case 293: { + sym(1).Node = 0; +} break; + +case 295: { AST::EmptyStatement *node = new (pool) AST::EmptyStatement(); node->semicolonToken = loc(1); sym(1).Node = node; } break; -case 296: { +case 297: { AST::ExpressionStatement *node = new (pool) AST::ExpressionStatement(sym(1).Expression); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 297: { +case 298: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement, sym(7).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1438,7 +1460,7 @@ case 297: { sym(1).Node = node; } break; -case 298: { +case 299: { AST::IfStatement *node = new (pool) AST::IfStatement(sym(3).Expression, sym(5).Statement); node->ifToken = loc(1); node->lparenToken = loc(2); @@ -1446,7 +1468,7 @@ case 298: { sym(1).Node = node; } break; -case 301: { +case 302: { AST::DoWhileStatement *node = new (pool) AST::DoWhileStatement(sym(2).Statement, sym(5).Expression); node->doToken = loc(1); node->whileToken = loc(3); @@ -1456,7 +1478,7 @@ case 301: { sym(1).Node = node; } break; -case 302: { +case 303: { AST::WhileStatement *node = new (pool) AST::WhileStatement(sym(3).Expression, sym(5).Statement); node->whileToken = loc(1); node->lparenToken = loc(2); @@ -1464,7 +1486,7 @@ case 302: { sym(1).Node = node; } break; -case 303: { +case 304: { AST::ForStatement *node = new (pool) AST::ForStatement(sym(3).Expression, sym(5).Expression, sym(7).Expression, sym(9).Statement); node->forToken = loc(1); @@ -1475,7 +1497,7 @@ case 303: { sym(1).Node = node; } break; -case 304: { +case 305: { AST::LocalForStatement *node = new (pool) AST::LocalForStatement( sym(4).VariableDeclarationList->finish (/*readOnly=*/false), sym(6).Expression, sym(8).Expression, sym(10).Statement); @@ -1488,7 +1510,7 @@ case 304: { sym(1).Node = node; } break; -case 305: { +case 306: { AST:: ForEachStatement *node = new (pool) AST::ForEachStatement(sym(3).Expression, sym(5).Expression, sym(7).Statement); node->forToken = loc(1); @@ -1498,7 +1520,7 @@ case 305: { sym(1).Node = node; } break; -case 306: { +case 307: { AST::LocalForEachStatement *node = new (pool) AST::LocalForEachStatement( sym(4).VariableDeclaration, sym(6).Expression, sym(8).Statement); node->forToken = loc(1); @@ -1509,14 +1531,14 @@ case 306: { sym(1).Node = node; } break; -case 308: { +case 309: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(); node->continueToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 310: { +case 311: { AST::ContinueStatement *node = new (pool) AST::ContinueStatement(stringRef(2)); node->continueToken = loc(1); node->identifierToken = loc(2); @@ -1524,14 +1546,14 @@ case 310: { sym(1).Node = node; } break; -case 312: { +case 313: { AST::BreakStatement *node = new (pool) AST::BreakStatement(QStringRef()); node->breakToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 314: { +case 315: { AST::BreakStatement *node = new (pool) AST::BreakStatement(stringRef(2)); node->breakToken = loc(1); node->identifierToken = loc(2); @@ -1539,14 +1561,14 @@ case 314: { sym(1).Node = node; } break; -case 316: { +case 317: { AST::ReturnStatement *node = new (pool) AST::ReturnStatement(sym(2).Expression); node->returnToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 317: { +case 318: { AST::WithStatement *node = new (pool) AST::WithStatement(sym(3).Expression, sym(5).Statement); node->withToken = loc(1); node->lparenToken = loc(2); @@ -1554,7 +1576,7 @@ case 317: { sym(1).Node = node; } break; -case 318: { +case 319: { AST::SwitchStatement *node = new (pool) AST::SwitchStatement(sym(3).Expression, sym(5).CaseBlock); node->switchToken = loc(1); node->lparenToken = loc(2); @@ -1562,83 +1584,83 @@ case 318: { sym(1).Node = node; } break; -case 319: { +case 320: { AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(3); sym(1).Node = node; } break; -case 320: { +case 321: { AST::CaseBlock *node = new (pool) AST::CaseBlock(sym(2).CaseClauses, sym(3).DefaultClause, sym(4).CaseClauses); node->lbraceToken = loc(1); node->rbraceToken = loc(5); sym(1).Node = node; } break; -case 321: { +case 322: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClause); } break; -case 322: { +case 323: { sym(1).Node = new (pool) AST::CaseClauses(sym(1).CaseClauses, sym(2).CaseClause); } break; -case 323: { +case 324: { sym(1).Node = 0; } break; -case 324: { +case 325: { sym(1).Node = sym(1).CaseClauses->finish (); } break; -case 325: { +case 326: { AST::CaseClause *node = new (pool) AST::CaseClause(sym(2).Expression, sym(4).StatementList); node->caseToken = loc(1); node->colonToken = loc(3); sym(1).Node = node; } break; -case 326: { +case 327: { AST::DefaultClause *node = new (pool) AST::DefaultClause(sym(3).StatementList); node->defaultToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 327: { +case 328: { AST::LabelledStatement *node = new (pool) AST::LabelledStatement(stringRef(1), sym(3).Statement); node->identifierToken = loc(1); node->colonToken = loc(2); sym(1).Node = node; } break; -case 329: { +case 330: { AST::ThrowStatement *node = new (pool) AST::ThrowStatement(sym(2).Expression); node->throwToken = loc(1); node->semicolonToken = loc(3); sym(1).Node = node; } break; -case 330: { +case 331: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch); node->tryToken = loc(1); sym(1).Node = node; } break; -case 331: { +case 332: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 332: { +case 333: { AST::TryStatement *node = new (pool) AST::TryStatement(sym(2).Statement, sym(3).Catch, sym(4).Finally); node->tryToken = loc(1); sym(1).Node = node; } break; -case 333: { +case 334: { AST::Catch *node = new (pool) AST::Catch(stringRef(3), sym(5).Block); node->catchToken = loc(1); node->lparenToken = loc(2); @@ -1647,20 +1669,20 @@ case 333: { sym(1).Node = node; } break; -case 334: { +case 335: { AST::Finally *node = new (pool) AST::Finally(sym(2).Block); node->finallyToken = loc(1); sym(1).Node = node; } break; -case 336: { +case 337: { AST::DebuggerStatement *node = new (pool) AST::DebuggerStatement(); node->debuggerToken = loc(1); node->semicolonToken = loc(2); sym(1).Node = node; } break; -case 338: { +case 339: { AST::FunctionDeclaration *node = new (pool) AST::FunctionDeclaration(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); node->identifierToken = loc(2); @@ -1671,7 +1693,7 @@ case 338: { sym(1).Node = node; } break; -case 339: { +case 340: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(stringRef(2), sym(4).FormalParameterList, sym(7).FunctionBody); node->functionToken = loc(1); if (! stringRef(2).isNull()) @@ -1683,7 +1705,7 @@ case 339: { sym(1).Node = node; } break; -case 340: { +case 341: { AST::FunctionExpression *node = new (pool) AST::FunctionExpression(QStringRef(), sym(3).FormalParameterList, sym(6).FunctionBody); node->functionToken = loc(1); node->lparenToken = loc(2); @@ -1693,56 +1715,56 @@ case 340: { sym(1).Node = node; } break; -case 341: { +case 342: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(stringRef(1)); node->identifierToken = loc(1); sym(1).Node = node; } break; -case 342: { +case 343: { AST::FormalParameterList *node = new (pool) AST::FormalParameterList(sym(1).FormalParameterList, stringRef(3)); node->commaToken = loc(2); node->identifierToken = loc(3); sym(1).Node = node; } break; -case 343: { - sym(1).Node = 0; -} break; - case 344: { - sym(1).Node = sym(1).FormalParameterList->finish (); + sym(1).Node = 0; } break; case 345: { + sym(1).Node = sym(1).FormalParameterList->finish (); +} break; + +case 346: { sym(1).Node = 0; } break; -case 347: { +case 348: { sym(1).Node = new (pool) AST::FunctionBody(sym(1).SourceElements->finish ()); } break; -case 349: { +case 350: { sym(1).Node = new (pool) AST::Program(sym(1).SourceElements->finish ()); } break; -case 350: { +case 351: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElement); } break; -case 351: { +case 352: { sym(1).Node = new (pool) AST::SourceElements(sym(1).SourceElements, sym(2).SourceElement); } break; -case 352: { +case 353: { sym(1).Node = new (pool) AST::StatementSourceElement(sym(1).Statement); } break; -case 353: { +case 354: { sym(1).Node = new (pool) AST::FunctionSourceElement(sym(1).FunctionDeclaration); } break; -case 354: { +case 355: { sym(1).Node = 0; } break; diff --git a/src/tools/qdoc/qmlparser/qqmljsparser_p.h b/src/tools/qdoc/qmlparser/qqmljsparser_p.h index b0abf06b251..cf9f641fbc5 100644 --- a/src/tools/qdoc/qmlparser/qqmljsparser_p.h +++ b/src/tools/qdoc/qmlparser/qqmljsparser_p.h @@ -240,9 +240,9 @@ protected: -#define J_SCRIPT_REGEXPLITERAL_RULE1 87 +#define J_SCRIPT_REGEXPLITERAL_RULE1 88 -#define J_SCRIPT_REGEXPLITERAL_RULE2 88 +#define J_SCRIPT_REGEXPLITERAL_RULE2 89 QT_QML_END_NAMESPACE From 76735f3fa0fdf772aa4fba9a9aaa241415eaf922 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 5 Nov 2014 14:57:03 +0100 Subject: [PATCH 25/50] Windows native file dialog: Work around display bug of IFileDialog. Any filter not filtering on suffix shows up duplicated in filter combo. Change-Id: I9fc9e33b6081cf6894fabc6dd52c12a4d3dfd393 Task-number: QTBUG-42405 Reviewed-by: Joerg Bornemann --- .../platforms/windows/qwindowsdialoghelpers.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp index 4cbead44c51..f1f472b3e26 100644 --- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp +++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp @@ -1224,16 +1224,21 @@ void QWindowsNativeFileDialogBase::setNameFilters(const QStringList &filters) QScopedArrayPointer buffer(new WCHAR[totalStringLength + 2 * size]); QScopedArrayPointer comFilterSpec(new COMDLG_FILTERSPEC[size]); - const QString matchesAll = QStringLiteral(" (*)"); WCHAR *ptr = buffer.data(); // Split filter specification as 'Texts (*.txt[;] *.doc)' // into description and filters specification as '*.txt;*.doc' for (int i = 0; i < size; ++i) { - // Display glitch (CLSID only): 'All files (*)' shows up as 'All files (*) (*)' + // Display glitch (CLSID only): Any filter not filtering on suffix (such as + // '*', 'a.*') will be duplicated in combo: 'All files (*) (*)', + // 'AAA files (a.*) (a.*)' QString description = specs[i].description; - if (!m_hideFiltersDetails && description.endsWith(matchesAll)) - description.truncate(description.size() - matchesAll.size()); + const QString &filter = specs[i].filter; + if (!m_hideFiltersDetails && !filter.startsWith(QLatin1String("*."))) { + const int pos = description.lastIndexOf(QLatin1Char('(')); + if (pos > 0) + description.truncate(pos); + } // Add to buffer. comFilterSpec[i].pszName = ptr; ptr += description.toWCharArray(ptr); From 78cdb6b4b1c8c6213e967be56767d7dadd2bf8bf Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 5 Nov 2014 15:03:23 +0100 Subject: [PATCH 26/50] Windows: fix unreadable white text for focused combo boxes Task-number: QTBUG-42390 Change-Id: Ia52c7ac3d2e3ca155692c8f020a565054716c86b Reviewed-by: Friedemann Kleint --- src/widgets/styles/qwindowsvistastyle.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/widgets/styles/qwindowsvistastyle.cpp b/src/widgets/styles/qwindowsvistastyle.cpp index 007952192ae..463b120e043 100644 --- a/src/widgets/styles/qwindowsvistastyle.cpp +++ b/src/widgets/styles/qwindowsvistastyle.cpp @@ -1473,7 +1473,11 @@ void QWindowsVistaStyle::drawControl(ControlElement element, const QStyleOption break; } #endif // QT_NO_ITEMVIEWS - +#ifndef QT_NO_COMBOBOX + case CE_ComboBoxLabel: + QCommonStyle::drawControl(element, option, painter, widget); + break; +#endif // QT_NO_COMBOBOX default: QWindowsXPStyle::drawControl(element, option, painter, widget); break; From 8d82066ff5a00e2bc77716f90688550a6a779dd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 5 Nov 2014 12:59:04 +0100 Subject: [PATCH 27/50] Skip unused function isCoreProfile() on non-ES2 platforms Change-Id: Ia84e74512e7001986c620253cdf0bc431ebc00dc Reviewed-by: Simon Hausmann --- src/gui/opengl/qopengltextureglyphcache.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gui/opengl/qopengltextureglyphcache.cpp b/src/gui/opengl/qopengltextureglyphcache.cpp index 0f70a01014a..cd268cd685f 100644 --- a/src/gui/opengl/qopengltextureglyphcache.cpp +++ b/src/gui/opengl/qopengltextureglyphcache.cpp @@ -82,10 +82,12 @@ QOpenGLTextureGlyphCache::~QOpenGLTextureGlyphCache() clear(); } +#if !defined(QT_OPENGL_ES_2) static inline bool isCoreProfile() { return QOpenGLContext::currentContext()->format().profile() == QSurfaceFormat::CoreProfile; } +#endif void QOpenGLTextureGlyphCache::createTextureData(int width, int height) { From af279b34a8ecccd7dfa0d59b718bc3cf65ebce65 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Mon, 27 Oct 2014 19:26:47 +1000 Subject: [PATCH 28/50] Reset QNAM's NetworkConfiguration when state changes. Since QNAM is initialized with defaultConfiguration, we need to reset the internal configuration used to the current defaultConfiguration when the state changes and a new configuration becomes the default. Task-number: QTBUG-40234 Change-Id: I50f23c62804f29370915eecac2c92301c5f3ead2 Reviewed-by: Kai Koehne Reviewed-by: Alex Blasche --- src/network/access/qnetworkaccessmanager.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index f00b58a8ce7..52d56fb0716 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -1135,7 +1135,12 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.identifier().isEmpty())) { QNetworkConfigurationManager manager; if (!d->networkConfiguration.identifier().isEmpty()) { - d->createSession(d->networkConfiguration); + if ((d->networkConfiguration.state() & QNetworkConfiguration::Defined) + && d->networkConfiguration != manager.defaultConfiguration()) + d->createSession(manager.defaultConfiguration()); + else + d->createSession(d->networkConfiguration); + } else { if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) d->createSession(manager.defaultConfiguration()); @@ -1590,6 +1595,11 @@ void QNetworkAccessManagerPrivate::_q_onlineStateChanged(bool isOnline) if (customNetworkConfiguration) { online = (networkConfiguration.state() & QNetworkConfiguration::Active); } else { + if (isOnline && online != isOnline) { + networkSessionStrongRef.clear(); + networkSessionWeakRef.clear(); + } + online = isOnline; } } From 4763a3571f3301dd2da6d35636a94e4d1dc1f216 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Wed, 29 Oct 2014 19:40:43 +1000 Subject: [PATCH 29/50] Use a property cache to cut down on blocking calls Refactor old code Stop memory leaks Properly support mobile data (ofono) Change-Id: I7f23882ee0ee345a049a4a93ddd452b6d2e53710 Reviewed-by: Alex Blasche --- src/plugins/bearer/connman/connman.pro | 4 +- src/plugins/bearer/connman/qconnmanengine.h | 2 +- .../qofonoservice_linux.cpp | 89 ++- .../qofonoservice_linux_p.h | 25 +- .../bearer/networkmanager/networkmanager.pro | 6 +- .../networkmanager/qnetworkmanagerengine.cpp | 364 ++++----- .../networkmanager/qnetworkmanagerengine.h | 22 +- .../networkmanager/qnetworkmanagerservice.cpp | 693 +++++++++++++----- .../networkmanager/qnetworkmanagerservice.h | 105 ++- .../bearer/networkmanager/qnmdbushelper.cpp | 140 ---- .../bearer/networkmanager/qnmdbushelper.h | 73 -- 11 files changed, 855 insertions(+), 668 deletions(-) rename src/plugins/bearer/{connman => linux_common}/qofonoservice_linux.cpp (76%) rename src/plugins/bearer/{connman => linux_common}/qofonoservice_linux_p.h (88%) delete mode 100644 src/plugins/bearer/networkmanager/qnmdbushelper.cpp delete mode 100644 src/plugins/bearer/networkmanager/qnmdbushelper.h diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro index bc4efe8b621..efa13a6ebdc 100644 --- a/src/plugins/bearer/connman/connman.pro +++ b/src/plugins/bearer/connman/connman.pro @@ -8,14 +8,14 @@ QT = core network-private dbus CONFIG += link_pkgconfig HEADERS += qconnmanservice_linux_p.h \ - qofonoservice_linux_p.h \ + ../linux_common/qofonoservice_linux_p.h \ qconnmanengine.h \ ../qnetworksession_impl.h \ ../qbearerengine_impl.h SOURCES += main.cpp \ qconnmanservice_linux.cpp \ - qofonoservice_linux.cpp \ + ../linux_common/qofonoservice_linux.cpp \ qconnmanengine.cpp \ ../qnetworksession_impl.cpp diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h index 52e8b384a04..a995d8ed25d 100644 --- a/src/plugins/bearer/connman/qconnmanengine.h +++ b/src/plugins/bearer/connman/qconnmanengine.h @@ -48,7 +48,7 @@ #include "../qbearerengine_impl.h" #include "qconnmanservice_linux_p.h" -#include "qofonoservice_linux_p.h" +#include "../linux_common/qofonoservice_linux_p.h" #include #include diff --git a/src/plugins/bearer/connman/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp similarity index 76% rename from src/plugins/bearer/connman/qofonoservice_linux.cpp rename to src/plugins/bearer/linux_common/qofonoservice_linux.cpp index 2ce2bd40e45..e994ebf2cef 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux.cpp +++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp @@ -95,14 +95,12 @@ QStringList QOfonoManagerInterface::getModems() { if (modemList.isEmpty()) { QList argumentList; - QDBusPendingReply reply = asyncCallWithArgumentList(QLatin1String("GetModems"), argumentList); + QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetModems"), argumentList); reply.waitForFinished(); if (!reply.isError()) { foreach (ObjectPathProperties modem, reply.value()) { modemList << modem.path.path(); } - } else { - qDebug() << reply.error().message(); } } @@ -175,7 +173,7 @@ QVariantMap QOfonoModemInterface::getProperties() { if (propertiesMap.isEmpty()) { QList argumentList; - QDBusPendingReply reply = asyncCallWithArgumentList(QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); if (!reply.isError()) { propertiesMap = reply.value(); } @@ -187,7 +185,8 @@ QVariant QOfonoModemInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); - var = map.value(property); + if (map.contains(property)) + var = map.value(property); return var; } @@ -214,7 +213,8 @@ QVariant QOfonoNetworkRegistrationInterface::getProperty(const QString &property { QVariant var; QVariantMap map = getProperties(); - var = map.value(property); + if (map.contains(property)) + var = map.value(property); return var; } @@ -222,12 +222,10 @@ QVariantMap QOfonoNetworkRegistrationInterface::getProperties() { if (propertiesMap.isEmpty()) { QList argumentList; - QDBusPendingReply reply = asyncCallWithArgumentList(QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); reply.waitForFinished(); if (!reply.isError()) { propertiesMap = reply.value(); - } else { - qDebug() << reply.error().message(); } } return propertiesMap; @@ -270,11 +268,18 @@ bool QOfonoDataConnectionManagerInterface::roamingAllowed() return qdbus_cast(var); } +QString QOfonoDataConnectionManagerInterface::bearer() +{ + QVariant var = getProperty(QStringLiteral("Bearer")); + return qdbus_cast(var); +} + QVariant QOfonoDataConnectionManagerInterface::getProperty(const QString &property) { QVariant var; QVariantMap map = getProperties(); - var = map.value(property); + if (map.contains(property)) + var = map.value(property); return var; } @@ -282,7 +287,7 @@ QVariantMap QOfonoDataConnectionManagerInterface::getProperties() { if (propertiesMap.isEmpty()) { QList argumentList; - QDBusPendingReply reply = asyncCallWithArgumentList(QLatin1String("GetProperties"), argumentList); + QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); if (!reply.isError()) { propertiesMap = reply.value(); } @@ -297,6 +302,68 @@ void QOfonoDataConnectionManagerInterface::propertyChanged(const QString &name, Q_EMIT roamingAllowedChanged(value.variant().toBool()); } + +QOfonoConnectionContextInterface::QOfonoConnectionContextInterface(const QString &dbusPathName, QObject *parent) + : QDBusAbstractInterface(QLatin1String(OFONO_SERVICE), + dbusPathName, + OFONO_CONNECTION_CONTEXT_INTERFACE, + QDBusConnection::systemBus(), parent) +{ + QDBusConnection::systemBus().connect(QLatin1String(OFONO_SERVICE), + path(), + QLatin1String(OFONO_MODEM_INTERFACE), + QLatin1String("PropertyChanged"), + this,SLOT(propertyChanged(QString,QDBusVariant))); +} + +QOfonoConnectionContextInterface::~QOfonoConnectionContextInterface() +{ +} + +QVariantMap QOfonoConnectionContextInterface::getProperties() +{ + if (propertiesMap.isEmpty()) { + QList argumentList; + QDBusPendingReply reply = callWithArgumentList(QDBus::Block, QLatin1String("GetProperties"), argumentList); + if (!reply.isError()) { + propertiesMap = reply.value(); + } + } + return propertiesMap; +} + +void QOfonoConnectionContextInterface::propertyChanged(const QString &name, const QDBusVariant &value) +{ + propertiesMap[name] = value.variant(); +} + +QVariant QOfonoConnectionContextInterface::getProperty(const QString &property) +{ + QVariant var; + QVariantMap map = getProperties(); + if (map.contains(property)) + var = map.value(property); + return var; +} + +bool QOfonoConnectionContextInterface::active() +{ + QVariant var = getProperty(QStringLiteral("Active")); + return qdbus_cast(var); +} + +QString QOfonoConnectionContextInterface::accessPointName() +{ + QVariant var = getProperty(QStringLiteral("AccessPointName")); + return qdbus_cast(var); +} + +QString QOfonoConnectionContextInterface::name() +{ + QVariant var = getProperty(QStringLiteral("Name")); + return qdbus_cast(var); +} + QT_END_NAMESPACE #endif // QT_NO_DBUS diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h similarity index 88% rename from src/plugins/bearer/connman/qofonoservice_linux_p.h rename to src/plugins/bearer/linux_common/qofonoservice_linux_p.h index 8a6a932e0d6..2b3d43deb5b 100644 --- a/src/plugins/bearer/connman/qofonoservice_linux_p.h +++ b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h @@ -67,6 +67,7 @@ #define OFONO_MODEM_INTERFACE "org.ofono.Modem" #define OFONO_NETWORK_REGISTRATION_INTERFACE "org.ofono.NetworkRegistration" #define OFONO_DATA_CONNECTION_MANAGER_INTERFACE "org.ofono.ConnectionManager" +#define OFONO_CONNECTION_CONTEXT_INTERFACE "org.ofono.ConnectionContext" QT_BEGIN_NAMESPACE @@ -152,17 +153,39 @@ public: QStringList contexts(); bool roamingAllowed(); + QVariant getProperty(const QString &); + QString bearer(); Q_SIGNALS: void roamingAllowedChanged(bool); private: QVariantMap getProperties(); QVariantMap propertiesMap; - QVariant getProperty(const QString &); QStringList contextList; private slots: void propertyChanged(const QString &, const QDBusVariant &value); }; +class QOfonoConnectionContextInterface : public QDBusAbstractInterface +{ + Q_OBJECT + +public: + + explicit QOfonoConnectionContextInterface(const QString &dbusPathName, QObject *parent = 0); + ~QOfonoConnectionContextInterface(); + + QVariant getProperty(const QString &); + bool active(); + QString accessPointName(); + QString name(); + +Q_SIGNALS: +private: + QVariantMap getProperties(); + QVariantMap propertiesMap; +private slots: + void propertyChanged(const QString &, const QDBusVariant &value); +}; QT_END_NAMESPACE diff --git a/src/plugins/bearer/networkmanager/networkmanager.pro b/src/plugins/bearer/networkmanager/networkmanager.pro index 1ed9bfaa1b4..b3a270615cc 100644 --- a/src/plugins/bearer/networkmanager/networkmanager.pro +++ b/src/plugins/bearer/networkmanager/networkmanager.pro @@ -6,16 +6,16 @@ load(qt_plugin) QT = core network-private dbus -HEADERS += qnmdbushelper.h \ - qnetworkmanagerservice.h \ +HEADERS += qnetworkmanagerservice.h \ qnetworkmanagerengine.h \ + ../linux_common/qofonoservice_linux_p.h \ ../qnetworksession_impl.h \ ../qbearerengine_impl.h SOURCES += main.cpp \ - qnmdbushelper.cpp \ qnetworkmanagerservice.cpp \ qnetworkmanagerengine.cpp \ + ../linux_common/qofonoservice_linux.cpp \ ../qnetworksession_impl.cpp OTHER_FILES += networkmanager.json diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index 5f49ea0b6de..f07d7b242b3 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -47,6 +47,7 @@ #include #include #include +#include "../linux_common/qofonoservice_linux_p.h" #ifndef QT_NO_BEARERMANAGEMENT #ifndef QT_NO_DBUS @@ -57,44 +58,55 @@ QNetworkManagerEngine::QNetworkManagerEngine(QObject *parent) : QBearerEngineImpl(parent), managerInterface(new QNetworkManagerInterface(this)), systemSettings(new QNetworkManagerSettings(NM_DBUS_SERVICE, this)), - userSettings(new QNetworkManagerSettings(NM_DBUS_SERVICE, this)) + ofonoManager(new QOfonoManagerInterface(this)), + ofonoNetwork(0), + ofonoContextManager(0) { + if (!managerInterface->isValid()) return; - managerInterface->setConnections(); + qDBusRegisterMetaType(); + connect(managerInterface, SIGNAL(deviceAdded(QDBusObjectPath)), this, SLOT(deviceAdded(QDBusObjectPath))); connect(managerInterface, SIGNAL(deviceRemoved(QDBusObjectPath)), this, SLOT(deviceRemoved(QDBusObjectPath))); connect(managerInterface, SIGNAL(activationFinished(QDBusPendingCallWatcher*)), this, SLOT(activationFinished(QDBusPendingCallWatcher*))); - connect(managerInterface, SIGNAL(propertiesChanged(QString,QMap)), - this, SLOT(interfacePropertiesChanged(QString,QMap))); + connect(managerInterface, SIGNAL(propertiesChanged(QMap)), + this, SLOT(interfacePropertiesChanged(QMap))); + managerInterface->setConnections(); - qDBusRegisterMetaType(); - - systemSettings->setConnections(); connect(systemSettings, SIGNAL(newConnection(QDBusObjectPath)), this, SLOT(newConnection(QDBusObjectPath))); - - userSettings->setConnections(); - connect(userSettings, SIGNAL(newConnection(QDBusObjectPath)), - this, SLOT(newConnection(QDBusObjectPath))); + systemSettings->setConnections(); } QNetworkManagerEngine::~QNetworkManagerEngine() { qDeleteAll(connections); + connections.clear(); qDeleteAll(accessPoints); + accessPoints.clear(); qDeleteAll(wirelessDevices); - qDeleteAll(activeConnections); + wirelessDevices.clear(); + qDeleteAll(activeConnectionsList); + activeConnectionsList.clear(); + qDeleteAll(interfaceDevices); + interfaceDevices.clear(); + + connectionInterfaces.clear(); } void QNetworkManagerEngine::initialize() { QMutexLocker locker(&mutex); + connect(ofonoManager,SIGNAL(modemChanged()),this,SLOT(changedModem())); + ofonoNetwork = new QOfonoNetworkRegistrationInterface(ofonoManager->currentModem(),this); + ofonoContextManager = new QOfonoDataConnectionManagerInterface(ofonoManager->currentModem(),this); + // Get current list of access points. foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { locker.unlock(); @@ -102,8 +114,24 @@ void QNetworkManagerEngine::initialize() locker.relock(); } - // Get connections. + // Get active connections. + foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { + QNetworkManagerConnectionActive *activeConnection = + new QNetworkManagerConnectionActive(acPath.path(),this); + activeConnectionsList.insert(acPath.path(), activeConnection); + connect(activeConnection, SIGNAL(propertiesChanged(QMap)), + this, SLOT(activeConnectionPropertiesChanged(QMap))); + activeConnection->setConnections(); + + QList devices = activeConnection->devices(); + if (!devices.isEmpty()) { + QNetworkManagerInterfaceDevice device(devices.at(0).path(),this); + connectionInterfaces.insert(activeConnection->connection().path(),device.networkInterface()); + } + } + + // Get connections. foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) { locker.unlock(); if (!hasIdentifier(settingsPath.path())) @@ -111,57 +139,19 @@ void QNetworkManagerEngine::initialize() locker.relock(); } - foreach (const QDBusObjectPath &settingsPath, userSettings->listConnections()) { - locker.unlock(); - if (!hasIdentifier(settingsPath.path())) - newConnection(settingsPath, userSettings); - locker.relock(); - } - - // Get active connections. - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { - QNetworkManagerConnectionActive *activeConnection = - new QNetworkManagerConnectionActive(acPath.path(),this); - activeConnections.insert(acPath.path(), activeConnection); - - activeConnection->setConnections(); - connect(activeConnection, SIGNAL(propertiesChanged(QString,QMap)), - this, SLOT(activeConnectionPropertiesChanged(QString,QMap))); - } Q_EMIT updateCompleted(); } bool QNetworkManagerEngine::networkManagerAvailable() const { - QMutexLocker locker(&mutex); - return managerInterface->isValid(); } -QString QNetworkManagerEngine::getInterfaceFromId(const QString &id) +QString QNetworkManagerEngine::getInterfaceFromId(const QString &settingsPath) { - QMutexLocker locker(&mutex); - - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { - QNetworkManagerConnectionActive activeConnection(acPath.path()); - - const QString identifier = activeConnection.connection().path(); - - if (id == identifier) { - QList devices = activeConnection.devices(); - - if (devices.isEmpty()) - continue; - - QNetworkManagerInterfaceDevice device(devices.at(0).path()); - return device.networkInterface(); - } - } - - return QString(); + return connectionInterfaces.value(settingsPath); } - bool QNetworkManagerEngine::hasIdentifier(const QString &id) { QMutexLocker locker(&mutex); @@ -177,35 +167,34 @@ void QNetworkManagerEngine::connectToId(const QString &id) if (!connection) return; - QNmSettingsMap map = connection->getSettings(); - const QString connectionType = map.value("connection").value("type").toString(); + NMDeviceType connectionType = connection->getType(); QString dbusDevicePath; - foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { - QNetworkManagerInterfaceDevice device(devicePath.path()); - if (device.deviceType() == DEVICE_TYPE_ETHERNET && - connectionType == QLatin1String("802-3-ethernet")) { - dbusDevicePath = devicePath.path(); + const QString settingsPath = connection->connectionInterface()->path(); + QString specificPath = configuredAccessPoints.key(settingsPath); + + QHashIterator i(interfaceDevices); + while (i.hasNext()) { + i.next(); + if (i.value()->deviceType() == DEVICE_TYPE_ETHERNET && + connectionType == DEVICE_TYPE_ETHERNET) { + dbusDevicePath = i.key(); break; - } else if (device.deviceType() == DEVICE_TYPE_WIFI && - connectionType == QLatin1String("802-11-wireless")) { - dbusDevicePath = devicePath.path(); + } else if (i.value()->deviceType() == DEVICE_TYPE_WIFI && + connectionType == DEVICE_TYPE_WIFI) { + dbusDevicePath = i.key(); break; - } else if (device.deviceType() == DEVICE_TYPE_MODEM && - connectionType == QLatin1String("gsm")) { - dbusDevicePath = devicePath.path(); + } else if (i.value()->deviceType() == DEVICE_TYPE_MODEM && + connectionType == DEVICE_TYPE_MODEM) { + dbusDevicePath = i.key(); break; } } - const QString service = connection->connectionInterface()->service(); - const QString settingsPath = connection->connectionInterface()->path(); - QString specificPath = configuredAccessPoints.key(settingsPath); - if (specificPath.isEmpty()) specificPath = "/"; - managerInterface->activateConnection(service, QDBusObjectPath(settingsPath), + managerInterface->activateConnection(QDBusObjectPath(settingsPath), QDBusObjectPath(dbusDevicePath), QDBusObjectPath(specificPath)); } @@ -221,13 +210,11 @@ void QNetworkManagerEngine::disconnectFromId(const QString &id) return; } - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { - QNetworkManagerConnectionActive activeConnection(acPath.path()); - - const QString identifier = activeConnection.connection().path(); - - if (id == identifier && accessPointConfigurations.contains(id)) { - managerInterface->deactivateConnection(acPath); + QHashIterator i(activeConnectionsList); + while (i.hasNext()) { + i.next(); + if (id == i.value()->connection().path() && accessPointConfigurations.contains(id)) { + managerInterface->deactivateConnection(QDBusObjectPath(i.key())); break; } } @@ -250,12 +237,9 @@ void QNetworkManagerEngine::scanFinished() QMetaObject::invokeMethod(this, "updateCompleted", Qt::QueuedConnection); } -void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path, - const QMap &properties) +void QNetworkManagerEngine::interfacePropertiesChanged(const QMap &properties) { - Q_UNUSED(path) QMutexLocker locker(&mutex); - QMapIterator i(properties); while (i.hasNext()) { i.next(); @@ -267,22 +251,20 @@ void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path, qdbus_cast >(i.value().value()); QStringList identifiers = accessPointConfigurations.keys(); - foreach (const QString &id, identifiers) - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); - - QStringList priorActiveConnections = this->activeConnections.keys(); + QStringList priorActiveConnections = activeConnectionsList.keys(); foreach (const QDBusObjectPath &acPath, activeConnections) { priorActiveConnections.removeOne(acPath.path()); QNetworkManagerConnectionActive *activeConnection = - this->activeConnections.value(acPath.path()); + activeConnectionsList.value(acPath.path()); + if (!activeConnection) { activeConnection = new QNetworkManagerConnectionActive(acPath.path(),this); - this->activeConnections.insert(acPath.path(), activeConnection); + activeConnectionsList.insert(acPath.path(), activeConnection); + connect(activeConnection, SIGNAL(propertiesChanged(QMap)), + this, SLOT(activeConnectionPropertiesChanged(QMap))); activeConnection->setConnections(); - connect(activeConnection, SIGNAL(propertiesChanged(QString,QMap)), - this, SLOT(activeConnectionPropertiesChanged(QString,QMap))); } const QString id = activeConnection->connection().path(); @@ -295,6 +277,11 @@ void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path, if (activeConnection->state() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED && ptr->state != QNetworkConfiguration::Active) { ptr->state = QNetworkConfiguration::Active; + + if (activeConnectionsList.value(id) && activeConnectionsList.value(id)->defaultRoute() + && managerInterface->state() < QNetworkManagerInterface::NM_STATE_CONNECTED_GLOBAL) { + ptr->purpose = QNetworkConfiguration::PrivatePurpose; + } ptr->mutex.unlock(); locker.unlock(); @@ -307,7 +294,7 @@ void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path, } while (!priorActiveConnections.isEmpty()) - delete this->activeConnections.take(priorActiveConnections.takeFirst()); + delete activeConnectionsList.take(priorActiveConnections.takeFirst()); while (!identifiers.isEmpty()) { QNetworkConfigurationPrivatePointer ptr = @@ -330,14 +317,13 @@ void QNetworkManagerEngine::interfacePropertiesChanged(const QString &path, } } -void QNetworkManagerEngine::activeConnectionPropertiesChanged(const QString &path, - const QMap &properties) +void QNetworkManagerEngine::activeConnectionPropertiesChanged(const QMap &properties) { QMutexLocker locker(&mutex); Q_UNUSED(properties) - QNetworkManagerConnectionActive *activeConnection = activeConnections.value(path); + QNetworkManagerConnectionActive *activeConnection = qobject_cast(sender()); if (!activeConnection) return; @@ -347,8 +333,13 @@ void QNetworkManagerEngine::activeConnectionPropertiesChanged(const QString &pat QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); if (ptr) { ptr->mutex.lock(); - if (activeConnection->state() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED && - ptr->state != QNetworkConfiguration::Active) { + if (properties.value("State").toUInt() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { + QList devices = activeConnection->devices(); + if (!devices.isEmpty()) { + QNetworkManagerInterfaceDevice device(devices.at(0).path(),this); + connectionInterfaces.insert(id,device.networkInterface()); + } + ptr->state |= QNetworkConfiguration::Active; ptr->mutex.unlock(); @@ -356,22 +347,17 @@ void QNetworkManagerEngine::activeConnectionPropertiesChanged(const QString &pat emit configurationChanged(ptr); locker.relock(); } else { + connectionInterfaces.remove(id); ptr->mutex.unlock(); } } } -void QNetworkManagerEngine::devicePropertiesChanged(const QString &/*path*/,quint32 /*state*/) -{ -// Q_UNUSED(path); -// Q_UNUSED(state) -} - -void QNetworkManagerEngine::deviceConnectionsChanged(const QStringList &activeConnectionsList) +void QNetworkManagerEngine::deviceConnectionsChanged(const QStringList &connectionsList) { QMutexLocker locker(&mutex); for (int i = 0; i < connections.count(); ++i) { - if (activeConnectionsList.contains(connections.at(i)->connectionInterface()->path())) + if (connectionsList.contains(connections.at(i)->connectionInterface()->path())) continue; const QString settingsPath = connections.at(i)->connectionInterface()->path(); @@ -392,27 +378,23 @@ void QNetworkManagerEngine::deviceConnectionsChanged(const QStringList &activeCo void QNetworkManagerEngine::deviceAdded(const QDBusObjectPath &path) { - QMutexLocker locker(&mutex); QNetworkManagerInterfaceDevice *iDevice; iDevice = new QNetworkManagerInterfaceDevice(path.path(),this); connect(iDevice,SIGNAL(connectionsChanged(QStringList)), this,SLOT(deviceConnectionsChanged(QStringList))); - connect(iDevice,SIGNAL(stateChanged(QString,quint32)), - this,SLOT(devicePropertiesChanged(QString,quint32))); iDevice->setConnections(); interfaceDevices.insert(path.path(),iDevice); - if (iDevice->deviceType() == DEVICE_TYPE_WIFI) { QNetworkManagerInterfaceDeviceWireless *wirelessDevice = new QNetworkManagerInterfaceDeviceWireless(iDevice->connectionInterface()->path(),this); - wirelessDevice->setConnections(); connect(wirelessDevice, SIGNAL(accessPointAdded(QString)), this, SLOT(newAccessPoint(QString))); connect(wirelessDevice, SIGNAL(accessPointRemoved(QString)), this, SLOT(removeAccessPoint(QString))); connect(wirelessDevice,SIGNAL(scanDone()),this,SLOT(scanFinished())); + wirelessDevice->setConnections(); foreach (const QDBusObjectPath &apPath, wirelessDevice->getAccessPoints()) newAccessPoint(apPath.path()); @@ -444,10 +426,10 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, if (!settings) settings = qobject_cast(sender()); - if (!settings) + if (!settings) { return; + } - settings->deleteLater(); QNetworkManagerSettingsConnection *connection = new QNetworkManagerSettingsConnection(settings->connectionInterface()->service(), path.path(),this); @@ -482,12 +464,10 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, parseConnection(settingsPath, connection->getSettings()); // Check if connection is active. - foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { - QNetworkManagerConnectionActive activeConnection(acPath.path()); - - if (activeConnection.defaultRoute() && - activeConnection.connection().path() == settingsPath && - activeConnection.state() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { + QHashIterator i(activeConnectionsList); + while (i.hasNext()) { + i.next(); + if (i.value()->connection().path() == settingsPath) { cpPriv->state |= QNetworkConfiguration::Active; break; } @@ -505,6 +485,7 @@ void QNetworkManagerEngine::removeConnection(const QString &path) QNetworkManagerSettingsConnection *connection = qobject_cast(sender()); + if (!connection) return; @@ -525,6 +506,7 @@ void QNetworkManagerEngine::removeConnection(const QString &path) while (i.hasNext()) { i.next(); if (i.value() == path) { + configuredAccessPoints.remove(i.key()); newAccessPoint(i.key()); } } @@ -575,10 +557,9 @@ void QNetworkManagerEngine::updateConnection() void QNetworkManagerEngine::activationFinished(QDBusPendingCallWatcher *watcher) { QMutexLocker locker(&mutex); - + QDBusPendingReply reply(*watcher); watcher->deleteLater(); - QDBusPendingReply reply(*watcher); if (!reply.isError()) { QDBusObjectPath result = reply.value(); @@ -620,15 +601,14 @@ void QNetworkManagerEngine::newAccessPoint(const QString &path) if (okToAdd) { accessPoints.append(accessPoint); accessPoint->setConnections(); - connect(accessPoint, SIGNAL(propertiesChanged(QMap)), - this, SLOT(updateAccessPoint(QMap))); } - // Check if configuration exists for connection. if (!accessPoint->ssid().isEmpty()) { + for (int i = 0; i < connections.count(); ++i) { QNetworkManagerSettingsConnection *connection = connections.at(i); const QString settingsPath = connection->connectionInterface()->path(); + if (accessPoint->ssid() == connection->getSsid()) { if (!configuredAccessPoints.contains(path)) { configuredAccessPoints.insert(path,settingsPath); @@ -655,11 +635,7 @@ void QNetworkManagerEngine::newAccessPoint(const QString &path) ptr->isValid = true; ptr->id = path; ptr->type = QNetworkConfiguration::InternetAccessPoint; - if (accessPoint->flags() == NM_802_11_AP_FLAGS_PRIVACY) { - ptr->purpose = QNetworkConfiguration::PrivatePurpose; - } else { - ptr->purpose = QNetworkConfiguration::PublicPurpose; - } + ptr->purpose = QNetworkConfiguration::PublicPurpose; ptr->state = QNetworkConfiguration::Undefined; ptr->bearerType = QNetworkConfiguration::BearerWLAN; @@ -674,13 +650,13 @@ void QNetworkManagerEngine::removeAccessPoint(const QString &path) QMutexLocker locker(&mutex); for (int i = 0; i < accessPoints.count(); ++i) { QNetworkManagerInterfaceAccessPoint *accessPoint = accessPoints.at(i); - if (accessPoint->connectionInterface()->path() == path) { accessPoints.removeOne(accessPoint); if (configuredAccessPoints.contains(accessPoint->connectionInterface()->path())) { // find connection and change state to Defined configuredAccessPoints.remove(accessPoint->connectionInterface()->path()); + for (int i = 0; i < connections.count(); ++i) { QNetworkManagerSettingsConnection *connection = connections.at(i); @@ -705,8 +681,6 @@ void QNetworkManagerEngine::removeAccessPoint(const QString &path) accessPointConfigurations.take(path); if (ptr) { - locker.unlock(); - locker.unlock(); emit configurationRemoved(ptr); locker.relock(); @@ -718,42 +692,9 @@ void QNetworkManagerEngine::removeAccessPoint(const QString &path) } } -void QNetworkManagerEngine::updateAccessPoint(const QMap &map) -{ - QMutexLocker locker(&mutex); - - Q_UNUSED(map) - - QNetworkManagerInterfaceAccessPoint *accessPoint = - qobject_cast(sender()); - if (!accessPoint) - return; - accessPoint->deleteLater(); - for (int i = 0; i < connections.count(); ++i) { - QNetworkManagerSettingsConnection *connection = connections.at(i); - - if (accessPoint->ssid() == connection->getSsid()) { - const QString settingsPath = connection->connectionInterface()->path(); - const QString connectionId = settingsPath; - - QNetworkConfigurationPrivatePointer ptr = - accessPointConfigurations.value(connectionId); - ptr->mutex.lock(); - QNetworkConfiguration::StateFlags flag = QNetworkConfiguration::Defined; - ptr->state = (flag | QNetworkConfiguration::Discovered); - ptr->mutex.unlock(); - - locker.unlock(); - emit configurationChanged(ptr); - return; - } - } -} - QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QString &settingsPath, const QNmSettingsMap &map) { - // Q_UNUSED(service); QMutexLocker locker(&mutex); QNetworkConfigurationPrivate *cpPriv = new QNetworkConfigurationPrivate; cpPriv->name = map.value("connection").value("id").toString(); @@ -765,17 +706,15 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri cpPriv->purpose = QNetworkConfiguration::PublicPurpose; cpPriv->state = QNetworkConfiguration::Defined; - const QString connectionType = map.value("connection").value("type").toString(); if (connectionType == QLatin1String("802-3-ethernet")) { cpPriv->bearerType = QNetworkConfiguration::BearerEthernet; - cpPriv->purpose = QNetworkConfiguration::PublicPurpose; foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { - QNetworkManagerInterfaceDevice device(devicePath.path()); + QNetworkManagerInterfaceDevice device(devicePath.path(),this); if (device.deviceType() == DEVICE_TYPE_ETHERNET) { - QNetworkManagerInterfaceDeviceWired wiredDevice(device.connectionInterface()->path()); + QNetworkManagerInterfaceDeviceWired wiredDevice(device.connectionInterface()->path(),this); if (wiredDevice.carrier()) { cpPriv->state |= QNetworkConfiguration::Discovered; break; @@ -786,12 +725,6 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri cpPriv->bearerType = QNetworkConfiguration::BearerWLAN; const QString connectionSsid = map.value("802-11-wireless").value("ssid").toString(); - const QString connectionSecurity = map.value("802-11-wireless").value("security").toString(); - if (!connectionSecurity.isEmpty()) { - cpPriv->purpose = QNetworkConfiguration::PrivatePurpose; - } else { - cpPriv->purpose = QNetworkConfiguration::PublicPurpose; - } for (int i = 0; i < accessPoints.count(); ++i) { if (connectionSsid == accessPoints.at(i)->ssid() && map.value("802-11-wireless").value("seen-bssids").toStringList().contains(accessPoints.at(i)->hwAddress())) { @@ -813,31 +746,11 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri } } } else if (connectionType == QLatin1String("gsm")) { - - foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { - QNetworkManagerInterfaceDevice device(devicePath.path()); - - if (device.deviceType() == DEVICE_TYPE_MODEM) { - QNetworkManagerInterfaceDeviceModem deviceModem(device.connectionInterface()->path(),this); - switch (deviceModem.currentCapabilities()) { - case 2: - cpPriv->bearerType = QNetworkConfiguration::Bearer2G; - break; - case 4: - cpPriv->bearerType = QNetworkConfiguration::Bearer3G; - break; - case 8: - cpPriv->bearerType = QNetworkConfiguration::Bearer4G; - break; - default: - cpPriv->bearerType = QNetworkConfiguration::BearerUnknown; - break; - }; - } + cpPriv->bearerType = currentBearerType(); + if (map.value("connection").contains("timestamp")) { + cpPriv->state |= QNetworkConfiguration::Discovered; } - - cpPriv->purpose = QNetworkConfiguration::PrivatePurpose; - cpPriv->state |= QNetworkConfiguration::Discovered; + cpPriv->name = contextName(map.value("connection").value("id").toString()); } return cpPriv; @@ -857,7 +770,6 @@ QNetworkManagerSettingsConnection *QNetworkManagerEngine::connectionFromId(const QNetworkSession::State QNetworkManagerEngine::sessionStateForId(const QString &id) { QMutexLocker locker(&mutex); - QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); if (!ptr) @@ -866,8 +778,8 @@ QNetworkSession::State QNetworkManagerEngine::sessionStateForId(const QString &i if (!ptr->isValid) return QNetworkSession::Invalid; - foreach (const QString &acPath, activeConnections.keys()) { - QNetworkManagerConnectionActive *activeConnection = activeConnections.value(acPath); + foreach (const QString &acPath, activeConnectionsList.keys()) { + QNetworkManagerConnectionActive *activeConnection = activeConnectionsList.value(acPath); const QString identifier = activeConnection->connection().path(); @@ -899,7 +811,7 @@ quint64 QNetworkManagerEngine::bytesWritten(const QString &id) QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); if (ptr && (ptr->state & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) { - const QString networkInterface = getInterfaceFromId(id); + const QString networkInterface = connectionInterfaces.value(id); if (!networkInterface.isEmpty()) { const QString devFile = QLatin1String("/sys/class/net/") + networkInterface + @@ -927,7 +839,7 @@ quint64 QNetworkManagerEngine::bytesReceived(const QString &id) QNetworkConfigurationPrivatePointer ptr = accessPointConfigurations.value(id); if (ptr && (ptr->state & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) { - const QString networkInterface = getInterfaceFromId(id); + const QString networkInterface = connectionInterfaces.value(id); if (!networkInterface.isEmpty()) { const QString devFile = QLatin1String("/sys/class/net/") + networkInterface + @@ -977,6 +889,54 @@ QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration( return QNetworkConfigurationPrivatePointer(); } +void QNetworkManagerEngine::changedModem() +{ + if (ofonoNetwork) + delete ofonoNetwork; + + ofonoNetwork = new QOfonoNetworkRegistrationInterface(ofonoManager->currentModem(),this); + + if (ofonoContextManager) + delete ofonoContextManager; + ofonoContextManager = new QOfonoDataConnectionManagerInterface(ofonoManager->currentModem(),this); +} + +QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType() +{ + if (ofonoContextManager) { + QString bearer = ofonoContextManager->bearer(); + if (bearer == QLatin1String("gsm")) { + return QNetworkConfiguration::Bearer2G; + } else if (bearer == QLatin1String("edge")) { + return QNetworkConfiguration::Bearer2G; + } else if (bearer == QLatin1String("umts")) { + return QNetworkConfiguration::BearerWCDMA; + } else if (bearer == QLatin1String("hspa") + || bearer == QLatin1String("hsdpa") + || bearer == QLatin1String("hsupa")) { + return QNetworkConfiguration::BearerHSPA; + } else if (bearer == QLatin1String("lte")) { + return QNetworkConfiguration::BearerLTE; + } + } + return QNetworkConfiguration::BearerUnknown; +} + +QString QNetworkManagerEngine::contextName(const QString &path) +{ + if (ofonoContextManager) { + QString contextPart = path.section('/', -1); + + Q_FOREACH (const QString &oContext, ofonoContextManager->contexts()) { + if (oContext.contains(contextPart)) { + QOfonoConnectionContextInterface contextInterface(oContext,this); + return contextInterface.name(); + } + } + } + return path; +} + QT_END_NAMESPACE #endif // QT_NO_DBUS diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h index ab1cfea71ef..d2ef9886a3d 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h @@ -49,6 +49,8 @@ #include "qnetworkmanagerservice.h" +#include "../linux_common/qofonoservice_linux_p.h" + #include #include @@ -89,11 +91,8 @@ public: QNetworkConfigurationPrivatePointer defaultConfiguration(); private Q_SLOTS: - void interfacePropertiesChanged(const QString &path, - const QMap &properties); - void activeConnectionPropertiesChanged(const QString &path, - const QMap &properties); - void devicePropertiesChanged(const QString &path, quint32); + void interfacePropertiesChanged(const QMap &properties); + void activeConnectionPropertiesChanged(const QMap &properties); void deviceAdded(const QDBusObjectPath &path); void deviceRemoved(const QDBusObjectPath &path); @@ -106,8 +105,8 @@ private Q_SLOTS: void newAccessPoint(const QString &path); void removeAccessPoint(const QString &path); - void updateAccessPoint(const QMap &map); void scanFinished(); + void changedModem(); private: QNetworkConfigurationPrivate *parseConnection(const QString &settingsPath, @@ -116,14 +115,21 @@ private: QNetworkManagerInterface *managerInterface; QNetworkManagerSettings *systemSettings; - QNetworkManagerSettings *userSettings; QHash wirelessDevices; - QHash activeConnections; + QHash activeConnectionsList; QList connections; QList accessPoints; QHash interfaceDevices; QMap configuredAccessPoints; //ap, settings path + QHash connectionInterfaces; // ac, interface + + QOfonoManagerInterface *ofonoManager; + QOfonoNetworkRegistrationInterface *ofonoNetwork; + QOfonoDataConnectionManagerInterface *ofonoContextManager; + QNetworkConfiguration::BearerType currentBearerType(); + QString contextName(const QString &path); + }; QT_END_NAMESPACE diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp index f249ac6100c..2d54fa30297 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp @@ -44,7 +44,6 @@ #include #include "qnetworkmanagerservice.h" -#include "qnmdbushelper.h" #ifndef QT_NO_DBUS @@ -64,18 +63,38 @@ QNetworkManagerInterface::QNetworkManagerInterface(QObject *parent) d->connectionInterface = new QDBusInterface(QLatin1String(NM_DBUS_SERVICE), QLatin1String(NM_DBUS_PATH), QLatin1String(NM_DBUS_INTERFACE), - QDBusConnection::systemBus()); + QDBusConnection::systemBus(),parent); if (!d->connectionInterface->isValid()) { d->valid = false; return; } d->valid = true; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - connect(nmDBusHelper,SIGNAL(pathForStateChanged(QString,quint32)), - this, SIGNAL(stateChanged(QString,quint32))); + QDBusInterface managerPropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + QLatin1String(NM_DBUS_PATH), + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus()); + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE); + QDBusPendingReply propsReply + = managerPropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusPendingReply > nmReply + = d->connectionInterface->call(QLatin1String("GetDevices")); + nmReply.waitForFinished(); + if (!nmReply.isError()) { + devicesPathList = nmReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + QLatin1String(NM_DBUS_PATH), + QLatin1String(NM_DBUS_INTERFACE), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); } QNetworkManagerInterface::~QNetworkManagerInterface() @@ -91,27 +110,24 @@ bool QNetworkManagerInterface::isValid() bool QNetworkManagerInterface::setConnections() { - if(!isValid() ) + if (!isValid()) return false; - QDBusConnection dbusConnection = QDBusConnection::systemBus(); - - bool allOk = false; - if (dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), QLatin1String(NM_DBUS_PATH), QLatin1String(NM_DBUS_INTERFACE), QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotPropertiesChanged(QMap)))) { - allOk = true; - } - if (dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), + this,SLOT(propertiesSwap(QMap))); + + bool allOk = false; + if (QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), QLatin1String(NM_DBUS_PATH), QLatin1String(NM_DBUS_INTERFACE), QLatin1String("DeviceAdded"), this,SIGNAL(deviceAdded(QDBusObjectPath)))) { allOk = true; } - if (dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), + if (QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), QLatin1String(NM_DBUS_PATH), QLatin1String(NM_DBUS_INTERFACE), QLatin1String("DeviceRemoved"), @@ -127,14 +143,17 @@ QDBusInterface *QNetworkManagerInterface::connectionInterface() const return d->connectionInterface; } -QList QNetworkManagerInterface::getDevices() const +QList QNetworkManagerInterface::getDevices() { - QDBusReply > reply = d->connectionInterface->call(QLatin1String("GetDevices")); - return reply.value(); + if (devicesPathList.isEmpty()) { + qWarning() << "using blocking call!"; + QDBusReply > reply = d->connectionInterface->call(QLatin1String("GetDevices")); + devicesPathList = reply.value(); + } + return devicesPathList; } -void QNetworkManagerInterface::activateConnection( const QString &, - QDBusObjectPath connectionPath, +void QNetworkManagerInterface::activateConnection(QDBusObjectPath connectionPath, QDBusObjectPath devicePath, QDBusObjectPath specificObject) { @@ -150,28 +169,80 @@ void QNetworkManagerInterface::activateConnection( const QString &, void QNetworkManagerInterface::deactivateConnection(QDBusObjectPath connectionPath) const { - d->connectionInterface->call(QLatin1String("DeactivateConnection"), QVariant::fromValue(connectionPath)); + d->connectionInterface->asyncCall(QLatin1String("DeactivateConnection"), QVariant::fromValue(connectionPath)); } bool QNetworkManagerInterface::wirelessEnabled() const { - return d->connectionInterface->property("WirelessEnabled").toBool(); + if (propertyMap.contains("WirelessEnabled")) + return propertyMap.value("WirelessEnabled").toBool(); + return false; } bool QNetworkManagerInterface::wirelessHardwareEnabled() const { - return d->connectionInterface->property("WirelessHardwareEnabled").toBool(); + if (propertyMap.contains("WirelessHardwareEnabled")) + return propertyMap.value("WirelessHardwareEnabled").toBool(); + return false; } QList QNetworkManagerInterface::activeConnections() const { - QVariant prop = d->connectionInterface->property("ActiveConnections"); - return prop.value >(); + if (propertyMap.contains("ActiveConnections")) { + + const QDBusArgument &dbusArgs = propertyMap.value("ActiveConnections").value(); + QDBusObjectPath path; + QList list; + + dbusArgs.beginArray(); + while (!dbusArgs.atEnd()) { + dbusArgs >> path; + list.append(path); + } + dbusArgs.endArray(); + + return list; + } + + QList list; + list << QDBusObjectPath(); + return list; } -quint32 QNetworkManagerInterface::state() +QNetworkManagerInterface::NMState QNetworkManagerInterface::state() { - return d->connectionInterface->property("State").toUInt(); + if (propertyMap.contains("State")) + return static_cast(propertyMap.value("State").toUInt()); + return QNetworkManagerInterface::NM_STATE_UNKNOWN; +} + +QString QNetworkManagerInterface::version() const +{ + if (propertyMap.contains("Version")) + return propertyMap.value("Version").toString(); + return QString(); +} + +void QNetworkManagerInterface::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + + if (i.key() == QStringLiteral("State")) { + quint32 state = i.value().toUInt(); + if (state == NM_DEVICE_STATE_ACTIVATED + || state == NM_DEVICE_STATE_DISCONNECTED + || state == NM_DEVICE_STATE_UNAVAILABLE + || state == NM_DEVICE_STATE_FAILED) { + Q_EMIT propertiesChanged(map); + Q_EMIT stateChanged(state); + } + } else if (i.key() == QStringLiteral("ActiveConnections")) { + Q_EMIT propertiesChanged(map); + } + } } class QNetworkManagerInterfaceAccessPointPrivate @@ -183,18 +254,38 @@ public: }; QNetworkManagerInterfaceAccessPoint::QNetworkManagerInterfaceAccessPoint(const QString &dbusPathName, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { d = new QNetworkManagerInterfaceAccessPointPrivate(); d->path = dbusPathName; d->connectionInterface = new QDBusInterface(QLatin1String(NM_DBUS_SERVICE), d->path, QLatin1String(NM_DBUS_INTERFACE_ACCESS_POINT), - QDBusConnection::systemBus()); + QDBusConnection::systemBus(),parent); if (!d->connectionInterface->isValid()) { d->valid = false; return; } + QDBusInterface accessPointPropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus()); + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_ACCESS_POINT); + QDBusPendingReply propsReply + = accessPointPropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_ACCESS_POINT), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); + d->valid = true; } @@ -212,24 +303,10 @@ bool QNetworkManagerInterfaceAccessPoint::isValid() bool QNetworkManagerInterfaceAccessPoint::setConnections() { - if(!isValid() ) + if (!isValid()) return false; - bool allOk = false; - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - - if (QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_ACCESS_POINT), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotPropertiesChanged(QMap))) ) { - allOk = true; - - } - return allOk; + return true; } QDBusInterface *QNetworkManagerInterfaceAccessPoint::connectionInterface() const @@ -239,47 +316,74 @@ QDBusInterface *QNetworkManagerInterfaceAccessPoint::connectionInterface() const quint32 QNetworkManagerInterfaceAccessPoint::flags() const { - return d->connectionInterface->property("Flags").toUInt(); + if (propertyMap.contains("Flags")) + return propertyMap.value("Flags").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceAccessPoint::wpaFlags() const { - return d->connectionInterface->property("WpaFlags").toUInt(); + if (propertyMap.contains("WpaFlags")) + return propertyMap.value("WpaFlags").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceAccessPoint::rsnFlags() const { - return d->connectionInterface->property("RsnFlags").toUInt(); + if (propertyMap.contains("RsnFlags")) + return propertyMap.value("RsnFlags").toUInt(); + return 0; } QString QNetworkManagerInterfaceAccessPoint::ssid() const { - return d->connectionInterface->property("Ssid").toString(); + if (propertyMap.contains("Ssid")) + return propertyMap.value("Ssid").toString(); + return QString(); } quint32 QNetworkManagerInterfaceAccessPoint::frequency() const { - return d->connectionInterface->property("Frequency").toUInt(); + if (propertyMap.contains("Frequency")) + return propertyMap.value("Frequency").toUInt(); + return 0; } QString QNetworkManagerInterfaceAccessPoint::hwAddress() const { - return d->connectionInterface->property("HwAddress").toString(); + if (propertyMap.contains("HwAddress")) + return propertyMap.value("HwAddress").toString(); + return QString(); } quint32 QNetworkManagerInterfaceAccessPoint::mode() const { - return d->connectionInterface->property("Mode").toUInt(); + if (propertyMap.contains("Mode")) + return propertyMap.value("Mode").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceAccessPoint::maxBitrate() const { - return d->connectionInterface->property("MaxBitrate").toUInt(); + if (propertyMap.contains("MaxBitrate")) + return propertyMap.value("MaxBitrate").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceAccessPoint::strength() const { - return d->connectionInterface->property("Strength").toUInt(); + if (propertyMap.contains("Strength")) + return propertyMap.value("Strength").toUInt(); + return 0; +} + +void QNetworkManagerInterfaceAccessPoint::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + } } class QNetworkManagerInterfaceDevicePrivate @@ -291,18 +395,39 @@ public: }; QNetworkManagerInterfaceDevice::QNetworkManagerInterfaceDevice(const QString &deviceObjectPath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { + d = new QNetworkManagerInterfaceDevicePrivate(); d->path = deviceObjectPath; d->connectionInterface = new QDBusInterface(QLatin1String(NM_DBUS_SERVICE), d->path, QLatin1String(NM_DBUS_INTERFACE_DEVICE), - QDBusConnection::systemBus()); + QDBusConnection::systemBus(),parent); if (!d->connectionInterface->isValid()) { d->valid = false; return; } + QDBusInterface devicePropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus(),parent); + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_DEVICE); + QDBusPendingReply propsReply + = devicePropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_DEVICE), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); d->valid = true; } @@ -319,35 +444,10 @@ bool QNetworkManagerInterfaceDevice::isValid() bool QNetworkManagerInterfaceDevice::setConnections() { - if(!isValid() ) + if (!isValid()) return false; - bool allOk = true; - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper,SIGNAL(pathForStateChanged(QString,quint32)), - this, SIGNAL(stateChanged(QString,quint32))); - - if (QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_DEVICE), - QLatin1String("StateChanged"), - nmDBusHelper,SLOT(deviceStateChanged(quint32)))) { - allOk = false; - } - - connect(nmDBusHelper, SIGNAL(pathForConnectionsChanged(QStringList)), - this,SIGNAL(connectionsChanged(QStringList))); - - if (QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_ACCESS_POINT), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotPropertiesChanged(QMap))) ) { - allOk = false; - } - - return allOk; + return true; } QDBusInterface *QNetworkManagerInterfaceDevice::connectionInterface() const @@ -357,33 +457,66 @@ QDBusInterface *QNetworkManagerInterfaceDevice::connectionInterface() const QString QNetworkManagerInterfaceDevice::udi() const { - return d->connectionInterface->property("Udi").toString(); + if (propertyMap.contains("Udi")) + return propertyMap.value("Udi").toString(); + return QString(); } QString QNetworkManagerInterfaceDevice::networkInterface() const { - return d->connectionInterface->property("Interface").toString(); + if (propertyMap.contains("Interface")) + return propertyMap.value("Interface").toString(); + return QString(); } quint32 QNetworkManagerInterfaceDevice::ip4Address() const { - return d->connectionInterface->property("Ip4Address").toUInt(); + if (propertyMap.contains("Ip4Address")) + return propertyMap.value("Ip4Address").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceDevice::state() const { - return d->connectionInterface->property("State").toUInt(); + if (propertyMap.contains("State")) + return propertyMap.value("State").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceDevice::deviceType() const { - return d->connectionInterface->property("DeviceType").toUInt(); + if (propertyMap.contains("DeviceType")) + return propertyMap.value("DeviceType").toUInt(); + return 0; } QDBusObjectPath QNetworkManagerInterfaceDevice::ip4config() const { - QVariant prop = d->connectionInterface->property("Ip4Config"); - return prop.value(); + if (propertyMap.contains("Ip4Config")) + return propertyMap.value("Ip4Config").value(); + return QDBusObjectPath(); +} + +void QNetworkManagerInterfaceDevice::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + if (i.key() == QStringLiteral("AvailableConnections")) { //Device + const QDBusArgument &dbusArgs = i.value().value(); + QDBusObjectPath path; + QStringList paths; + dbusArgs.beginArray(); + while (!dbusArgs.atEnd()) { + dbusArgs >> path; + paths << path.path(); + } + dbusArgs.endArray(); + Q_EMIT connectionsChanged(paths); + } + propertyMap.insert(i.key(),i.value()); + } + Q_EMIT propertiesChanged(map); } class QNetworkManagerInterfaceDeviceWiredPrivate @@ -395,7 +528,7 @@ public: }; QNetworkManagerInterfaceDeviceWired::QNetworkManagerInterfaceDeviceWired(const QString &ifaceDevicePath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { d = new QNetworkManagerInterfaceDeviceWiredPrivate(); d->path = ifaceDevicePath; @@ -407,6 +540,27 @@ QNetworkManagerInterfaceDeviceWired::QNetworkManagerInterfaceDeviceWired(const Q d->valid = false; return; } + QDBusInterface deviceWiredPropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus(),parent); + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRED); + QDBusPendingReply propsReply + = deviceWiredPropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRED), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); + d->valid = true; } @@ -424,23 +578,9 @@ bool QNetworkManagerInterfaceDeviceWired::isValid() bool QNetworkManagerInterfaceDeviceWired::setConnections() { - if(!isValid() ) + if (!isValid()) return false; - - bool allOk = true; - - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - if (!QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRED), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotPropertiesChanged(QMap))) ) { - allOk = false; - } - return allOk; + return true; } QDBusInterface *QNetworkManagerInterfaceDeviceWired::connectionInterface() const @@ -450,17 +590,33 @@ QDBusInterface *QNetworkManagerInterfaceDeviceWired::connectionInterface() const QString QNetworkManagerInterfaceDeviceWired::hwAddress() const { - return d->connectionInterface->property("HwAddress").toString(); + if (propertyMap.contains("HwAddress")) + return propertyMap.value("HwAddress").toString(); + return QString(); } quint32 QNetworkManagerInterfaceDeviceWired::speed() const { - return d->connectionInterface->property("Speed").toUInt(); + if (propertyMap.contains("Speed")) + return propertyMap.value("Speed").toUInt(); + return 0; } bool QNetworkManagerInterfaceDeviceWired::carrier() const { - return d->connectionInterface->property("Carrier").toBool(); + if (propertyMap.contains("Carrier")) + return propertyMap.value("Carrier").toBool(); + return false; +} + +void QNetworkManagerInterfaceDeviceWired::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + } + Q_EMIT propertiesChanged(map); } class QNetworkManagerInterfaceDeviceWirelessPrivate @@ -472,7 +628,7 @@ public: }; QNetworkManagerInterfaceDeviceWireless::QNetworkManagerInterfaceDeviceWireless(const QString &ifaceDevicePath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { d = new QNetworkManagerInterfaceDeviceWirelessPrivate(); d->path = ifaceDevicePath; @@ -484,6 +640,34 @@ QNetworkManagerInterfaceDeviceWireless::QNetworkManagerInterfaceDeviceWireless(c d->valid = false; return; } + + + QDBusPendingReply > nmReply + = d->connectionInterface->call(QLatin1String("GetAccessPoints")); + + if (!nmReply.isError()) { + accessPointsList = nmReply.value(); + } + + QDBusInterface deviceWirelessPropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus(),parent); + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS); + QDBusPendingReply propsReply + = deviceWirelessPropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); d->valid = true; } @@ -498,29 +682,31 @@ bool QNetworkManagerInterfaceDeviceWireless::isValid() return d->valid; } +void QNetworkManagerInterfaceDeviceWireless::slotAccessPointAdded(QDBusObjectPath path) +{ + if (path.path().length() > 2) + Q_EMIT accessPointAdded(path.path()); +} + +void QNetworkManagerInterfaceDeviceWireless::slotAccessPointRemoved(QDBusObjectPath path) +{ + if (path.path().length() > 2) + Q_EMIT accessPointRemoved(path.path()); +} + bool QNetworkManagerInterfaceDeviceWireless::setConnections() { - if(!isValid() ) + if (!isValid()) return false; QDBusConnection dbusConnection = QDBusConnection::systemBus(); bool allOk = true; - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - - connect(nmDBusHelper, SIGNAL(pathForAccessPointAdded(QString)), - this,SIGNAL(accessPointAdded(QString))); - - connect(nmDBusHelper, SIGNAL(pathForAccessPointRemoved(QString)), - this,SIGNAL(accessPointRemoved(QString))); if (!dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), - d->path, + d->path, QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS), QLatin1String("AccessPointAdded"), - nmDBusHelper, SLOT(slotAccessPointAdded(QDBusObjectPath)))) { + this, SLOT(slotAccessPointAdded(QDBusObjectPath)))) { allOk = false; } @@ -529,18 +715,10 @@ bool QNetworkManagerInterfaceDeviceWireless::setConnections() d->path, QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS), QLatin1String("AccessPointRemoved"), - nmDBusHelper, SLOT(slotAccessPointRemoved(QDBusObjectPath)))) { + this, SLOT(slotAccessPointRemoved(QDBusObjectPath)))) { allOk = false; } - - if (!dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotPropertiesChanged(QMap)))) { - allOk = false; - } if (!dbusConnection.connect(QLatin1String(NM_DBUS_SERVICE), d->path, QLatin1String(NM_DBUS_INTERFACE_DEVICE_WIRELESS), @@ -558,33 +736,48 @@ QDBusInterface *QNetworkManagerInterfaceDeviceWireless::connectionInterface() co QList QNetworkManagerInterfaceDeviceWireless::getAccessPoints() { - QDBusReply > reply = d->connectionInterface->call(QLatin1String("GetAccessPoints")); - return reply.value(); + if (accessPointsList.isEmpty()) { + qWarning() << "Using blocking call!"; + QDBusReply > reply + = d->connectionInterface->call(QLatin1String("GetAccessPoints")); + accessPointsList = reply.value(); + } + return accessPointsList; } QString QNetworkManagerInterfaceDeviceWireless::hwAddress() const { - return d->connectionInterface->property("HwAddress").toString(); + if (propertyMap.contains("HwAddress")) + return propertyMap.value("HwAddress").toString(); + return QString(); } quint32 QNetworkManagerInterfaceDeviceWireless::mode() const { - return d->connectionInterface->property("Mode").toUInt(); + if (propertyMap.contains("Mode")) + return propertyMap.value("Mode").toUInt(); + return 0; } quint32 QNetworkManagerInterfaceDeviceWireless::bitrate() const { - return d->connectionInterface->property("Bitrate").toUInt(); + if (propertyMap.contains("Bitrate")) + return propertyMap.value("Bitrate").toUInt(); + return 0; } QDBusObjectPath QNetworkManagerInterfaceDeviceWireless::activeAccessPoint() const { - return d->connectionInterface->property("ActiveAccessPoint").value(); + if (propertyMap.contains("ActiveAccessPoint")) + return propertyMap.value("ActiveAccessPoint").value(); + return QDBusObjectPath(); } quint32 QNetworkManagerInterfaceDeviceWireless::wirelessCapabilities() const { - return d->connectionInterface->property("WirelelessCapabilities").toUInt(); + if (propertyMap.contains("WirelelessCapabilities")) + return propertyMap.value("WirelelessCapabilities").toUInt(); + return 0; } void QNetworkManagerInterfaceDeviceWireless::scanIsDone() @@ -597,6 +790,17 @@ void QNetworkManagerInterfaceDeviceWireless::requestScan() d->connectionInterface->asyncCall(QLatin1String("RequestScan")); } +void QNetworkManagerInterfaceDeviceWireless::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + if (i.key() == QStringLiteral("ActiveAccessPoint")) { //DeviceWireless + Q_EMIT propertiesChanged(map); + } + } +} class QNetworkManagerInterfaceDeviceModemPrivate { @@ -607,7 +811,7 @@ public: }; QNetworkManagerInterfaceDeviceModem::QNetworkManagerInterfaceDeviceModem(const QString &ifaceDevicePath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { d = new QNetworkManagerInterfaceDeviceModemPrivate(); d->path = ifaceDevicePath; @@ -619,6 +823,25 @@ QNetworkManagerInterfaceDeviceModem::QNetworkManagerInterfaceDeviceModem(const Q d->valid = false; return; } + QDBusInterface deviceModemPropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus(),parent); + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_DEVICE_MODEM); + QDBusPendingReply propsReply + = deviceModemPropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_DEVICE_MODEM), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); d->valid = true; } @@ -639,20 +862,7 @@ bool QNetworkManagerInterfaceDeviceModem::setConnections() if (!isValid() ) return false; - bool allOk = true; - - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - if (!QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_DEVICE_MODEM), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(slotDevicePropertiesChanged(QMap))) ) { - allOk = false; - } - return allOk; + return true; } QDBusInterface *QNetworkManagerInterfaceDeviceModem::connectionInterface() const @@ -660,14 +870,28 @@ QDBusInterface *QNetworkManagerInterfaceDeviceModem::connectionInterface() const return d->connectionInterface; } -quint32 QNetworkManagerInterfaceDeviceModem::modemCapabilities() const +QNetworkManagerInterfaceDeviceModem::ModemCapabilities QNetworkManagerInterfaceDeviceModem::modemCapabilities() const { - return d->connectionInterface->property("ModemCapabilities").toUInt(); + if (propertyMap.contains("ModemCapabilities")) + return static_cast(propertyMap.value("ModemCapabilities").toUInt()); + return QNetworkManagerInterfaceDeviceModem::None; } -quint32 QNetworkManagerInterfaceDeviceModem::currentCapabilities() const +QNetworkManagerInterfaceDeviceModem::ModemCapabilities QNetworkManagerInterfaceDeviceModem::currentCapabilities() const { - return d->connectionInterface->property("CurrentCapabilities").toUInt(); + if (propertyMap.contains("CurrentCapabilities")) + return static_cast(propertyMap.value("CurrentCapabilities").toUInt()); + return QNetworkManagerInterfaceDeviceModem::None; +} + +void QNetworkManagerInterfaceDeviceModem::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + } + Q_EMIT propertiesChanged(map); } class QNetworkManagerSettingsPrivate @@ -691,6 +915,14 @@ QNetworkManagerSettings::QNetworkManagerSettings(const QString &settingsService, d->valid = false; return; } + + QDBusPendingReply > nmReply + = d->connectionInterface->call(QLatin1String("ListConnections")); + + if (!nmReply.isError()) { + connectionsList = nmReply.value(); + } + d->valid = true; } @@ -722,10 +954,16 @@ bool QNetworkManagerSettings::setConnections() QList QNetworkManagerSettings::listConnections() { - QDBusReply > reply = d->connectionInterface->call(QLatin1String("ListConnections")); - return reply.value(); + if (connectionsList.isEmpty()) { + qWarning() << "Using blocking call!"; + QDBusReply > reply + = d->connectionInterface->call(QLatin1String("ListConnections")); + connectionsList = reply.value(); + } + return connectionsList; } + QString QNetworkManagerSettings::getConnectionByUuid(const QString &uuid) { QList argumentList; @@ -751,7 +989,7 @@ public: }; QNetworkManagerSettingsConnection::QNetworkManagerSettingsConnection(const QString &settingsService, const QString &connectionObjectPath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { qDBusRegisterMetaType(); d = new QNetworkManagerSettingsConnectionPrivate(); @@ -766,8 +1004,12 @@ QNetworkManagerSettingsConnection::QNetworkManagerSettingsConnection(const QStri return; } d->valid = true; - QDBusReply< QNmSettingsMap > rep = d->connectionInterface->call(QLatin1String("GetSettings")); - d->settingsMap = rep.value(); + + QDBusPendingReply nmReply + = d->connectionInterface->call(QLatin1String("GetSettings")); + if (!nmReply.isError()) { + d->settingsMap = nmReply.value(); + } } QNetworkManagerSettingsConnection::~QNetworkManagerSettingsConnection() @@ -783,7 +1025,7 @@ bool QNetworkManagerSettingsConnection::isValid() bool QNetworkManagerSettingsConnection::setConnections() { - if(!isValid() ) + if (!isValid()) return false; QDBusConnection dbusConnection = QDBusConnection::systemBus(); @@ -796,21 +1038,21 @@ bool QNetworkManagerSettingsConnection::setConnections() allOk = false; } - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForSettingsRemoved(QString)), - this,SIGNAL(removed(QString))); - if (!dbusConnection.connect(d->service, d->path, QLatin1String(NM_DBUS_IFACE_SETTINGS_CONNECTION), QLatin1String("Removed"), - nmDBusHelper, SIGNAL(slotSettingsRemoved()))) { + this, SIGNAL(slotSettingsRemoved()))) { allOk = false; } return allOk; } +void QNetworkManagerSettingsConnection::slotSettingsRemoved() +{ + Q_EMIT removed(d->path); +} + QDBusInterface *QNetworkManagerSettingsConnection::connectionInterface() const { return d->connectionInterface; @@ -818,8 +1060,11 @@ QDBusInterface *QNetworkManagerSettingsConnection::connectionInterface() const QNmSettingsMap QNetworkManagerSettingsConnection::getSettings() { - QDBusReply< QNmSettingsMap > rep = d->connectionInterface->call(QLatin1String("GetSettings")); - d->settingsMap = rep.value(); + if (d->settingsMap.isEmpty()) { + qWarning() << "Using blocking call!"; + QDBusReply reply = d->connectionInterface->call(QLatin1String("GetSettings")); + d->settingsMap = reply.value(); + } return d->settingsMap; } @@ -832,6 +1077,8 @@ NMDeviceType QNetworkManagerSettingsConnection::getType() return DEVICE_TYPE_ETHERNET; else if (devType == QLatin1String("802-11-wireless")) return DEVICE_TYPE_WIFI; + else if (devType == QLatin1String("gsm")) + return DEVICE_TYPE_MODEM; else return DEVICE_TYPE_UNKNOWN; } @@ -908,7 +1155,7 @@ public: }; QNetworkManagerConnectionActive::QNetworkManagerConnectionActive(const QString &activeConnectionObjectPath, QObject *parent) - : QObject(parent), nmDBusHelper(0) + : QObject(parent) { d = new QNetworkManagerConnectionActivePrivate(); d->path = activeConnectionObjectPath; @@ -920,6 +1167,29 @@ QNetworkManagerConnectionActive::QNetworkManagerConnectionActive(const QString & d->valid = false; return; } + QDBusInterface connectionActivePropertiesInterface(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String("org.freedesktop.DBus.Properties"), + QDBusConnection::systemBus()); + + + QList argumentList; + argumentList << QLatin1String(NM_DBUS_INTERFACE_ACTIVE_CONNECTION); + QDBusPendingReply propsReply + = connectionActivePropertiesInterface.callWithArgumentList(QDBus::Block,QLatin1String("GetAll"), + argumentList); + + if (!propsReply.isError()) { + propertyMap = propsReply.value(); + } else { + qWarning() << propsReply.error().message(); + } + + QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), + d->path, + QLatin1String(NM_DBUS_INTERFACE_ACTIVE_CONNECTION), + QLatin1String("PropertiesChanged"), + this,SLOT(propertiesSwap(QMap))); d->valid = true; } @@ -936,24 +1206,10 @@ bool QNetworkManagerConnectionActive::isValid() bool QNetworkManagerConnectionActive::setConnections() { - if(!isValid() ) + if (!isValid()) return false; - bool allOk = true; - delete nmDBusHelper; - nmDBusHelper = new QNmDBusHelper(this); - connect(nmDBusHelper, SIGNAL(pathForPropertiesChanged(QString,QMap)), - this,SIGNAL(propertiesChanged(QString,QMap))); - - if (!QDBusConnection::systemBus().connect(QLatin1String(NM_DBUS_SERVICE), - d->path, - QLatin1String(NM_DBUS_INTERFACE_ACTIVE_CONNECTION), - QLatin1String("PropertiesChanged"), - nmDBusHelper,SLOT(activeConnectionPropertiesChanged(QMap))) ) { - allOk = false; - } - - return allOk; + return true; } QDBusInterface *QNetworkManagerConnectionActive::connectionInterface() const @@ -963,30 +1219,67 @@ QDBusInterface *QNetworkManagerConnectionActive::connectionInterface() const QDBusObjectPath QNetworkManagerConnectionActive::connection() const { - QVariant prop = d->connectionInterface->property("Connection"); - return prop.value(); + if (propertyMap.contains("Connection")) + return propertyMap.value("Connection").value(); + return QDBusObjectPath(); } QDBusObjectPath QNetworkManagerConnectionActive::specificObject() const { - QVariant prop = d->connectionInterface->property("SpecificObject"); - return prop.value(); + if (propertyMap.contains("SpecificObject")) + return propertyMap.value("SpecificObject").value(); + return QDBusObjectPath(); } QList QNetworkManagerConnectionActive::devices() const { - QVariant prop = d->connectionInterface->property("Devices"); - return prop.value >(); + if (propertyMap.contains("Devices")) { + const QDBusArgument &dbusArgs = propertyMap.value("Devices").value(); + QDBusObjectPath path; + QList list; + + dbusArgs.beginArray(); + while (!dbusArgs.atEnd()) { + dbusArgs >> path; + list.append(path); + } + dbusArgs.endArray(); + + return list; + } + QList list; + list << QDBusObjectPath(); + return list; } quint32 QNetworkManagerConnectionActive::state() const { - return d->connectionInterface->property("State").toUInt(); + if (propertyMap.contains("State")) + return propertyMap.value("State").toUInt(); + return 0; } bool QNetworkManagerConnectionActive::defaultRoute() const { - return d->connectionInterface->property("Default").toBool(); + if (propertyMap.contains("Default")) + return propertyMap.value("Default").toBool(); + return false; +} + +void QNetworkManagerConnectionActive::propertiesSwap(QMap map) +{ + QMapIterator i(map); + while (i.hasNext()) { + i.next(); + propertyMap.insert(i.key(),i.value()); + if (i.key() == QStringLiteral("State")) { + quint32 state = i.value().toUInt(); + if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED + || state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATED) { + Q_EMIT propertiesChanged(map); + } + } + } } class QNetworkManagerIp4ConfigPrivate diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h index 11ddaf70882..df4e5d49e14 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h @@ -56,7 +56,6 @@ #include #include #include -#include "qnmdbushelper.h" #ifndef QT_NO_DBUS @@ -89,7 +88,7 @@ typedef enum NM_ACTIVE_CONNECTION_STATE_UNKNOWN = 0, NM_ACTIVE_CONNECTION_STATE_ACTIVATING, NM_ACTIVE_CONNECTION_STATE_ACTIVATED, - NM_ACTIVE_CONNECTION_STATE_DEACTIVATED + NM_ACTIVE_CONNECTION_STATE_DEACTIVATED = 4 } NMActiveConnectionState; #define NM_DBUS_SERVICE "org.freedesktop.NetworkManager" @@ -135,12 +134,23 @@ class QNetworkManagerInterface : public QObject Q_OBJECT public: + typedef enum + { + NM_STATE_UNKNOWN = 0, + NM_STATE_ASLEEP = 10, + NM_STATE_DISCONNECTED = 20, + NM_STATE_DISCONNECTING = 30, + NM_STATE_CONNECTING = 40, + NM_STATE_CONNECTED_LOCAL = 50, + NM_STATE_CONNECTED_SITE = 60, + NM_STATE_CONNECTED_GLOBAL = 70 + } NMState; QNetworkManagerInterface(QObject *parent = 0); ~QNetworkManagerInterface(); - QList getDevices() const; - void activateConnection(const QString &serviceName, QDBusObjectPath connection, QDBusObjectPath device, QDBusObjectPath specificObject); + QList getDevices(); + void activateConnection(QDBusObjectPath connection,QDBusObjectPath device, QDBusObjectPath specificObject); void deactivateConnection(QDBusObjectPath connectionPath) const; QDBusObjectPath path() const; @@ -149,21 +159,28 @@ public: bool wirelessEnabled() const; bool wirelessHardwareEnabled() const; QList activeConnections() const; - quint32 state(); + NMState state(); + QString version() const; bool setConnections(); bool isValid(); Q_SIGNALS: void deviceAdded(QDBusObjectPath); void deviceRemoved(QDBusObjectPath); - void propertiesChanged( const QString &, QMap); - void stateChanged(const QString&, quint32); + void propertiesChanged(QMap); + void stateChanged(quint32); void activationFinished(QDBusPendingCallWatcher*); + void propertiesReady(); + void devicesListReady(); private Q_SLOTS: + void propertiesSwap(QMap); + private: QNetworkManagerInterfacePrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; + QList devicesPathList; + }; class QNetworkManagerInterfaceAccessPointPrivate; @@ -228,11 +245,14 @@ public: Q_SIGNALS: void propertiesChanged(QMap ); - void propertiesChanged( const QString &, QMap); + void propertiesReady(); + +private Q_SLOTS: + void propertiesSwap(QMap); + private: QNetworkManagerInterfaceAccessPointPrivate *d; - QNmDBusHelper *nmDBusHelper; - + QVariantMap propertyMap; }; class QNetworkManagerInterfaceDevicePrivate; @@ -258,11 +278,14 @@ public: Q_SIGNALS: void stateChanged(const QString &, quint32); - void propertiesChanged(const QString &, QMap); + void propertiesChanged(QMap); void connectionsChanged(QStringList); + void propertiesReady(); +private Q_SLOTS: + void propertiesSwap(QMap); private: QNetworkManagerInterfaceDevicePrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; }; class QNetworkManagerInterfaceDeviceWiredPrivate; @@ -284,10 +307,15 @@ public: bool isValid(); Q_SIGNALS: - void propertiesChanged( const QString &, QMap); + void propertiesChanged(QMap); + void propertiesReady(); + +private Q_SLOTS: + void propertiesSwap(QMap); + private: QNetworkManagerInterfaceDeviceWiredPrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; }; class QNetworkManagerInterfaceDeviceWirelessPrivate; @@ -325,15 +353,24 @@ public: void requestScan(); Q_SIGNALS: - void propertiesChanged( const QString &, QMap); + void propertiesChanged(QMap); void accessPointAdded(const QString &); void accessPointRemoved(const QString &); void scanDone(); + void propertiesReady(); + void accessPointsReady(); + private Q_SLOTS: void scanIsDone(); + void propertiesSwap(QMap); + + void slotAccessPointAdded(QDBusObjectPath); + void slotAccessPointRemoved(QDBusObjectPath); + private: QNetworkManagerInterfaceDeviceWirelessPrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; + QList accessPointsList; }; class QNetworkManagerInterfaceDeviceModemPrivate; @@ -350,6 +387,7 @@ public: Gsm_Umts = 0x4, Lte = 0x08 }; + Q_DECLARE_FLAGS(ModemCapabilities, ModemCapability) explicit QNetworkManagerInterfaceDeviceModem(const QString &ifaceDevicePath, QObject *parent = 0); @@ -361,16 +399,22 @@ public: bool setConnections(); bool isValid(); - quint32 modemCapabilities() const; - quint32 currentCapabilities() const; + ModemCapabilities modemCapabilities() const; + ModemCapabilities currentCapabilities() const; Q_SIGNALS: - void propertiesChanged( const QString &, QMap); + void propertiesChanged(QMap); + void propertiesReady(); + +private Q_SLOTS: + void propertiesSwap(QMap); + private: QNetworkManagerInterfaceDeviceModemPrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QNetworkManagerInterfaceDeviceModem::ModemCapabilities) class QNetworkManagerSettingsPrivate; class QNetworkManagerSettings : public QObject @@ -390,8 +434,10 @@ public: Q_SIGNALS: void newConnection(QDBusObjectPath); + void connectionsListReady(); private: QNetworkManagerSettingsPrivate *d; + QList connectionsList; }; class QNetworkManagerSettingsConnectionPrivate; @@ -418,12 +464,14 @@ public: bool isValid(); Q_SIGNALS: - void updated(); void removed(const QString &path); + void settingsReady(); + +private Q_SLOTS: + void slotSettingsRemoved(); private: - QNmDBusHelper *nmDBusHelper; QNetworkManagerSettingsConnectionPrivate *d; }; @@ -444,7 +492,6 @@ public: ~ QNetworkManagerConnectionActive(); QDBusInterface *connectionInterface() const; - QString serviceName() const; QDBusObjectPath connection() const; QDBusObjectPath specificObject() const; QList devices() const; @@ -455,11 +502,15 @@ public: Q_SIGNALS: - void propertiesChanged(QList); - void propertiesChanged( const QString &, QMap); + void propertiesChanged(QMap); + void propertiesReady(); + +private Q_SLOTS: + void propertiesSwap(QMap); + private: QNetworkManagerConnectionActivePrivate *d; - QNmDBusHelper *nmDBusHelper; + QVariantMap propertyMap; }; class QNetworkManagerIp4ConfigPrivate; diff --git a/src/plugins/bearer/networkmanager/qnmdbushelper.cpp b/src/plugins/bearer/networkmanager/qnmdbushelper.cpp deleted file mode 100644 index 0decfd78b9e..00000000000 --- a/src/plugins/bearer/networkmanager/qnmdbushelper.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** 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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** 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. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// this class is for helping qdbus get stuff - -#include "qnmdbushelper.h" - -#include "qnetworkmanagerservice.h" - -#include -#include -#include -#include - -#include - -#ifndef QT_NO_DBUS - -QT_BEGIN_NAMESPACE - -QNmDBusHelper::QNmDBusHelper(QObject * parent) - : QObject(parent) -{ -} - -QNmDBusHelper::~QNmDBusHelper() -{ -} - -void QNmDBusHelper::deviceStateChanged(quint32 state) - { - QDBusMessage msg = this->message(); - if (state == NM_DEVICE_STATE_ACTIVATED - || state == NM_DEVICE_STATE_DISCONNECTED - || state == NM_DEVICE_STATE_UNAVAILABLE - || state == NM_DEVICE_STATE_FAILED) { - emit pathForStateChanged(msg.path(), state); - } - } - -void QNmDBusHelper::slotAccessPointAdded(QDBusObjectPath path) -{ - if (path.path().length() > 2) - emit pathForAccessPointAdded(path.path()); -} - -void QNmDBusHelper::slotAccessPointRemoved(QDBusObjectPath path) -{ - if (path.path().length() > 2) - emit pathForAccessPointRemoved(path.path()); -} - -void QNmDBusHelper::slotPropertiesChanged(QMap map) -{ - QDBusMessage msg = this->message(); - QMapIterator i(map); - while (i.hasNext()) { - i.next(); - if (i.key() == QStringLiteral("State")) { - quint32 state = i.value().toUInt(); - if (state == NM_DEVICE_STATE_ACTIVATED - || state == NM_DEVICE_STATE_DISCONNECTED - || state == NM_DEVICE_STATE_UNAVAILABLE - || state == NM_DEVICE_STATE_FAILED) { - emit pathForPropertiesChanged(msg.path(), map); - } - } else if (i.key() == QStringLiteral("ActiveAccessPoint")) { - emit pathForPropertiesChanged(msg.path(), map); - } else if (i.key() == QStringLiteral("ActiveConnections")) { - emit pathForPropertiesChanged(msg.path(), map); - } else if (i.key() == QStringLiteral("AvailableConnections")) { - const QDBusArgument &dbusArgs = i.value().value(); - QDBusObjectPath path; - QStringList paths; - dbusArgs.beginArray(); - while (!dbusArgs.atEnd()) { - dbusArgs >> path; - paths << path.path(); - } - dbusArgs.endArray(); - emit pathForConnectionsChanged(paths); - } - } -} - -void QNmDBusHelper::slotSettingsRemoved() -{ - QDBusMessage msg = this->message(); - emit pathForSettingsRemoved(msg.path()); -} - -void QNmDBusHelper::activeConnectionPropertiesChanged(QMap map) -{ - QDBusMessage msg = this->message(); - QMapIterator i(map); - while (i.hasNext()) { - i.next(); - if (i.key() == QStringLiteral("State")) { - quint32 state = i.value().toUInt(); - if (state == NM_ACTIVE_CONNECTION_STATE_ACTIVATED - || state == NM_ACTIVE_CONNECTION_STATE_DEACTIVATED) { - emit pathForPropertiesChanged(msg.path(), map); - } - } - } -} - -QT_END_NAMESPACE - -#endif // QT_NO_DBUS diff --git a/src/plugins/bearer/networkmanager/qnmdbushelper.h b/src/plugins/bearer/networkmanager/qnmdbushelper.h deleted file mode 100644 index e224af87f1d..00000000000 --- a/src/plugins/bearer/networkmanager/qnmdbushelper.h +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL21$ -** 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 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** 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. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QNMDBUSHELPERPRIVATE_H -#define QNMDBUSHELPERPRIVATE_H - -#include -#include -#include - -#ifndef QT_NO_DBUS - -QT_BEGIN_NAMESPACE - -class QNmDBusHelper: public QObject, protected QDBusContext - { - Q_OBJECT - public: - QNmDBusHelper(QObject *parent = 0); - ~QNmDBusHelper(); - - public slots: - void deviceStateChanged(quint32); - void slotAccessPointAdded(QDBusObjectPath); - void slotAccessPointRemoved(QDBusObjectPath); - void slotPropertiesChanged(QMap); - void slotSettingsRemoved(); - void activeConnectionPropertiesChanged(QMap); - -Q_SIGNALS: - void pathForStateChanged(const QString &, quint32); - void pathForAccessPointAdded(const QString &); - void pathForAccessPointRemoved(const QString &); - void pathForPropertiesChanged(const QString &, QMap); - void pathForSettingsRemoved(const QString &); - void pathForConnectionsChanged(const QStringList &pathsList); -}; - -QT_END_NAMESPACE - -#endif // QT_NO_DBUS - -#endif// QNMDBUSHELPERPRIVATE_H From 0b54de41bc6beeddc0453a3f31527eaaf53ffee5 Mon Sep 17 00:00:00 2001 From: Axel Rasmussen Date: Sun, 2 Nov 2014 15:02:07 -0700 Subject: [PATCH 30/50] moc: use Q_NULLPTR instead of 0 in generated code. This commit changes several instances where moc was generating code that used 0 as a null pointer constant. The Q_NULLPTR define is the more idiomatic way to do this, and additionally this silences warnings generated by e.g. GCC's -Wzero-as-null-pointer-constant. [ChangeLog][Tools][moc] Fixed "zero as null pointer constant" warnings in moc's generated code. Change-Id: Ibe382b7bdbdddaf20cb4bdfd075fcdd1f363f9d3 Reviewed-by: Thiago Macieira Reviewed-by: Olivier Goffart --- src/tools/moc/generator.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/tools/moc/generator.cpp b/src/tools/moc/generator.cpp index dd032e46f69..6c5e772e8c5 100644 --- a/src/tools/moc/generator.cpp +++ b/src/tools/moc/generator.cpp @@ -493,7 +493,7 @@ void Generator::generateCode() for (int i = 0; i < extraList.count(); ++i) { fprintf(out, " &%s::staticMetaObject,\n", extraList.at(i).constData()); } - fprintf(out, " 0\n};\n\n"); + fprintf(out, " Q_NULLPTR\n};\n\n"); } // @@ -505,24 +505,24 @@ void Generator::generateCode() fprintf(out, "const QMetaObject %s::staticMetaObject = {\n", cdef->qualified.constData()); if (isQObject) - fprintf(out, " { 0, "); + fprintf(out, " { Q_NULLPTR, "); else if (cdef->superclassList.size()) fprintf(out, " { &%s::staticMetaObject, ", purestSuperClass.constData()); else - fprintf(out, " { 0, "); + fprintf(out, " { Q_NULLPTR, "); fprintf(out, "qt_meta_stringdata_%s.data,\n" " qt_meta_data_%s, ", qualifiedClassNameIdentifier.constData(), qualifiedClassNameIdentifier.constData()); if (cdef->hasQObject && !isQt) fprintf(out, " qt_static_metacall, "); else - fprintf(out, " 0, "); + fprintf(out, " Q_NULLPTR, "); if (extraList.isEmpty()) - fprintf(out, "0, "); + fprintf(out, "Q_NULLPTR, "); else fprintf(out, "qt_meta_extradata_%s, ", qualifiedClassNameIdentifier.constData()); - fprintf(out, "0}\n};\n\n"); + fprintf(out, "Q_NULLPTR}\n};\n\n"); if(isQt) return; @@ -537,7 +537,7 @@ void Generator::generateCode() // Generate smart cast function // fprintf(out, "\nvoid *%s::qt_metacast(const char *_clname)\n{\n", cdef->qualified.constData()); - fprintf(out, " if (!_clname) return 0;\n"); + fprintf(out, " if (!_clname) return Q_NULLPTR;\n"); fprintf(out, " if (!strcmp(_clname, qt_meta_stringdata_%s.stringdata))\n" " return static_cast(const_cast< %s*>(this));\n", qualifiedClassNameIdentifier.constData(), cdef->classname.constData()); @@ -562,7 +562,7 @@ void Generator::generateCode() QByteArray superClass = purestSuperClass; fprintf(out, " return %s::qt_metacast(_clname);\n", superClass.constData()); } else { - fprintf(out, " return 0;\n"); + fprintf(out, " return Q_NULLPTR;\n"); } fprintf(out, "}\n"); @@ -1416,7 +1416,7 @@ void Generator::generateSignal(FunctionDef *def,int index) fprintf(out, "QPrivateSignal"); fprintf(out, ")%s\n{\n" - " QMetaObject::activate(%s, &staticMetaObject, %d, 0);\n" + " QMetaObject::activate(%s, &staticMetaObject, %d, Q_NULLPTR);\n" "}\n", constQualifier, thisPtr.constData(), index); return; } @@ -1446,7 +1446,7 @@ void Generator::generateSignal(FunctionDef *def,int index) fprintf(out, " void *_a[] = { "); if (def->normalizedType == "void") { - fprintf(out, "0"); + fprintf(out, "Q_NULLPTR"); } else { if (def->returnTypeIsVolatile) fprintf(out, "const_cast(reinterpret_cast(&_t0))"); From 3c0ea78283b6c231854192e4e8519e02d70887d8 Mon Sep 17 00:00:00 2001 From: Alexander Volkov Date: Wed, 5 Nov 2014 12:56:26 +0400 Subject: [PATCH 31/50] Do not pass a null pointer to unlink() Found by clang static analyzer. Change-Id: I8f15ae1a8e6afb91eafa6cee1d1b21e3539af6c1 Reviewed-by: Friedemann Kleint Reviewed-by: Andy Shaw --- src/plugins/printsupport/cups/qppdprintdevice.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/printsupport/cups/qppdprintdevice.cpp b/src/plugins/printsupport/cups/qppdprintdevice.cpp index 7a6acf8b78c..d20fbb558b8 100644 --- a/src/plugins/printsupport/cups/qppdprintdevice.cpp +++ b/src/plugins/printsupport/cups/qppdprintdevice.cpp @@ -470,9 +470,10 @@ void QPpdPrintDevice::loadPrinter() m_cupsDest = cupsGetNamedDest(CUPS_HTTP_DEFAULT, m_cupsName, m_cupsInstance); if (m_cupsDest) { const char *ppdFile = cupsGetPPD(m_cupsName); - if (ppdFile) + if (ppdFile) { m_ppd = ppdOpenFile(ppdFile); - unlink(ppdFile); + unlink(ppdFile); + } if (m_ppd) { ppdMarkDefaults(m_ppd); } else { From df106921b2f3d24dca5639104f0b5074044aef2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Str=C3=B8mme?= Date: Wed, 5 Nov 2014 20:42:07 +0100 Subject: [PATCH 32/50] Android: Fix for build issue on x86 In the toolchain for x86 the va_list type is defined as char *, which in itself isn't strange, but it was somewhat unexpected as it differs from the arm toolchains. Either way we should not make assumption about the va_list type as there is no guarantee it won't cause conflicts when overloading. This fix simply renames the private overloads. Change-Id: I7808619d0fa3ca63b75796308cfdff6aa41a7fd0 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/kernel/qjni.cpp | 248 ++++++++++++++++++------------------ src/corelib/kernel/qjni_p.h | 46 ++++--- 2 files changed, 150 insertions(+), 144 deletions(-) diff --git a/src/corelib/kernel/qjni.cpp b/src/corelib/kernel/qjni.cpp index 452e3464d65..b179323fdc0 100644 --- a/src/corelib/kernel/qjni.cpp +++ b/src/corelib/kernel/qjni.cpp @@ -311,7 +311,7 @@ QJNIObjectPrivate::QJNIObjectPrivate(const char *className, const char *sig, ... } } -QJNIObjectPrivate::QJNIObjectPrivate(const char *className, const char *sig, va_list args) +QJNIObjectPrivate::QJNIObjectPrivate(const char *className, const char *sig, const QVaListPrivate &args) : d(new QJNIObjectData()) { QJNIEnvironmentPrivate env; @@ -369,7 +369,7 @@ QJNIObjectPrivate::QJNIObjectPrivate(jclass clazz, const char *sig, ...) } } -QJNIObjectPrivate::QJNIObjectPrivate(jclass clazz, const char *sig, va_list args) +QJNIObjectPrivate::QJNIObjectPrivate(jclass clazz, const char *sig, const QVaListPrivate &args) : d(new QJNIObjectData()) { QJNIEnvironmentPrivate env; @@ -402,7 +402,7 @@ QJNIObjectPrivate::QJNIObjectPrivate(jobject obj) } template <> -void QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +void QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jmethodID id = getCachedMethodID(env, d->m_jclass, methodName, sig); @@ -416,12 +416,12 @@ void QJNIObjectPrivate::callMethod(const char *methodName, const char *sig { va_list args; va_start(args, sig); - callMethod(methodName, sig, args); + callMethodV(methodName, sig, args); va_end(args); } template <> -jboolean QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jboolean QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jboolean res = 0; @@ -437,13 +437,13 @@ jboolean QJNIObjectPrivate::callMethod(const char *methodName, const c { va_list args; va_start(args, sig); - jboolean res = callMethod(methodName, sig, args); + jboolean res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jbyte QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jbyte QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jbyte res = 0; @@ -459,13 +459,13 @@ jbyte QJNIObjectPrivate::callMethod(const char *methodName, const char *s { va_list args; va_start(args, sig); - jbyte res = callMethod(methodName, sig, args); + jbyte res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jchar QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jchar QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jchar res = 0; @@ -481,13 +481,13 @@ jchar QJNIObjectPrivate::callMethod(const char *methodName, const char *s { va_list args; va_start(args, sig); - jchar res = callMethod(methodName, sig, args); + jchar res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jshort QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jshort QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jshort res = 0; @@ -503,13 +503,13 @@ jshort QJNIObjectPrivate::callMethod(const char *methodName, const char { va_list args; va_start(args, sig); - jshort res = callMethod(methodName, sig, args); + jshort res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jint QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jint QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jint res = 0; @@ -525,13 +525,13 @@ jint QJNIObjectPrivate::callMethod(const char *methodName, const char *sig { va_list args; va_start(args, sig); - jint res = callMethod(methodName, sig, args); + jint res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jlong QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jlong QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jlong res = 0; @@ -547,13 +547,13 @@ jlong QJNIObjectPrivate::callMethod(const char *methodName, const char *s { va_list args; va_start(args, sig); - jlong res = callMethod(methodName, sig, args); + jlong res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jfloat QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jfloat QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jfloat res = 0.f; @@ -569,13 +569,13 @@ jfloat QJNIObjectPrivate::callMethod(const char *methodName, const char { va_list args; va_start(args, sig); - jfloat res = callMethod(methodName, sig, args); + jfloat res = callMethodV(methodName, sig, args); va_end(args); return res; } template <> -jdouble QJNIObjectPrivate::callMethod(const char *methodName, const char *sig, va_list args) const +jdouble QJNIObjectPrivate::callMethodV(const char *methodName, const char *sig, va_list args) const { QJNIEnvironmentPrivate env; jdouble res = 0.; @@ -591,7 +591,7 @@ jdouble QJNIObjectPrivate::callMethod(const char *methodName, const cha { va_list args; va_start(args, sig); - jdouble res = callMethod(methodName, sig, args); + jdouble res = callMethodV(methodName, sig, args); va_end(args); return res; } @@ -651,10 +651,10 @@ jdouble QJNIObjectPrivate::callMethod(const char *methodName) const } template <> -void QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +void QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jclass clazz = loadClass(className, env); @@ -674,15 +674,15 @@ void QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - callStaticMethod(className, methodName, sig, args); + callStaticMethodV(className, methodName, sig, args); va_end(args); } template <> -void QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +void QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jmethodID id = getCachedMethodID(env, clazz, methodName, sig, true); @@ -699,15 +699,15 @@ void QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - callStaticMethod(clazz, methodName, sig, args); + callStaticMethodV(clazz, methodName, sig, args); va_end(args); } template <> -jboolean QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jboolean QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jboolean res = 0; @@ -730,16 +730,16 @@ jboolean QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jboolean res = callStaticMethod(className, methodName, sig, args); + jboolean res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jboolean QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jboolean QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jboolean res = 0; @@ -759,16 +759,16 @@ jboolean QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jboolean res = callStaticMethod(clazz, methodName, sig, args); + jboolean res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jbyte QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jbyte QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jbyte res = 0; @@ -791,16 +791,16 @@ jbyte QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jbyte res = callStaticMethod(className, methodName, sig, args); + jbyte res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jbyte QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jbyte QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jbyte res = 0; @@ -820,16 +820,16 @@ jbyte QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jbyte res = callStaticMethod(clazz, methodName, sig, args); + jbyte res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jchar QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jchar QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jchar res = 0; @@ -852,16 +852,16 @@ jchar QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jchar res = callStaticMethod(className, methodName, sig, args); + jchar res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jchar QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jchar QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jchar res = 0; @@ -881,16 +881,16 @@ jchar QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jchar res = callStaticMethod(clazz, methodName, sig, args); + jchar res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jshort QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jshort QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jshort res = 0; @@ -913,16 +913,16 @@ jshort QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jshort res = callStaticMethod(className, methodName, sig, args); + jshort res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jshort QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jshort QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jshort res = 0; @@ -942,16 +942,16 @@ jshort QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jshort res = callStaticMethod(clazz, methodName, sig, args); + jshort res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jint QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jint QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jint res = 0; @@ -974,16 +974,16 @@ jint QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jint res = callStaticMethod(className, methodName, sig, args); + jint res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jint QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jint QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jint res = 0; @@ -1003,16 +1003,16 @@ jint QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jint res = callStaticMethod(clazz, methodName, sig, args); + jint res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jlong QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jlong QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jlong res = 0; @@ -1035,16 +1035,16 @@ jlong QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jlong res = callStaticMethod(className, methodName, sig, args); + jlong res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jlong QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jlong QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jlong res = 0; @@ -1064,16 +1064,16 @@ jlong QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jlong res = callStaticMethod(clazz, methodName, sig, args); + jlong res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jfloat QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jfloat QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jfloat res = 0.f; @@ -1096,16 +1096,16 @@ jfloat QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jfloat res = callStaticMethod(className, methodName, sig, args); + jfloat res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jfloat QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jfloat QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jfloat res = 0.f; @@ -1125,16 +1125,16 @@ jfloat QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jfloat res = callStaticMethod(clazz, methodName, sig, args); + jfloat res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } template <> -jdouble QJNIObjectPrivate::callStaticMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +jdouble QJNIObjectPrivate::callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jdouble res = 0.; @@ -1157,16 +1157,16 @@ jdouble QJNIObjectPrivate::callStaticMethod(const char *className, { va_list args; va_start(args, sig); - jdouble res = callStaticMethod(className, methodName, sig, args); + jdouble res = callStaticMethodV(className, methodName, sig, args); va_end(args); return res; } template <> -jdouble QJNIObjectPrivate::callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +jdouble QJNIObjectPrivate::callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jdouble res = 0.; @@ -1186,7 +1186,7 @@ jdouble QJNIObjectPrivate::callStaticMethod(jclass clazz, { va_list args; va_start(args, sig); - jdouble res = callStaticMethod(clazz, methodName, sig, args); + jdouble res = callStaticMethodV(clazz, methodName, sig, args); va_end(args); return res; } @@ -1299,9 +1299,9 @@ jdouble QJNIObjectPrivate::callStaticMethod(jclass clazz, const char *m return callStaticMethod(clazz, methodName, "()D"); } -QJNIObjectPrivate QJNIObjectPrivate::callObjectMethod(const char *methodName, - const char *sig, - va_list args) const +QJNIObjectPrivate QJNIObjectPrivate::callObjectMethodV(const char *methodName, + const char *sig, + va_list args) const { QJNIEnvironmentPrivate env; jobject res = 0; @@ -1323,7 +1323,7 @@ QJNIObjectPrivate QJNIObjectPrivate::callObjectMethod(const char *methodName, { va_list args; va_start(args, sig); - QJNIObjectPrivate res = callObjectMethod(methodName, sig, args); + QJNIObjectPrivate res = callObjectMethodV(methodName, sig, args); va_end(args); return res; } @@ -1376,10 +1376,10 @@ QJNIObjectPrivate QJNIObjectPrivate::callObjectMethod(const char * return callObjectMethod(methodName, "()[D"); } -QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethod(const char *className, - const char *methodName, - const char *sig, - va_list args) +QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jobject res = 0; @@ -1405,15 +1405,15 @@ QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethod(const char *classNam { va_list args; va_start(args, sig); - QJNIObjectPrivate res = callStaticObjectMethod(className, methodName, sig, args); + QJNIObjectPrivate res = callStaticObjectMethodV(className, methodName, sig, args); va_end(args); return res; } -QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethod(jclass clazz, - const char *methodName, - const char *sig, - va_list args) +QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args) { QJNIEnvironmentPrivate env; jobject res = 0; @@ -1436,7 +1436,7 @@ QJNIObjectPrivate QJNIObjectPrivate::callStaticObjectMethod(jclass clazz, { va_list args; va_start(args, sig); - QJNIObjectPrivate res = callStaticObjectMethod(clazz, methodName, sig, args); + QJNIObjectPrivate res = callStaticObjectMethodV(clazz, methodName, sig, args); va_end(args); return res; } diff --git a/src/corelib/kernel/qjni_p.h b/src/corelib/kernel/qjni_p.h index 19f2cf76012..5f573624c68 100644 --- a/src/corelib/kernel/qjni_p.h +++ b/src/corelib/kernel/qjni_p.h @@ -186,31 +186,37 @@ public: private: friend class QAndroidJniObject; - QJNIObjectPrivate(const char *className, const char *sig, va_list args); - QJNIObjectPrivate(jclass clazz, const char *sig, va_list args); + struct QVaListPrivate { operator va_list &() const { return m_args; } va_list &m_args; }; + + QJNIObjectPrivate(const char *className, const char *sig, const QVaListPrivate &args); + QJNIObjectPrivate(jclass clazz, const char *sig, const QVaListPrivate &args); template - T callMethod(const char *methodName, - const char *sig, - va_list args) const; - QJNIObjectPrivate callObjectMethod(const char *methodName, - const char *sig, - va_list args) const; + T callMethodV(const char *methodName, + const char *sig, + va_list args) const; + QJNIObjectPrivate callObjectMethodV(const char *methodName, + const char *sig, + va_list args) const; template - static T callStaticMethod(const char *className, - const char *methodName, - const char *sig, va_list args); + static T callStaticMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args); template - static T callStaticMethod(jclass clazz, - const char *methodName, - const char *sig, va_list args); - static QJNIObjectPrivate callStaticObjectMethod(const char *className, - const char *methodName, - const char *sig, va_list args); + static T callStaticMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args); + static QJNIObjectPrivate callStaticObjectMethodV(const char *className, + const char *methodName, + const char *sig, + va_list args); - static QJNIObjectPrivate callStaticObjectMethod(jclass clazz, - const char *methodName, - const char *sig, va_list args); + static QJNIObjectPrivate callStaticObjectMethodV(jclass clazz, + const char *methodName, + const char *sig, + va_list args); bool isSameObject(jobject obj) const; bool isSameObject(const QJNIObjectPrivate &other) const; From 9c8943a862a5762eef0ae98f2b6b14e5c449105c Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Fri, 24 Oct 2014 12:07:32 +0200 Subject: [PATCH 33/50] Doc: updated documentation QString::toDouble Task-number: QTBUG-35543 Change-Id: I60d5cc253e6d6a24e9b031758e16a547a9a07443 Reviewed-by: Martin Smith --- src/corelib/tools/qstring.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 48f251e3f42..543c75668f3 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -6339,8 +6339,7 @@ ushort QString::toUShort(bool *ok, int base) const \snippet qstring/main.cpp 66 - Various string formats for floating point numbers can be converted - to double values: + \warning The QString content may only contain valid numerical characters which includes the plus/minus sign, the characters g and e used in scientific notation, and the decimal point. Including the unit or additional characters leads to a conversion error. \snippet qstring/main.cpp 67 @@ -6349,7 +6348,7 @@ ushort QString::toUShort(bool *ok, int base) const \snippet qstring/main.cpp 68 - For historic reasons, this function does not handle + For historical reasons, this function does not handle thousands group separators. If you need to convert such numbers, use QLocale::toDouble(). From 30d9498329489020f1720841ac960e06e2e7c5e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 27 Oct 2014 16:11:58 +0100 Subject: [PATCH 34/50] iOS: Detect when inputMethodAccepted() is out of sync with focus object The GraphicsView stack still seems to have issues emitting focusObject change signals when the focus object changes inside the item hierarchy. To be on the safe side we use our own view of whether or not IM is enabled, and try to detect and warn if we find a case where the two are out of sync. Change-Id: I9fde896ea14ea5b65784723110887e06453edbd4 Reviewed-by: Richard Moe Gustavsen --- src/plugins/platforms/ios/qiosinputcontext.h | 1 + src/plugins/platforms/ios/qiosinputcontext.mm | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/plugins/platforms/ios/qiosinputcontext.h b/src/plugins/platforms/ios/qiosinputcontext.h index 5791367d84a..f07408db81d 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.h +++ b/src/plugins/platforms/ios/qiosinputcontext.h @@ -82,6 +82,7 @@ public: void commit(); const ImeState &imeState() { return m_imeState; }; + bool inputMethodAccepted() const; bool isReloadingInputViewsFromUpdate() const { return m_isReloadingInputViewsFromUpdate; } diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm index c038628fd9c..25d9f6c421b 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.mm +++ b/src/plugins/platforms/ios/qiosinputcontext.mm @@ -486,6 +486,26 @@ void QIOSInputContext::update(Qt::InputMethodQueries updatedProperties) } } +bool QIOSInputContext::inputMethodAccepted() const +{ + // The IM enablement state is based on the last call to update() + bool lastKnownImEnablementState = m_imeState.currentState.value(Qt::ImEnabled).toBool(); + +#if !defined(QT_NO_DEBUG) + // QPlatformInputContext keeps a cached value of the current IM enablement state that is + // updated by QGuiApplication when the current focus object changes, or by QInputMethod's + // update() function. If the focus object changes, but the change is not propagated as + // a signal to QGuiApplication due to bugs in the widget/graphicsview/qml stack, we'll + // end up with a stale value for QPlatformInputContext::inputMethodAccepted(). To be on + // the safe side we always use our own cached value to decide if IM is enabled, and try + // to detect the case where the two values are out of sync. + if (lastKnownImEnablementState != QPlatformInputContext::inputMethodAccepted()) + qWarning("QPlatformInputContext::inputMethodAccepted() does not match actual focus object IM enablement!"); +#endif + + return lastKnownImEnablementState; +} + /*! Called by the input item to reset the input method state. */ From 79f832594dc103ef4a663153f8b9a88691e46233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?= Date: Wed, 8 Oct 2014 15:11:31 +0300 Subject: [PATCH 35/50] eglfs: obey QT_NO_REGULAREXPRESSION define Not all platforms do have QRegularExpression as it is based on pcre. Change-Id: I6b8e701ff7cf30e776ee34e5dc836cd24c9543b5 Reviewed-by: Laszlo Agocs --- src/plugins/platforms/eglfs/qeglfshooks_stub.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp index b6b1be92442..26d77a2abb3 100644 --- a/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp +++ b/src/plugins/platforms/eglfs/qeglfshooks_stub.cpp @@ -63,11 +63,13 @@ QByteArray QEglFSHooks::fbDeviceName() const int QEglFSHooks::framebufferIndex() const { int fbIndex = 0; +#ifndef QT_NO_REGULAREXPRESSION QRegularExpression fbIndexRx(QLatin1String("fb(\\d+)")); QRegularExpressionMatch match = fbIndexRx.match(fbDeviceName()); if (match.hasMatch()) fbIndex = match.captured(1).toInt(); +#endif return fbIndex; } From c493546a0a1bbf1455f67092364bdba18e43ba01 Mon Sep 17 00:00:00 2001 From: Eike Hein Date: Mon, 13 Oct 2014 21:33:57 +0200 Subject: [PATCH 36/50] Merge TextFormat attributes for identical ranges in QInputMethodEvents IBus can hand us multiple attributes for different formatting properties of the same text range for events. The IBus input method plugin used to convert these straight into multiple QInputMethodEvent::Attributes, each with their own QTextCharFormat instance. According to the QInputMethodEvent documentation, behavior with multiple TextFormat attributes for the same text range is undefined. In at least one known user, KDE's Kate text editor, it causes invisible text for pre-edit text events as the QTextCharFormats are applied in turn with partially default-constructed foreground/background brushes: https://bugs.kde.org/show_bug.cgi?id=339467 This patch makes an effort to merge formatting information for identical text ranges into a single QTextCharFomat, while otherwise preserving existing behavior (attribute order is unchanged and attributes deseria- lized from D-Bus as having invalid QTextFormats remain untouched). No attempt is made to cope with overlapping text ranges. Segmenting into smaller ranges and merging for the overlaps would be conceivable, but until a case of an input method creating events with overlapping ranges is known seems not worth the effort. It's worth noting that the IBus input method plugin for Qt 4 also attempts to merge formatting information into a single QTextCharFormat, but with a distinct implementation from this one. Change-Id: Ie3dc38b353724ffb7b5f2d7f316393027373baf2 Task-number: 41640 Reviewed-by: Simon Hausmann --- .../platforminputcontexts/ibus/qibustypes.cpp | 28 ++++++++++++++++--- .../platforminputcontexts/ibus/qibustypes.h | 3 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp index 9bc53ed5c00..ec8c746b2d4 100644 --- a/src/plugins/platforminputcontexts/ibus/qibustypes.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibustypes.cpp @@ -32,7 +32,6 @@ ****************************************************************************/ #include "qibustypes.h" -#include #include #include @@ -134,7 +133,7 @@ const QDBusArgument &operator>>(const QDBusArgument &argument, QIBusAttribute &a return argument; } -QTextFormat QIBusAttribute::format() const +QTextCharFormat QIBusAttribute::format() const { QTextCharFormat fmt; switch (type) { @@ -225,11 +224,32 @@ const QDBusArgument &operator>>(const QDBusArgument &arg, QIBusAttributeList &at QList QIBusAttributeList::imAttributes() const { - QList imAttrs; + QHash, QTextCharFormat> rangeAttrs; + + // Merge text fomats for identical ranges into a single QTextFormat. for (int i = 0; i < attributes.size(); ++i) { const QIBusAttribute &attr = attributes.at(i); - imAttrs += QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, attr.start, attr.end - attr.start, attr.format()); + const QTextCharFormat &format = attr.format(); + + if (format.isValid()) { + const QPair range(attr.start, attr.end); + rangeAttrs[range].merge(format); + } } + + // Assemble list in original attribute order. + QList imAttrs; + + for (int i = 0; i < attributes.size(); ++i) { + const QIBusAttribute &attr = attributes.at(i); + const QTextFormat &format = attr.format(); + + imAttrs += QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, + attr.start, + attr.end - attr.start, + format.isValid() ? rangeAttrs[QPair(attr.start, attr.end)] : format); + } + return imAttrs; } diff --git a/src/plugins/platforminputcontexts/ibus/qibustypes.h b/src/plugins/platforminputcontexts/ibus/qibustypes.h index 2ec3b019ff2..96791b17a18 100644 --- a/src/plugins/platforminputcontexts/ibus/qibustypes.h +++ b/src/plugins/platforminputcontexts/ibus/qibustypes.h @@ -36,6 +36,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE @@ -70,7 +71,7 @@ public: QIBusAttribute(); ~QIBusAttribute(); - QTextFormat format() const; + QTextCharFormat format() const; Type type; quint32 value; From 13401116cce64bc7f2cf80b07ce34a4ad3abe829 Mon Sep 17 00:00:00 2001 From: Alex Trotsenko Date: Sat, 6 Sep 2014 13:07:37 +0300 Subject: [PATCH 37/50] Remove incorrect read from QSslSocket::readData() QIODevice makes readData() call only when its read buffer is empty. Also data argument points to the user or reserved read buffer area. So, no need in data transfer from read buffer at this point at all. Task-number: QTBUG-41797 Change-Id: Ieb4afdf7eec37fdf288073e4a060e64424f22b9c Reviewed-by: Thiago Macieira (cherry picked from commit 1853579dad1bbb44599314213a1d8a203ecae1c9) Reviewed-by: Alex Trotsenko Reviewed-by: Oswald Buddenhagen --- src/network/ssl/qsslsocket.cpp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 27b085ddbd9..8887f478dd1 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -1908,18 +1908,14 @@ qint64 QSslSocket::readData(char *data, qint64 maxlen) if (d->mode == UnencryptedMode && !d->autoStartHandshake) { readBytes = d->plainSocket->read(data, maxlen); - } else { - int bytesToRead = qMin(maxlen, d->buffer.size()); - readBytes = d->buffer.read(data, bytesToRead); - } - #ifdef QSSLSOCKET_DEBUG - qDebug() << "QSslSocket::readData(" << (void *)data << ',' << maxlen << ") ==" << readBytes; + qDebug() << "QSslSocket::readData(" << (void *)data << ',' << maxlen << ") ==" + << readBytes; #endif - - // possibly trigger another transmit() to decrypt more data from the socket - if (d->buffer.isEmpty() && d->plainSocket->bytesAvailable()) { - QMetaObject::invokeMethod(this, "_q_flushReadBuffer", Qt::QueuedConnection); + } else { + // possibly trigger another transmit() to decrypt more data from the socket + if (d->plainSocket->bytesAvailable()) + QMetaObject::invokeMethod(this, "_q_flushReadBuffer", Qt::QueuedConnection); } return readBytes; From 999fa634829bf90e939f2fc14678a842eb49c75e Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Tue, 4 Nov 2014 17:59:24 +1000 Subject: [PATCH 38/50] Support dual sim in QtBearer's networkmanager backend Task-number: QTBUG-42368 Change-Id: I306733b5de7871fdeaa0accb512a3610753c84a5 Reviewed-by: Alex Blasche --- .../linux_common/qofonoservice_linux.cpp | 9 +- .../linux_common/qofonoservice_linux_p.h | 1 + .../networkmanager/qnetworkmanagerengine.cpp | 88 ++++++++++--------- .../networkmanager/qnetworkmanagerengine.h | 6 +- 4 files changed, 59 insertions(+), 45 deletions(-) diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp index e994ebf2cef..b2e2131a92d 100644 --- a/src/plugins/bearer/linux_common/qofonoservice_linux.cpp +++ b/src/plugins/bearer/linux_common/qofonoservice_linux.cpp @@ -112,7 +112,8 @@ QString QOfonoManagerInterface::currentModem() QStringList modems = getModems(); foreach (const QString &modem, modems) { QOfonoModemInterface device(modem); - if (device.isPowered() && device.isOnline()) + if (device.isPowered() && device.isOnline() + && device.interfaces().contains(QStringLiteral("org.ofono.NetworkRegistration"))) return modem; } return QString(); @@ -169,6 +170,12 @@ bool QOfonoModemInterface::isOnline() return qdbus_cast(var); } +QStringList QOfonoModemInterface::interfaces() +{ + const QVariant var = getProperty(QStringLiteral("Interfaces")); + return var.toStringList(); +} + QVariantMap QOfonoModemInterface::getProperties() { if (propertiesMap.isEmpty()) { diff --git a/src/plugins/bearer/linux_common/qofonoservice_linux_p.h b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h index 2b3d43deb5b..0ed00d94ff4 100644 --- a/src/plugins/bearer/linux_common/qofonoservice_linux_p.h +++ b/src/plugins/bearer/linux_common/qofonoservice_linux_p.h @@ -115,6 +115,7 @@ public: bool isPowered(); bool isOnline(); + QStringList interfaces(); private: QVariantMap getProperties(); QVariantMap propertiesMap; diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index f07d7b242b3..9adadb8f4fc 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -58,9 +58,7 @@ QNetworkManagerEngine::QNetworkManagerEngine(QObject *parent) : QBearerEngineImpl(parent), managerInterface(new QNetworkManagerInterface(this)), systemSettings(new QNetworkManagerSettings(NM_DBUS_SERVICE, this)), - ofonoManager(new QOfonoManagerInterface(this)), - ofonoNetwork(0), - ofonoContextManager(0) + ofonoManager(new QOfonoManagerInterface(this)) { if (!managerInterface->isValid()) @@ -97,16 +95,22 @@ QNetworkManagerEngine::~QNetworkManagerEngine() interfaceDevices.clear(); connectionInterfaces.clear(); + + qDeleteAll(ofonoContextManagers); + ofonoContextManagers.clear(); } void QNetworkManagerEngine::initialize() { QMutexLocker locker(&mutex); - connect(ofonoManager,SIGNAL(modemChanged()),this,SLOT(changedModem())); - ofonoNetwork = new QOfonoNetworkRegistrationInterface(ofonoManager->currentModem(),this); - ofonoContextManager = new QOfonoDataConnectionManagerInterface(ofonoManager->currentModem(),this); - + if (ofonoManager->isValid()) { + Q_FOREACH (const QString &modem, ofonoManager->getModems()) { + QOfonoDataConnectionManagerInterface *ofonoContextManager + = new QOfonoDataConnectionManagerInterface(modem,this); + ofonoContextManagers.insert(modem, ofonoContextManager); + } + } // Get current list of access points. foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { locker.unlock(); @@ -746,11 +750,14 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri } } } else if (connectionType == QLatin1String("gsm")) { - cpPriv->bearerType = currentBearerType(); + + const QString contextPath = map.value("connection").value("id").toString(); + cpPriv->name = contextName(contextPath); + cpPriv->bearerType = currentBearerType(contextPath); + if (map.value("connection").contains("timestamp")) { cpPriv->state |= QNetworkConfiguration::Discovered; } - cpPriv->name = contextName(map.value("connection").value("id").toString()); } return cpPriv; @@ -889,34 +896,32 @@ QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration( return QNetworkConfigurationPrivatePointer(); } -void QNetworkManagerEngine::changedModem() +QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType(const QString &id) { - if (ofonoNetwork) - delete ofonoNetwork; + if (ofonoManager->isValid()) { + QString contextPart = id.section('/', -1); - ofonoNetwork = new QOfonoNetworkRegistrationInterface(ofonoManager->currentModem(),this); + QHashIterator i(ofonoContextManagers); + while (i.hasNext()) { + i.next(); + QString contextPath = i.key() +"/"+contextPart; + if (i.value()->contexts().contains(contextPath)) { - if (ofonoContextManager) - delete ofonoContextManager; - ofonoContextManager = new QOfonoDataConnectionManagerInterface(ofonoManager->currentModem(),this); -} - -QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType() -{ - if (ofonoContextManager) { - QString bearer = ofonoContextManager->bearer(); - if (bearer == QLatin1String("gsm")) { - return QNetworkConfiguration::Bearer2G; - } else if (bearer == QLatin1String("edge")) { - return QNetworkConfiguration::Bearer2G; - } else if (bearer == QLatin1String("umts")) { - return QNetworkConfiguration::BearerWCDMA; - } else if (bearer == QLatin1String("hspa") - || bearer == QLatin1String("hsdpa") - || bearer == QLatin1String("hsupa")) { - return QNetworkConfiguration::BearerHSPA; - } else if (bearer == QLatin1String("lte")) { - return QNetworkConfiguration::BearerLTE; + QString bearer = i.value()->bearer(); + if (bearer == QStringLiteral("gsm")) { + return QNetworkConfiguration::Bearer2G; + } else if (bearer == QStringLiteral("edge")) { + return QNetworkConfiguration::Bearer2G; + } else if (bearer == QStringLiteral("umts")) { + return QNetworkConfiguration::BearerWCDMA; + } else if (bearer == QStringLiteral("hspa") + || bearer == QStringLiteral("hsdpa") + || bearer == QStringLiteral("hsupa")) { + return QNetworkConfiguration::BearerHSPA; + } else if (bearer == QStringLiteral("lte")) { + return QNetworkConfiguration::BearerLTE; + } + } } } return QNetworkConfiguration::BearerUnknown; @@ -924,13 +929,16 @@ QNetworkConfiguration::BearerType QNetworkManagerEngine::currentBearerType() QString QNetworkManagerEngine::contextName(const QString &path) { - if (ofonoContextManager) { + if (ofonoManager->isValid()) { QString contextPart = path.section('/', -1); - - Q_FOREACH (const QString &oContext, ofonoContextManager->contexts()) { - if (oContext.contains(contextPart)) { - QOfonoConnectionContextInterface contextInterface(oContext,this); - return contextInterface.name(); + QHashIterator i(ofonoContextManagers); + while (i.hasNext()) { + i.next(); + Q_FOREACH (const QString &oContext, i.value()->contexts()) { + if (oContext.contains(contextPart)) { + QOfonoConnectionContextInterface contextInterface(oContext,this); + return contextInterface.name(); + } } } } diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h index d2ef9886a3d..84c0b21b6cd 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h @@ -106,7 +106,6 @@ private Q_SLOTS: void newAccessPoint(const QString &path); void removeAccessPoint(const QString &path); void scanFinished(); - void changedModem(); private: QNetworkConfigurationPrivate *parseConnection(const QString &settingsPath, @@ -125,9 +124,8 @@ private: QHash connectionInterfaces; // ac, interface QOfonoManagerInterface *ofonoManager; - QOfonoNetworkRegistrationInterface *ofonoNetwork; - QOfonoDataConnectionManagerInterface *ofonoContextManager; - QNetworkConfiguration::BearerType currentBearerType(); + QHash ofonoContextManagers; + QNetworkConfiguration::BearerType currentBearerType(const QString &id); QString contextName(const QString &path); }; From 8a81319be1d0d9ceadc1b4f17a707c6db08dd280 Mon Sep 17 00:00:00 2001 From: MihailNaydenov Date: Fri, 3 Oct 2014 15:37:13 +0300 Subject: [PATCH 39/50] Fix loading 2x images in Rich Text Documents MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are some issues preventing 2x images from loading, mainly incorrect testing for exist() by passing an url, which always reports ‘false’. Task-number: QTBUG-36383 Change-Id: I1e8e5a91b01f1a4ddd3559c2e860db5bc41908ce Reviewed-by: Morten Johan Sørvig --- src/gui/text/qtextimagehandler.cpp | 67 ++++++++++++++++++------------ 1 file changed, 41 insertions(+), 26 deletions(-) diff --git a/src/gui/text/qtextimagehandler.cpp b/src/gui/text/qtextimagehandler.cpp index f6525448def..37c18e3624c 100644 --- a/src/gui/text/qtextimagehandler.cpp +++ b/src/gui/text/qtextimagehandler.cpp @@ -44,31 +44,49 @@ QT_BEGIN_NAMESPACE -static QString resolve2xFile(const QString &fileName, qreal targetDevicePixelRatio) +static QString resolveFileName(QString fileName, QUrl *url, qreal targetDevicePixelRatio) { + // We might use the fileName for loading if url loading fails + // try to make sure it is a valid file path. + // Also, QFile{Info}::exists works only on filepaths (not urls) + + if (url->isValid()) { + if (url->scheme() == QLatin1Literal("qrc")) { + fileName = fileName.right(fileName.length() - 3); + } + else if (url->scheme() == QLatin1Literal("file")) { + fileName = url->toLocalFile(); + } + } + if (targetDevicePixelRatio <= 1.0) return fileName; - int dotIndex = fileName.lastIndexOf(QLatin1Char('.')); + // try to find a 2x version + + const int dotIndex = fileName.lastIndexOf(QLatin1Char('.')); if (dotIndex != -1) { QString at2xfileName = fileName; at2xfileName.insert(dotIndex, QStringLiteral("@2x")); - if (QFile::exists(at2xfileName)) - return at2xfileName; + if (QFile::exists(at2xfileName)) { + fileName = at2xfileName; + *url = QUrl(fileName); + } } + return fileName; } -static QPixmap getPixmap(QTextDocument *doc, const QTextImageFormat &format) + +static QPixmap getPixmap(QTextDocument *doc, const QTextImageFormat &format, const qreal devicePixelRatio = 1.0) { QPixmap pm; QString name = format.name(); - if (name.startsWith(QLatin1String(":/"))) // auto-detect resources + if (name.startsWith(QLatin1String(":/"))) // auto-detect resources and convert them to url name.prepend(QLatin1String("qrc")); - QPaintDevice *pdev = doc->documentLayout()->paintDevice(); - name = resolve2xFile(name, pdev ? pdev->devicePixelRatio() : qApp->devicePixelRatio()); QUrl url = QUrl(name); + name = resolveFileName(name, &url, devicePixelRatio); const QVariant data = doc->resource(QTextDocument::ImageResource, url); if (data.type() == QVariant::Pixmap || data.type() == QVariant::Image) { pm = qvariant_cast(data); @@ -77,19 +95,18 @@ static QPixmap getPixmap(QTextDocument *doc, const QTextImageFormat &format) } if (pm.isNull()) { - QString context; #if 0 + QString context; // ### Qt5 QTextBrowser *browser = qobject_cast(doc->parent()); if (browser) context = browser->source().toString(); #endif + // try direct loading QImage img; - if (img.isNull()) { // try direct loading - name = format.name(); // remove qrc:/ prefix again - if (name.isEmpty() || !img.load(name)) - return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png")); - } + if (name.isEmpty() || !img.load(name)) + return QPixmap(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png")); + pm = QPixmap::fromImage(img); doc->addResource(QTextDocument::ImageResource, url, pm); } @@ -142,16 +159,15 @@ static QSize getPixmapSize(QTextDocument *doc, const QTextImageFormat &format) return size; } -static QImage getImage(QTextDocument *doc, const QTextImageFormat &format) +static QImage getImage(QTextDocument *doc, const QTextImageFormat &format, const qreal devicePixelRatio = 1.0) { QImage image; QString name = format.name(); if (name.startsWith(QLatin1String(":/"))) // auto-detect resources name.prepend(QLatin1String("qrc")); - QPaintDevice *pdev = doc->documentLayout()->paintDevice(); - name = resolve2xFile(name, pdev ? pdev->devicePixelRatio() : qApp->devicePixelRatio()); QUrl url = QUrl(name); + name = resolveFileName(name, &url, devicePixelRatio); const QVariant data = doc->resource(QTextDocument::ImageResource, url); if (data.type() == QVariant::Image) { image = qvariant_cast(data); @@ -160,19 +176,18 @@ static QImage getImage(QTextDocument *doc, const QTextImageFormat &format) } if (image.isNull()) { - QString context; - #if 0 + QString context; // ### Qt5 QTextBrowser *browser = qobject_cast(doc->parent()); if (browser) context = browser->source().toString(); #endif - if (image.isNull()) { // try direct loading - name = format.name(); // remove qrc:/ prefix again - if (name.isEmpty() || !image.load(name)) - return QImage(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png")); - } + // try direct loading + + if (name.isEmpty() || !image.load(name)) + return QImage(QLatin1String(":/qt-project.org/styles/commonstyle/images/file-16.png")); + doc->addResource(QTextDocument::ImageResource, url, image); } @@ -241,10 +256,10 @@ void QTextImageHandler::drawObject(QPainter *p, const QRectF &rect, QTextDocumen const QTextImageFormat imageFormat = format.toImageFormat(); if (QCoreApplication::instance()->thread() != QThread::currentThread()) { - const QImage image = getImage(doc, imageFormat); + const QImage image = getImage(doc, imageFormat, p->device()->devicePixelRatio()); p->drawImage(rect, image, image.rect()); } else { - const QPixmap pixmap = getPixmap(doc, imageFormat); + const QPixmap pixmap = getPixmap(doc, imageFormat, p->device()->devicePixelRatio()); p->drawPixmap(rect, pixmap, pixmap.rect()); } } From a61247723a7b8b371a7328d1d7ec5ca4a5ff3d84 Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 7 Nov 2014 14:05:41 +1000 Subject: [PATCH 40/50] Make QtBearer networkmanager backend respond to wired cabling changes Cabling changes can be detected right away, so we should act on that and change the configuration state. Change-Id: Ifa9709077215567001e11ab655208a2c1b090073 Reviewed-by: Alex Blasche --- .../networkmanager/qnetworkmanagerengine.cpp | 128 +++++++++++++----- .../networkmanager/qnetworkmanagerengine.h | 4 + .../networkmanager/qnetworkmanagerservice.cpp | 30 +++- .../networkmanager/qnetworkmanagerservice.h | 4 +- 4 files changed, 124 insertions(+), 42 deletions(-) diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index 9adadb8f4fc..6be682878da 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -98,6 +98,9 @@ QNetworkManagerEngine::~QNetworkManagerEngine() qDeleteAll(ofonoContextManagers); ofonoContextManagers.clear(); + + qDeleteAll(wiredDevices); + wiredDevices.clear(); } void QNetworkManagerEngine::initialize() @@ -111,13 +114,6 @@ void QNetworkManagerEngine::initialize() ofonoContextManagers.insert(modem, ofonoContextManager); } } - // Get current list of access points. - foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { - locker.unlock(); - deviceAdded(devicePath); //add all accesspoints - locker.relock(); - } - // Get active connections. foreach (const QDBusObjectPath &acPath, managerInterface->activeConnections()) { @@ -128,13 +124,20 @@ void QNetworkManagerEngine::initialize() this, SLOT(activeConnectionPropertiesChanged(QMap))); activeConnection->setConnections(); - QList devices = activeConnection->devices(); + QStringList devices = activeConnection->devices(); if (!devices.isEmpty()) { - QNetworkManagerInterfaceDevice device(devices.at(0).path(),this); + QNetworkManagerInterfaceDevice device(devices.at(0),this); connectionInterfaces.insert(activeConnection->connection().path(),device.networkInterface()); } } + // Get current list of access points. + foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { + locker.unlock(); + deviceAdded(devicePath); //add all accesspoints + locker.relock(); + } + // Get connections. foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) { locker.unlock(); @@ -338,9 +341,9 @@ void QNetworkManagerEngine::activeConnectionPropertiesChanged(const QMapmutex.lock(); if (properties.value("State").toUInt() == NM_ACTIVE_CONNECTION_STATE_ACTIVATED) { - QList devices = activeConnection->devices(); + QStringList devices = activeConnection->devices(); if (!devices.isEmpty()) { - QNetworkManagerInterfaceDevice device(devices.at(0).path(),this); + QNetworkManagerInterfaceDevice device(devices.at(0),this); connectionInterfaces.insert(id,device.networkInterface()); } @@ -405,6 +408,13 @@ void QNetworkManagerEngine::deviceAdded(const QDBusObjectPath &path) wirelessDevices.insert(path.path(), wirelessDevice); } + + if (iDevice->deviceType() == DEVICE_TYPE_ETHERNET) { + QNetworkManagerInterfaceDeviceWired *wiredDevice = + new QNetworkManagerInterfaceDeviceWired(iDevice->connectionInterface()->path(),this); + connect(wiredDevice,SIGNAL(carrierChanged(bool)),this,SLOT(wiredCarrierChanged(bool))); + wiredDevices.insert(iDevice->connectionInterface()->path(), wiredDevice); + } } void QNetworkManagerEngine::deviceRemoved(const QDBusObjectPath &path) @@ -421,6 +431,41 @@ void QNetworkManagerEngine::deviceRemoved(const QDBusObjectPath &path) delete wirelessDevices.take(path.path()); locker.relock(); } + if (wiredDevices.contains(path.path())) { + locker.unlock(); + delete wiredDevices.take(path.path()); + locker.relock(); + } +} + +void QNetworkManagerEngine::wiredCarrierChanged(bool carrier) +{ + QNetworkManagerInterfaceDeviceWired *deviceWired = qobject_cast(sender()); + if (!deviceWired) + return; + QMutexLocker locker(&mutex); + foreach (const QDBusObjectPath &settingsPath, systemSettings->listConnections()) { + for (int i = 0; i < connections.count(); ++i) { + QNetworkManagerSettingsConnection *connection = connections.at(i); + if (connection->getType() == DEVICE_TYPE_ETHERNET + && settingsPath.path() == connection->connectionInterface()->path()) { + QNetworkConfigurationPrivatePointer ptr = + accessPointConfigurations.value(settingsPath.path()); + + if (ptr) { + ptr->mutex.lock(); + if (carrier) + ptr->state |= QNetworkConfiguration::Discovered; + else + ptr->state = QNetworkConfiguration::Defined; + ptr->mutex.unlock(); + locker.unlock(); + emit configurationChanged(ptr); + return; + } + } + } + } } void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, @@ -437,32 +482,37 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, QNetworkManagerSettingsConnection *connection = new QNetworkManagerSettingsConnection(settings->connectionInterface()->service(), path.path(),this); - QString apPath; - for (int i = 0; i < accessPoints.count(); ++i) { - if (connection->getSsid() == accessPoints.at(i)->ssid()) { - // remove the corresponding accesspoint from configurations - apPath = accessPoints.at(i)->connectionInterface()->path(); - - QNetworkConfigurationPrivatePointer ptr - = accessPointConfigurations.take(apPath); - if (ptr) { - locker.unlock(); - emit configurationRemoved(ptr); - locker.relock(); - } - } + const QString settingsPath = connection->connectionInterface()->path(); + if (accessPointConfigurations.contains(settingsPath)) { + return; } + connections.append(connection); connect(connection,SIGNAL(removed(QString)),this,SLOT(removeConnection(QString))); connect(connection,SIGNAL(updated()),this,SLOT(updateConnection())); connection->setConnections(); - const QString settingsPath = connection->connectionInterface()->path(); + NMDeviceType deviceType = connection->getType(); - if (connection->getType() == DEVICE_TYPE_WIFI - && !configuredAccessPoints.contains(settingsPath)) - configuredAccessPoints.insert(apPath,settingsPath); + if (deviceType == DEVICE_TYPE_WIFI) { + QString apPath; + for (int i = 0; i < accessPoints.count(); ++i) { + if (connection->getSsid() == accessPoints.at(i)->ssid()) { + // remove the corresponding accesspoint from configurations + apPath = accessPoints.at(i)->connectionInterface()->path(); + QNetworkConfigurationPrivatePointer ptr + = accessPointConfigurations.take(apPath); + if (ptr) { + locker.unlock(); + emit configurationRemoved(ptr); + locker.relock(); + } + } + } + if (!configuredAccessPoints.contains(settingsPath)) + configuredAccessPoints.insert(apPath,settingsPath); + } QNetworkConfigurationPrivate *cpPriv = parseConnection(settingsPath, connection->getSettings()); @@ -476,9 +526,21 @@ void QNetworkManagerEngine::newConnection(const QDBusObjectPath &path, break; } } + if (deviceType == DEVICE_TYPE_ETHERNET) { + QHashIterator i(interfaceDevices); + while (i.hasNext()) { + i.next(); + if (i.value()->deviceType() == deviceType) { + QNetworkManagerInterfaceDeviceWired *wiredDevice + = wiredDevices.value(i.value()->connectionInterface()->path()); + if (wiredDevice->carrier()) { + cpPriv->state |= QNetworkConfiguration::Discovered; + } + } + } + } QNetworkConfigurationPrivatePointer ptr(cpPriv); accessPointConfigurations.insert(ptr->id, ptr); - locker.unlock(); emit configurationAdded(ptr); } @@ -524,8 +586,6 @@ void QNetworkManagerEngine::updateConnection() qobject_cast(sender()); if (!connection) return; - - connection->deleteLater(); const QString settingsPath = connection->connectionInterface()->path(); QNetworkConfigurationPrivate *cpPriv = parseConnection(settingsPath, connection->getSettings()); @@ -718,8 +778,8 @@ QNetworkConfigurationPrivate *QNetworkManagerEngine::parseConnection(const QStri foreach (const QDBusObjectPath &devicePath, managerInterface->getDevices()) { QNetworkManagerInterfaceDevice device(devicePath.path(),this); if (device.deviceType() == DEVICE_TYPE_ETHERNET) { - QNetworkManagerInterfaceDeviceWired wiredDevice(device.connectionInterface()->path(),this); - if (wiredDevice.carrier()) { + QNetworkManagerInterfaceDeviceWired *wiredDevice = wiredDevices.value(device.connectionInterface()->path()); + if (wiredDevice->carrier()) { cpPriv->state |= QNetworkConfiguration::Discovered; break; } diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h index 84c0b21b6cd..671ed80dab0 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h @@ -107,6 +107,8 @@ private Q_SLOTS: void removeAccessPoint(const QString &path); void scanFinished(); + void wiredCarrierChanged(bool); + private: QNetworkConfigurationPrivate *parseConnection(const QString &settingsPath, const QNmSettingsMap &map); @@ -114,7 +116,9 @@ private: QNetworkManagerInterface *managerInterface; QNetworkManagerSettings *systemSettings; + QHash wiredDevices; QHash wirelessDevices; + QHash activeConnectionsList; QList connections; QList accessPoints; diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp index 2d54fa30297..dd7000bfb84 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp @@ -609,12 +609,32 @@ bool QNetworkManagerInterfaceDeviceWired::carrier() const return false; } +QStringList QNetworkManagerInterfaceDeviceWired::availableConnections() +{ + QStringList list; + if (propertyMap.contains("AvailableConnections")) { + const QDBusArgument &dbusArgs = propertyMap.value("Carrier").value(); + QDBusObjectPath path; + dbusArgs.beginArray(); + while (!dbusArgs.atEnd()) { + dbusArgs >> path; + list << path.path(); + } + dbusArgs.endArray(); + } + + return list; +} + void QNetworkManagerInterfaceDeviceWired::propertiesSwap(QMap map) { QMapIterator i(map); while (i.hasNext()) { i.next(); propertyMap.insert(i.key(),i.value()); + if (i.key() == QStringLiteral("Carrier")) { + Q_EMIT carrierChanged(i.value().toBool()); + } } Q_EMIT propertiesChanged(map); } @@ -1231,24 +1251,20 @@ QDBusObjectPath QNetworkManagerConnectionActive::specificObject() const return QDBusObjectPath(); } -QList QNetworkManagerConnectionActive::devices() const +QStringList QNetworkManagerConnectionActive::devices() const { + QStringList list; if (propertyMap.contains("Devices")) { const QDBusArgument &dbusArgs = propertyMap.value("Devices").value(); QDBusObjectPath path; - QList list; dbusArgs.beginArray(); while (!dbusArgs.atEnd()) { dbusArgs >> path; - list.append(path); + list.append(path.path()); } dbusArgs.endArray(); - - return list; } - QList list; - list << QDBusObjectPath(); return list; } diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h index df4e5d49e14..5e3c1c85f19 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h @@ -305,10 +305,12 @@ public: bool carrier() const; bool setConnections(); bool isValid(); + QStringList availableConnections(); Q_SIGNALS: void propertiesChanged(QMap); void propertiesReady(); + void carrierChanged(bool); private Q_SLOTS: void propertiesSwap(QMap); @@ -494,7 +496,7 @@ public: QDBusInterface *connectionInterface() const; QDBusObjectPath connection() const; QDBusObjectPath specificObject() const; - QList devices() const; + QStringList devices() const; quint32 state() const; bool defaultRoute() const; bool setConnections(); From 7a593e0d00abd0d8930fd7cdd8334a42fca7da6d Mon Sep 17 00:00:00 2001 From: Lorn Potter Date: Fri, 7 Nov 2014 15:38:32 +1000 Subject: [PATCH 41/50] make qtbearer networkmanager defaultConfiguration more reliable The defaultConfiguration could switch and be either active connection, so we determine the default should be what has the default route. Change-Id: I194f27b60e7a3598eca2ff09c2225ba1a46564d9 Reviewed-by: Alex Blasche --- .../bearer/networkmanager/qnetworkmanagerengine.cpp | 9 +++++++++ .../bearer/networkmanager/qnetworkmanagerservice.cpp | 7 +++++++ .../bearer/networkmanager/qnetworkmanagerservice.h | 1 + 3 files changed, 17 insertions(+) diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index 6be682878da..a8244f05cf5 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -953,6 +953,15 @@ QNetworkSessionPrivate *QNetworkManagerEngine::createSessionBackend() QNetworkConfigurationPrivatePointer QNetworkManagerEngine::defaultConfiguration() { + QHashIterator i(activeConnectionsList); + while (i.hasNext()) { + i.next(); + QNetworkManagerConnectionActive *activeConnection = i.value(); + if ((activeConnection->defaultRoute() || activeConnection->default6Route())) { + return accessPointConfigurations.value(activeConnection->connection().path()); + } + } + return QNetworkConfigurationPrivatePointer(); } diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp index dd7000bfb84..dc3b71ec8eb 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.cpp @@ -1282,6 +1282,13 @@ bool QNetworkManagerConnectionActive::defaultRoute() const return false; } +bool QNetworkManagerConnectionActive::default6Route() const +{ + if (propertyMap.contains("Default6")) + return propertyMap.value("Default6").toBool(); + return false; +} + void QNetworkManagerConnectionActive::propertiesSwap(QMap map) { QMapIterator i(map); diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h index 5e3c1c85f19..da909c443ac 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerservice.h @@ -499,6 +499,7 @@ public: QStringList devices() const; quint32 state() const; bool defaultRoute() const; + bool default6Route() const; bool setConnections(); bool isValid(); From 2f7d0838b8fd338b20eb7059caf6bc5fba6e5266 Mon Sep 17 00:00:00 2001 From: Maurice Kalinowski Date: Mon, 3 Nov 2014 17:44:50 +0100 Subject: [PATCH 42/50] WinRT: Add missing manifest specifier for rotation Add WINRT_MANIFEST.rotation_preference as description which orientation is allowed or preferred by the app. Valid values for Windows Phone are portrait, landscape, landscapeFlipped. WinRT also allows portraitFlipped Task-number: QTBUG-40830 Change-Id: I6b11afcdb72c2c158dadddafc5d90c1d18ab9d8b Reviewed-by: Andrew Knight --- .../manifests/8.1/AppxManifest.xml.in | 2 +- .../manifests/8.1_wp/AppxManifest.xml.in | 2 +- mkspecs/features/winrt/package_manifest.prf | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in index 97d34074037..a6fc9697f41 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.1/AppxManifest.xml.in @@ -34,7 +34,7 @@ - + $${WINRT_MANIFEST.rotation_preference} $${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} diff --git a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in b/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in index cf18a4dc790..b75570ad4e3 100644 --- a/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in +++ b/mkspecs/common/winrt_winphone/manifests/8.1_wp/AppxManifest.xml.in @@ -37,7 +37,7 @@ - + $${WINRT_MANIFEST.rotation_preference} $${WINRT_MANIFEST.capabilities}$${WINRT_MANIFEST.dependencies} diff --git a/mkspecs/features/winrt/package_manifest.prf b/mkspecs/features/winrt/package_manifest.prf index b4242bfdaa5..2ccb5db9633 100644 --- a/mkspecs/features/winrt/package_manifest.prf +++ b/mkspecs/features/winrt/package_manifest.prf @@ -24,6 +24,7 @@ # WINRT_MANIFEST.logo_medium: Medium logo image file. Default provided by the mkspec. # WINRT_MANIFEST.logo_large: Large logo image file. Default provided by the mkspec. # WINRT_MANIFEST.splash_screen: Splash screen image file. Default provided by the mkspec. +# WINRT_MANIFEST.rotation_preference: Orientation specification. Default is empty. (portrait, landscape, landscapeFlipped) # WINRT_MANIFEST.iconic_tile_icon: Image file for the "iconic" tile template icon. Default provided by the mkspec. # WINRT_MANIFEST.iconic_tile_small: Image file for the small "iconic" tile template logo. Default provided by the mkspec. # WINRT_MANIFEST.default_language: Specifies the default language of the application @@ -87,6 +88,20 @@ isEmpty(WINRT_MANIFEST.foreground): WINRT_MANIFEST.foreground = light isEmpty(WINRT_MANIFEST.default_language): WINRT_MANIFEST.default_language = en + INDENT = "$$escape_expand(\\r\\n) " + + VS_XML_NAMESPACE = "m2" + winphone: VS_XML_NAMESPACE = "m3" + WINRT_MANIFEST.rotation_preference = $$unique(WINRT_MANIFEST.rotation_preference) + !isEmpty(WINRT_MANIFEST.rotation_preference) { + MANIFEST_ROTATION += "<$${VS_XML_NAMESPACE}:InitialRotationPreference>" + for(ROTATION, WINRT_MANIFEST.rotation_preference): \ + MANIFEST_ROTATION += " <$${VS_XML_NAMESPACE}:Rotation Preference=\"$$ROTATION\" />" + MANIFEST_ROTATION += "" + + WINRT_MANIFEST.rotation_preference = $$join(MANIFEST_ROTATION, $$INDENT, $$INDENT) + } + INDENT = "$$escape_expand(\\r\\n) " # Capabilities are given as a string list and may change with the configuration (network, sensors, etc.) From b67d853d2c3d9cb3e9be9a62396f5cd97a18c125 Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Tue, 4 Nov 2014 12:41:10 +0200 Subject: [PATCH 43/50] Fix crash in QNetworkSession when engine is not set Task-number: QTBUG-42427 Change-Id: Ie35d5e0f72be3a16ecb6b928e12bc50d9f183590 Reviewed-by: Andy Shaw --- src/plugins/bearer/qnetworksession_impl.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/bearer/qnetworksession_impl.cpp b/src/plugins/bearer/qnetworksession_impl.cpp index 1db59fec94a..c5adc98af7b 100644 --- a/src/plugins/bearer/qnetworksession_impl.cpp +++ b/src/plugins/bearer/qnetworksession_impl.cpp @@ -366,7 +366,8 @@ void QNetworkSessionPrivateImpl::networkConfigurationsChanged() else updateStateFromActiveConfig(); - startTime = engine->startTime(activeConfig.identifier()); + if (engine) + startTime = engine->startTime(activeConfig.identifier()); } void QNetworkSessionPrivateImpl::configurationChanged(QNetworkConfigurationPrivatePointer config) From 645f9eec00b63c076cad488c7ec19a5be9e5dd5e Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 3 Nov 2014 20:38:01 +0100 Subject: [PATCH 44/50] QGraphicsItem: clarify the documentation about caching modes and update() It is possible that Qt calls paint() several times for an item that has caching enabled, even without any explicit call to update(). There are various reasons why that is possible (memory pressure, item gets transformed, etc.); the important part is that 1) the user must not rely into "caching enabled" = "1 paint() call" 2) the user must always draw the same content from within paint(), unless update() was called before that call to paint(). Task-number: QTBUG-18410 Change-Id: I2c8d77e6e11aaceffc9a21003dd3f4cc46edd582 Reviewed-by: Venugopal Shivashankar Reviewed-by: Andy Shaw --- src/widgets/graphicsview/qgraphicsitem.cpp | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index 76a75dfc350..300e2f492b8 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -1968,8 +1968,10 @@ QGraphicsItem::CacheMode QGraphicsItem::cacheMode() const Caching can speed up rendering if your item spends a significant time redrawing itself. In some cases the cache can also slow down rendering, in particular when the item spends less time redrawing than QGraphicsItem - spends redrawing from the cache. When enabled, the item's paint() function - will be called only once for each call to update(); for any subsequent + spends redrawing from the cache. + + When caching is enabled, an item's paint() function will generally draw into an + offscreen pixmap cache; for any subsequent repaint requests, the Graphics View framework will redraw from the cache. This approach works particularly well with QGLWidget, which stores all the cache as OpenGL textures. @@ -1980,6 +1982,12 @@ QGraphicsItem::CacheMode QGraphicsItem::cacheMode() const You can read more about the different cache modes in the CacheMode documentation. + \note Enabling caching does not imply that the item's paint() function will be + called only in response to an explicit update() call. For instance, under + memory pressure, Qt may decide to drop some of the cache information; + in such cases an item's paint() function will be called even if there + was no update() call (that is, exactly as if there were no caching enabled). + \sa CacheMode, QPixmapCache::setCacheLimit() */ void QGraphicsItem::setCacheMode(CacheMode mode, const QSize &logicalCacheSize) @@ -5337,6 +5345,16 @@ void QGraphicsItem::setBoundingRegionGranularity(qreal granularity) All painting is done in local coordinates. + \note It is mandatory that an item will always redraw itself in the exact + same way, unless update() was called; otherwise visual artifacts may + occur. In other words, two subsequent calls to paint() must always produce + the same output, unless update() was called between them. + + \note Enabling caching for an item does not guarantee that paint() + will be invoked only once by the Graphics View framework, + even without any explicit call to update(). See the documentation of + setCacheMode() for more details. + \sa setCacheMode(), QPen::width(), {Item Coordinates}, ItemUsesExtendedStyleOption */ From 6451c4baeb829708628a5759ee3d3978489acc7d Mon Sep 17 00:00:00 2001 From: Matt Fischer Date: Wed, 15 Oct 2014 09:47:10 -0500 Subject: [PATCH 45/50] Fix release-with-debuginfo flags for QCC Due to the way that the QCC mkspecs are structured, the recent change to add full optimization support causes the -O2 flag to be completely dropped from QCC builds in release-with-debuginfo mode, since the QMAKE_CFLAGS_OPTIMIZE variable is not declared in any configuration file included by QCC toolchains. This patch adds the necessary flags to make the QCC toolchain operate correctly. Change-Id: I4cd93442d59fae7c92fc5219cddb16f367447203 Reviewed-by: Rafael Roquetto --- mkspecs/common/qcc-base.conf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mkspecs/common/qcc-base.conf b/mkspecs/common/qcc-base.conf index 122f940ec3e..f529d7fc7ba 100644 --- a/mkspecs/common/qcc-base.conf +++ b/mkspecs/common/qcc-base.conf @@ -11,11 +11,15 @@ QMAKE_COMPILER = rim_qcc gcc # qcc is mostly gcc in disguise +QMAKE_CFLAGS_OPTIMIZE = -O2 +QMAKE_CFLAGS_OPTIMIZE_FULL = -O3 + QMAKE_CFLAGS += -Wno-psabi QMAKE_CFLAGS_DEPS += -M QMAKE_CFLAGS_WARN_ON += -Wall -W QMAKE_CFLAGS_WARN_OFF += -w -QMAKE_CFLAGS_RELEASE += -O2 +QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE +QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g QMAKE_CFLAGS_DEBUG += -g QMAKE_CFLAGS_SHLIB += -fPIC -shared QMAKE_CFLAGS_STATIC_LIB += -fPIC @@ -36,6 +40,7 @@ QMAKE_CXXFLAGS_DEPS += $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON += $$QMAKE_CFLAGS_WARN_ON QMAKE_CXXFLAGS_WARN_OFF += $$QMAKE_CFLAGS_WARN_OFF QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_RELEASE +QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG QMAKE_CXXFLAGS_SHLIB += $$QMAKE_CFLAGS_SHLIB QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB From 82c2118cba2744000cff7cd3e5e952df775f5aba Mon Sep 17 00:00:00 2001 From: Matt Fischer Date: Tue, 14 Oct 2014 16:57:20 -0500 Subject: [PATCH 46/50] Improve QElapsedTimer resolution on QNX The standard POSIX clock functions are present on QNX, but only return timing information with millisecond accuracy. To get accuracy beyond that, platform-specific functions must be used. Change-Id: I54a0550f1865dbea3c60a86ecd8ad99df3fe42b4 Reviewed-by: Frank Osterfeld Reviewed-by: Bernd Weimer Reviewed-by: Rafael Roquetto --- src/corelib/tools/qelapsedtimer_unix.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/corelib/tools/qelapsedtimer_unix.cpp b/src/corelib/tools/qelapsedtimer_unix.cpp index 5b26d551a72..9dd5df02669 100644 --- a/src/corelib/tools/qelapsedtimer_unix.cpp +++ b/src/corelib/tools/qelapsedtimer_unix.cpp @@ -35,8 +35,12 @@ #define _POSIX_C_SOURCE 200809L #include "qelapsedtimer.h" -#ifdef Q_OS_VXWORKS +#if defined(Q_OS_VXWORKS) #include "qfunctions_vxworks.h" +#elif defined(Q_OS_QNX) +#include +#include +#include #else #include #include @@ -84,7 +88,18 @@ QT_BEGIN_NAMESPACE * see http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html */ -#ifndef CLOCK_REALTIME +#if defined(Q_OS_QNX) +static inline void qt_clock_gettime(clockid_t clock, struct timespec *ts) +{ + // The standard POSIX clock calls only have 1ms accuracy on QNX. To get + // higher accuracy, this platform-specific function must be used instead + quint64 cycles_per_sec = SYSPAGE_ENTRY(qtime)->cycles_per_sec; + quint64 cycles = ClockCycles(); + ts->tv_sec = cycles / cycles_per_sec; + quint64 mod = cycles % cycles_per_sec; + ts->tv_nsec = mod * Q_INT64_C(1000000000) / cycles_per_sec; +} +#elif !defined(CLOCK_REALTIME) # define CLOCK_REALTIME 0 static inline void qt_clock_gettime(int, struct timespec *ts) { From 370d7bf48afb20017852c0c7faff45d40dbf81a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 22 Oct 2014 13:46:35 +0200 Subject: [PATCH 47/50] iOS: Make hide-keyboard gesture use normal UIGestureRecognizer flow Allows us to track state through the normal gesture recognizer states instead of custom variables. Change-Id: I4fe1b370a581132a9bbb8f51f7bee73381b80341 Reviewed-by: Richard Moe Gustavsen --- src/plugins/platforms/ios/qiosinputcontext.mm | 135 ++++++++++++------ 1 file changed, 92 insertions(+), 43 deletions(-) diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm index 25d9f6c421b..acdf6d9715c 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.mm +++ b/src/plugins/platforms/ios/qiosinputcontext.mm @@ -46,25 +46,28 @@ #include "qiosglobal.h" #include "qiosintegration.h" #include "qiostextresponder.h" +#include "qiosviewcontroller.h" #include "qioswindow.h" #include "quiview.h" #include #include +// ------------------------------------------------------------------------- + static QUIView *focusView() { return qApp->focusWindow() ? reinterpret_cast(qApp->focusWindow()->winId()) : 0; } -@interface QIOSKeyboardListener : UIGestureRecognizer { +// ------------------------------------------------------------------------- + +@interface QIOSKeyboardListener : UIGestureRecognizer { @public QIOSInputContext *m_context; BOOL m_keyboardVisible; BOOL m_keyboardVisibleAndDocked; - BOOL m_touchPressWhileKeyboardVisible; - BOOL m_keyboardHiddenByGesture; QRectF m_keyboardRect; CGRect m_keyboardEndRect; NSTimeInterval m_duration; @@ -77,13 +80,11 @@ static QUIView *focusView() - (id)initWithQIOSInputContext:(QIOSInputContext *)context { - self = [super initWithTarget:self action:@selector(gestureTriggered)]; + self = [super initWithTarget:self action:@selector(gestureStateChanged:)]; if (self) { m_context = context; m_keyboardVisible = NO; m_keyboardVisibleAndDocked = NO; - m_touchPressWhileKeyboardVisible = NO; - m_keyboardHiddenByGesture = NO; m_duration = 0; m_curve = UIViewAnimationCurveEaseOut; m_viewController = 0; @@ -99,10 +100,9 @@ static QUIView *focusView() Q_ASSERT(m_viewController); // Attach 'hide keyboard' gesture to the window, but keep it disabled when the - // keyboard is not visible. Note that we never trigger the gesture the way it is intended - // since we don't want to cancel touch events and interrupt flicking etc. Instead we use - // the gesture framework more as an event filter and hide the keyboard silently. + // keyboard is not visible. self.enabled = NO; + self.cancelsTouchesInView = NO; self.delaysTouchesEnded = NO; [m_viewController.view.window addGestureRecognizer:self]; } @@ -156,11 +156,19 @@ static QUIView *focusView() // Note that UIKeyboardWillShowNotification is only sendt when the keyboard is docked. m_keyboardVisibleAndDocked = YES; m_keyboardEndRect = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - self.enabled = YES; + if (!m_duration) { m_duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; m_curve = UIViewAnimationCurve([[notification.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]); } + + UIResponder *firstResponder = [UIResponder currentFirstResponder]; + if (![firstResponder isKindOfClass:[QIOSTextInputResponder class]]) + return; + + // Enable hide-keyboard gesture + self.enabled = YES; + m_context->scrollToCursor(); } @@ -169,7 +177,7 @@ static QUIView *focusView() // Note that UIKeyboardWillHideNotification is also sendt when the keyboard is undocked. m_keyboardVisibleAndDocked = NO; m_keyboardEndRect = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - if (!m_keyboardHiddenByGesture) { + if (self.state != UIGestureRecognizerStateBegan) { // Only disable the gesture if the hiding of the keyboard was not caused by it. // Otherwise we need to await the final touchEnd callback for doing some clean-up. self.enabled = NO; @@ -202,54 +210,81 @@ static QUIView *focusView() } } -- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event -{ - CGPoint p = [[touches anyObject] locationInView:m_viewController.view.window]; - if (CGRectContainsPoint(m_keyboardEndRect, p)) { - m_keyboardHiddenByGesture = YES; - - UIResponder *firstResponder = [UIResponder currentFirstResponder]; - Q_ASSERT([firstResponder isKindOfClass:[QIOSTextInputResponder class]]); - [firstResponder resignFirstResponder]; - } - - [super touchesMoved:touches withEvent:event]; -} +// ------------------------------------------------------------------------- - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - Q_ASSERT(m_keyboardVisibleAndDocked); - m_touchPressWhileKeyboardVisible = YES; [super touchesBegan:touches withEvent:event]; + + Q_ASSERT(m_keyboardVisibleAndDocked); + + if ([touches count] != 1) + self.state = UIGestureRecognizerStateFailed; +} + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event +{ + [super touchesMoved:touches withEvent:event]; + + if (self.state != UIGestureRecognizerStatePossible) + return; + + CGPoint touchPoint = [[touches anyObject] locationInView:m_viewController.view.window]; + if (CGRectContainsPoint(m_keyboardEndRect, touchPoint)) + self.state = UIGestureRecognizerStateBegan; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - m_touchPressWhileKeyboardVisible = NO; - [self performSelectorOnMainThread:@selector(touchesEndedPostDelivery) withObject:nil waitUntilDone:NO]; [super touchesEnded:touches withEvent:event]; + + [self touchesEndedOrCancelled]; } - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { - m_touchPressWhileKeyboardVisible = NO; - [self performSelectorOnMainThread:@selector(touchesEndedPostDelivery) withObject:nil waitUntilDone:NO]; [super touchesCancelled:touches withEvent:event]; + + [self touchesEndedOrCancelled]; } -- (void)touchesEndedPostDelivery +- (void)touchesEndedOrCancelled { - // Do some clean-up _after_ touchEnd has been delivered to QUIView - m_keyboardHiddenByGesture = NO; + // Defer final state change until next runloop iteration, so that Qt + // has a chance to process the final touch events first, before we eg. + // scroll the view. + dispatch_async(dispatch_get_main_queue (), ^{ + // iOS will transition from began to changed by itself + Q_ASSERT(self.state != UIGestureRecognizerStateBegan); + + if (self.state == UIGestureRecognizerStateChanged) + self.state = UIGestureRecognizerStateEnded; + else + self.state = UIGestureRecognizerStateFailed; + }); +} + +- (void)gestureStateChanged:(id)sender +{ + Q_UNUSED(sender); + + if (self.state == UIGestureRecognizerStateBegan) { + qImDebug() << "hide keyboard gesture was triggered"; + UIResponder *firstResponder = [UIResponder currentFirstResponder]; + Q_ASSERT([firstResponder isKindOfClass:[QIOSTextInputResponder class]]); + [firstResponder resignFirstResponder]; + } +} + +- (void)reset +{ + [super reset]; + if (!m_keyboardVisibleAndDocked) { + qImDebug() << "keyboard was hidden, disabling hide-keyboard gesture"; self.enabled = NO; - if (qApp->focusObject()) { - // UI Controls are told to gain focus on touch release. So when the 'hide keyboard' gesture - // finishes, the final touch end can trigger a control to gain focus. This is in conflict with - // the gesture, so we clear focus once more as a work-around. - static_cast(QObjectPrivate::get(qApp->focusWindow()))->clearFocusObject(); - } } else { + qImDebug() << "gesture completed without triggering, scrolling view to cursor"; m_context->scrollToCursor(); } } @@ -353,10 +388,10 @@ void QIOSInputContext::scrollToCursor() if (!isQtApplication()) return; - if (m_keyboardListener->m_touchPressWhileKeyboardVisible) { - // Don't scroll to the cursor if the user is touching the screen. This - // interferes with selection and the 'hide keyboard' gesture. Instead - // we update scrolling upon touchEnd. + if (m_keyboardListener.state == UIGestureRecognizerStatePossible && m_keyboardListener.numberOfTouches == 1) { + // Don't scroll to the cursor if the user is touching the screen and possibly + // trying to trigger the hide-keyboard gesture. + qImDebug() << "preventing scrolling to cursor as we're still waiting for a possible gesture"; return; } @@ -426,6 +461,18 @@ void QIOSInputContext::setFocusObject(QObject *focusObject) { Q_UNUSED(focusObject); + qImDebug() << "new focus object =" << focusObject; + + if (m_keyboardListener.state == UIGestureRecognizerStateChanged) { + // A new focus object may be set as part of delivering touch events to + // application during the hide-keyboard gesture, but we don't want that + // to result in a new object getting focus and bringing the keyboard up + // again. + qImDebug() << "clearing focus object" << focusObject << "as hide-keyboard gesture is active"; + clearCurrentFocusObject(); + return; + } + reset(); if (m_keyboardListener->m_keyboardVisibleAndDocked) @@ -436,6 +483,8 @@ void QIOSInputContext::focusWindowChanged(QWindow *focusWindow) { Q_UNUSED(focusWindow); + qImDebug() << "new focus window =" << focusWindow; + reset(); [m_keyboardListener handleKeyboardRectChanged]; From 719a6fd50d590e819fa541dc5b31661b38537344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Tue, 28 Oct 2014 12:54:26 +0100 Subject: [PATCH 48/50] iOS: Allow virtual keyboard to be hidden by QInputMethod::hide() Calling the function has the same effect as dismissing the keyboard using the native keyboard dismiss button or the hide-keyboard gesture, and will result in the QIOSTextInputResponder losing first-responder status and the current focus object being cleared. QtWidgets and other parts of Qt will try to hide the keyboard during focus changes between widgets, which we already take care of when the focus object changes, so we detect the situation and ignore it, by requiring that the current focus object matches the one we've brought up the text responder for. Showing the virtual keyboard is still a no-op, as there is no way to show the virtual keyboard without a focus-object. Change-Id: Iefcb403c2b6d3da8a4df3fcd53bc1244ba9c4d23 Reviewed-by: Richard Moe Gustavsen --- src/plugins/platforms/ios/qiosinputcontext.h | 3 ++- src/plugins/platforms/ios/qiosinputcontext.mm | 21 ++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/ios/qiosinputcontext.h b/src/plugins/platforms/ios/qiosinputcontext.h index f07408db81d..1f1130f932d 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.h +++ b/src/plugins/platforms/ios/qiosinputcontext.h @@ -51,9 +51,10 @@ QT_BEGIN_NAMESPACE struct ImeState { - ImeState() : currentState(0) {} + ImeState() : currentState(0), focusObject(0) {} Qt::InputMethodQueries update(Qt::InputMethodQueries properties); QInputMethodQueryEvent currentState; + QObject *focusObject; }; class QIOSInputContext : public QPlatformInputContext diff --git a/src/plugins/platforms/ios/qiosinputcontext.mm b/src/plugins/platforms/ios/qiosinputcontext.mm index acdf6d9715c..072a49c7c57 100644 --- a/src/plugins/platforms/ios/qiosinputcontext.mm +++ b/src/plugins/platforms/ios/qiosinputcontext.mm @@ -300,8 +300,11 @@ Qt::InputMethodQueries ImeState::update(Qt::InputMethodQueries properties) QInputMethodQueryEvent newState(properties); - if (qApp && qApp->focusObject()) - QCoreApplication::sendEvent(qApp->focusObject(), &newState); + // Update the focus object that the new state is based on + focusObject = qApp ? qApp->focusObject() : 0; + + if (focusObject) + QCoreApplication::sendEvent(focusObject, &newState); Qt::InputMethodQueries updatedProperties; for (uint i = 0; i < (sizeof(Qt::ImQueryAll) * CHAR_BIT); ++i) { @@ -348,11 +351,23 @@ QRectF QIOSInputContext::keyboardRect() const void QIOSInputContext::showInputPanel() { // No-op, keyboard controlled fully by platform based on focus + qImDebug() << "can't show virtual keyboard without a focus object, ignoring"; } void QIOSInputContext::hideInputPanel() { - // No-op, keyboard controlled fully by platform based on focus + if (![m_textResponder isFirstResponder]) { + qImDebug() << "QIOSTextInputResponder is not first responder, ignoring"; + return; + } + + if (qGuiApp->focusObject() != m_imeState.focusObject) { + qImDebug() << "current focus object does not match IM state, likely hiding from focusOut event, so ignoring"; + return; + } + + qImDebug() << "hiding VKB as requested by QInputMethod::hide()"; + [m_textResponder resignFirstResponder]; } void QIOSInputContext::clearCurrentFocusObject() From 5d99beb14e01f490b38fc568806a6ad972ed5dda Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 4 Nov 2014 14:48:20 -0800 Subject: [PATCH 49/50] Place the Qt plugin metadata in a PE-COFF section with MinGW too Commit ec360d7ad90945273c7d96c9a159131dcbcd67c3 made it work for ELF platforms, Apple platforms and for MSVC, but we apparently forgot it for MinGW. This patch corrects that mistake. We won't have the PE-COFF section parser until 5.5, but this will at least making Qt 5.4-built plugins work on the faster case. Change-Id: I51b06837dc321eaa4724c9598293cf85570f67fc Reviewed-by: Lars Knoll --- src/corelib/plugin/qplugin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/plugin/qplugin.h b/src/corelib/plugin/qplugin.h index 4e9a60504a5..c424344c3a2 100644 --- a/src/corelib/plugin/qplugin.h +++ b/src/corelib/plugin/qplugin.h @@ -71,7 +71,7 @@ Q_DECLARE_TYPEINFO(QStaticPlugin, Q_PRIMITIVE_TYPE); void Q_CORE_EXPORT qRegisterStaticPluginFunction(QStaticPlugin staticPlugin); -#if defined (Q_OF_ELF) && (defined (Q_CC_GNU) || defined(Q_CC_CLANG)) +#if (defined(Q_OF_ELF) || defined(Q_OS_WIN)) && (defined (Q_CC_GNU) || defined(Q_CC_CLANG)) # define QT_PLUGIN_METADATA_SECTION \ __attribute__ ((section (".qtmetadata"))) __attribute__((used)) #elif defined(Q_OS_MAC) From ba73bde66efa588a74eaaa946e80e9de2b9e2d59 Mon Sep 17 00:00:00 2001 From: Julien Brianceau Date: Fri, 7 Nov 2014 09:41:07 +0100 Subject: [PATCH 50/50] Compile fix for QT_NO_DOCKWIDGET in QtWidgets Change-Id: I4567e4d0e5738c1de74661a325895f9eaa1d06c4 Reviewed-by: Laszlo Agocs --- src/widgets/widgets/qmainwindowlayout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp index 1cc7f201baa..8f8642a72a2 100644 --- a/src/widgets/widgets/qmainwindowlayout.cpp +++ b/src/widgets/widgets/qmainwindowlayout.cpp @@ -68,7 +68,7 @@ QT_BEGIN_NAMESPACE -#ifndef QT_NO_DOCKWIDGET +#ifdef QT_NO_DOCKWIDGET extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window); #endif