| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
examples/quick/scenegraph/openglunderqml/squircle.h
src/quick/doc/src/qmltypereference.qdoc
src/quick/scenegraph/qsgthreadedrenderloop.cpp
Change-Id: Ife4f4b897044a7ffcd0710493c6aed1d87cf1ef9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |\
| | |
| | |
| | | |
Change-Id: Iafccb173a9b5569bc9fd1022abb210955519fc61
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: If4b8fa77e6e3a288487a011e83791ad6a189675c
Reviewed-by: Manish Sharma <83.manish@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
setParent() => setParentItem()
Task-number: QTBUG-39687
Change-Id: I67dc871a6d3b10af321d1f7b08921dcad0a6f19d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| |\|
| | |
| | |
| | | |
Change-Id: Id783915b0139a90ecfb99f8298b1ff5cf506a1dd
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before this patch it was not possible to assign an integer value to
QList<qreal> property, while it worked for non-list properties.
Change-Id: Iab00288f7d78f4f76056ab4291700d7f51626de4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ia3fc01f11ff28441d4ef095b520297a73e3399d6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It has been reported multiple times (with different back traces) that
the QQmlDelegateModel tries to access a dangling QQmlContext pointer.
The scenarios for reaching this point differ slightly, one such scenario
is very late model activity during the scene destruction. The provided
test-case simulates that and the provided patch guards the QQmlContext
in a QPointer.
Task-number: QTBUG-39780
Change-Id: I594ee4918cd1b78c5db5c164314e85e9eea99fbd
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a regression from Qt 5.1/5.0 introduced with 5.2. Private slots/methods
such as QObject::_q_reRegisterTimers() as well as QObject::deleteLater() are
not suitable for calls from JavaScript. deleteLater() in particular is covered
by the destroy() replacement slot.
Task-number: QTBUG-39744
Change-Id: I9b25f3c0d4095ba8e2e8e5ee47e37903b5def1f9
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickRenderControl allows rendering Qt Quick 2 scenes into framebuffer
objects which can then be used in arbitrary ways in Qt-based or 3rd party
OpenGL renderers.
[ChangeLog][QtQuick] Introduced QQuickRenderControl as a public API.
Task-number: QTBUG-37944
Change-Id: I84262243b261b35cefdf67ec6bba8127a0f29275
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After running register allocation, the IR is printed one last time (when
the environment variable QV4_SHOW_IR is set). This will now use the
platform defined register names, e.g. "ebx" or "d2".
Change-Id: I2f2f4536d1de940a69690056e5165d38fa7910bb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Listening to QGuiApplication::applicationStateChanged() is enough, no
need to do expensive event filtering for listening to application state
changes.
Change-Id: Iba71bc8cefec236f2f7e2e25c57c5c6b9c9fb1ea
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some implementations will use the initialization to set
constant uniforms like texture locations, so bind the
program before so this will work.
Task-number: QTBUG-39472
Change-Id: I677c5aeefe68535bd4805e83b93308d0bd090030
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I67667b74672b94b951361bf2a446476edf44b826
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Not only is it preferable for the target of a phi-node to be stored in
the same location as one of the sources, but the same yields for the
sources. For example, in a loop, it is preferable to store the result
of a value used in a phi-node in the loop header to be stored in the
same location as that phi-node's target. Doing that will eliminate extra
moves that are generated to resolve differences between edges.
Change-Id: I0cb5fbe8915d602ac9b9a2a7e8b95cf47b1efb68
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I26df4f1b8417c6b075d81eaf118669a4103503e2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I754f785625a534886c6c40f1e850b90cf2418297
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Callee-saved registers won't get clobbered by a call, so any value
stored in it will survive the call.
Change-Id: I2b61b84617b01bf7ce7e81cd0119a6da689ee9d5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|\ \ \ |
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/quickwidgets/qquickwidget.cpp
Change-Id: Id4b080aea713df68608847bb82570231e37ce536
|
| | |\|
| | | |
| | | |
| | | | |
Change-Id: I9cff3f4d42d58157fd8d17ec172b6a74dc386508
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
EllipseShape was theated like rectangles if set as shape in an Affector
due to an unimplemented containment check (was marked as TODO in source
code). This fix implements the missing check.
Change-Id: I8df1406f147c56e799531fccf4963110c9fdd8ef
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Make text input functional out of the box.
Both QGraphicsView and QDeclarativeView (QQuick1) do this so there
is no reason to do this differently for QQuickWidget. For QQuickWindow
and QQuickView the issue does not exist in the first place, they will
accept the focus by default.
Task-number: QTBUG-39605
Change-Id: I74f01b85342df51aa3c0e80baf58ba1619c63438
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Rewrite the introductory list.
- Rewrite the section about application startup code.
- Flatten sections. Previously, there were two \section1 headings:
"JavaScript Expressions in QML Objects" and "Running JavaScript at
Startup". This split wasn't very natural, as startup code needs to be
called from an object, while imported JS files aren't in objects.
- Some minor formatting/wording changes in unrelated areas.
Change-Id: Ie08f94e2ea77ca84f80491c782bc30612f7ef698
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Failing to do so would cause it to not update its size when set to 1x1
which in turn would cause it to never update its texture, causing crashes
later during rendering.
Task-number: QTBUG-39555
Change-Id: I099d9ef2d6968ece21f7c03819abfd6685bec430
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I47ad9df1550649131ac5379acbf7d133088c60a8
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The 'invalid' token didn't really serve a purpose. If a string contains
0 for any reason, it one has reached the end.
Task-number: QTBUG-39505
Change-Id: I3fc9b8f28dc223386a72bbfa28f70fcca0fde223
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Fix regression when multiple items are set to Keys.forwardTo attached
property. QML items accept key events automatically and event should be
by default in accepted state when entering handler.
Task-number: QTBUG-39168
Change-Id: Ibf6c163c4059269996113634efa48ad2fe4d838d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a quick-fix. The real issue is that QWidget and QWindow
reacts differently when a QDragEnterEvent is rejected.
Change-Id: I3e3e50610c14acfaada9c1b243b88cfe9eae54b2
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The threaded render loop continues to run the polish-and-sync timer for
ever in case the QQuickWindow is destroyed while the timer is active.
Instead of pumping the timer events on the render thread for ever, the
timer has to be killed somewhere.
Change-Id: I8e458624e26ebfacb6cc69a4f2fbb3da57ae5e0e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-33985
Change-Id: Id6a2a51467ee5de44bf51fb48e3f9346a832f8f2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use a multisampled fbo when the requested format has samples > 0.
Resolving happens after each rendering of the scene.
The blit to the temporary non-multisampled fbo could be avoided,
in theory, by sending the fbo instead of the texture id down the
stack and performing a blit directly to fbo #0. This however
involves a number of potential issues, for example due to the
non-sharability of FBOs between contexts. Hence it is left as a
future exercise.
Task-number: QTBUG-39187
Change-Id: Iae98b969bcbc3bb57e6d73288496f5428913c826
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change 6572d4e50d73ac60a8974d07de74c27a7f99ebef moved the
addressTempRegister from r3 to r10, so that calculated calls would not
overwrite the fourth argument of a call. However, JSC's Yarr JIT might
also use it for certain loads, so it also needs to save r10.
Task-number: QTBUG-39289
Change-Id: I0a4e725b6b11ab5e772330662049668bed009c05
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Given the following tree:
OpacityNode
|
TransformNode (which is a batch root)
|
GeometryNode
If both opacity and transform nodes were changed this frame, we would
hit the optimized "scrolling" path while traversing the tree and abort
updating that subtree. As a result the opacity change was not
propegated to the geometry node and it would be rendered incorrectly.
Fix this by skipping the optimized path when there are opacity changes
in an ancestor.
Task-number: QTBUG-39190
Change-Id: Ieaebfe3de62b961204bd3103fe9913d60e75e412
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Create the QOffscreenSurface together with, and after, the QOpenGLContext.
This is essential to get a surface that is compatible with the context and
is in line with the QOffscreenSurface usage recommendation from the docs.
Otherwise, if the offscreen surface gets created first, without
knowing what _actual_ format (e.g. EGL configuration) the context
will use, the result is an incompatible surface and context on
systems that offer a different set of configurations for window and
pbuffer surfaces.
This fixes QQuickWidget on EGL implementations that offer both 16 and 24
bit pbuffer configs, but only 24 (or 32) bit window configs.
Task-number: QTBUG-39474
Change-Id: I43925d2b25e28d26d172ce9d22651c25b281b832
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
|