-
Notifications
You must be signed in to change notification settings - Fork 195
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
Open
rjcamatos
wants to merge
10,000
commits into
6.2
Choose a base branch
from
dev
base: 6.2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
qtprojectorg
pushed a commit
that referenced
this pull request
Dec 8, 2023
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 <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
|
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. |
qtprojectorg
pushed a commit
that referenced
this pull request
Sep 9, 2025
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 <[email protected]>
qtprojectorg
pushed a commit
that referenced
this pull request
Sep 12, 2025
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 <[email protected]>
(cherry picked from commit f8742ca)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
qtprojectorg
pushed a commit
that referenced
this pull request
Sep 12, 2025
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 <[email protected]>
(cherry picked from commit f8742ca)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit cc726a4)
The event replay service can funnel input events recorded by the QML profiler service back into the program. This way we can re-create the exact behavior of a previous execution, including user input. Task-number: QTBUG-141569 Change-Id: I069cf546f6c62b3abb7637fb064ebb1b3158129f Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Fabian Kosmale <[email protected]>
These internal APIs have function documentation but are missing class documentation. Adding an internal class documentation fixes QDoc warnings. Task-number: QTBUG-141697 Change-Id: Iecb289d39e34ddaa964fbe0a1404830cd2269caa Reviewed-by: Shawn Rutledge <[email protected]> Reviewed-by: Paul Wicking <[email protected]>
childContexts() returns the immediate child contexts. findObjectRecursively() does the equivalent of objectForName() on all child contexts recursively, returning the first non-null one. findObjectsRecursively() does the same but returns the first non-null result. We use BFS since that should return "closer" results when iterating many contexts. Fixes: QTBUG-140389 Change-Id: Ic34b5f4916768c0a0b8ed0e615d6f73c0aa5d06b Reviewed-by: Volker Hilsheimer <[email protected]>
Pick-to: 6.10 Task-number: QTBUG-116296 Change-Id: Ic408673f79e12708c1594577cdeb37898caf2cb6 Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Mitch Curtis <[email protected]>
Give most things default significance, except for qjsnumbercoercion.cpp which only contains documentation and qv4compileddata.cpp which gets flagged as critical for being a data-parser. That's somewhat debatable, given that we also excepect qmlc files to be as trustworthy as qml files, but while that is not explicitly stated anywhere we might want to err on the side of caution. Pick-to: 6.10 6.8 Task-number: QTBUG-136194 QUIP: 23 Change-Id: I2987cea2453dcc3b828dc4ecf0ad22fdfd0d1000 Reviewed-by: Olivier De Cannière <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
The client definitions should provide the same event types as the service definitions. Adapt the code for reading and writing the events from Qt Creator. Change-Id: Ib714304a5b56f7d1bd9c1f53656554b9705f630b Reviewed-by: Sami Shalayel <[email protected]> Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Antti Määttä <[email protected]>
Change-Id: Ib4ad28bbe95d27a6413df7a827830b5a213cdc4f Reviewed-by: Qt Submodule Update Bot <[email protected]>
Also remove unused qmake files. Pick-to: 6.8 6.10 Change-Id: I3a29e1b40361d852b4a87c748e8838b99fbd8805 Reviewed-by: Oliver Eftevaag <[email protected]>
Pick-to: 6.8 6.10 Change-Id: Iabfea6ceddb85a58b24180e09c20980b383e5fb5 Reviewed-by: Oliver Eftevaag <[email protected]>
This allows us to test setting icon.color to "transparent". Pick-to: 6.8 6.10 Change-Id: I5b4523a8c4d45de3455302cf582dd33a23399ae3 Reviewed-by: Oliver Eftevaag <[email protected]>
Pick-to: 6.8 6.10 Change-Id: Ia9a58cfe033b4243bb75c1250b75c8080ad7042d Reviewed-by: Oliver Eftevaag <[email protected]>
Qt 5.15 for VxWorks had JIT and this change brings back this feature. Task-number: QTBUG-133449 Pick-to: 6.8 6.10 Change-Id: I0ce487ca01e5578f47fdb5cddac9ea4e5804b857 Reviewed-by: Ulf Hermann <[email protected]>
Change-Id: I7f236b614b3f84b37a9954389cd39ee2c5f621aa Reviewed-by: Jerome Pasion <[email protected]>
Holding them in a local pointer makes it look like they leak. In actual fact they are "owned" by the QVariant and assigned to a property later. Also, check for model earlier. Apparently it can be nullptr if we're dealing with a translation binding. In that case we don't hit the code path that evaluates script bindings and therefore won't crash or leak. However, the return statement after creating the QVariant is confusing when trying to understand the ownership structure. Coverity-Id: 897095 Coverity-Id: 897097 Change-Id: I770632d7e8aba7803ffe36363a6f9665873e3e61 Reviewed-by: Fabian Kosmale <[email protected]>
Since we early-return in a number of places, the condition needs to be checked first. Also, remove the dead code that tries to implement dynamic properties in object literals. Amends commits f839171 and f47df45 which were mistaken in trying to support this case. Pick-to: 6.10 6.8 Fixes: QTBUG-141849 Change-Id: I34a6c47375b9e8fa1320259e3f335d304ce8e589 Reviewed-by: Fabian Kosmale <[email protected]> Reviewed-by: Olivier De Cannière <[email protected]>
Pass localPos to deliverHoverEventRecursive, deliverHoverEventToItem and sendHoverEvent, so that deliverHoverEventRecursive() can merely transform from its own coordinate space to each child's space by calling itemToParentTransform(). That doesn't require up-the-tree recursion like mapFromScene() does. Apply the same trick to QQuickWindowPrivate::findCursorItemAndHandler(). Apply the same trick to QQuickPointerHandler::parentContains(local, scene): now QQuickPointerHandler::parentContains(QEventPoint) also calls that with both local and scene positions, which it already has, so this likely optimizes some use cases outside of the hover and cursor cases. But to make that work, we need to apply the same trick to QQuickDeliveryAgentPrivate::eventTargets() as well, and now it needs to localize the QEventPoint before calling the predicate. Usually, global position is QGuiApplicationPrivate::lastCursorPosition; but when no mouse events occur, only touch events, lastCursorPosition may remain offscreen. So we use the QEventPoint::globalPosition when possible; so it's useful to pass globalPos along to each of these hover functions, so that deliverHoverEventToItem() can construct the QMouseEvent with it, and sendHoverEvent() can construct the QHoverEvent with it. Also amends f5140d6: that looked rather CPU-intensive to call several mapping functions. The test is retained. Task-number: QTBUG-134099 Task-number: QTBUG-140340 Change-Id: I2c520d430e58ec7c00ada2207541b2936c7ae596 Reviewed-by: Richard Moe Gustavsen <[email protected]>
Change-Id: I32d3fce877b97bb1b5ef80967c495477c40c0910 Reviewed-by: Qt Submodule Update Bot <[email protected]>
syncResultedInChanges is not used since 27d674e (v6.0.0-alpha1). Change-Id: I13e413dd47b391c279d6fc8a15d23d728fef1e58 Reviewed-by: Andy Nichols <[email protected]>
This better reflects what it is and avoids naming conflicts with the controls themselves. Pick down to 6.9 (where QQuickContextMenu was introduced) to avoid future cherry-pick conflicts. Task-number: QTBUG-133556 Task-number: QTBUG-134903 Pick-to: 6.9 6.10 Change-Id: If0af26c5f16ee56cc909fcc66d1421109786343e Reviewed-by: Oliver Eftevaag <[email protected]>
Change-Id: Ibc388a7db13bb3b0b12b6529d879d4a7e7fb98ec Reviewed-by: Qt Submodule Update Bot <[email protected]>
Amends ddcafa0 Pick-to: 6.10 Fixes: QTBUG-141893 Change-Id: I509a58c14a7081d90917058b3952ef03bc855085 Reviewed-by: Joerg Bornemann <[email protected]>
Makes Qt configure error out with called with non-existent target "animations" cmake errors. Change-Id: Iefe85831ad4c3fad7bd8f0b062e4b587307e1b6e Reviewed-by: Alexandru Croitor <[email protected]> Reviewed-by: Even Oscar Andersen <[email protected]>
Our test won't generate Quick3D events because Quick3D is not available when testing qtdeclarative. Amends commit 25694b6. Change-Id: I7045ff7bd5bb0e56d3110128f74188f40e56a12d Reviewed-by: Fabian Kosmale <[email protected]>
Laying out text is somewhat expensive, which is why the geometryChange function tries to determine whether or not it's necessary. However, when growing the width of multi-line eliding text, we would over-optimize, and stop relayouting, when there would have been more space for text. This worked for single line text, since then the widthExceeded flag would always be set to true, when the natural text width exceeds the layouts width. However, we don't always set that flag for multi-line text, thus it's possible that we skip the relayout step every time we increase the width of the Item. Fixes: QTBUG-140875 Pick-to: 6.10 6.8 Change-Id: I1f7758bed2c52044d0179a83d4bf4a774f22e4e3 Reviewed-by: Bror Wetlesen Vedeld <[email protected]> Reviewed-by: Santhosh Kumar <[email protected]>
Change-Id: I71ba63cdde7c8f3e18b89a1a4e35da30202fd8e4 Reviewed-by: Fabian Kosmale <[email protected]>
Describe the option and how to set it via a setting file, a commandline argument or a environment variable. Task-number: QTBUG-142352 Change-Id: I37da4ebed65e4228aaed0973b8d98b43af9f53e0 Reviewed-by: Ulf Hermann <[email protected]>
It's wasteful to set off pointer space for all the possible states that can be nested. Usually a state will not use nested states at all. E.g the assignment 'button.pressed.spacing' would cause the 'pressed' state to also set off space for all the states that can be nested inside it, even if they are never used. In addition, the current implementation would, by accident, lazy create all the nested states while traversing up the parent chain of states. And as it turns out, by just storing the nested state flag inside the state, we don't need to do any traveral at all. This patch will make sure that we only allocate space for nested states if we encounter that at least one of them are being used, and store the nested state to avoid unnecessary traversal. Change-Id: Ied87f0c6b04057cb4c9f3e31f275a2d4b87c3efb Reviewed-by: Doris Verria <[email protected]>
This patch will implement support for styling TabBar and TabButton. Change-Id: I31658cf6cb923a06efa0cc4b02275a26c1968577 Reviewed-by: Doris Verria <[email protected]>
This patch will implement support for styling ProgressBar. Change-Id: Ic6d48bbb61b068ff967289736236f2d21992dc0a Reviewed-by: Doris Verria <[email protected]>
This patch will implement support for styling ScrollBar and ScrollIndicator. It also includes ScrollView, since otherwise, if we inherited the one from the Basic style, it would also use the ScrollBars from the Basic style. Change-Id: I8163824aec61ce3c84303b6add3fdb1b7701532e Reviewed-by: Doris Verria <[email protected]>
Change-Id: I90337fc840fce07ab9346ebc04fc0eacf3594710 Reviewed-by: Qt Submodule Update Bot <[email protected]>
While qtsvg now supports ligatures of multiple characters the existing code here does not yet. Fixing that is out of scope for this patch. It's only meant to keep the code working the way it did before. Pick-to: 6.10 Change-Id: Ie62d3b3d5764a6bcb3d75e6594a8729652c0dcf4 Reviewed-by: Ulf Hermann <[email protected]> Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
QSequentialIterable is deprecated. Task-number: QTBUG-140181 Change-Id: I797c18fa5c319e5c1a0114448d98a38aad33ae04 Reviewed-by: Olivier De Cannière <[email protected]>
Keyboard navigation between the MenuBar, MenuBarItems, Menus and MenuItems broke, when we introduced popup windows. Since then, we've added various patches (e.g. 2393c58) to gradually fix key event handling. Add a test, to verify that menubar navigation now works. Task-number: QTBUG-121363 Pick-to: 6.8 Change-Id: I64d720a07fc300040ce1670082f9628befb73f5b Reviewed-by: Richard Moe Gustavsen <[email protected]>
Add QT_WARNING_DISABLE_DEPRECATED around the newVariant() test function to suppress deprecation warnings for QJSValue::isVariant() which was deprecated in Qt 6.9. The isVariant() method returns rather unexpected results and is only true in very limited cases. While the test still validates the API behavior, the deprecation warnings are suppressed to keep the build clean. Amends eaad950 Change-Id: I7b27375fa2c6f6a77aed43cfc4d752db5395824a Reviewed-by: Ulf Hermann <[email protected]>
This path focuses on the actual expansion of Override Semantics with regard to newly added virtual and override keywords. Since Override Semantics is central to the way PropertyCache is being populated, expanding it requires additional care. To ensure smooth and reliable iteration, this patch isolates data-flows: within this patch adding properties from MetaObject stay "unaffected" by the expansion, as well as the paths adding Methods and Signals from the IR. This is done with the help of 3 things: 1. Separating logging logic from the Override logic 2. Extracting Override Semantics into it's own namespace 3. Adding a nob to control the set of rules To facilitate and separate testing of the logging logic and override semantics, the principle of dependency injection is being used, allowing us to easily Fake handling of override semantics, simplifying testing of PropertyCache::appendPropertyAttr Logging logic (messages) is kept on the side of QQmlPropertyCache mostly because this entity logically has more context to do proper logging. Taking into account how the class name and name of the property are handled, those are kept to be "requested on demand", a.k.a. query them only in cases when the logging indeed needs to be performed. Multiple append* methods have been moved to the private section to avoid invalidation of caches. See comment above QQmlPropertyCache. As a workaround to enable unit-testing of some methods, tst_qqmlpropertycache has been added as a friend class. This patch updates tests/auto/quick/qquicklistview/data/negativeDisplayMargin.qml to remove an unintended override of ListView’s built-in count property. The test declared its own count property, which implicitly shadowed ListView.count. The newly introduced validation correctly flagged this conflict, so the test has been adjusted accordingly. Change-Id: I809e58e421fa50f5ee7f21b31edbf926ad472736 Task-number: QTBUG-98320 Reviewed-by: Fabian Kosmale <[email protected]>
This amends 39ec01e. On Android, we need to ensure implicit imports are known to the tools. When adding support for the blur effect, we also added an implicit dependency on MultiEffect, but since no one told the deployment tool, we would get a test failure when loading files. Fixes: QTBUG-142472 Change-Id: Ic2f91c9fce94a90ca05314827edb77b7f9cdec4a Reviewed-by: Eirik Aavitsland <[email protected]>
It now stores one additional string relative to before, namely the class def's content hash. And the header has increased by 1 to store that string's index into the string table. Also, keep handling revision 13 temporarily to allow for a smoother transition and remove that version asap. Task-number: QTBUG-142186 Change-Id: I2b190f3a4b6bdd9cd95ac00b65359957860c8187 Reviewed-by: Fabian Kosmale <[email protected]>
Change-Id: I2a985ab1900afb8c027405fb0ec76c250c7535e0 Reviewed-by: Mitch Curtis <[email protected]>
Use valueAsAbsolutePathlist instead of duplicating code in buildPathsForFileUrl(). Change-Id: Ia2db7356efe8401178f28b55f72d3c113dbbe6f3 Reviewed-by: Fabian Kosmale <[email protected]>
The setup part is mainly meant for qmlls client developers, so mark it as such. Add the download links to the standalone qmlls, in addition to qmlls's location inside of qt. Also document that build directories can be passed via an LSP extension, to support multiple workspaces. Remove the parts about import paths and documentation directories, those are handled by CMake's .qmlls.build.ini and can lead to weird behaviors when set incorrectly. Change-Id: I59496d20a9d02504636af6374818260c1e5f622d Reviewed-by: Leena Miettinen <[email protected]> Reviewed-by: Ulf Hermann <[email protected]>
It gets added to the json output of moc for every object. Include it in the object's qmltypes representation too and add it to the corresponding qqmljsscope when parsing them. Task-number: QTBUG-142186 Change-Id: Id551a4edb1284018dee8d9afbe3b7189660478b8 Reviewed-by: Sami Shalayel <[email protected]>
The ToolBar missed a binding to spacing. A ToolBar doesn't actually layout its items, the application is responsible for that. Still, it might want to query the spacing set from the style for doing the layout. Change-Id: I1613ba519e8edaeb58fe2b4cc6f7e5599dd02dff Reviewed-by: Doris Verria <[email protected]>
A Qt Quick Control will use StyleKitControl.text.color as its text color. But as it stood, it was not initialized to anything in the FallbackStyle. The result was that all controls got a black text color, regardless of what was set in the theme palette. It would also not respect any palette overrides done from the app. This patch will make sure that we, by default, bind text.color for the various control types to the matching color in the Qt Quick Control's palette. This color will, unless overriden by the app, be initialized to the color set by the theme. Change-Id: I6d4f67c81c57c9a30940a720816fa4ed2675b8bd Reviewed-by: Doris Verria <[email protected]>
Change-Id: If1285165aa28fea401bbff061fcdfd4563bce334 Reviewed-by: Richard Moe Gustavsen <[email protected]>
Change-Id: I9cc429c5a5e229983cb68648df239260903a0af4 Reviewed-by: Richard Moe Gustavsen <[email protected]>
Fallback property lookups are created for completely dynamic metaobjects. Anything about them may change between any two calls. Pick-to: 6.10 6.8 6.5 Fixes: QTBUG-142331 Change-Id: Ib732c37a6f27ab8105bea0eeae000af7eb9c36d7 Reviewed-by: Sami Shalayel <[email protected]>
We don't need to repeatedly query the metaobject for its properties just to determine the type. We can instead store the type right away. The same holds for the "resettable" flag. Task-number: QTBUG-142331 Change-Id: Ia8bb96587a344a2981e766e4bc2f13bcac7b4561 Reviewed-by: Sami Shalayel <[email protected]>
Fix the cleanup method to disconnect the signals in m_server, otherwise m_server might use an outdated m_protocol in a later test case. Change-Id: I4ae3b02bc0ed5cae585dc637c037e56bc4976adf Reviewed-by: Ulf Hermann <[email protected]>
Don't mix build and import paths in qmlls. Use build paths for build path operation (finding .qmlls.build.ini, eventually resource files, CMake invocations, ...) and the import paths for imports (when linting and constructing the DOM). Only use build paths as import paths as a fallback, for projects running on Qt < 6.10. It turns out that our tests were making heavy use of "build folders are import paths". Modernize the tst_qmlls_modules tests to write a .qmlls.build.ini file in the build folder which contains the import paths. Also don't read the import path twice from the qmlls.build.ini file, and read it from the QQmlCodeModelManager, not the QQmlCodeModel. Add a test for importPathsForFileUrl() that used to duplicate the import paths. Task-number: QTBUG-141707 Change-Id: I9eceb743bf37bc0f743954a0e7b1e5831f1989fa Reviewed-by: Ulf Hermann <[email protected]>
We can't find resource files by iterating on the build folder without causing QTBUG-141707, therefore implement reading resource files from the .qmlls.build.ini files. A later commit will make CMake add the resource file information in the generated .qmlls.build.ini files. A separate commit will take care of usages of resourceFilesFromBuildFolders() in the dom. Keep a fallback for projects without resource files, for example projects targeting qt < 6.11. Task-number: QTBUG-141707 Change-Id: I279d193aa6a2849526c2f56c6a40e83492050f74 Reviewed-by: Ulf Hermann <[email protected]>
We can use the resource files from the .qmlls.build.ini also when constructing the DOM, instead of iterating over the build and import folders. Fix and rename a test in tst_qmldomitem. Task-number: QTBUG-141707 Change-Id: I9dcbd4cd307aba251e5de1d8c00c97b22dd87eb4 Reviewed-by: Ulf Hermann <[email protected]>
The native Windows (XP) styling code cannot render controls in the dark color scheme. Our code detects that the application is running in dark mode, and then explicitly creates a light palette that gets set on the QQuickTheme singleton. However, the palette that the style is actually using isn't always based on the QQuickTheme palette, so we get inconsistent colors: the window background is dark, a button font is light, while the button itself is also light. This makes the UI unusable. QGuiApp has no knowledge of Qt Quick's styling infrastructure, or of QQuickTheme, so it cannot ask the style to "polish" the palette like we do in widgets. As a quick fix, override the global QGuiApplication palette with the light palette. [ChangeLog][Controls] The Windows native style will use a light palette as the application global palette on Windows systems running in dark mode. The style cannot render dark controls, and mixing a dark application palette with some UI elements rendered in light mode using the Control style results in inconsistent and unusable user interfaces. For Dark mode UIs, use a style that supports dark mode, like the FluentWinUI3 or Fusion styles. Pick-to: 6.10 6.8 Change-Id: I5e279b88ba018baa03936624e07f48e8986eb1c6 Reviewed-by: Oliver Eftevaag <[email protected]>
Change-Id: I01bcdaea8a7014c3bd2f1c65b7d00a048700b91f Reviewed-by: Doris Verria <[email protected]>
Set the same width, height, fillColor, strokeColor and strokeWidth values for rectangle, star, ellipse and regular polygon shapes Task-number: QTBUG-142450 Change-Id: I1920d22e80944ee4f220b927b4c1fcbbe2bb077a Reviewed-by: Henning Gründl <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.