| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts the following commits:
d5cb26bc56a3b6f6e99c88654d4f7a65f43551ac - Menu: ensure the correct delegates are used when created via Component
d923dd467c1aeb3e195a09949b04862084002f88 - MenuBar: ensure the correct delegates are used when created via Component
d56c193eb4ceb640611d66f22e1f26aae91cd7d1 - QQuickPopupPositioner: avoid adding duplicate item change listeners
567a2de8cd493aabe0055d6dbc367b39447e70dd - Stabilize tst_qquickmenubar
953fbac6131823e4fce0eb4707a854469c4c04ff - Fix Instantiator-created MenuItems disappearing
936d31179d44220571ded15840bedeccb581c83b - tst_qquickmenu: add a test for MenuItems before and after a Repeater
fc1832810f6c09505d9413685ed0b2d6295bea4a - QQuickMenuBar: fix menu not opening
The fix for QTBUG-67559 has caused lots of issues, with the latest being a
crash right before the 5.12 release. The bug that they fix is a P2,
so it's not worth the hassle. The patches might be able to be resubmitted
to dev after the crash is fixed.
Change-Id: Ic192c7a302176bcdb2503b636b3462b10898a2ba
Fixes: QTBUG-71770
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Qt Creator tries to look for the example sources in this path,
before listing them in the welcome screen.
Task-number: QTBUG-71694
Change-Id: I333f380f2f8ada91865474ff95cb0df1affba9cb
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Qt Quick Controls 2 module is referred to without the version number.
The landing page title still had the version number, which caused
the table of contents to fail to find the html filename.
Fix the landing page title and use the old title as a \keyword,
so any external links still continue to work.
Task-number: QTBUG-71694
Change-Id: I99e5eabf56028bd8a3180cb7161a0b0dcbdf9863
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a Menu is declared within a MenuBar, a MenuBarItem has to be created for
it. Creation takes the following steps:
- 1 Begin creation of the item
- 1.1 Set the parent of the MenuBarItem to the MenuBar
- 2 Set the menu on the item
- 3 Complete creation of the item
- 4 Add the item
When setting the parent of the MenuBarItem, the following call stack can be
observed:
1 QQuickContainer::itemChange qquickcontainer.cpp 757 0x7fff6e5f4544
2 QQuickItemPrivate::itemChange qquickitem.cpp 6213 0x7fff6aa226f7
3 QQuickItemPrivate::addChild qquickitem.cpp 2964 0x7fff6aa1e663
4 QQuickItem::setParentItem qquickitem.cpp 2753 0x7fff6aa0f57c
5 QQuickMenuBarPrivate::beginCreateItem qquickmenubar.cpp 100 0x7fff6e627c08
6 QQuickMenuBarPrivate::createItem qquickmenubar.cpp 115 0x7fff6e627c98
7 QQuickMenuBarPrivate::contentData_append qquickmenubar.cpp 263 0x7fff6e6285d9
In particular, the following function is called:
void QQuickContainer::itemChange(ItemChange change, const ItemChangeData &data)
{
Q_D(QQuickContainer);
QQuickControl::itemChange(change, data);
if (change == QQuickItem::ItemChildAddedChange && isComponentComplete() && data.item != d->background && data.item != d->contentItem) {
if (!QQuickItemPrivate::get(data.item)->isTransparentForPositioner() && d->contentModel->indexOf(data.item, nullptr) == -1)
addItem(data.item);
}
}
This check is for items that are added after component completion of the
control (QQuickMenuBar), as there is a isComponentComplete() check.
Before d923dd46, QQuickMenuBarItems were constructed the moment their
QQuickMenus were appended to QQuickMenuBar's contentData, which was before
component completion. This meant that the isComponentComplete() check above
failed as expected and the item was instead added after its creation process
was completed (step #4 in the list above):
void QQuickMenuBarPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj)
{
QQuickMenuBar *menuBar = static_cast<QQuickMenuBar *>(prop->object);
if (QQuickMenu *menu = qobject_cast<QQuickMenu *>(obj))
obj = QQuickMenuBarPrivate::get(menuBar)->createItem(menu);
QQuickContainerPrivate::contentData_append(prop, obj); // leads to addItem() being called
}
Part of the process of an item being added to QQuickMenuBar involves connecting
to the signals of its corresponding QQuickMenu (if it has a menu). Quoting the
code from QQuickMenuBar::itemAdded():
if (QQuickMenu *menu = menuBarItem->menu())
QObjectPrivate::connect(menu, &QQuickPopup::aboutToHide, d, &QQuickMenuBarPrivate::onMenuAboutToHide);
After d923dd46, QQuickMenuBarItems are now constructed *after* component
completion to ensure that delegates declared outside of the menu bar have
been completed. This means that the isComponentComplete() check in
QQuickContainer::itemChange() no longer fails and the item is added
before its QQuickMenu is set on it (step #2). As a result, it never
connects to the QQuickPopup::aboutToHide() signal and hence it stays
activated/highlighted even after the menu has been dismissed, which
results in having to click twice on the QQuickMenuBarItem to open
the menu the next time.
This patch fixes the issue by simply setting the menu on the item before
setting its parent:
- 1 Begin creation of the item
- 1.1 Set the menu on the item
- 1.2 Set the parent of the MenuBarItem to the MenuBar
- 2 Complete creation of the item
- 3 Add the item
This ensures that the item has a menu and the connection is made.
Change-Id: I93edf7e5a8616a851595ce28ed43f0348078f0b5
Fixes: QTBUG-71583
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
when setting null to footer
Fixes: QTBUG-71444
Change-Id: Id4b0a3fd7aa104357674b4e2be6206894f8878da
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
| |
Just to verify that it works, as a similar test was added for
Instantiator in another patch.
Change-Id: I1ab55d98a3726bff1a2984db0d81ae444e05d630
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When d5cb26bc fixed a bug in Menu, it also broke the use case
of having an Instantiator create menu items. Using an Instantiator
like this allows users to create a "Recent Files" menu, for example.
The issue was that we would indiscriminately recreate items, even
those owned by an Instantiator.
This patch avoids recreating items owned by Instantiators.
It also adds a logging category for Menu, to aid debugging.
Fixes: QTBUG-71066
Change-Id: Ie0e46de1cbfaee81b43d63f3143435f2514371d5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change makes all Qt Quick Controls 2 imports match the current
Qt minor version, which is 12 as of this patch.
It also updates all other Qt Quick imports to match.
This will also make future version bumps easier as all version numbers
in existing code/docs will match.
The following commands were used to verify that no old versions remain:
for i in `seq 0 11`; do git grep "import QtGraphicalEffects.*1.$i$"; done
for i in `seq 0 11`; do git grep "import QtQuick 2.$i$"; done
for i in `seq 0 11`; do git grep "import QtQuick.Layouts 1.$i$"; done
for i in `seq 0 5`; do git grep "import QtQuick.Controls.*2.$i$"; done
for i in `seq 0 11`; do git grep "import QtQuick.Templates 2.$i as T$"; done
[ChangeLog] From Qt 5.12 onwards, all import versions in
Qt Quick Controls 2 follow the same minor version as Qt's
minor version number. For example, the import version for Qt 5.12 is:
"import QtQuick.Controls 2.12".
Change-Id: I6d87573f20912e041d9c3b7c773cc7bf7b152ec3
Fixes: QTBUG-71095
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
| |
Change-Id: If4c5bcfd6bb5e6a837e124e001ea1df54c65c88f
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|
|
|
|
|
|
|
|
|
| |
The name of the documentation module is also changed from 'qtquickcontrols2'
to 'qtquickcontrols', and this is reflected in other modules' dependencies
and licensing source files (qt_attribution.json).
Task-number: QTBUG-70333
Change-Id: I2ba308b7eddae3af00dfb49a751cac8527c46bba
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
30fcc735 introduced this to work around a crash that was apparently
caused by 4c71db75. The commit that added the workaround is now three
years old, and removing it fixes a crash that is blocking CI.
Change-Id: Iefbb32e00d57e5ad86c43977e10120fdc92a3635
Fixes: QTBUG-70064
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
|
|
|
|
|
|
|
| |
Ensure the QByteArray we set as the current test name outlives
the test.
Task-number: QTBUG-71387
Change-Id: Id5f75b5ffcd1a710b5d8be4796cf48ee8dd1896d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I013643381229a43b5d8c5c114a9d86156e5e2bd7
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
It crashes, but I'm unable to debug it with a CI VM because it won't
build.
Task-number: QTBUG-70063
Change-Id: Ia9c32a145c40cc55ab56dcf3fd52468d7a925f40
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quicktemplates2/qquickmenubar.cpp
src/quicktemplates2/qquickmenubar_p.h
src/quicktemplates2/qquickmenubar_p_p.h
Change-Id: I5c2115f05826f68f1b1f5ce6762273cd91e6997e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The issue is that QQuickPopupPositioner::setParentItem() is called when
the delegate has been created and assigned to the Repeater, then the
ancestor listeners are added, and then straight after that, the
benchmark item itself is parented to benchmarkRoot, which causes
QQuickPopupPositioner::itemParentChanged() to be called, which adds a
single ancestor listener: the QQuickRootItem (which was just added
previously as a result of QQuickPopupPositioner::setParentItem()
being called).
The item could be arbitrarily high up in the ancestry tree, so there's
no nice (i.e. fast) way of checking for duplicates in Controls 2
itself. Instead, use the new
QQuickItemPrivate::updateOrAddItemChangeListener() function which only
adds the listener if it doesn't already exist.
This avoids a heap-use-after-free in qmlbench when creating Menus.
Task-number: QTBUG-70729
Change-Id: I0efaa10167c4c9a9c4c1b65a5c34e683c3ec5732
Fixes: QTBUG-70729
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Don't add items until we're complete, as the delegate could change in
the meantime. Instead, add them to contentData and create them when
we're complete.
A similar fix was already done for Menu in d5cb26bc.
Task-number: QTBUG-67559
Change-Id: Idb43b7a69fcf1c1ad6396c73a3c090b92e460ab8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Something about postponing delegate creation to component completion
means that the fileMenuBarItem->isHighlighted() check fails
occasionally.
Give it a chance to sort itself out before sending move events.
Change-Id: I140ec835b5cb4ec7d784215a20567469ad422c5b
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
takeItem() unparents the item, so we need to make sure it gets deleted.
The leak was caught by valgrind:
==10039== 832 (32 direct, 800 indirect) bytes in 1 blocks are definitely lost in loss record 6,465 of 6,706
==10039== at 0x4C3017F: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==10039== by 0x112C1E: tst_QQuickMenu::count() (tst_qquickmenu.cpp:121)
==10039== by 0x12F313: tst_QQuickMenu::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (tst_qquickmenu.moc:156)
==10039== by 0x612B6B2: QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const (qmetaobject.cpp:2305)
==10039== by 0x41B07CD: invoke (qmetaobject.h:123)
==10039== by 0x41B07CD: QTest::TestMethods::invokeTestOnData(int) const (qtestcase.cpp:915)
==10039== by 0x41B15BF: QTest::TestMethods::invokeTest(int, char const*, QTest::WatchDog*) const (qtestcase.cpp:1114)
==10039== by 0x41B1D07: QTest::TestMethods::invokeTests(QObject*) const (qtestcase.cpp:1456)
==10039== by 0x41B2381: QTest::qRun() (qtestcase.cpp:1896)
==10039== by 0x41B24E1: QTest::qExec(QObject*, int, char**) (qtestcase.cpp:1783)
==10039== by 0x12F468: main (tst_qquickmenu.cpp:1505)
Change-Id: I459c7897c1088c8b58152d2e0b5ceb8f3684e589
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds a switch in the settings page that
enables demo mode. In this mode, each screen and UI control
will be visited and interacted with in a loop until the
screen is tapped, at which point it returns to the launcher page.
Change-Id: Icb306e23985d8c1f82725a95ed7f2e34b3d6c03f
Reviewed-by: Mikhail Svetkin <mikhail.svetkin@qt.io>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Iaa205c19aa413de7a5537f17f74d969547d5e558
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Some API we need is only available in later versions.
Don't go past 5.10 for now, because the support isn't there yet.
Change-Id: I6915d34ef37b47b9b07e6e4aa85c90ff2e8b59b2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The qmlClearTypeRegistrations() call causes a crash and it's not clear
why. Until we can fix it, skip it so that other changes can get in.
It should be skipped rather than blacklisted as it shouldn't be run at
all.
Task-number: QTBUG-70063
Change-Id: I1ff47e034f121014370bbf9d65e8ac68769a8d31
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Ic5311418d3f25398380c4a32b35753329efb6f3f
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Ensure that the window is active before trying to activate keyboard
shortcuts.
Task-number: QTBUG-70413
Change-Id: Ibac1526efd9c53f1f2aa3401da3855ce26d35d6a
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QV4::Object::getIndexed(uint) is deprecated in favor of get(uint).
On this occasion, fix signedness warnings by changing j and len to be of
type uint.
Fixes:
qquickstackview_p.cpp:103:66: warning: ‘QV4::ReturnedValue QV4::Object::getIndexed(uint, bool*) const’ is deprecated [-Wdeprecated-declarations]
QV4::ScopedValue value(scope, array->getIndexed(j));
QT_DEPRECATED inline ReturnedValue getIndexed(uint idx, bool *hasProperty = nullptr) const
qquickstackview_p.cpp:107:78: warning: ‘QV4::ReturnedValue QV4::Object::getIndexed(uint, bool*) const’ is deprecated [-Wdeprecated-declarations]
QV4::ScopedValue props(scope, array->getIndexed(j + 1));
QT_DEPRECATED inline ReturnedValue getIndexed(uint idx, bool *hasProperty = nullptr) const
Change-Id: I6c0b0d54dd4119a2531f847788c531daf92e6954
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In openSUSE 15.0 /etc/os-release the ID of the OS was
changed from "opensuse" to "opensuse-leap". So every blacklisting
we did for opensuse, didn't cover opensuse-leap. This one adds
opensuse-leap as a blacklisted platform whenever opensuse
was blacklisted.
Task-number: QTBUG-70413
Change-Id: Ib84cda329160d4cfed28cb168f380269c24f8435
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I3fa0011d8b69db2a004feb177a7f89ccb75a724d
|
| |
| |
| |
| |
| |
| |
| | |
Hide SwipeView items when appropriate, as it's not done automatically.
Change-Id: Ic716da004794b7d0eba65c220f6242d4113302d9
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |\
| | |
| | |
| | | |
Change-Id: Ifd12565444714cf68e21ff7f9c37cb5bb368b63d
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ic365389ccf0571fd29c299dbfe3b2269e8818f7d
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't add items until we're complete, as the delegate could change in
the meantime. Instead, add them to contentData and create them when
we're complete.
Task-number: QTBUG-67559
Change-Id: I5f42129f49de861ff5f15d0069daeda0b4e5017c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| |/
| |
| |
| |
| | |
Change-Id: Ic1cc85ed76c3ee534b7dda43449140a791cff36d
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-70413
Change-Id: Ie4ae23a7869bb0cbb41f452637ccf55c58b24182
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-70413
Change-Id: I86b6d4924b6042b9d934bf3f15901eb9a8a6c7f5
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QPlatformDialogHelper's meta-object is added to QQuickDialogButtonBox's
meta-object as a related meta object, and all of its enums are merged
into the same namespace by the QML engine. This produces a conflict with
the enum values of the ButtonLayout in QQuickDialogButtonBox, which is
a duplicate of the one that's already pulled in.
Fixes: QTBUG-70141
Task-number: QTBUG-70141
Change-Id: Ib33dc8ddbe8aa80d03183eb23861658c9e978f04
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move DummyStyle into a subdirectory of the "data" directory, because
otherwise availableStyles() picks it up and makes us fail.
Task-number: QTBUG-70065
Change-Id: Ib69075832b5bcf30c6b960e6a4bcda69f016baf2
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This ensures that the contentItem is created (lazily) in cases like
SplitView, which creates an empty QQuickContentItem. If we don't do
this, items added to SplitView don't show up because it has no
contentItem.
Change-Id: Ide3ce45a2173cc13ee7b194ad6dc501287d6fc6c
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|\|
| |
| |
| | |
Change-Id: I828b8ea2fef35e4e7ab0bb594e683f8643c793a1
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Check transitioner for nullptr before access.
The transitioner created only on some transition setter called
and remain nullptr on base unstyled StackView from templates.
Task-number: QTBUG-69897
Change-Id: I51564c5e7195112764f5a63b3b48c302a6d29146
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QCocoaColorDialogHelper in its setCurrentColor does some initialization
(using NSColorPanel) and required its 'm_options' to be set by this point.
So, first set options, then current color.
Task-number: QTBUG-69839
Change-Id: I9092c80a511890e958de5b99a9614feb134dba7e
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Not sure why it's considered ambiguous, but since it's an unknown
value, it's fine to print it as an int.
Task-number: QTBUG-69916
Change-Id: I50335bd140626aa220e0468aef0fd1b3b34e3042
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
Change-Id: I483081703594a8398d51a23c6d2266ac0ae9dfb0
|
| |
| |
| |
| | |
Change-Id: I29a3e01b919b23df1e9dca9f3c2cb4941db79829
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The warning was:
"libpng warning: iCCP: known incorrect sRGB profile"
The metadata was removed with this command:
optipng -o7 -strip all *.png
Change-Id: Icc8f365becb25f8267f93383de9ec78c18f6a03e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQuickIconImage::componentComplete() calls
QQuickIconImagePrivate::updateIcon(), which loads the icon's image via
QQuickImageBase::load(). That eventually calls
QQuickImageBase::requestFinished(), which calls
QQuickIconImage::pixmapChange(). That then calls
QQuickIconImagePrivate::updateFillMode(), which can in turn cause
QQuickIconImage::pixmapChange() to be called again, causing recursion.
This recursion resulted in icon.color being applied twice.
We already have a recursion check in place in
QQuickIconImagePrivate::updateFillMode(), so we can reuse that in
QQuickIconImage::pixmapChange() to know whether or not we should apply
the color to the image.
Task-number: QTBUG-69506
Change-Id: I5cd9edaa524c7ceb9c41c53a9efefcc4c647e246
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Icd5d8a4292be3a335000a7bd0f30384ad83ff36d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the styles are subject to change over time, it's best to use the
most fine-grained properties for specifying padding (topPadding,
bottomPadding, etc.). Using these specific properties will ensure that
what the user specifies always wins over what the style specifies.
Task-number: QTBUG-69551
Change-Id: I4163e9918010fad0cb6ec701b49dbc59b086cf47
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
| |
| |
| |
| |
| | |
Change-Id: I6a1488ef128f64184dccdd28aa12ff83f9975154
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
qrcStylePaths() uses :/qrcStyles1 and :/qrcStyles2, which conflicts
with qrcInQtQuickControlsStylePathEnvVar() in a way that would require
us (qrcInQtQuickControlsStylePathEnvVar()) to be aware of tests that
ran before us.
Avoid this issue by adding more qrc-based styles.
Change-Id: I7a5e24f4ea532c19db30d240fe7c077ac2a09a4e
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|