| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I9ee06e912efd381133fd2f12a4cd0438a1246532
|
|\
| |
| |
| | |
Change-Id: Ie54d62fee6d397c685cc12411f0bcf0cc49c3547
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 65374a95a33a677740f6e6b25c424b4a4b466b3f Doc: improve SwipeView docs
+ d5cb26bc56a3b6f6e99c88654d4f7a65f43551ac Menu: ensure the correct delegates are used when created via Component
+ b41a32bc8ed42001c59af22345af4b733398aa34 wearable: fix items still being visible when returning to LauncherPage
+ e7213c0460788f49ec6c2204bfd5c0517699aa51 Attempt to stabilise Popup::test_shortcut auto test
+ d923dd467c1aeb3e195a09949b04862084002f88 MenuBar: ensure the correct delegates are used when created via Component
+ d56c193eb4ceb640611d66f22e1f26aae91cd7d1 QQuickPopupPositioner: avoid adding duplicate item change listeners
+ e236382e8cc1017597ae67bf739e91a2bd4dfd0a Bump version
Change-Id: If38333444bb6ae9d5556bd995a155bfbd5d2111c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|/
|
|
| |
Change-Id: If437ba7a6fbd1127f97c3ac84722bd2ec6422baa
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
3b5143bb67cdaaff6b0eabedff1034e4add7ec87 already fixed a crash with the same
stack trace in dev. The same fix works with the referenced bug report.
Task-number: QTBUG-66483
Change-Id: I05450d2ff40f317d9b5b59e28991fa92b414022e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
| |
Parse the environment variable manually when the platform's list separator
is ':', to avoid issues with qrc paths (which start with ':') not working.
Task-number: QTBUG-68219
Change-Id: Ic71d49da5a72a37bc1d2e7b19fbf1de71b3917f3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
| |
Mention some important details about contentWidth and contentHeight.
Task-number: QTBUG-69376
Change-Id: Iea6c6e36bb11436d30a0284a666c60ab7716f31b
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|
|
|
|
|
| |
Task-number: QTBUG-68298
Change-Id: I049ff1de079f065182429f43a20e1a3899f4a962
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
| |
Change-Id: I0ea789c0ba3a153b00ac3ab6501ecf10f6c733ce
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Commit dabf5d2e fixed a documentation issue with QML type inheritance
by excluding .qml files from the documentation build. A side-effect is
that example documentation pages do not list .qml files as part
of the example project.
Instead of excluding all .qml files, simply exclude '*.qml' from the
list of source file extensions. This way, .qml files are still
considered to be part of examples.
Task-number: QTBUG-69141
Change-Id: I51a6d1768c30cfb9025a1aaf718b93bfae52437a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
| |
This makes debugging significantly easier, in that it's now possible
to use one qDebug() statement for the assignment rather than a handful
at different places in the code.
Change-Id: Ic6fdc2943b6eeb0496148b07d7a3ece0b6399c1b
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
| |
'cause it's better.
Change-Id: I00a538013a10a7ff3b551b9f550427f898610dbb
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are multiple copies (for each style) of .qml files, all
without documentation. The types are documented in .cpp or .qdoc files,
but QDoc parsed also the .qml source and generated (internal) nodes
for these undocumented types - this conflicted with the actual
documented types, causing the inheritance information to go missing.
To solve this, exclude all .qml files from the build as they contain
no documentation.
Task-number: QTBUG-69141
Change-Id: If9a84d91f37d5f9431c9ce1d0d079b7fd5159445
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Use Window.window instead of ApplicationWindow.window, as the former
will always result in a window regardless of which type of window is
in use.
Task-number: QTBUG-68858
Change-Id: I3bdb60350d92b13621b0f4db9085bf067b6ff6e2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
Not sure why this was ever an integer...
Change-Id: Ibfa2a547741328a7492c0da1c5cc87d5f6f885e1
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Surround the function with parentheses as suggested:
QWARN : tst_Snippets::verify(qtquickcontrols2-spinbox-custom) Warning: Using function expressions as statements in scripts is not compliant with the ECMAScript specification:
"function(value, locale) { return Number(value).toLocaleString(locale, ..."
This will throw a syntax error in Qt 5.12. If you want a function expression, surround it by parentheses.
Change-Id: I39df9af9b3dc62ffaf6fcba071c04c8933698c07
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\
| |
| |
| | |
Change-Id: I3bb08f43d2e0cc007d3e744225bfdd4d4862aea8
|
| |
| |
| |
| |
| | |
Change-Id: I091fae37c0fd9f7fbcba76b20e1852f48e014bb9
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-66834
Change-Id: I8a07e114d230361f21dfbf1458210729b3607d92
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The use case in the referenced bug report looks something like this:
Tumbler {
model: 4
// ...
onModelChanged: {
currentIndex = model - 2;
}
}
The problem was that setting currentIndex in onModelChanged would cause
the wrap to change to true, which in turn caused the internal view to
change to PathView. This would cause the currentIndex to be set to 0
on successive model changes (i.e ++model).
By keeping track of whether or not the user set the currentIndex during
a model change, we can ignore changes in the internal view's
currentIndex and restore the user's currentIndex afterwards.
Task-number: QTBUG-68737
Change-Id: I25738f36cf58a331d1b8e50b5029b4aa1dd27db5
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is currently no indication (in the form of build output) that the
user is missing a required module when building from source.
QTBUG-68826 suggests that such a feature be added, but until then,
we need a way to inform users how to build from source.
Task-number: QTBUG-68618
Change-Id: Ic17565aeaaff6aaa9907552d3b0c2646b407b425
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The placeholder text's renderType should cohere to the renderType of
the control. This is already the case for font, and sometimes color
too.
This solution avoids the need to expose a new property.
Task-number: QTBUG-68769
Change-Id: I6711aea83b7b8ee27f56b9c905aa4870465e3fd9
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|/
|
|
|
|
|
|
|
| |
Explain that the 9-patch lines must be one pixel thick regardless of
the intended DPI (e.g. @2x) of the image.
Task-number: QTBUG-66834
Change-Id: I57ab0460bf190a67a436dd63543ea0e09812a898
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
|
|
|
|
|
|
| |
File for bic test added.
Change-Id: I99ec3defd695bc7e10cc753a3ee1e0fec56403dd
Reviewed-by: J-P Nurmi <jpnurmi@gmail.com>
|
|
|
|
|
|
|
| |
Change-Id: I43627d157442c22ef6c93e5f54e23347955ae8bc
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
(cherry picked from commit c48b314edef0595fbfa16dc62ce38b8d615326c8)
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
|
|
|
| |
Change-Id: If2b564c673189582744b6fbd2b6cdedd2ee74669
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
(cherry picked from commit c51eea88704938fec93632c01d32c4587a6da015)
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
|
|
|
|
| |
Change-Id: I4de01c1b725d15d7e1a00e8aaa527b39609733f4
|
|
|
|
|
|
|
|
|
|
| |
We do not provide a 2x version for the 16x16 icon,
since the difference is quite subtle and it reduces the maintenance
burden.
We do not provide those for the other icon sets, too.
Change-Id: Ia6914c1abe8bac94ace9659a8b2c46cf3ed5fb56
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\
| |
| |
| | |
Change-Id: I762edff7c04d59cc63477525161c7680ff673d5b
|
| |
| |
| |
| |
| | |
Change-Id: Iaa468adfab14c90e9281cceeb325822673e6aac2
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ifd7521b8a7bfd7da91808dd00ebdcb59f2ba46dc
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: Ief81868a8d314f7e7722fc0cb6670ae0dc4da50f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code is more readable and less error-prone (this patch caught a few
uninitialized members) when the members are initialized in the same
place where they are declared. In many cases, empty default destructors
can be entirely removed, and we get faster implicitly declared inline
default constructors defined by the compiler.
Change-Id: I14c5448afc901f9b2ac5965f28c1c26c0b646c08
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is a double-regression caused by commits bcd1bed and 03a8c88. Both
of these changes caused dangling pointers being left on the list of item
change listeners.
First, bcd1bed made QQuickPopupPositioner use QQuickItem::isAncestorOf()
without noticing the difference that the old self-made isAncestorOf()
conveniently returned true for the item itself, whereas the new built-in
QQuickItem::isAncestorOf() doesn't. This had a nasty side effect that
when the popup's parent item was removed from its parent,
QQuickPopupPositioner::itemChildRemoved() no longer removed the ancestor
listeners.
Then, 03a8c88 made things worse by changing the stack allocation of
QQuickPopupPositioner to heap allocation without ever deleting the
positioner object.
Valgrind output for tst_tooltip:
==14391== Invalid read of size 8
==14391== at 0x79EFB9A: QQuickItemPrivate::itemChange(QQuickItem::ItemChange, QQuickItem::ItemChangeData const&) (qquickitem.cpp:6206)
==14391== by 0x79F3D98: QQuickItem::setParentItem(QQuickItem*) (qquickitem.cpp:2791)
==14391== by 0x79F3E87: QQuickItem::~QQuickItem() (qquickitem.cpp:2385)
==14391== by 0x7A16073: ~QQmlElement (qqmlprivate.h:103)
==14391== by 0x7A16073: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:103)
==14391== by 0x7A9CFEE: QQuickView::~QQuickView() (qquickview.cpp:218)
==14391== by 0x4038215: quick_test_main_with_setup(int, char**, char const*, char const*, QObject*) (quicktest.cpp:512)
==14391== by 0x4038CFF: quick_test_main(int, char**, char const*, char const*) (quicktest.cpp:330)
==14391== by 0x400BD7: main (tst_default.cpp:44)
==14391== Address 0x1f2d3f10 is 0 bytes inside a block of size 32 free'd
==14391== at 0x4C2F29C: operator delete(void*) (vg_replace_malloc.c:576)
==14391== by 0x29CA2641: QQuickPopupPositioner::~QQuickPopupPositioner() (qquickpopuppositioner.cpp:68)
==14391== by 0x29CA004C: QQuickPopup::~QQuickPopup() (qquickpopup.cpp:783)
==14391== by 0x2A1A4CEE: ~QQuickToolTip (qquicktooltip_p.h:59)
==14391== by 0x2A1A4CEE: ~QQmlElement (qqmlprivate.h:103)
==14391== by 0x2A1A4CEE: QQmlPrivate::QQmlElement<QQuickToolTip>::~QQmlElement() (qqmlprivate.h:103)
==14391== by 0x6397A65: QObjectPrivate::deleteChildren() (qobject.cpp:1997)
==14391== by 0x6398DDA: QObject::~QObject() (qobject.cpp:1025)
==14391== by 0x79F41FA: QQuickItem::~QQuickItem() (qquickitem.cpp:2378)
==14391== by 0x7A897D5: QQuickMouseArea::~QQuickMouseArea() (qquickmousearea.cpp:452)
==14391== by 0x7A1699D: ~QQmlElement (qqmlprivate.h:103)
==14391== by 0x7A1699D: QQmlPrivate::QQmlElement<QQuickMouseArea>::~QQmlElement() (qqmlprivate.h:103)
==14391== by 0x639082D: qDeleteInEventHandler(QObject*) (qobject.cpp:4603)
==14391== by 0x6392478: QObject::event(QEvent*) (qobject.cpp:1242)
==14391== by 0x79F1D77: QQuickItem::event(QEvent*) (qquickitem.cpp:8006)
==14391== Block was alloc'd at
==14391== at 0x4C2E226: operator new(unsigned long) (vg_replace_malloc.c:334)
==14391== by 0x29C9F939: QQuickPopupPrivate::init() (qquickpopup.cpp:280)
==14391== by 0x29C9FD4E: QQuickPopup::QQuickPopup(QQuickPopupPrivate&, QObject*) (qquickpopup.cpp:771)
==14391== by 0x29CC6CBB: QQuickToolTip::QQuickToolTip(QQuickItem*) (qquicktooltip.cpp:171)
==14391== by 0x2A1A58DD: QQmlElement (qqmlprivate.h:98)
==14391== by 0x2A1A58DD: void QQmlPrivate::createInto<QQuickToolTip>(void*) (qqmlprivate.h:107)
==14391== by 0x5D0186D: QQmlType::create(QObject**, void**, unsigned long) const (qqmlmetatype.cpp:915)
==14391== by 0x5D81EFF: QQmlObjectCreator::createInstance(int, QObject*, bool) (qqmlobjectcreator.cpp:1163)
==14391== by 0x5D85AE2: QQmlObjectCreator::create(int, QObject*, QQmlInstantiationInterrupt*) (qqmlobjectcreator.cpp:203)
==14391== by 0x5D82230: QQmlObjectCreator::createInstance(int, QObject*, bool) (qqmlobjectcreator.cpp:1202)
==14391== by 0x5D82F65: QQmlObjectCreator::setPropertyBinding(QQmlPropertyData const*, QV4::CompiledData::Binding const*) (qqmlobjectcreator.cpp:825)
==14391== by 0x5D85105: QQmlObjectCreator::setupBindings(bool) (qqmlobjectcreator.cpp:777)
==14391== by 0x5D857C5: QQmlObjectCreator::populateInstance(int, QObject*, QObject*, QQmlPropertyData const*) (qqmlobjectcreator.cpp:1456)
Change-Id: Id368e79146f4673708a84253a009fcdf24ab4a2c
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I60dbf84127c800a5f0590ae46c4be3ece7ca3141
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Accept Key_Escape or Key_Back only if it actually close the popup. If
the popup is not visible, the key is not handled, and the event should
therefore propagate (and potentially close the app on Android).
Note: def92f7 had a broken test (didn't take the popup exit transition
into account) and thus, blocked the CI and got rejected in 110b718.
Task-number: QTBUG-67684
Change-Id: I46b4731b3006721f3737cf909fbd97331ac6d8ed
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|