Skip to content

Conversation

rjcamatos
Copy link

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.

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 <sami.shalayel@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Copy link

cla-assistant bot commented Nov 15, 2024

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
0 out of 12 committers have signed the CLA.

❌ timblechmann
❌ a12e
❌ ec1oud
❌ torarnv
❌ Santhosh Kumar
❌ dilekakcaay
❌ chriadam
❌ grulja
❌ eskilblomfeldt
❌ Issam-b
❌ samishalayel
❌ Inkane


Santhosh Kumar 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.

Santhosh Kumar and others added 28 commits August 26, 2025 22:14
Fixes: QTBUG-137829
Change-Id: I660b08638daa8d78f03e184bc9eb0c2ab3488a44
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Without \c{} '--' is rendered as a dash instead of 2 hyphens

Pick-to: 6.10
Change-Id: I8b78d8feaa2d1f20fdb9ecceb6b20c862d9da2d4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
The DialogButtonBox lacked an outline, which it should probably have,
when a high contrast setting is enabled. The Dialog had a subtle
outline, which we can make stronger.

Task-number: QTBUG-134971
Pick-to: 6.10
Change-Id: I56a9032161c6fe7d21d0e1d4ccdd1edbdc8bfb70
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
In release builds, we don't want to generate code that indicate wrong
usage of the model, so 313e271c730f18e9a1afc05f754b5cba86013783 in
qtbase made the emission of stderr messages conditional.

Pick-to: 6.10
Change-Id: I51f773943387f099b943d7b7980b6b2485e189bd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Interacting with Popups in async Loaders caused a crash because the
popup's window was null:

1  QScopedPointer<QObjectData, QScopedPointerDeleter<QObje qscopedpointer.h           112  0x7fffe8effafe
2  qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointe qtclasshelpermacros.h      137  0x7fffe8efd9c3
3  QQuickOverlay::d_func                                   qquickoverlay_p.h          76   0x7fffe8f729d4
4  QQuickOverlayPrivate::get                               qquickoverlay_p_p.h        37   0x7fffe8f8c392
5  QQuickPopup::overlayEvent                               qquickpopup.cpp            3214 0x7fffe8f879c2
6  QQuickOverlayPrivate::handleHoverEvent                  qquickoverlay.cpp          192  0x7fffe8f6ee88
7  QQuickOverlay::childMouseEventFilter                    qquickoverlay.cpp          478  0x7fffe8f701e4
8  QQuickDeliveryAgentPrivate::sendFilteredMouseEvent      qquickdeliveryagent.cpp    2897 0x7fffeb1bce04
9  QQuickDeliveryAgentPrivate::sendHoverEvent              qquickdeliveryagent.cpp    1090 0x7fffeb1b25af
10 QQuickDeliveryAgentPrivate::deliverHoverEventToItem     qquickdeliveryagent.cpp    1272 0x7fffeb1b2fd0
[...]

We can avoid this by unparenting the popupItem, which removes it from
stackingOrderPopups and hence excludes it from receiving events.

The fix causes a crash in QQuickDeliveryAgentPrivate::clearFocusInScope
after tst_QQuickPopup::closePolicy() finishes, because it tries to
access the now null window. Add checks for that.

Task-number: QTBUG-139306
Pick-to: 6.5 6.8 6.9 6.10
Change-Id: Id507e39497af3cacc832db4b23a2c27a0788dc74
Reviewed-by: Oliver Eftevaag <oliver.eftevaag@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
We were only testing the non-native file dialog under the Basic style
previously, but we have 4 other styles (Fusion, Imagine, Material,
Universal) that were never tested.

This unfortunately caused recent regressions in both the FileDialog and
FolderDialog.

By running each test once for more styles, we should be better
protected against future regressions in individual styles.

In this patch, we enable all tests for Basic, Fusion, Material and
Universal. The Imagine style is intentionally omitted due to a bug,
which causes the tst_qquickfiledialogimpl::defaults() test to fail.

This will be fixed later.

Change-Id: I9b4ab722c5ad3052122024ad3a7a2f0a99de77e6
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The test case added as part of patch
36216db shows up warning
"There are still \"n\" items in the process of being created at engine
in destruction.\". This patch allow this test case to pass if fail
on warning enabled for the quick menu auto test.

Task-number: QTBUG-137160
Task-number: QTBUG-139552
Change-Id: I7f31ffd096cc10b514542092a85f346e413b40dd
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
_qt_internal_android_get_target_deployment_dir no considers
QT_USE_ANDROID_MODERN_BUNDLE and produces correct target deployment
path even if the flag is disabled. In this case path matches to
the top-level Android target build directory.

Change-Id: Ia5817bf02dc7a8844fb8671d1945f1592af6b675
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Task-number: QTBUG-128232
Change-Id: Id6b882fe8f39442200b2a726a62c4c210261d7b5
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
The CheckBox indicator uses a ColorImage to blend the pixels of a
png image file together with a QColor, in order to determine the colors
that the indicator should use in any given state (e.g, checked,
unchecked, hovered, etc).

Unfortunately, blending the ColorImage with a color has its limitations
when enabling a high contrast theme on Windows 11, such as when the
checkbox is in the pressed and unchecked state, where the color image
background will typically be mostly black, and this make the color
bound on the color property much darker, or in this case, completely
black.

To get around this issue, we now have a Rectangle on top of the
ColorImage, which is normally transparent, except for when high contrast
is enabled. In that case, it will be rendered on top, and use the exact
desired colors.

Pick-to: 6.10
Task-number: QTBUG-129088
Change-Id: Ic65218d3759495611772f010c86a85109faaaadd
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
The RadioButton's indicator would not use the same colors as the WinUI3
RadioButton for users that had enabled a high contrast theme.

The indicator background is normally a ColorImage. But for high contrast
themes we prefer to keep things simple, and draw simple colors on top of
the image. It is possible to change the binding on the ColorImage to use
desired high contrast theme colors from the palette, but doing so will
slightly alter the colors used, due to blending with the pixel values
from the underlying png image used by ColorImage. Thus we put a
rectangle on top, so that high contrast themes become independent from
it.

Task-number: QTBUG-129088
Pick-to: 6.10
Change-Id: I57ef286584f7df2c26bacbc0bc9f3bcb7a1a64cd
Reviewed-by: Santhosh Kumar <santhosh.kumar.selvaraj@qt.io>
The test was still not account for safe margins in few places,
it seems it didn't account for the fact that Android apps will
have the margins set from the start.

Fixes: QTBUG-139583
Pick-to: 6.9 6.10
Change-Id: Ia04a0ca2e7ad96a1e72a0d7fe9416634fb24e116
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
It's causing a lot of flaky failures, so blacklist it until it can be
fixed.

Task-number: QTBUG-131695
Change-Id: I81835fe1af677899abcc26534c5fd95dc69004cb
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
The test case tst_qquickmenu::loadMenuAsynchronously is getting flaky,
w.r.t warning message, sometimes depending on the platform, and so it's
required to extend the regex to consider that case.

Amends patch: 2855347

Task-number: QTBUG-139552
Change-Id: I4766c7ac52a586dcf5b470ce5a676a51e2503cb5
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This reverts commit ba7dcb6.

'threaded' renderer doesn't emit 'afterSynchronizing'
like the other renderers.

Fixes: QTBUG-139309
Reopens: QTBUG-126193
Pick-to: 6.10 6.9 6.8
Change-Id: Iec2d9cce919d00f7fefb84db153a48d035b4fb44
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The fusion styled File and FolderDialog's FolderBreadcrumbBar would grow
in width as the number of nested directories in the currentFolder path
would grow. The other styles would give it a maximum size, which would
limit how much it could grow, but not the fusion style.

The FolderBreadcrumbBar's width also affects the entire FileDialog
default (implicit) width, which would cause the entire dialog to expand
as you'd enter more directores. This was unintuitive, and not something
that any other file dialogs do.

Let's make the fusion style FileDialog behave like the other
FileDialogs.

Pick-to: 6.10
Change-Id: Icd67803b6e205ac9224b2561417667b4893a4e87
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
The ScrollBar's handle would either use palette.dark or palette.mid.
Using the outline colors instead should create more contrast between the
background and the ScrollBar's handle, which is what we want for high
contrast mode.

Task-number: QTBUG-134971
Pick-to: 6.10
Change-Id: I3527f57f498415463016e3c8ec42b6081922a688
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
e7b90cf changed the default to 1
second, which results in a failure:

FAIL!  : tst_TouchMouse::pinchOnFlickable() QTestLib: This test case check ("(flickable->isFlicking()) == (false)") failed because the requested timeout (1000 ms) was too short, 1200 ms would have been sufficient this time.

Bump it to 2 seconds.

Task-number: QTBUG-138662
Change-Id: I3e9b0e600bac879c506d23255e8587197e171d21
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
…econds

e7b90cf changed the default to 1
second, which results in a failure:

FAIL!  : tst_qquickanimatedimage::playingAndPausedChanges() QTestLib: This test case check ("!obj->isPlaying()") failed because the requested timeout (1000 ms) was too short, 1050 ms would have been sufficient this time.

Bump it to 2 seconds.

Task-number: QTBUG-138662
Change-Id: I3ccbc5c6a13ac45752b252263e925ceb9edc6a5c
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
"valueType" is ambiguous. The prevailing meaning is a type that's passed
by value in QML. We mean the type of the list contents (or elements)
here.

Change-Id: Iaf4c0efe272dc6ec7511d2361e7e5ce475936fba
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Without this, it tries to resolve the metaObject of QVariantMap, which
crashes.

Fixes: QTBUG-139626
Pick-to: 6.10 6.9 6.8
Change-Id: I9248f57c428810024f9983df959f475e6557576c
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Fixes: QTBUG-139633
Pick-to: 6.10
Change-Id: I77eb00417199d7228c239ebfdb45877bda7e4b77
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
tst_QQuickTextEdit::inFlickableTouch is flaky due to the view being
repositioned after initialization, which shifts the window downwards.
This new position causes the flick gesture to fail.

Unblacklist tst_QQuickTextEdit::inFlickableTouch on openSuSE 15.6

Fixes: QTBUG-118066
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I0d85d756594aa1976fff1f06f21b54a909474150
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Task-number: QTBUG-139560
Change-Id: I9b9dfce9df58e64054e4b1208f70501eb6b11f0a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
We want to encapsulate the container as well as possible.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I87841fbe9a9c9f1756eddc979b82ec8b90eec8e2
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
We want to use it in other places.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I720c4a71144ab634d70a1ec0115ca81b8030d083
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I2062b537c1c00908b7cc86f394d95ffdf2eabbee
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
We will need to befriend them.

Pick-to: 6.10 6.9 6.8
Task-number: QTBUG-129972
Task-number: QTBUG-139025
Change-Id: I0d877627f2b838f2bf06a7049cd51927e13bd24d
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Qt Submodule Update Bot and others added 30 commits September 26, 2025 15:15
Change-Id: Id2a572a55ab9c58ac9b226c80e5c70d0fa6a080b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
QUIP: 23
Task-number: QTBUG-136184
Pick-to: 6.10 6.8
Change-Id: I953891130cea2e6a5ff7ee29f62af06503d56abc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Accessibility Insights for Windows is a Windows application that will
check the UI accessibility tree for any potential issues or
anti-patterns.

The tool would complain about the FontDialog not giving the text fields
for font family, style and size an accessibility name.

In addition, the sample text edit was exposed as accessible, even
though it's an non-interactive part of the UI. We can simply hide it
from screen readers.

Pick-to: 6.10 6.8
Change-Id: Ice96528c3bcf018fabd95d5aaddd644b41bdfca1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Accessibility Insights for Windows is a Windows application that will
check the UI accessibility tree for any potential issues or
anti-patterns.

The eye dropper button, as well as the sliders, didn't have a name,
which was the main thing that the tool complained about.

Pick-to: 6.10 6.8
Change-Id: Ibe9d9e788d86fe3f46261221da12c1a4be5d220e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Accessibility Insights for Windows is a Windows application that will
check the UI accessibility tree for any potential issues or
anti-patterns.

The tool would complain about the FileDialog having a button without a
name, in the FolderBreadcrumbBar.

The SideBar buttonDelegate would use a Button with an IconImage
contentItem, which the tool would complain about, since the Button
control then wouldn't have a name.

The FileDialogDelegate would also expose every label that it uses to
QAccessible. I'd assume users of screen readers would find it
overwhelming that every delegate has more than 4 different labels that
are all exposed to external assistive technologies. The most important
item to expose is the delegate itself, the sub-labels showing the file
size and last modified date can probably be ignored.

Pick-to: 6.10 6.8
Change-Id: Iad3fbf4a4178934214028214947506eb9d8c2651
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
On Windows 11, the colorScheme is 'Unknown' when a contrast theme is
applied. This is because contrast themes are seperate to the classic
light/dark mode settings, but share the similarity that they both
determine palette colors. Some of our QQC2 themes provide their own
colors (like the Basic style, and FluentWinUI3 style). These styles
provide different colors depending on whether they think the system is
in dark mode or not. However, since the colorScheme can be 'Unknown',
and officially still have a dark-ish system palette, we need to be a
little more intelligent.

Also consider the system to be in "dark mode", in cases where the
colorScheme is 'Unknown' and the windowText is brighter than the window
palette color roles.

Task-number: QTBUG-140507
Pick-to: 6.10
Change-Id: I179ce77104f0d682f353aec10d0f7f28660668b7
Reviewed-by: Doris Verria <doris.verria@qt.io>
TreeViewDelegate is calling the overloads where the role has
already been converted to an integer. As a result, the internal
string->int conversions fail, triggering early returns from these
methods.

Reorder some parameters and make the methods Q_INVOKABLE to change the
overload resolutions and make the default delegate usable with both
TreeModel and TableModel.

[ChangeLog][Qt labs QML Models] Changed the order of the role and
value parameters in setData to resolve ambiguity.

Fixes: QTBUG-140026
Pick-to: 6.10.0 6.10
Change-Id: I0546eddf88ad005a13d156d3b3466c44d10c333d
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
The documentation snippet used QSortFilterProxyModel, while the Gallery
example already demonstrates the QML SortFilterProxyModel. Update the doc
to use QML SFPM for consistency.

Pick-to: 6.10
Change-Id: I65423d2a36625e5b6a56c734808d8ea735d55b02
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
…enus

QPlatformMenu::showPopup() takes a QWindow ptr as its first parameter,
which may or may not be used, depending on the platform. But usually
this becomes the 'transient' parent window for the menu.

This QWindow ptr is chosen as the first element in the list returned
from QGuiApplication::topLevelWindows(), and there's no guarantee that
it won't be empty. On macOS, the following snippet would reproduce a
crash, when opening the menu and pressing Command+Q:
```
Button {
    text: "Open menu"
    onClicked: contextMenu.open()
    Menu {
        id: contextMenu
        popupType: Popup.Native
        title: "File"
        MenuItem {
            action: Action {
                text: "Open"
            }
        }
    }
}
```
This would be the backtrace:
```
4  qAbort()
5  void qt_maybe_message_fatal<QString&>(QtMsgType, QMessageLogContext const&, QString&)
6  qt_message(QtMsgType, QMessageLogContext const&, const char *, char *)
7  QMessageLogger::fatal(const char *, ...) const
8  qt_assert(const char *, const char *, int)
9  QList<QWindow *>::first()
10 QQuickMenuPrivate::setNativeMenuVisible(bool)
11 QQuickMenu::setVisible(bool)
12 QQuickPopup::close()
13 QQuickPopup::setParentItem(QQuickItem *)
14 QQuickPopupPrivate::itemDestroyed(QQuickItem *)
15 QQuickMenuPrivate::itemDestroyed(QQuickItem *)
16 void QQuickItemPrivate::notifyChangeListeners<void (QQuickItemChangeListener:: *)(QQuickItem *), QQuickItem *>(QFlags<QQuickItemPrivate::ChangeType>, void (QQuickItemChangeListener:: *&&)(QQuickItem *), QQuickItem *&&)
17 QQuickItem::~QQuickItem()
18 QQuickControl::~QQuickControl()
19 QQuickAbstractButton::~QQuickAbstractButton()
20 QQuickButton::~QQuickButton()
21 QQmlPrivate::QQmlElement<QQuickButton>::~QQmlElement()
22 QQmlPrivate::QQmlElement<QQuickButton>::~QQmlElement()
23 QQmlPrivate::QQmlElement<QQuickButton>::~QQmlElement()
24 QObjectPrivate::deleteChildren()
25 QObject::~QObject()
26 QWindow::~QWindow()
27 QQuickWindow::~QQuickWindow()
28 QQuickWindowQmlImpl::~QQuickWindowQmlImpl()
29 QQuickApplicationWindow::~QQuickApplicationWindow()
30 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement()
31 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement()
32 QQmlPrivate::QQmlElement<QQuickApplicationWindow>::~QQmlElement()
33 void qDeleteAll<QList<QObject *>::const_iterator>(QList<QObject *>::const_iterator, QList<QObject *>::const_iterator)
34 void qDeleteAll<QList<QObject *>>(QList<QObject *> const&)
35 QQmlApplicationEnginePrivate::cleanUp()
36 QQmlApplicationEngine::~QQmlApplicationEngine()
37 QQmlApplicationEngine::~QQmlApplicationEngine()
38 main
```

Since we only need this QWindow ptr to open a native menu, there is no
reason to even check that list in cases were we're closing a native
menu. Thus, it makes sense to completely skip that part when closing.

Not only can we skip this step when closing a native menu, but we also
don't really need to check qGuiApp->topLevelWindows() in the first
place, since the window we're interested in is referenced by the parent
item. Using the parent item's window is more semantically correct, since
getting an arbitrary top level window from qGuiApp->topLevelWindows() could
cause QPlatformMenu::showPopup() to get called with a pointer a
completely different window than the intended one.
QPlatformMenu::showPopup() and QHighDpi::toNativeLocalPosition() both
handle cases where the window argument is nullptr.

An autotest would be very welcome, but due to native menus blocking
nature, it doesn't seem feasible.

Pick-to: 6.10 6.9 6.8
Change-Id: I7f61ed245307a821fdf567e65e3739566505ba73
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Change-Id: I9ae5702ca1c09df152d308034ec384e9f5285d4c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
The documentation for GradientStop position says that its default
value is zero.  However, the member is not initialized, so its
value is actually random.

This can cause all sorts of problems (included corrupted rendering
if the value happens to fall into a NaN range).

[ChangeLog][QtQuick][GradientStop] The position property is now
always initialized to 0.0; previously it was left uninitialized.

Pick-to: 6.10 6.9 6.8 6.5
Task-number: QTBUG-140364
Change-Id: I5dbc83838fb4d2f1a46c34ae61e25bfe3853eb16
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Remove unused DomItem argument from pathFromOwner methods.

Change-Id: Iaa978c6ebf90b37736cd2cf1e8772441e51cbf3f
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Add trailing '.' where missing in error messages that qmlls sends to the LSP
client.

Task-number: QTBUG-133497
Change-Id: I28b50b47980adbb37d6ec1655481af784404457a
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Extend the ScriptFormatter to format type annotations in JS lambdas. We
can't really reuse the code that formats type annotations in QML methods
because this one uses the DomItem MethodArgument::writeOut(), and we
don't have a MethodArgument DomItem for type annotations in JS lambdas.

Add anchors for UiQualifiedId, so that comments can be attached around
the bits and `.` in an id like `a.b.c.d`.

Partially amends 288e03a that made
ScriptExpression always disable qml mode to enable it when needed (type
annotations are only enabled when qml mode is enabled), otherwise we
can't format type annotations in tst_reformatter.

Implement ScriptFormatter for type annotations. Don't process
UiQualifiedIds for comments when not inside a type annotation.

Pick-to: 6.10
Task-number: QTBUG-137944
Change-Id: I897ebead743f78d2a957a09469ce7ff3317aa930
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Add sourcelocations for `<>` in list types like `list<int>` in
AST::Type, and fix their lastSourceLocation() method to show the `>`
location when applicable.

Add the new sourcelocations to qqmldomcomments to also be able to anchor
comments around the `<>`.

Implement ScriptFormatter for list type annotations.

Pick-to: 6.10
Task-number: QTBUG-137944
Change-Id: I73af498a9165f99fdceb69c8822ce5bb94e02ff9
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Adapt the parser to not ignore return type annotations in function
declarations, and visit the return type annotations in the
ScriptFormatter visitor.

Pick-to: 6.10
Task-number: QTBUG-137944
Change-Id: Ib54aa17b056a87215baa83535038b867a3b7e195
Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io>
Remove the workaround for QmlObject's formatting, and always create the
filelocations for its `{}` tokens in qqmldomastcreator.

Now that our comments are printed at the correct places, fix the wrong
indentation they get by following ScriptFormatter::outWithComments()'s
indentation helper: introduce a new enum IndentedCommentOption, and
automatically set it for `{}[]` regions. This allows to
increase/decrease the indent after/before writing comments, so that the
comments get a correct indent.

Adapt the existing tests to not expect comments to move around qml
objects anymore, and that comments can now attach to QmlObject `{}`
tokens in tst_qmldomitem.h.

Task-number: QTBUG-137944
Task-number: QTBUG-97796
Task-number: QTBUG-123386
Task-number: QTCREATORBUG-33333
Change-Id: Ice3cff8a24f4b55e0b642da00b3081892abdf2a1
Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Reviewed-by: Dmitrii Akshintsev <dmitrii.akshintsev@qt.io>
It seems that the timeout for this test is too short on a debug build
with ASAN, and leads to unrelated test failures on my machine. I
couldn't see any weird behavior in the profiler, apart from
QQmlJSUtils::resourceFilesFromBuildFolder() that might take more time
because it iterates <build>/qtbase/qml to search for .qrc files (and
depending on how many QML modules were built this might take less or
more time).

Change-Id: I3c7b0b6483c89de0a06460f8924943b598e5c0a6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Prepare for QTBUG-119163 by adding a method to get all the build paths
where CMake build should be called, and a test for it.

Task-number: QTBUG-119163
Change-Id: Ic9f7f77c413afe475228898029746bcd2a2ac463
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
The current situation leads to a race in qmlls: the file is opened and
then the build folder is announced to qmlls. Depending on whether the
file opening thread is fast enough, it might start processing the file
before processing the notification about the build folders, which leads
to random test failures of tst_qmlls_modules:qmldirImport (once every
three run on average on my machine).

Therefore, announce the build folder before opening the file.

Change-Id: Ic67da41f2bcbf18be6ce46ee48a771937150f479
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Use QDirListing instead QDirIterator in resourceFilesFromBuildFolders.
QDirIterator is deprecated and shows up a bit in the profiler when
investigating why tst_qmlls_modules::qmldirImports timeouts some time on
a debug asan build.

Pick-to: 6.10
Change-Id: Icc80c39f48ac381828829dc0d4c5eb51ed42abbf
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
The highlighting visitor does not use paths, so add the NoPath option
for the visit. This makes the highlighting a bit faster as the path
construction does show up in the profiler.

Change-Id: If8201e0854870c0f1fb17385f2abce87581f79b7
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
QQmlToolingSettings::Searcher::searchDirectoryHierarchy does not need
QSettings to work, so remove the #if QT_CONFIG guard there. The
QSettings are only needed to read the settings file, not to locate it.

Change-Id: Ief67a56aad95ca242cdfdcf0790be3c46f57b664
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Apparently the author wanted to show an alias overriding a property and
still retain control over the property. This doesn't work and simply
confuses any reader.

Pick-to: 6.10 6.8
Change-Id: Id63708eb7623d4cd24a81135156b237d85f2ca74
Reviewed-by: Dmitrii Akshintsev <dmitrii.akshintsev@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
QQmlDelegateModel will do the right thing when the delegate is replaced.
There is no need to regenerate afterwards.

Change-Id: I9bfa0f2df4e65d03eacb25ae875a74dea16180d3
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Task-number: QTBUG-139591
Change-Id: I21022fec82836e87ab957b0df5f514a6bc723ce2
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Fixes: QTBUG-140544
Pick-to: 6.10 6.10.0
Change-Id: I951d3bae73157ccf2cfcf549b506a44651719243
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Ensure window1 is active before proceeding with mouse click.

Previously, we only checked if window1 was created, which was
insufficient for the subsequent mouse click operation. Modify a check
condition to ensure the window is active before proceeding.

Fix flakiness on Ubuntu 24.04 wayland.

Fixes: QTBUG-138480
Pick-to: 6.10 6.8 6.5
Change-Id: I12e262d5a9d4e54a254ae6afd44f98347cc79d98
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
This implements support for SVG masks with the default content
unit type. The alternative "object bounding box" content unit type
is still not supported as it would need additional logic to replicate
the mask per masked item.

With this change, the parser has to provide a unique ID for each node,
so that references to masks can be resolved by the parser. This involves
some complexity in the SVG parser to avoid name collisions for use nodes,
switch nodes, etc.

Task-number: QTBUG-121537
Change-Id: If9f47f364f8682ab6021e7f6277c480c3f075297
Reviewed-by: Hatem ElKharashy <hatem.elkharashy@qt.io>
Change-Id: I66dbe7a8f30555d630d98529258f88158af6f23a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.