| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
* Fully qualify all property bindings
* Not using flow as id, because it collides with the property flow
These changes are required so the example works nicely in the designer.
Change-Id: I05972a5a7ebe7277ae7f4230bb68a8b8b011b2f3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the block is right-to-left and starts with a text object, it
should be aligned to the right edge of the QTextLine instead
of the left one.
[ChangeLog][QtQuick][Text] Fixed placement of flowing text objects
in the start of a right-to-left block.
Task-number: QTBUG-43133
Change-Id: Id790e88f3464280f124c38b4260386b84cac8826
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Same workaround as for gcc 6.0
Change-Id: I6137b226c05ddc287bea7230d1f546c5fcf8371f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This difference is only used by the ListView, so calculating it and
storing it (on the stack) introduces a penalty for all items. As the new
geometry is already applied, the old geometry is passed along. This has
the added advantage that the ListView does not have to re-calculate that
either. This fixes a performance regression.
Change-Id: Id5e67bb663a5b11a55ec15ff24ca5b213d1fcef5
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since eea8fa64ab27854b71f46ef143e35b6c9acbba14, we're seeing increased
times in QSGNode::removeChildNode(). The reason for this seems to be
that iteration through the linked list is significantly slower than
iteration through a QList<> due to that each node needs to be loaded
in memory to iterate to the next, compared a more plain sequential
pointer compare with QList<>.
This implementation changes the nodes to use a circular double-linked
list so we can drop the iteration when removing nodes. This brings us
slightly better performance than the original QList based
implementation while still using the same amount of memory as the
single-linked list one.
Change-Id: I0b693730f5b82ad7767e507accafd90551e03fbc
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-56617
Change-Id: I82eb9c07fd6350b2a63f80e62af4c0adf52656c7
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some signals (ie onClosing) as marked as error by QtCreator because
they are registered with version 1 or 2, while QQuick is exported only
as version 0. Exporting version 1 or 2 of QQuickWindow seems to cause
some conflicts with QQuickWindowImpl. So the plugins.qmltypes has
been manually updated.
Task-number: QTBUG-47917
Change-Id: I2ddacfbf0564d8ecfbaadc0323011dbd18439c36
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
GCC would often generate a call to a special "safe" version of memset,
which would in turn prevent inlining in many cases. A simple for loop
does not prevent inlining, and compilers can still decide to replace it
with a memset. It also makes it easier for the compiler to do dead store
elimination.
Change-Id: I60fa3e321c2edb9225699bf57e8a31a3f8356ddc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
| |
Change-Id: I21d77b2eba7107528fc00db0cf5d87f8347b63be
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
| |
When assigning an item a new parent item, a check is done if it is
already part of the children tree below that parent. This is an unlikely
case, so hint the compiler that it can optimize the loop that way.
Change-Id: Ic9f1810aa4b83d84be88f0049e61d21c4add7767
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-57007
Change-Id: I05cabe53e7993cd63498334e95917fe6c3077ab6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In the case where there are no change listeners, there is no need to
do an ref() operation (which involves atomic loads) only to find out
that it's an empty vector (!isSharable). Better still: the whole loop
start-up can be skipped.
Change-Id: I94fd22029a321a5dbef571145007071a54f5b04b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Storing the anchor-loop-detection counters in a bitfield has the
disadvantage that the full field has to be read and masked in order to
use (increment) them. The same for the subsequent store. By putting them
in their own byte, this can be done a lot faster. Those bytes were
available, because they were needed for padding. By making them signed,
there is also no need for the compiler to insert overflow handling.
Change-Id: I3c250983c74de2ecfd33fe72ea8df04e24b8cd0c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
| |
Change-Id: Ia4a935e1da82106954b661264e7a630befd80cc6
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
|
|
|
| |
Fix warning:
qtdeclarative/src/imports/settings/settings.pro:1: Cannot find feature qfeatures
Change-Id: I215801bbadd1a07deef69bb38b0ac31b8da4d64e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Move #ifdef to correct place in relation to the #endif
Change-Id: Id3363ad2ebbe246bc1e93e345432ef52908cf1ee
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/quick/qquicktextedit/BLACKLIST
Change-Id: I0b9e5bea5da5d2666887c202e62d889b4aa56900
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/quick/items/qquickwindow.cpp
tests/auto/quick/qquicktext/BLACKLIST
tests/auto/quick/qquicktextedit/BLACKLIST
Change-Id: I8bd68b0b5e853b7908791d2cbddd18dd527c76ae
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I9a38ab8ff60921e6d5ff6c2fa476b24d28781feb
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The "fixedsys" font is available on Windows at least, so while this
test may not add any value on other platforms, it won't hurt either,
and this was something that regressed on Windows before.
Task-number: QTBUG-56659
Change-Id: Id01dedcbdc2fe74027caf31dd0dde6729ade8c63
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
After commit 2afb54fb51091765f79548b0b057795bc3c6eb38,
Primitive::undefinedValue() uses setM() to clear out all bits.
Previously that code was #ifndef'ed out for the bootstrap build, but now
that we can do the correct boxing in host builds (as we know the pointer
size), we can re-enable setM() in bootstrap builds and fix this crash
that was a Q_UNREACHABLE() assertion.
Change-Id: I49036792c06c9a17272aba65261ab8f32beb2ad8
Task-number: QTBUG-56658
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since qtbase commit beef975, QTestLib avoids generating accidental
double click events by adding 500ms timestamp delta on release events.
The test requires a press-and-drag-and-release type of sequence with
double and triple clicks. The triple-click case is handled fine with
QTest::mouseDClick() + press + move + release, but the double-click
case is using QTest::mouseClick() + press + move + release and relies
on the accidental double-click event generation that QTestLib now
deliberately prevents.
I can't think of a nice way to inject the move event in the middle of
a double-click sequence generated by QTest::mouseDClick(), so we just
send the missing double-click event by hand.
We can also remove the QStyleHints::mouseDoubleClickInterval waits,
which were there to prevent the aforementioned accidental double click
events that can no longer happen. This reduces the total execution
time of mouseSelection() by roughly 90%.
Task-number: QTBUG-50022
Change-Id: I252e87d6a49ea86a44cfa347a29eebee12fd36d1
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since qtbase commit beef975, QTestLib avoids generating accidental
double click events by adding 500ms timestamp delta on release events.
Thus, now we can remove the QStyleHints::mouseDoubleClickInterval wait,
which were there to prevent the aforementioned accidental double click
events that can no longer happen. The default inverval is 400ms, so
this saves us nearly half a second on most platforms.
Change-Id: I7a670b70c012ac027dc951ebafdf5e7d53b89ce9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's no such test as mouseSelection in tst_qquicktext.
Change-Id: I09bf4c61b53acd9811e020379a29c80fce9fe48b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I41ef6b38e74162434c397535f9d73fff80e29c78
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Noticed while debugging QTBUG-56075 on XCB. QQuickFlickable did not
receive timestamps for wheel events provided by XI2. This alone does
not fix the flicking speed issue with high-precision trackpads, but
is needed to be able to calculate the appropriate velocity.
Task-number: QTBUG-56075
Change-Id: I458e6302aee72863cdc1f8e8f7d99449016905a9
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If you return a QObject with parent from a Q_INVOKABLE it *does*
get QQmlEngine::JavaScriptOwnership. It just doesn't get deleted
by JavaScript (until you unset it's parent).
Change-Id: Id56debe06253ea1dd31dee844f5047d4ac055024
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The warning statement is printed whenever a successful hit test
(essentialy a hover) happens on a QML item which is accessible
(e.g. a Label) and also not visible.
The message looks like "QQuickText QVariant(Invalid) QRect(0,0 0x0)".
The information serves no real purpose though:
1) The property accessibleText is not set anywhere
2) The warning happens in a valid use case when an item is invisible,
and the user mouse accidentally hovers over its position
Change-Id: I8d20f7842d92c7944bb5e3b614ecd6fad500102a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QSG24BitTextMaskShader::useSRGB() on macOS accesses the current context
qgl_current_fbo member without first checking if it is valid.
Make sure it also checks qgl_current_fbo_invalid, thus not accidentally
dereferencing a dangling pointer.
Change-Id: I56a77de23ee3b4b271bd848506ff26e14d7b6d15
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows Qt Quick Controls 2 to register a shortcut context matcher
that makes shortcuts behave well with QQC2's item-based popups, which
QQuickShortcut is not aware of.
Task-number: QTBUG-56562
Change-Id: Ia2518fd6ac7140f60aa38c7d9af557007e9db23b
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I79ab2cc4c0525dbc285b04b3867220f6943dc9e6
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Import::type used to be a quint32. The switch from quint32 to quint8
changed the alignment of other structures in the compiled blob. On QNX,
the alignment isn't appropriate for some of the instructions that the
compiler uses to access/modify the structures and a BUS error occurs.
Changing Import::type to LEUInt32 puts the alignment back the way it
was before. Simpler than trying to figure out how to get everything
aligned correctly with a quint8 at the front of the structure.
Task-number: QTBUG-56341
Change-Id: Ia6f4daff5f615f9c5dbcc34ce8c3c9a89bab2b69
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
... so the fast-path doesn't get bogged down by accidental slow-path
inlining.
Change-Id: Ifb3eadf5e96b5a61f41fb1f0d32269e43f13be57
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When trying to merge the second (original) loop header block of a peeled
loop, we would end up with dangling references to that block from the
loop body blocks. There's no trivial way to find all these quickly from
the header, so for now don't merge these blocks into the predecessor.
Change-Id: I2b5e39c5596ffd8c21ca9871af3a8150a019f2a8
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
d3d12 config is not available if quick module has not been built.
Fix Project ERROR: Could not find feature d3d12.
Change-Id: If6707a6e4ef9d9996f30746b0f3372a4b5bfbb04
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
They are decoded as ints, as in
QPacket &operator>>(QPacket &ds, QmlObjectProperty &data)
{
int type;
ds >> type >> data.name >> data.value >> data.valueTypeName
>> data.binding >> data.hasNotifySignal;
data.type = (QmlObjectProperty::Type)type;
return ds;
}
So we should serialize the same, since the required operator<< and >>
don't exist.
Change-Id: I33dc971f005a4848bb8ffffd1478edcf2e916dfc
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This also requires mapping the label pointers in the byte code back to
the instruction enum. Fortunately this reverse mapping is only needed in
the qmljs case. Normally in the QML engine we persist the byte-code to
disk before linking the compilation unit to the engine (where we map the
enum to goto labels).
Change-Id: If0b79288274bb1031161841b63a85f164502aaec
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When lookups are enabled for property access and the property exists, we
change the type of the lookup from the generic fallback to a more
specialized direct property access. When upon subsequent access the
internal class has changed, we fall back to the case of two alternating
classes/shapes. If during that fallback we fail to find the property
altogether, then we should revert back to the overall fallback, instead
of continuing with an invalid property data index.
Ran into this while running the typescript compiler in V4 itself.
Change-Id: If5975d6c18ff41b9fb21c40f0cbaeed37da4b489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the CMAP table of a font is not present on Windows, then the
font will not be counted as a ttf file, likewise if the CMAP table
has a bug in it. An effect of this is that the glyphCount() will
be returned as 0 since we will bail out before fetching the maxp
table, and the distance field renderer assumes the glyph count is
valid.
While the font in question is obviously broken and may have other
issues, it is possible to still support using it for rendering text
by bypassing the check when we cannot get a reliable glyph count from
the font.
[ChangeLog][Windows][Text] Worked around an issue with fonts that
have corrupt cmap tables.
Task-number: QTBUG-45321
Change-Id: I9cfd7809661ae6b902f6b9d47ffb18bfbc06bcd4
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We need to always include the checksum generating code, even if dummy
(for the lack of the md5 code being in the bootstrap library).
Change-Id: I3dd9c585a23ffea9bd7c79dbe6dae29b9f93fa6d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Amends 54765de17916948ef56a3fd1111e8c765c07155a
Change-Id: I30b9e31326d20f176a01ff625fbe8597b43cbc62
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
And hint the compiler (with LTO) to never inline the slow path.
Change-Id: Idad15498bca457d3f1f063031ad1a08415e9b3db
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/quick/items/qquickitemsmodule.cpp
tests/auto/quick/rendernode/tst_rendernode.cpp
Change-Id: I90582df69feb95a4e4aafb0b9793c23714654f19
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When QT_SCALE_FACTOR is 2, fb.width() is 400 instead of 200, for
example.
Change-Id: Iec02d7cfd49d29fceda6645377b75e4607cceb6f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Complete the patch for tautological-compare warnings after it was
merged form 5.6.
Task-number: QTBUG-56266
Change-Id: I39f25f429b90deb8d8830fb15f45ce29a5a4c51c
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
52e1044a1a22525b960d9e1d336ac06c4f39e6d5 in qtquickcontrols missed
this.
Change-Id: Ie104c421e34d4d2a13a88864a279eb65738bd5a8
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ifc33c17d125ca794a157a87dc5cc1be51c2aaefb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The commit message of 08327da, and the change log of Qt 5.7.0 promised
that mapFromGlobal() and mapToGlobal() were available in QML. But since
the revision 7 of QQuickItem was not registered, this was not entirely
true.
Due to a little quirk in the QML engine's handling of revisioned
methods, mapFromGlobal() and mapToGlobal() were only accessible via
an identifier or property, but not directly:
// works
MouseArea { id: ma; onClicked: console.log(ma.mapToGlobal(Qt.point(mouse.x, mouse.y))) }
// ReferenceError: mapToGlobal is not defined
MouseArea { onClicked: console.log(mapToGlobal(Qt.point(mouse.x, mouse.y))) }
Furhermore, this is inconsistent with how mapFromItem() and mapToItem()
are exposed to QML. Even though the C++ versions of these methods take
QPointF and QRectF, the QML versions take 2-4 number specifying x, y,
width and height:
object mapFromItem(Item item, real x, real y)
object mapFromItem(Item item, real x, real y, real width, real height)
object mapToItem(Item item, real x, real y)
object mapToItem(Item item, real x, real y, real width, real height)
Therefore the signature of mapFromGlobal() and mapToGlobal() should be:
object mapFromGlobal(real x, real y)
object mapToGlobal(real x, real y)
This change implements the QML versions of these methods using
QQmlV4Function, and adds the missing documentation for the QML API.
NOTE: This is QML-only API.
Change-Id: I2ced4836d274c7d1e644ea29fc25dbdd2045001b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\ \
| | | |
| | | |
| | | | |
Change-Id: Ib31008e593442ca5813fb14ae6b02f7ab2577395
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When the platform does not have JIT, a warning about this is printed
into the process stderr, so the test fails.
Change-Id: I67c605bd09659c444d0a05f476314e9c7fc2ce6d
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|