-
Notifications
You must be signed in to change notification settings - Fork 197
Calls order of q_invokable method #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 6.2
Are you sure you want to change the base?
Conversation
Using std::binary_search has the requirement that the passed
range fulfils ordering requirements, which was not the case
for the cppKeywords array here.
As the QString doc says [1]:
> QStrings can be compared using overloaded operators such as operator<(),
> operator<=(), operator==(), operator>=(), and so on. Note that
> the comparison is based exclusively on the numeric Unicode
> values of the characters. It is very fast, but is not what a
> human would expect; (...)
Therefore, sort the array accordingly and add an assert to
ensure it will remain sorted.
Fixes an crash/assert when building qtdeclarative with
CXXFLAGS='-D_GLIBCXX_DEBUG':
/usr/include/c++/13/bits/stl_algo.h:2243:
In function:
bool std::binary_search(_FIter, _FIter, const _Tp&) [with _FIter = const
QString*; _Tp = QStringView]
Error: elements in iterator range [first, last) are not partitioned by the
value __val.
Objects involved in the operation:
iterator "first" @ 0x7ffc4a2c4f18 {
type = QString const* (constant iterator);
}
iterator "last" @ 0x7ffc4a2c4f10 {
type = QString const* (constant iterator);
}
Aborted (core dumped)
ninja: build stopped: subcommand failed.
GDB backtrace:
Program terminated with signal SIGABRT, Aborted.
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
44 ./nptl/pthread_kill.c: No such file or directory.
(gdb) bt
#0 __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
#1 0x00007f307e0a815f in __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
#2 0x00007f307e05a472 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3 0x00007f307e0444b2 in __GI_abort () at ./stdlib/abort.c:79
#4 0x00007f307e2a300d in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00005639ff90471d in std::binary_search<QString const*, QStringView> (__first=0x5639ffa1a9c0 <QmltcVisitor::checkForNamingCollisionsWithCpp(QDeferredSharedPointer<QQmlJSScope const> const&)::cppKeywords>,
__last=0x5639ffa1b2c0 <guard variable for QmltcVisitor::checkForNamingCollisionsWithCpp(QDeferredSharedPointer<QQmlJSScope const> const&)::cppKeywords>, __val=...) at /usr/include/c++/13/bits/stl_algo.h:2243
#6 0x00005639ff8fb837 in operator() (__closure=0x7ffc4a2c52bf, word=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:764
#7 0x00005639ff8fb89e in operator() (__closure=0x7ffc4a2c52a0, name=..., errorPrefix=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:768
#8 0x00005639ff8fc99b in QmltcVisitor::checkForNamingCollisionsWithCpp (this=0x7ffc4a2c6070, type=...) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:787
#9 0x00005639ff8f9dea in QmltcVisitor::endVisit (this=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltcvisitor.cpp:341
#10 0x00007f307f6636fa in QQmlJS::AST::UiProgram::accept0 (this=0x563a002e0628, visitor=0x7ffc4a2c6070) at /home/michi/development/git/qt5/qtdeclarative/src/qml/parser/qqmljsast.cpp:1193
#11 0x00007f3080159b8f in QQmlJS::AST::Node::accept (this=0x563a002e0628, visitor=0x7ffc4a2c6070)
at /home/michi/development/git/qt5/qtbase/include/QtQml/6.7.0/QtQml/private/../../../../../../qtdeclarative/src/qml/parser/qqmljsast_p.h:272
#12 0x00007f3080212f4b in QQmlJSTypeResolver::init (this=0x7ffc4a2c5b50, visitor=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/src/qmlcompiler/qqmljstyperesolver.cpp:173
#13 0x00005639ff8f0bd3 in QmltcTypeResolver::init (this=0x7ffc4a2c5b50, visitor=0x7ffc4a2c6070, program=0x563a002e0628) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/qmltctyperesolver.cpp:19
#14 0x00005639ff8c02d4 in main (argc=23, argv=0x7ffc4a2c7a68) at /home/michi/development/git/qt5/qtdeclarative/tools/qmltc/main.cpp:269
[1] https://doc.qt.io/qt-6/qstring.html#comparing-strings
Change-Id: I82ebbcdca4ab90155b935f9af24b3a3821134563
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
Dmitrii Akshintsev seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account. You have signed the CLA already but the status is still pending? Let us recheck it. |
Use dimmer as a context object rather than the test itself, which
outlives it.
The backtrace was:
FAIL! : tst_QQuickPopup::Basic::fadeDimmer(modal) The computed value is expected to be greater than the baseline, but is not
Computed (opacityChangeCount): 2
Baseline (2) : 2
Loc: [/Users/mitch/dev/qt-dev2/qtdeclarative/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp(2629)]
=================================================================
==68826==ERROR: AddressSanitizer: stack-use-after-scope on address 0x00016b7f7140 at pc 0x000104743c68 bp 0x00016b7ecfd0 sp 0x00016b7ecfc8
READ of size 4 at 0x00016b7f7140 thread T0
#0 0x000104743c64 in tst_QQuickPopup::fadeDimmer()::$_0::operator()() const tst_qquickpopup.cpp:2625
#1 0x000104743bc0 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()::operator()() const qobjectdefs_impl.h:116
#2 0x000104743b64 in void QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()>(void**, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()&&) qobjectdefs_impl.h:65
#3 0x000104743ab4 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**) qobjectdefs_impl.h:115
#4 0x000104743930 in void QtPrivate::FunctorCallable<tst_QQuickPopup::fadeDimmer()::$_0>::call<QtPrivate::List<>, void>(tst_QQuickPopup::fadeDimmer()::$_0&, void*, void**) qobjectdefs_impl.h:337
#5 0x000104743848 in QtPrivate::QCallableObject<tst_QQuickPopup::fadeDimmer()::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:547
#6 0x00011694273c in QtPrivate::QSlotObjectBase::call(QObject*, void**) qobjectdefs_impl.h:461
#7 0x000116e49454 in void doActivate<false>(QObject*, int, void**) qobject.cpp:4284
#8 0x000116e467a0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) qobject.cpp:4344
#9 0x00010c1462d4 in QQuickItem::opacityChanged() moc_qquickitem.cpp:1019
#10 0x00010c1461c8 in QQuickItem::setOpacity(double) qquickitem.cpp:6517
#11 0x00010c168638 in QQuickItem::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) moc_qquickitem.cpp:850
#12 0x000113847100 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:413
#13 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#14 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#15 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#16 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#17 0x00010c9949ac in QQuickAnimationPropertyUpdater::setValue(double) qquickanimation.cpp:2740
#18 0x00010c992444 in QQuickBulkValueAnimator::updateCurrentTime(int) qquickanimation.cpp:2069
#19 0x000114345428 in QAbstractAnimationJob::setCurrentTime(int) qabstractanimationjob.cpp:481
#20 0x000114349c3c in QAbstractAnimationJob::setState(QAbstractAnimationJob::State) qabstractanimationjob.cpp:367
#21 0x00011434bc34 in QAbstractAnimationJob::start() qabstractanimationjob.cpp:514
#22 0x00010c9ff568 in QQuickBehavior::write(QVariant const&) qquickbehavior.cpp:419
#23 0x00010c9ff88c in non-virtual thunk to QQuickBehavior::write(QVariant const&) qquickbehavior.cpp
#24 0x000113f53b7c in QQmlInterceptorMetaObject::doIntercept(QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:392
#25 0x000113f532e4 in QQmlInterceptorMetaObject::intercept(QMetaObject::Call, int, void**) qqmlvmemetaobject_p.h:153
#26 0x000113f59788 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:750
#27 0x0001138474d0 in void QQmlPropertyData::doMetacall<(QMetaObject::Call)2>(QObject*, int, void**) const qqmlpropertydata_p.h:395
#28 0x000113847128 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:415
#29 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#30 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#31 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#32 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#33 0x000113c38f84 in QQmlProperty::write(QVariant const&) const qqmlproperty.cpp:1863
#34 0x000113c39358 in QQmlProperty::write(QObject*, QString const&, QVariant const&) qqmlproperty.cpp:1880
#35 0x000107c1db04 in QQuickPopupPrivate::hideDimmer() qquickpopup.cpp:1290
#36 0x000107c16a68 in QQuickPopupPrivate::prepareExitTransition() qquickpopup.cpp:821
#37 0x000107c1e038 in QQuickPopupTransitionManager::transitionExit() qquickpopup.cpp:1326
#38 0x000107c23fd4 in QQuickPopup::setVisible(bool) qquickpopup.cpp:2496
#39 0x000107c104d8 in QQuickPopup::close() qquickpopup.cpp:1408
#40 0x000107c1ba80 in QQuickPopup::setParentItem(QQuickItem*) qquickpopup.cpp:2180
#41 0x000107c1b324 in QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp:1063
#42 0x000107c1bb8c in non-virtual thunk to QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp
#43 0x00010c117f70 in void QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*>(QFlags<QQuickItemPrivate::ChangeType>, void (QQuickItemChangeListener::*&&)(QQuickItem*), QQuickItem*&&) qquickitem_p.h:413
#44 0x00010c113d7c in QQuickItem::~QQuickItem() qquickitem.cpp:2420
#45 0x00010c50e3e8 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#46 0x00010c4ed840 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#47 0x00010c4ed86c in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#48 0x00010c4da1c0 in QQuickWindow::~QQuickWindow() qquickwindow.cpp:1197
#49 0x00010c531f34 in QQuickWindowQmlImpl::~QQuickWindowQmlImpl() qquickwindowmodule.cpp:73
#50 0x00010cf2d4f4 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:104
#51 0x00010cf2d3e0 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#52 0x00010cf2d40c in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#53 0x00010472efa8 in QScopedPointerDeleter<QObject>::cleanup(QObject*) qscopedpointer.h:24
#54 0x00010472eefc in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:81
#55 0x00010466f0e8 in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:79
#56 0x00010471246c in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#57 0x00010468ff88 in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#58 0x0001046a953c in tst_QQuickPopup::fadeDimmer() tst_qquickpopup.cpp:2635
[...]
Amends ef8bde8.
Pick-to: 6.8 6.9 6.10
Change-Id: Ie5c49b7d9ecd3c74f822590d296062b516563391
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Use dimmer as a context object rather than the test itself, which
outlives it.
The backtrace was:
FAIL! : tst_QQuickPopup::Basic::fadeDimmer(modal) The computed value is expected to be greater than the baseline, but is not
Computed (opacityChangeCount): 2
Baseline (2) : 2
Loc: [/Users/mitch/dev/qt-dev2/qtdeclarative/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp(2629)]
=================================================================
==68826==ERROR: AddressSanitizer: stack-use-after-scope on address 0x00016b7f7140 at pc 0x000104743c68 bp 0x00016b7ecfd0 sp 0x00016b7ecfc8
READ of size 4 at 0x00016b7f7140 thread T0
#0 0x000104743c64 in tst_QQuickPopup::fadeDimmer()::$_0::operator()() const tst_qquickpopup.cpp:2625
#1 0x000104743bc0 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()::operator()() const qobjectdefs_impl.h:116
#2 0x000104743b64 in void QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()>(void**, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()&&) qobjectdefs_impl.h:65
#3 0x000104743ab4 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**) qobjectdefs_impl.h:115
#4 0x000104743930 in void QtPrivate::FunctorCallable<tst_QQuickPopup::fadeDimmer()::$_0>::call<QtPrivate::List<>, void>(tst_QQuickPopup::fadeDimmer()::$_0&, void*, void**) qobjectdefs_impl.h:337
#5 0x000104743848 in QtPrivate::QCallableObject<tst_QQuickPopup::fadeDimmer()::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:547
#6 0x00011694273c in QtPrivate::QSlotObjectBase::call(QObject*, void**) qobjectdefs_impl.h:461
#7 0x000116e49454 in void doActivate<false>(QObject*, int, void**) qobject.cpp:4284
#8 0x000116e467a0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) qobject.cpp:4344
#9 0x00010c1462d4 in QQuickItem::opacityChanged() moc_qquickitem.cpp:1019
#10 0x00010c1461c8 in QQuickItem::setOpacity(double) qquickitem.cpp:6517
#11 0x00010c168638 in QQuickItem::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) moc_qquickitem.cpp:850
#12 0x000113847100 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:413
#13 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#14 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#15 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#16 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#17 0x00010c9949ac in QQuickAnimationPropertyUpdater::setValue(double) qquickanimation.cpp:2740
#18 0x00010c992444 in QQuickBulkValueAnimator::updateCurrentTime(int) qquickanimation.cpp:2069
#19 0x000114345428 in QAbstractAnimationJob::setCurrentTime(int) qabstractanimationjob.cpp:481
#20 0x000114349c3c in QAbstractAnimationJob::setState(QAbstractAnimationJob::State) qabstractanimationjob.cpp:367
#21 0x00011434bc34 in QAbstractAnimationJob::start() qabstractanimationjob.cpp:514
#22 0x00010c9ff568 in QQuickBehavior::write(QVariant const&) qquickbehavior.cpp:419
#23 0x00010c9ff88c in non-virtual thunk to QQuickBehavior::write(QVariant const&) qquickbehavior.cpp
#24 0x000113f53b7c in QQmlInterceptorMetaObject::doIntercept(QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:392
#25 0x000113f532e4 in QQmlInterceptorMetaObject::intercept(QMetaObject::Call, int, void**) qqmlvmemetaobject_p.h:153
#26 0x000113f59788 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:750
#27 0x0001138474d0 in void QQmlPropertyData::doMetacall<(QMetaObject::Call)2>(QObject*, int, void**) const qqmlpropertydata_p.h:395
#28 0x000113847128 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:415
#29 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#30 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#31 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#32 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#33 0x000113c38f84 in QQmlProperty::write(QVariant const&) const qqmlproperty.cpp:1863
#34 0x000113c39358 in QQmlProperty::write(QObject*, QString const&, QVariant const&) qqmlproperty.cpp:1880
#35 0x000107c1db04 in QQuickPopupPrivate::hideDimmer() qquickpopup.cpp:1290
#36 0x000107c16a68 in QQuickPopupPrivate::prepareExitTransition() qquickpopup.cpp:821
#37 0x000107c1e038 in QQuickPopupTransitionManager::transitionExit() qquickpopup.cpp:1326
#38 0x000107c23fd4 in QQuickPopup::setVisible(bool) qquickpopup.cpp:2496
#39 0x000107c104d8 in QQuickPopup::close() qquickpopup.cpp:1408
#40 0x000107c1ba80 in QQuickPopup::setParentItem(QQuickItem*) qquickpopup.cpp:2180
#41 0x000107c1b324 in QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp:1063
#42 0x000107c1bb8c in non-virtual thunk to QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp
#43 0x00010c117f70 in void QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*>(QFlags<QQuickItemPrivate::ChangeType>, void (QQuickItemChangeListener::*&&)(QQuickItem*), QQuickItem*&&) qquickitem_p.h:413
#44 0x00010c113d7c in QQuickItem::~QQuickItem() qquickitem.cpp:2420
#45 0x00010c50e3e8 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#46 0x00010c4ed840 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#47 0x00010c4ed86c in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#48 0x00010c4da1c0 in QQuickWindow::~QQuickWindow() qquickwindow.cpp:1197
#49 0x00010c531f34 in QQuickWindowQmlImpl::~QQuickWindowQmlImpl() qquickwindowmodule.cpp:73
#50 0x00010cf2d4f4 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:104
#51 0x00010cf2d3e0 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#52 0x00010cf2d40c in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#53 0x00010472efa8 in QScopedPointerDeleter<QObject>::cleanup(QObject*) qscopedpointer.h:24
#54 0x00010472eefc in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:81
#55 0x00010466f0e8 in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:79
#56 0x00010471246c in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#57 0x00010468ff88 in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#58 0x0001046a953c in tst_QQuickPopup::fadeDimmer() tst_qquickpopup.cpp:2635
[...]
Amends ef8bde8.
Pick-to: 6.9 6.8
Change-Id: Ie5c49b7d9ecd3c74f822590d296062b516563391
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit f8742ca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Use dimmer as a context object rather than the test itself, which
outlives it.
The backtrace was:
FAIL! : tst_QQuickPopup::Basic::fadeDimmer(modal) The computed value is expected to be greater than the baseline, but is not
Computed (opacityChangeCount): 2
Baseline (2) : 2
Loc: [/Users/mitch/dev/qt-dev2/qtdeclarative/tests/auto/quickcontrols/qquickpopup/tst_qquickpopup.cpp(2629)]
=================================================================
==68826==ERROR: AddressSanitizer: stack-use-after-scope on address 0x00016b7f7140 at pc 0x000104743c68 bp 0x00016b7ecfd0 sp 0x00016b7ecfc8
READ of size 4 at 0x00016b7f7140 thread T0
#0 0x000104743c64 in tst_QQuickPopup::fadeDimmer()::$_0::operator()() const tst_qquickpopup.cpp:2625
#1 0x000104743bc0 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()::operator()() const qobjectdefs_impl.h:116
#2 0x000104743b64 in void QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()>(void**, QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**)::'lambda'()&&) qobjectdefs_impl.h:65
#3 0x000104743ab4 in QtPrivate::FunctorCall<std::__1::integer_sequence<unsigned long>, QtPrivate::List<>, void, tst_QQuickPopup::fadeDimmer()::$_0>::call(tst_QQuickPopup::fadeDimmer()::$_0&, void**) qobjectdefs_impl.h:115
#4 0x000104743930 in void QtPrivate::FunctorCallable<tst_QQuickPopup::fadeDimmer()::$_0>::call<QtPrivate::List<>, void>(tst_QQuickPopup::fadeDimmer()::$_0&, void*, void**) qobjectdefs_impl.h:337
#5 0x000104743848 in QtPrivate::QCallableObject<tst_QQuickPopup::fadeDimmer()::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:547
#6 0x00011694273c in QtPrivate::QSlotObjectBase::call(QObject*, void**) qobjectdefs_impl.h:461
#7 0x000116e49454 in void doActivate<false>(QObject*, int, void**) qobject.cpp:4284
#8 0x000116e467a0 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) qobject.cpp:4344
#9 0x00010c1462d4 in QQuickItem::opacityChanged() moc_qquickitem.cpp:1019
#10 0x00010c1461c8 in QQuickItem::setOpacity(double) qquickitem.cpp:6517
#11 0x00010c168638 in QQuickItem::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) moc_qquickitem.cpp:850
#12 0x000113847100 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:413
#13 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#14 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#15 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#16 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#17 0x00010c9949ac in QQuickAnimationPropertyUpdater::setValue(double) qquickanimation.cpp:2740
#18 0x00010c992444 in QQuickBulkValueAnimator::updateCurrentTime(int) qquickanimation.cpp:2069
#19 0x000114345428 in QAbstractAnimationJob::setCurrentTime(int) qabstractanimationjob.cpp:481
#20 0x000114349c3c in QAbstractAnimationJob::setState(QAbstractAnimationJob::State) qabstractanimationjob.cpp:367
#21 0x00011434bc34 in QAbstractAnimationJob::start() qabstractanimationjob.cpp:514
#22 0x00010c9ff568 in QQuickBehavior::write(QVariant const&) qquickbehavior.cpp:419
#23 0x00010c9ff88c in non-virtual thunk to QQuickBehavior::write(QVariant const&) qquickbehavior.cpp
#24 0x000113f53b7c in QQmlInterceptorMetaObject::doIntercept(QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:392
#25 0x000113f532e4 in QQmlInterceptorMetaObject::intercept(QMetaObject::Call, int, void**) qqmlvmemetaobject_p.h:153
#26 0x000113f59788 in QQmlVMEMetaObject::metaCall(QObject*, QMetaObject::Call, int, void**) qqmlvmemetaobject.cpp:750
#27 0x0001138474d0 in void QQmlPropertyData::doMetacall<(QMetaObject::Call)2>(QObject*, int, void**) const qqmlpropertydata_p.h:395
#28 0x000113847128 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const qqmlpropertydata_p.h:415
#29 0x000113c33468 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1668
#30 0x000113c32638 in QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QQmlPropertyData const&, QVariant const&, QQmlRefPointer<QQmlContextData> const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1326
#31 0x000113c32390 in QQmlPropertyPrivate::writeValueProperty(QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1270
#32 0x000113c391b4 in QQmlPropertyPrivate::write(QQmlProperty const&, QVariant const&, QFlags<QQmlPropertyData::WriteFlag>) qqmlproperty.cpp:1947
#33 0x000113c38f84 in QQmlProperty::write(QVariant const&) const qqmlproperty.cpp:1863
#34 0x000113c39358 in QQmlProperty::write(QObject*, QString const&, QVariant const&) qqmlproperty.cpp:1880
#35 0x000107c1db04 in QQuickPopupPrivate::hideDimmer() qquickpopup.cpp:1290
#36 0x000107c16a68 in QQuickPopupPrivate::prepareExitTransition() qquickpopup.cpp:821
#37 0x000107c1e038 in QQuickPopupTransitionManager::transitionExit() qquickpopup.cpp:1326
#38 0x000107c23fd4 in QQuickPopup::setVisible(bool) qquickpopup.cpp:2496
#39 0x000107c104d8 in QQuickPopup::close() qquickpopup.cpp:1408
#40 0x000107c1ba80 in QQuickPopup::setParentItem(QQuickItem*) qquickpopup.cpp:2180
#41 0x000107c1b324 in QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp:1063
#42 0x000107c1bb8c in non-virtual thunk to QQuickPopupPrivate::itemDestroyed(QQuickItem*) qquickpopup.cpp
#43 0x00010c117f70 in void QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener::*)(QQuickItem*), QQuickItem*>(QFlags<QQuickItemPrivate::ChangeType>, void (QQuickItemChangeListener::*&&)(QQuickItem*), QQuickItem*&&) qquickitem_p.h:413
#44 0x00010c113d7c in QQuickItem::~QQuickItem() qquickitem.cpp:2420
#45 0x00010c50e3e8 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#46 0x00010c4ed840 in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#47 0x00010c4ed86c in QQuickRootItem::~QQuickRootItem() qquickwindow_p.h:62
#48 0x00010c4da1c0 in QQuickWindow::~QQuickWindow() qquickwindow.cpp:1197
#49 0x00010c531f34 in QQuickWindowQmlImpl::~QQuickWindowQmlImpl() qquickwindowmodule.cpp:73
#50 0x00010cf2d4f4 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:104
#51 0x00010cf2d3e0 in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#52 0x00010cf2d40c in QQmlPrivate::QQmlElement<QQuickWindowQmlImpl>::~QQmlElement() qqmlprivate.h:102
#53 0x00010472efa8 in QScopedPointerDeleter<QObject>::cleanup(QObject*) qscopedpointer.h:24
#54 0x00010472eefc in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:81
#55 0x00010466f0e8 in QScopedPointer<QObject, QScopedPointerDeleter<QObject>>::~QScopedPointer() qscopedpointer.h:79
#56 0x00010471246c in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#57 0x00010468ff88 in QQuickVisualTestUtils::QQuickApplicationHelper::~QQuickApplicationHelper() visualtestutils_p.h:192
#58 0x0001046a953c in tst_QQuickPopup::fadeDimmer() tst_qquickpopup.cpp:2635
[...]
Amends ef8bde8.
Pick-to: 6.8
Change-Id: Ie5c49b7d9ecd3c74f822590d296062b516563391
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
(cherry picked from commit f8742ca)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit cc726a4)
This implements the offset path animation in SVG by mapping it to the PathInterpolator in Qt Quick. Task-number: QTBUG-140751 Change-Id: Ib05e32b8e5190213744c38cc2fc1ca85ef1feaac Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
Fix the flaky tests tst_QQuickStyle::commandLineArgument, configurationFile, environmentVariables. The tests were picking up the previously selected style, causing them to be unable to change and to fail the next tests. When re-running a test no style is selected yet, meaning the desired test can be selected succesfully. Change the order to have lookup as the last time as it will make other tests fail the first time. The lookup test is still failing the first time it is run due to the wrong font size. Reset the style inside of cleanup() Change-Id: Ic974316c856affbc5f3fe805aabd27588b021c4c Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Some links to sections within the same document were incorrectly going to other documents due to the way that QDoc handles duplicate section names. Additionally, documents containing duplicate section titles are not guaranteed to be handled as authors may expect. Links were changed to be more specific or removed in the case where the target was immediately after the original link. Change-Id: I78696519bd811dfe264561b799898a1d94b027dc Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
The i18n tests that QML files are always UTF-8. To do this is creates a QML file with a name that only makes sense if it is UTF-8 encoded and tries to load it from another file. This file is generated next to the other test files for the i18n tests in the source directory. The files is removed at the end of the test by some cleanup code but if the execution is interupted during the test, like during a compile-debug loop, the file is left behind and pollutes the source directory. Rework the test to utilize a temporary directory. This way any files left behind do not pollute the source. The check was initially introduced by 176698a91d3b2256a093785967c6706328981af4 Later 1ec1a86 adapted it to fix it on Android. The .qrc and .pro files it introduced or edited were later removed by 338e892 and 78ab4b8 respectively. Amends 176698a91d3b2256a093785967c6706328981af4 Change-Id: I8175e1e335a06d1389f00c4fd5905ba69be87f31 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Change-Id: I84f50a3ffeac31f586bddb6cd3fc2ccdde25a4fc Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Make use of the API introduced in 644349f to set the accessible label-for/labelled-by relationship between the "Filter" label and the corresponding combobox in the QML FileDialog. This makes screen readers like Orca on Linux announce the label text when the combobox receives focus, so the meaning/context becomes clear. Change-Id: I06db7db7fb3afeb748b99ab29cb90e8bfd694279 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Not all styles display icons for all controls, but it's good to have complete coverage in testbench anyway. Pick-to: 6.8 6.10 Change-Id: Ic347c408ababca4c8deb9acea83c26fa36c7ea75 Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
This allows us to test icons with their original colors. Pick-to: 6.8 6.10 Change-Id: I794be82b286d71d3b037209624169bf18c57e62b Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Change-Id: I117148ae64c68fc42b8b65b4c70f07b7ea857a0b Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
QJSValue and QJSManagedValue hold persistent values which are marked elsewhere. QJSPrimitiveValue doesn't need to be marked at all. Amends commit 2d016a2. Pick-to: 6.10 6.8 Fixes: QTBUG-142097 Change-Id: I50d6405a684726a81ceee506b2d4f8b90330fcaf Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Without these you may get an infinite sequence when trying to iterate using const iterators. Pick-to: 6.10 6.8 Task-number: QTBUG-142097 Change-Id: Iae93063b240ebe9426804197533ed7efd8e007bc Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Pick-to: 6.10 Change-Id: Id1cff25028f1e4b79bd53a44950b35643e08ce99 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Pick-to: 6.10 6.8 6.5 Change-Id: I783d368dc9dffd20dad4b238e55d26da57d11d7b Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Task-number: QTBUG-142189 Change-Id: I863b5773f89528d3582dd83c84cff78d159990c4 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Equivalent to NormalizeOrder but reorder QML categories without sorting attributes (property definitions, property bindings, methods, signals, enums) Fixes: QTBUG-132060 Change-Id: Ib46ce4bb58ce46e3293d14954b0e363837b64b76 Original-patch-by: Oliver Kuss <oliver.kuss@okapp.de> Reviewed-by: Semih Yavuz <semih.yavuz@qt.io> Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Change-Id: I6bbd1e28faac21e9e05393362abfee9a9c7b8b5e Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
…ourse listing Course link added and list modified. Task-number: QTBUG-142148 Pick-to: 6.10 Change-Id: I8a11394b110a80bb9625d88222b0c5a3a3e6aed4 Reviewed-by: Alexei Cazacov <alexei.cazacov@qt.io>
Task-number: QTBUG-137318 Pick-to: 6.10 Change-Id: Iead7b9ad0bf22c96d94ab70795fed854f613f6d7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Add a new Path item to the Helpers module: pathInterpolated, that holds a list of paths (specified as svg path texts) and has a settable interpolation factor property. Based on the value factor, the resulting path will be an interpolation between path #n and path#n+1, where n is the integer part of the factor. The fractional part determines the interpolation weight between the two. Replace the static QPainterPath in PathNodeInfo with an animated property holding QPainterPath values. During generation, if the property is found to be animated, a PathInterpolated item is generated instead of a static PathSvg item. Change-Id: Ic061005e135cbde1bd88ab1ac7c9e7840f55c232 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Don't log warnings of the import-file-selector category using the import category, and only use the import-file-selector category for that. It seems the mixup happened when multiple import and import-file-selector warnings were emitted for the same file, so extend the current test by introducing another qmllint warning with Broken.qml, and make sure the import-file-selector warning is emitted via the correct category-warning-level. The import category has warning level 'warning' while import-file-selector has 'info'. Amends 3ab60f4. Pick-to: 6.10 Change-Id: I35acdef46284067a9f23288128108569faa9d90b Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
We don't want a qmlls.build.ini to be generated on a module that's intentionally hidden from the outside world. That won't work anyway. Change-Id: I4231361ab4d786d661db19f80b5cf0de84cc0b35 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
tst_QQuickMenuBar::subMenuFlipsPositionWhenOutOfBounds is failing on ubuntu where a keyboard event is sent before the window became active. Check that the window is active instead of checking if it is exposed, ensuring the window can properly receive keyboard events. Change-Id: If4dd3533fc5788f44d6011f89683f4b74ecd77c0 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Small update for the Android software keyboard test application. Replace previous many checkboxes for InputMethodHints related TextFields with just one, as we can confirm the inputhints working with just one check. Add GBoard checkbox for default behavior TextField, as this was missing. This creates less repetition when running the test. Task-number: QTBUG-140933 Change-Id: I4eaf340d3240d03225df56e15e37c25082866991 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Task-number: QTBUG-142186 Pick-to: 6.10 Change-Id: I07228c1ddd9196532886ad3b39751d525c525432 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
We receive the individual press and release events already. Those are enough to synthesize the double-click. The platform abstraction does not like to be explicitly told about double-clicks. Change-Id: Ie8da32de742e601dc99af3afee82d6177d8a7156 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Supports linear and any cubic bezier based easing curves supported by Qt Svg. For the current time being, whenever the easing curve is set to a step function in Qt Svg, we revert to the default value which is the "ease" keyword in CSS. Pick-to: 6.11 Task-number: QTBUG-142333 Change-Id: Ifb6b3a2dfe955b5a247399e201efe0d7877bf235 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
The stub implementation of shutdown that is used if !QT_CONFIG(qml_type_loader_thread) does nothing. Hence in this case the thread is running. Apparently the processing is event based in this case so this should not be a problem. Fix by only doing the assert for !running() if QT_CONFIG(qml_type_loader_thread). Change-Id: I93b4f75ce4a1babdb836d28a9cd5f75ef2b3cf54 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
in a local build: ``` FAIL! : tst_qquickdeliveryagent::mouseMoveHoverEfficiency() The computed value is expected to be less than the baseline, but is not Computed (QQuickItemPrivate::itemToParentTransform_counter): 11806 Baseline (11000ull) : 11000 ``` Change-Id: I3fe69235c09023d9a59fabe02b0d9fadcd204d98 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
QQStyleKitDebug previously printed property paths under the assumption that nested property groups followed the same parent–child hierarchy as they are written in the style. After a recent optimization in QQStyleKitPropertyGroup, this assumption is no longer valid. As part of that optimization, all property groups now have the root QQStyleKitControlProperties as their parent in order to avoid unnecessary hierarchy traversals. This change broke the logic used to reconstruct property paths for debugging. This patch introduces QQStyleKitPropertyGroup::pathToString(), which reconstructs a property path in the same order as it is written in the style. While this functionality may also enable future optimizations, it is currently used to restore correct and readable debug output. Task-number: QTBUG-130067 Pick-to: 6.11 Change-Id: I60e0aac3320c703b5b0995daa5a68a8ea1f015c5 Reviewed-by: Doris Verria <doris.verria@qt.io>
Change-Id: I1c820dbd76414000a4e3d4f51ab85cf61bf33760 Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
Change-Id: I5b142e49080269d50fcb07af4d6c03fe0cfb52c4 Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
That's a perfectly fine place to position a window. Pick-to: 6.11 6.10 6.8 Task-number: QTBUG-142436 Change-Id: Ief27328f428ecbe54f57b79dd7408f55eba1d965 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Each type has a number of propertyCaches. There's no need to keep them in separate lists. Change-Id: I62fd7a07ce56bc258c06df8efcbbf972143e3fd2 Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
If the type reference is a self-reference we have already determined that the inline component exists (otherwise we wouldn't know it's an inline component). If not, we need to have a compilation unit we can use to check it. Change-Id: Ie86f17a42eda7ae9bb45d4f9560134903c1b7dde Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Pick-to: 6.11 6.10 6.8 Change-Id: I0f48169d4678fc72dc16946bd6c4bf566ef48729 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
SearchField documentation was outdated. The description of currentIndex was updated, and a note was added for the iOS style explaining that the control doesn't provide a popup in order to preserve the native look. Pick-to: 6.11 6.10 Change-Id: I6ff23f51c0cf73a44baad7236c176363b3970f8e Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The links were broken. This will hopefully make them work, by referencing QtQuickDialogs in the square brackets. Pick-to: 6.11 Change-Id: Iad32d85d94caa9624213d07d1da85fbdd6a24e6d Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This patch updates qtdeclarative examples to use SDK 36 as a target and compile version SDK. Task-number: QTBUG-138552 Task-number: QTBUG-138549 Pick-to: 6.11 6.10 6.8 Change-Id: If655c6654790b4be3704325aceca6df4947362d4 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
Some of the controls uses image assets as their background. The Switch is one of those controls, and it's also the control that changes its appearance the most when "Increase contrast" is toggled on. Done-with: Karolina Bang <karolina.bang@qt.io> Fixes: QTBUG-142421 Pick-to: 6.11 Change-Id: I350716155bd9a75c241ddc601821de3ded6f7fcb Reviewed-by: Doris Verria <doris.verria@qt.io>
cmake complains: The following keywords are not supported when using add_custom_command(TARGET): DEPENDS. the custom command is triggered whenever the target is built, so extra dependencies make no real sense. however copy_if_different might be a little friendlier Pick-to: 6.11 6.10 Change-Id: I66d0619c39b0c6354d7e6dba5797cdd4b6a116cc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
These warnings cause tests to fail: Member state of the object StyleImage_QMLTYPE_29589_QML_29616 overrides a member of the base object. Consider renaming it or adding final or virtual specifier Member __notCustomizable of the object SearchField_QMLTYPE_168 overrides a member of the base object. Consider renaming it or adding final or virtual specifier Amends d3ba7eb and 141993c. Pick-to: 6.10 6.11 Change-Id: I03d83cdae27715b391ea67372e0b25267d729c77 Reviewed-by: Doris Verria <doris.verria@qt.io> Reviewed-by: Dilek Akcay <dilek.akcay@qt.io>
After making the QSvgVisitor::traverse() functions virtual, the compiler now complains that the non-virtual traverse() in the subclass shadows these. Specifically this was seen on macOS. Pick-to: 6.11 Change-Id: I6a3575c9445ba5d5b59c746ed57b7d99d72ada7c Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
The module constructors connect to QQmlCodeModelManager::updatedSnapshot and the connected methods are guaranteed to execute in the same order as the connect calls was called. First, handle user-triggered operations (go to somewhere, find usages, etc) Second, handle semantic highlighting, so the user sees "ah qmlls finished loading my file" and can already start doing stuff. Third, handle operations that the user didn't trigger, like the document outline. And at last, once everything else is done, lint the file. This is the step that probably takes most time and should be done at the end, as it might potentially process many files because of imports etc. The difference can be seen in QTBUG-142748, where we used to collect qrc files from the build folder by iterating the build folder during the linting, while making the user wait for its completion request. The current behavior now suggests completions before searching the build folder. Pick-to: 6.10 6.11 Task-number: QTBUG-142748 Change-Id: I47d5ead79153868721c1b0d95e9b62a14157ef8c Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Store the resource paths into the codemodels in setBuildPaths. This avoids iterating the entire build folder on QQmlJSUtils::resourceFilesFromBuildFolders() in resourceFilesForFileUrl() which is called on each linting pass. Amends 7704edb. Fixes: QTBUG-142748 Change-Id: Ibd3178eef841a39c1c4fa7a3dd7f0750c82745dd Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Add an own QQuikcPalette * member type to the style that should be synced with the style reader's palette, but don't directly point to it. This avoids changing the reader's palette from the style, or that the style palette changes outside of a property read which is problematic. Task-number: QTBUG-130067 Pick-to: 6.11 Change-Id: I3524c3472a5c250f1f943d2b1b6c66d6fcb93929 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Task-number: QTBUG-130067 Pick-to: 6.11 Change-Id: Ie9c466591fbfbf54d9575d3684636b13c1061d64 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
This ensures correct lifetime management of it. Pick-to: 6.11 Change-Id: I7fd183abf6ab83d8bdc39d9406d044891c14ed6f Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
The up button's size was 40x40, which was taller than the rest of the Folderbreadcrumbbar. This didn't look right. Pick-to: 6.11 6.10 6.8 Change-Id: I8d847b04e4a17ba570d366ebc7d584af36542519 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io> Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
When backend renderer is software ShaderEffect doesn't render anything, so we use canvas renderer as a fallback. Fixes: QTBUG-139362 Change-Id: Id22305ab48d52f9bf2373c88f87cbb10c115999c Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Its in use, says the profiler, and completely unreadable. Split the method up in smaller parts. Task-number: QTBUG-142522 Change-Id: I6e09fd02c8d76fd38855ed2b33d1e5ce101f8e64 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Dmitrii Akshintsev <dmitrii.akshintsev@qt.io>
The current warning is a bit confusing, reword it to make it clearer and actually actionable. Task-number: QTBUG-138532 Change-Id: I1862fc9dd68135500a1b64f1440c770a97f47c02 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
It seems we forgot to add Action to the list of allowed types when the warning was changed to include Action in 7bdeea2. Pick-to: 6.8 6.10 6.11 Fixes: QTBUG-142549 Change-Id: I52e0ec0110e4d3915f36e3a54843d25b86d21a16 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Add an if-condition to avoid triggering the assert inside of qmllint. The runtime does not register this function declaration and therefore does not trigger the assert. QTBUG-142091 will make qmllint warn about the invalid function definition. Amends 009ef40. Pick-to: 6.10 6.11 Fixes: QTBUG-142468 Change-Id: I2077908fdc83fd31bdda67a11f0e8a6949a102ae Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
We only need .qmlls.ini files to contain the path to the build folder, and the cmake-calls option (when used by the user). Remove the outdated import path, and the documentation directory, from the .qmlls.ini file: instead, it should be read from the .qmlls.build.ini (which is found by qmlls with help of the .qmlls.ini file). Replace add_custom_command with a file(CONFIGURE), now that we don't need to execute qtpaths anymore for the .qmlls.ini generation. Change-Id: I2d5e7b164d68e8e092c4995916025fd04d199f12 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
It seems that we recognize "anchors" from
PropertyChanges {
anchors.topMargin: 12
}
as an id, which might sometimes not exist. Adapt the highlighting code
to not crash if the id does not exist, and highlight it as unknown so
the user sees that its "bad".
Pick-to: 6.10 6.11
Fixes: QTBUG-142574
Change-Id: I00fcea8bfb3d16a95d40af024c4273dae19ce747
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
If there are 2 or more methods with the same name but reciving diferent arguments the QJSEngine Pickup the First One declared.
Example:
methodxyz(string)
methodxyz(objptr*)
It picks up the first one passing as argument a string and not the one that i was expecting an object as it was send.