aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make sure JIT architectures lists are in syncDmitry Shachnev2014-07-072-3/+7
| | | | | | | | | We have two lists: in qv4global_p.h and qv4targetplatform_p.h. This commit blacklists OSes on x86 and x86_64 where JIT is not supported, improves support for FreeBSD and adds cross-references between these two files. Change-Id: Id3715a2ab717186e510a54e5a548dfa22120cd87 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Fix segfault on certain resize patterns in QQuickWidgetLaszlo Agocs2014-07-071-1/+8
| | | | | | | | | | Resizing to an empty size followed by another resize leads to sync() without having the context and the render control intialized. This is wrong. Task-number: QTBUG-39858 Change-Id: I5908723272165a656d192644cceb16ed253e6d3b Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* Add findChild to TestCase.Mitch Curtis2014-07-044-0/+135
| | | | | | | | | | | | | | | | | | | | | | | | | This is useful for auto tests where it's necessary to have access to dynamically created child items. For example: property Component threeItemDelegate: Text { objectName: "delegate" + styleData.index text: styleData.value } ... function test_stuff() { ... var delegate0 = findChild(item, "delegate0"); // check delegate0 for some condition... } [ChangeLog][QtTest][TestCase] Added findChild function to TestCase. Change-Id: I04a8b07c9904768c07ec12f4b03f1afb1989e054 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Verbose fatal instead of crash when the scene graph state is invalid.Gunnar Sletta2014-07-048-0/+87
| | | | | Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744 Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* V4 IR: (natural) loop detection.Erik Verbruggen2014-07-045-81/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | We perform loop detection to be able to assign to each block its loop, an chain them up from inner loop to outer loop. The new algorithm works on each basic block just once, and looks at a basic block just the number of connections it has. As it relies on the dominator tree it is more robust on actually finding al looping constructs and only those rather than relying on the statements used. It assumes that a basic block is analyzed before the one that dominate it (to guarantee finding outer loop headers before inner loop headers), so blocks are ordered to work on them in a way that guarantees that, using dominator tree depth, that is trivially available. Loop detection allows us to then schedule the loop body before the part after the loop (the header dominates both so just domination cannot choose between both), and can be used to optimize loops (either unrolling the first iteration or hoisting constant parts out of it). It also helps with generated JavaScript code: in order to simulate gotos or other unconditional branches, nested labeled do-while(false) loops are often used in combination with break/continue to "jump" between "loops". Change-Id: Idfcc74589e057b191f74880ffd309d0a9c301811 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
* Avoid race condition in QQmlEngine on shutdown.Gunnar Sletta2014-07-043-3/+15
| | | | | | | | | | | | The QQmlTypeLoader was deleted (and its thread shut down) when the QQmlEnginePrivate was destroyed. However, the QQmlTypeLoader runs a thread which would happiliy make calls on the engine and its managed data. Fix this by stopping the QQmlTypeLoader's thread right away in QQmlEngine. Task-number: QTBUG-39905 Change-Id: Ida8e95d083f79237c74b036fd3521133a9fa4ac7 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* Remove old state logic for ComboBoxFrederik Gladhorn2014-07-031-4/+0
| | | | | | | | The editable state is now part of the Accessible attached property, so this hack is no longer needed. Change-Id: Id17ec508015a8b9663804123e544f6c71ff38177 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Enable QSG_RUNTIME_DESCRIPTION by default for debug builds.Gunnar Sletta2014-07-032-5/+8
| | | | | | | | | This can be quite helpful when doing scene graph debugging with QSG_RENDERER_DEBUG=dump or using qDebug() on nodes in general. Change-Id: I6328d3f2a0fad87161c386bed14408598c986dcb Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Profiler: Fix MSVC warning about signed integers.Friedemann Kleint2014-07-031-1/+1
| | | | | | | | | src\qml\jsruntime\qv4profiling_p.h(144) : warning C4146: unary minus operator applied to unsigned type, result still unsigned Introduced by ac56e7cda724aa7463ef6ffe5f0e93bd3208cb51 . Change-Id: Ib77234d663bfafd9d55ae2dd551b0aabd6561d6d Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
* Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devFrederik Gladhorn2014-07-0259-428/+2841
|\
| * Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-0259-428/+2841
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/quick/scenegraph/openglunderqml/squircle.h src/quick/doc/src/qmltypereference.qdoc src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: Ife4f4b897044a7ffcd0710493c6aed1d87cf1ef9
| | * Skip rssnews demo if xmlpatterns is not presentLaszlo Agocs2014-07-011-1/+2
| | | | | | | | | | | | | | | | | | | | | Otherwise builds without the QtXmlPatterns module will fail. Change-Id: I11d0b84653f8d59787b09cd9c12977d18be92729 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * Merge "Merge remote-tracking branch 'origin/5.3.1' into 5.3" into ↵Frederik Gladhorn2014-06-301-0/+31
| | |\ | | | | | | | | | | | | refs/staging/5.3
| | | * Merge remote-tracking branch 'origin/5.3.1' into 5.3Frederik Gladhorn2014-06-251-0/+31
| | | |\ | | | | | | | | | | | | | | | Change-Id: Ic4418ade05ff7d89cbb375a25d9fd80353a2317a
| | | | * Add changelog for 5.3.1v5.3.1Simon Hausmann2014-06-181-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5d9c67a2f89c0c191de9e6de24d068fca17dba0e Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
| | * | | Avoid double deletion of QQuickWindowShawn Rutledge2014-06-303-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's uncertain why 4fc0df58b8458052a818e3e970a97457882808e6 added the call to sendPostedEvents(0, QEvent::DeferredDelete) but now we can see that it easily results in the destructor calling itself, and therefore double-deleting its own d_ptr. removePostedEvents seems safer to ensure that the window cannot be doubly deleted, in spite of the qdoc warning that "You should never need to call this function." Task-number: QTBUG-33436 Change-Id: I4873ebe179dde551407eba1f6baac5f03ca7f177 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| | * | | Fix intermittent crash with older MinGW releasesRobin KAY2014-06-271-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An alternate code-path was previously added to work around a bad signature for the SHParseDisplayName() function in older and non-w64 versions of the MinGW headers. This code-path incorrectly passed a single rather double indirect pointer to the third argument of that function causing it to produce corrupt data and subsequently crash. This change modifies the code to instead cast a pointer of the correct type to the incorrect type expected by the headers. Task-number: QTBUG-39793 Change-Id: I4d65dea4fc38d7e885468cd23434d8570c311fc2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * | | Doc: Add documentation for the Maroon in Trouble exampleLeena Miettinen2014-06-275-4/+851
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I8b272894ef6374aeb6ec09275d7ce96d16a6be0f Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| | * | | Merge remote-tracking branch 'origin/stable' into 5.3Frederik Gladhorn2014-06-253-5/+7
| | |\ \ \ | | | |/ / | | |/| | | | | | | Change-Id: Iafccb173a9b5569bc9fd1022abb210955519fc61
| | | * | Update QtQuick import value to 2.3Samuel Gaist2014-06-232-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current documentation uses import QtQuick 2.2 which is wrong since there are new APIs like mipmap for the QML Image element. Task-number: QTBUG-39302 Change-Id: I3cc3a1522efd85090c3b4011429fa16b95e79435 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | | * | Set locked state while locking for grab.Gunnar Sletta2014-06-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If4b8fa77e6e3a288487a011e83791ad6a189675c Reviewed-by: Manish Sharma <83.manish@gmail.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * | | Fix crash when deleting component in Component.onComplete through loaderSimon Hausmann2014-06-232-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a regression introduced with Qt 5.3.0. The recursion watcher code that is supposed to handle the test case of QTBUG-39775 can detect the recursion into the object creator. However the boolean that indicates the recursion is a member of a structure that's deleted afterwards. To avoid access to deleted memory, this patch simply reference counts data structure shared between the creators and also wraps the recursion watcher into a convenience class that also increases/decreases the reference count accordingly. Change-Id: I8d2e3e200ab1295e89d951e09f187d382a056d5a Task-number: QTBUG-39775 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| | * | | Fix memory leak in QQmlComponent::createObjectSimon Hausmann2014-06-232-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression introduced with 5.3.0. Prevent the leak of the object creator on repeated createObject calls by using a scoped pointer. Change-Id: Ib4fe7c9c6926c2390f7ae78f3287bb7da5f60527 Task-number: QTBUG-39742 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| | * | | QQmlObjectCreator: Clear sharedState componentAttached in destruction/clearAlbert Astals Cid2014-06-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes crash when delegate is being deleted while not totally instantiated Valgrind trace: ==15748== Invalid write of size 8 ==15748== at 0x57A02DB: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:985) ==15748== by 0x57A0318: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:989) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D348A5: QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x6689607: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1B012: QQuickItem::event(QEvent*) (qquickitem.cpp:7114) ==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171) ==15748== by 0x407A74: main (main.cpp:227) ==15748== Address 0x1be83870 is 64 bytes inside a block of size 112 free'd ==15748== at 0x4C2C2BC: operator delete(void*) (vg_replace_malloc.c:503) ==15748== by 0x5815FB0: QQmlObjectCreator::~QQmlObjectCreator() (qqmlobjectcreator.cpp:156) ==15748== by 0x57A52AA: QQmlIncubatorPrivate::clear() (qscopedpointer.h:62) ==15748== by 0x57A53C6: QQmlIncubator::clear() (qqmlincubator.cpp:577) ==15748== by 0x5DCEA20: QQuickLoader::setActive(bool) (qquickloader.cpp:350) ==15748== by 0x5DCF6D2: QQuickLoader::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickloader_p.cpp:277) ==15748== by 0x579DC66: QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1322) ==15748== by 0x579E76E: QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1246) ==15748== by 0x579F2F9: QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1578) ==15748== by 0x580CF69: QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlbinding.cpp:266) ==15748== by 0x580D5BD: QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (qqmlbinding_p.h:105) ==15748== by 0x57E6156: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:81) ==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76) ==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76) ==15748== by 0x5788FA3: QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (qqmlengine.cpp:721) ==15748== by 0x6688232: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x57882A7: QQmlData::destroyed(QObject*) (qqmlengine.cpp:1658) ==15748== by 0x668FD7D: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x55E8B64: QQmlDMAbstractItemModelData::~QQmlDMAbstractItemModelData() (qqmladaptormodel.cpp:95) ==15748== by 0x58643DC: QQmlDelegateModelPrivate::release(QObject*) (qqmldelegatemodel.cpp:520) ==15748== by 0x586440C: QQmlDelegateModel::release(QObject*) (qqmldelegatemodel.cpp:536) ==15748== by 0x5DFED4F: QQuickItemViewPrivate::releaseItem(FxViewItem*) (qquickitemview.cpp:2349) ==15748== by 0x5DBAB94: QQuickGridViewPrivate::addVisibleItems(double, double, double, double, bool) (qquickgridview.cpp:497) ==15748== by 0x5DFC94E: QQuickItemViewPrivate::refill(double, double) (qquickitemview.cpp:1751) ==15748== by 0x5DFF26A: QQuickItemViewPrivate::layout() (qquickitemview.cpp:1859) ==15748== by 0x5D275F7: QQuickWindowPrivate::polishItems() (qquickwindow.cpp:271) ==15748== by 0x5D02B7D: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (qsgthreadedrenderloop.cpp:1150) ==15748== by 0x5D03167: QSGThreadedRenderLoop::event(QEvent*) (qsgthreadedrenderloop.cpp:1235) ==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B00CC: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B03F0: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171) ==15748== by 0x407A74: main (main.cpp:227) Change-Id: I2c7d38fa5a2566520173bff7ad4e5f9c966d083e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| | * | | Initialize velocityAlbert Astals Cid2014-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes valgrind warning ==21054== Conditional jump or move depends on uninitialised value(s) ==21054== at 0x5DAE6D4: QQuickListView::viewportMoved(QFlags<Qt::Orientation>) (qquicklistview.cpp:2789) ==21054== by 0x5D9ED76: QQuickFlickablePrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickflickable.cpp:296) ==21054== by 0x5DFC438: QQuickItemViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickitemview.cpp:1158) ==21054== by 0x5DAC6A2: QQuickListViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquicklistview.cpp:1369) ==21054== by 0x5D0D5F2: QQuickItem::geometryChanged(QRectF const&, QRectF const&) (qquickitem.cpp:3365) ==21054== by 0x5D11822: QQuickItem::setY(double) (qquickitem.cpp:5858) ==21054== by 0x5C84FED: QQuickTimeLinePrivate::advance(int) (qquicktimeline.cpp:826) ==21054== by 0x5C85155: QQuickTimeLine::updateCurrentTime(int) (qquicktimeline.cpp:702) ==21054== by 0x58576FA: QAbstractAnimationJob::setCurrentTime(int) (qabstractanimationjob.cpp:497) ==21054== by 0x5857BDD: QQmlAnimationTimer::updateAnimationsTime(long long) (qabstractanimationjob.cpp:119) ==21054== by 0x640C7EC: QUnifiedTimer::updateAnimationTimers(long long) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x58570C8: QQmlAnimationTimer::startAnimations() (qabstractanimationjob.cpp:152) ==21054== by 0x66895B5: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==21054== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==21054== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==21054== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==21054== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) Change-Id: I72e101140b8bee0b6867cf92902e70660c8d21ab Reviewed-by: Martin Jones <martin.jones@jollamobile.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
| | * | | Improve RSS News Qt Quick DemoTopi Reinio2014-06-2024-281/+515
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add main.cpp for launching, use Qt resource system - Update feed URLs - New layout and images - Make the example scalable, react to orientation changes - Use graphical effects and animations - Display time and link for each news item - Fix license headers to use the correct license Task-number: QTBUG-37203 Change-Id: I6f8941cbdaed78a3dee30305496b3ea7777ba3e3 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
| | * | | Fix QQmlComponent detailed description.Mitch Curtis2014-06-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | setParent() => setParentItem() Task-number: QTBUG-39687 Change-Id: I67dc871a6d3b10af321d1f7b08921dcad0a6f19d Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
| | * | | Add a QQuickWidget - QQuickView comparison exampleLaszlo Agocs2014-06-1911-1/+1201
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Besides serving as a side-by-side test tool for QQuickView and QQuickWidget (including multisampling), it also demonstrates some useful practices for rendering 3D content via QQuickFramebufferObject. Done-with: Paul Olav Tvete <paul.tvete@digia.com> Change-Id: Ie73e998ee91e32ef1535dd6f0f65c8a69addcc5e Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
| | * | | Fix crash in QObjectWrapperOleg Shparber2014-06-191-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can happen during QObject destruction, when QObjectPrivate::deleteChildren() itself sets entries in the children list to zero when deleting. These zeros cause crash in markChildQObjectsRecursively(). Task-number: QTBUG-38635 Change-Id: I29ad9e793b78ca4e8d73fbb125f46db1b8292f20 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
| | * | | Use QSignalSpy instead of waitFor in tst_qpacketprotocolUlf Hermann2014-06-191-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QTcpServer::waitForNewConnection() blocks the event loop and prevents the client, that runs in the same event loop, from sending anything. Also, if the connection is established before waitForNewConnection() is called we're going to wait for another connection, which will never happen. It's not clear if this is actually the cause of the test failures but blocking the event loop is generally a bad idea and the last change to the test that actually made a difference to the functionality added exactly that line, see b36bbe3626bc68ac267d7653fa6408a8f258251d. Task-number: QTBUG-39655 Change-Id: Ic03a4e7cac78155532588476b99449664c343ee2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
| | * | | Bump versionOswald Buddenhagen2014-06-181-1/+1
| | | |/ | | |/| | | | | | | | | Change-Id: I48d18a93971f4595b295aa6a1f70dfbe2b2266a1
| | * | Separate renderer out in "OpenGL under QML" example.Gunnar Sletta2014-06-163-104/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The example was promoting very bad practice. Change-Id: Ibb83780ec33e59ee5aabf65a775705dd0da681e6 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
| | * | Use newest QtQuick in rssnews demoNiels Weber2014-06-165-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-37203 Change-Id: I720e510b875f63eb5c184cd7d8b9eb127674d505 Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
| | * | Merge remote-tracking branch 'origin/stable' into 5.3Sergio Ahumada2014-06-141-0/+8
| | |\| | | | | | | | | | | | | Change-Id: Id783915b0139a90ecfb99f8298b1ff5cf506a1dd
| | | * Fix copy-paste errors.Richard J. Moore2014-06-140-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix two copy-paste errors identified by static analysis at http://www.viva64.com/en/b/0251/ Change-Id: I359a4635a4a837995f9ed9bf0182a1ca543725df Reviewed-by: Daniel Molkentin <daniel@molkentin.de> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
| | | * Fix Stmt:Data object leakLiang Jian2014-06-131-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | call Stmt::destroyData() whenever a Stmt object is to be removed in BasicBlock to delete the Stmt::Data object hold in the Stmt object. Change-Id: I59c939d79b935153e6f8613e54f149120f5198f5 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | | | Use qNextPowerOfTwo instead of reimplementing itAllan Sandfeld Jensen2014-07-022-29/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch uses the new shared qNextPowerOfTwo implementation introduced in qtbase. Change-Id: I831d056f584897a99df2ceb8c1d840764464e344 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | | Fix output of swap times for basic render loopUlf Hermann2014-07-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The swap time was treated as absolute by the qCDebug output, but was actually relative. Change-Id: Ia1539b8f8305ca37430022803419eb12a05934cb Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | | Properly collect polish timings from all render loopsUlf Hermann2014-07-0211-26/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the polish timings were collected incorrectly from the windows render loop and not at all from the basic render loop. By collecting the polish times at the right places we can get rid of the 2-argument profile macro as well. Task-number: QTBUG-39876 Change-Id: I0b4aaf87162c652b8dcea6cd4f54db053f8312fe Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | | Use the same length for all scene graph numeric dataUlf Hermann2014-07-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Having one int between all the qint64 is really not worth it. Also, the clients were not picking that up correctly. Change-Id: I9a9bc1c26c7518e1b666b788fa41f83c714a6db5 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | | Tools and examples: consistently use organization name QtProjectShawn Rutledge2014-07-023-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This affects the location of the QSettings files or registry entries. Other parts of Qt are using this organization name so it's good to have all the settings in the same place. [ChangeLog][QtQuick] tools and examples consistently use the QtProject organization name Change-Id: I1fae4eaed0248411fe95dda9572d38006648b162 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* | | | QQuickSystemPalette: use QGuiApplication::paletteChanged()J-P Nurmi2014-07-022-44/+15
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | Use the newly introduced signal instead of filtering events of the whole application. Change-Id: I876268145485ba07316e916d26a93d53c464ef3a Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | | Remove redundant sse2 math flagsAllan Sandfeld Jensen2014-07-011-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Qtbase already enables sse2 math by default now. This version is no longer needed and may actually hurt performance by triggering scheduling for pentium4. Change-Id: Ib3b6781fb0b92c1351344cc2d2f13101fa2b632b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Add grabFramebuffer() to QQuickWidget and use it in the autotestLaszlo Agocs2014-07-0111-0/+351
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces the need for a grab function in QQuickWidget. The render control has one already so there is no reason for not exposing this in QQuickWidget too. This also means that a relatively meaningful autotest can be now be added. [ChangeLog][QtQuick] Added QQuickWidget::grabFramebuffer() for capturing the content into a QImage. Task-number: QTBUG-37589 Change-Id: I5ca8192c0ef8dab4f076a4db27b64aebe3359bb8 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Avoid direct GL calls in Qt Quick examples and testsLaszlo Agocs2014-07-018-16/+30
| | | | | | | | | | | | | | | | | | Change-Id: I204a5513708aeff5cae00d06d4f0c27c20a13ace Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Docs: clarify the relation between default alpha and format.Laszlo Agocs2014-07-011-64/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reformat the new API docs the get rid of the unnecessary stars. And fix some typos. Change-Id: I09dcb3bea55cfd7b9209a4e0ad43e28a47fd1fa4 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* | | Use categorized logging for all things scenegraph.Gunnar Sletta2014-07-0111-332/+261
| | | | | | | | | | | | | | | Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | | Avoid deadlock during window hiding.Gunnar Sletta2014-07-011-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Because we do event processing in polishAndSync, hide() or handleObscurity() might have been called by the time we continue execution. We already handled that windowDestroyed() was called. Change-Id: If45bcf3fa18cef1a60ca31bc26d3830045f581d9 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* | | Mark failing testcases with QEXPECT_FAIL for windowsGunnar Sletta2014-07-011-0/+4
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-39961 Change-Id: I981159921b38ac2af37e8a6d715f0d67d6f01da8 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* | | QQuickApplication: do not filter LayoutDirectionChange eventsJ-P Nurmi2014-06-252-35/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The newly introduced QGuiApplication::layoutDirectionChanged() is much cheaper to use than filtering events of the application object. Change-Id: I356c94cc6bea806bf3644c31c2610501d90f6c35 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>