| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Change-Id: I14ee97ee75664c5dfcd229a5be2be6294c936b2c
Task-number: QTBUG-55496
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
With this change arbitrary debug connector plugins can be loaded by
specifying them in the "-qmljsdebugger=..." argument. It was already
possible to load them by using startDebugConnector(...), but that
requires source code modification.
Change-Id: I06ec7f54ec65add7cff2846ed4083ea878a04765
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
This is more in line with the other services, and in practice we always
want to switch on blocking mode when using EngineControl anyway.
Change-Id: Ic8dc36b7ea0cf68ed7af670dddee8e7d351f6e0a
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
So far the local client connection would give up if it could not
connect to the server on the first try. Considering that you cannot
reset the connection, this is very harsh. Instead, retry on failure.
Change-Id: I68464b7b99b94a4b0fb2722d718a43a1c0889f40
Reviewed-by: hjk <hjk@qt.io>
|
|
|
|
|
|
|
|
| |
There is a native debug service that can be used with a native debuger
and the QML profiler can make use of the debug messages service.
Change-Id: Ie1b2b148e7555d980e03a18c97ec725748c473c7
Reviewed-by: hjk <hjk@qt.io>
|
|
|
|
|
|
|
|
|
| |
The fix in qtlocation was merged in dev.
This reverts commit c3c3ee6def18ec292340983629e80d350d6e53c0.
Change-Id: I7f1ba6447668b63f3571b5ef684f2ba413334892
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4object_p.h
Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move QSGDefaultImageNode::rebuildGeometry(),
QSGDefaultNinePatchNode::rebuildGeometry() to
QSGImageNode::rebuildGeometry(),
QSGNinePatchNode::rebuildGeometry()
respectively.
This makes it possible to use then from the D3D12 plugin
when built without OpenGL support.
Task-number: QTBUG-57185
Change-Id: Ib88c5622f7048618151a63d7536d76296a25842e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Converting a constant to null or undefined shouldn't happen
in practice, but it still shouldn't run into the Q_UNIMPLEMENTED.
Change-Id: I994a55defd7f4e29628732a8a9071bc785a80ee2
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Relies on qtbase/094b64fb605b39d1ae88d91d2b9a0672b9ff4780.
This was previously responsible for around 1.1% of CPU samples when profiling
text creation & rendering under qmlbench.
Change-Id: I287067b994231a39881ba8208ad3b802233c7486
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| |
| |
| |
| |
| | |
Change-Id: I60e674760725d4c4dd13f53b31c3abb6b09c1790
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQmlListReference passes a QLatin1String in, which can behandled by the
stringCache just fine. So if there is a cache entry, then this will skip
toQString conversion.
Change-Id: I13afe4f6e63d486b313ac58cbd86fb7f9e1a80f6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jsruntime/qv4string.cpp
The conflict resolution for qv4tsring.cpp is to essentially omit the
change of commit 64714ea431f2fd355ed27edc69dba4e992511e75 as the code in
5.8 already uses the add/mul_overflow functions.
This merge also reverts commit f4ac007f4a19bc095ff15d415a6629986de78e49
as we can deal with dead store elimination now.
Change-Id: Iee08c87cbe1a2ff23a73ce621d56262b4e007c56
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qmldevtools/qmldevtools.pro
tests/auto/qml/qqmlconnections/tst_qqmlconnections.cpp
Change-Id: I12255c16716bd8a74e7047cdb1f9302a4d1ea827
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id7c8c7080e6db8bb6d09c1df13cddaef047cf611
Task-number: QTBUG-56499
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
af002b8df9b084fd7f26e9eead9844aab36bdc4d added timestamps to press and
release events. It did not add the timestamp to move events though. When
using the quick test functionality to send events to flickable, this
leads to great confusion since the move events will be from a completely
different time than the release, in which case flickable responds with
"you waited a long time before releasing, I think you didn't want to
flick". Adding the timestamp also to move events is consistent and makes
tests in qtlocation happy.
Change-Id: I33653c435eff5b62eeaf5a03653d917b7acc4fed
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GCC5/6 do aggressive dead store elimination on memory passed to
placement-new. This resulted in the Heap::Object::prototype being a
nullptr. qml.pro already contained the -fno-lifetime-dse flag, but there
are other places where we ask the memory manager to allocate data.
This is temporary band-aid, and is already fixed in 5.8.
Change-Id: Ia61a69f65fab351068a588cfc36b5b3d762ffc9f
Task-number: QTBUG-56932
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
qquickitem_before_paintNode returns the transform node for the rectangle
as child node. But the node has no parent. It leads to following assertion
case at QSGNode::insertChildNodeAfter(). But, I tested it in release mode,
so no assertion happened. So, Some node not be able to add group node
from this cause.
Task-number: QTBUG-56657
Change-Id: Ie032dc6c56984bcb58cfcd348ff532f56e39e5b8
Reviewed-by: Inhye Seo <inhye.seo@lge.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The code was using the ::glGetString function and this could fail
if we are using a custom platform plugin.
Change-Id: Idb9ccd178ea52255b9d6f0f6d3fd529094c15292
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A wrong overflow detection caused strings like "240000000000" to pass
the conversion, even though they would not fit into a uint when
converted into base-10. This mis-conversion to uint then caused
all sorts of side effects (broken comparisons, wrong listing of
properties, and so on).
So, properly fix the overflow detection by using our numeric private
functions.
Change-Id: Icbf67ac68cf5785d6c77b433c7a45aed5285a8c2
Task-number: QTBUG-56830
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I24a186af0538027719beb464c2b489825ddd9420
Reviewed-by: Topi Reiniƶ <topi.reinio@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Atlas::create returns null when allocating space in the atlas texture
fails, including when the texture is full. Manager::create assumed that
this function would never fail.
Change-Id: I2ed8a1b94640d6a3cc65011e83b88f8bd42ca074
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In a3da23d5a92ab0f9b8280b9ed591986f8ac6a2d6 we added linear filtering
to the image node in rich text when smooth was set to true (which it
is by default). But we also enabled mipmapping, which caused a bad
performance regression when updating the text item.
If we want to support mipmapping, we would have to add a separate
property for this like in the image node, but since the original
bug report only called for supporting smooth scaling like in
Image, we can simply revert part of the change.
[ChangeLog][QtQuick][Text] Fixed a performance regression when
rendering a rich text item with scaled images.
Task-number: QTBUG-54723
Change-Id: Ib930112b76f0fe0b2e658f86520a9290354b8f6f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
RichText can have blocks of text with varying font sizes, so we must
ensure that the cursor delegate's height is also set when it's moved to
a different position in the text.
Change-Id: I00691a94a2360c7d3272571fc4ba0da28b01006a
Task-number: QTBUG-54934
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Idcc23782f2ed382914a74740ad9f2984d7a98f78
Reviewed-by: Topi Reiniƶ <topi.reinio@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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... to make good use of QL1S
Change-Id: I7c3ac1cefb30bee9baa31a3f8ec08f5f57eb5d5b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is particularly useful for keeping the versions of related modules in
sync. For example, when QtQuick.Controls introduces new types or revisions
and bumps up the minor version, qmlRegisterModule() can be used to make the
same version available for QtQuick.Controls.Styles in case it doesn't have
new types or revisions to register.
[ChangeLog][QtQml] Introduced qmlRegisterModule() that can be used to
make a certain module version available, even if no types or revisions
are registered for that version.
Change-Id: I5ec457465cd778bb0adda55771d195f69cd4b31a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QV4DebugService and QQmlNativeDebugService cannot coexist at the same
time. Thus, there is no point in putting them into one plugin.
Change-Id: Ic042f7472fce23d504c62ccf96756b0f1bd68534
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The debug message service is used by both the debugger and the
profiler. It shouldn't be necessary to load the debugger plugin in
order to do QML profiling.
Change-Id: Ic9a4216763098cc795fa9feb98b37ddceeed47d9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
[ChangeLog][QtQuick][Shortcut] Added support for multiple shortcut
sequences. Previously it was possible to specify a single sequence
that could consist of up to four key presses. Now it is possible to
specify multiple sequences that can each consist of multiple key
presses.
Change-Id: Id12f25da2f352cc542ec776049d8e81593951d41
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... to reduce allocations.
Change-Id: Ie18c1f61d0b6f9d3879637d0c57a842f3727cabe
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... and drop redundant 'virtual'
Change-Id: I2a57685e342208d7ef1f13f97a56cb3ff7a31422
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It also introduces a private QQuickImageProviderWithOptions to allow
passing options to image providers so that they can return more
fine-tuned images. This private class will disappear in Qt6 and the
functionality will be merged into QQuickImageProvider.
Change-Id: I619065d889d21d3a9e1f8e45fdb6076b9657c7ed
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Asserts were added to qquickanimatorjob.cpp that check for a current
opengl context and which thread they are current on. This is not
relevant for non-opengl builds.
Change-Id: I9714c99cb6a0374fbb983a037c4fc24a99c8a645
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I318fa243ab68b8a714923ab816d62e8c544fca8c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If there is a normal C++ Qt animation running when the animation
driver is installed, and we don't have a visible QQuickWindow
at that time, the animation will await the QQuickWindow's vsync
to be ticked (which might never happen). So don't install
the driver until after we've registered started/stopped
(which will be called by install) and when m_vsyncDelta is
correctly initialized.
Change-Id: If36633ba78d8b16afa658ae5279372158a4f7924
Task-number: QTBUG-55521
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Recude memory allocations.
Change-Id: I259e47e3c47a562817d1b9585a89c9f8a00260c0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now we can pass 'name' arg as QStringRef. Client code can
reduce allocations.
Change-Id: I444f7135f4912f54d57e0a1193f330a3976fc186
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In preparation for the removal of Qt's own type traits.
Change-Id: Ie97b6a62b2e3f5e5c59b5175ef05cf8c342746db
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There's no point at converting a QFlags to an int and then
compare it back. It actually triggers sign comparison warnings
with the new QFlags implementation, so fix it.
Change-Id: I5a90a9bf20014126adf8a1be869cad2627838f34
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|