| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Added a check that Batch::drawSets is not empty.
Task-number: QTBUG-48439
Change-Id: Ica76363be8c770240dc69c669815a60904e26988
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
(cherry picked from commit 893a4ffd6476a11597f9dd3c847fe3db4bf38eed)
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Jason Erb (Suitable Technologies) <erb@suitabletech.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an external QObject is exposed to an engine through a QObjectWrapper,
make sure to deref and clear the propertyCache reference in the object's
declarative data when the QObjectWrapper is destroyed. This makes sure
that there is no dangling propertyCache pointer when the object is
subsequently exposed to another engine.
Task-number: QTBUG-57633
Change-Id: I37f6793d8be65b23b4e81bb4ed91db18271261b0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 749a7212e903d8e8c6f256edb1836b9449cc7fe1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This rarely happens - only seen with Delegates - when
- an object is created during incubation
- some error occurs in this object
- the object gets deleted before the incubation run finishes
Because the errors are delivered after the incubation run finished, the
object() pointer of QQmlError is now a dangling pointer that will crash
your application if accessed.
Change-Id: Idd9fccbc58e4ada67bde3ca1aeec736aa9374789
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 6a8a7e60ab91f958a1dd63e787a23f6e09f463b1)
|
|
|
|
|
|
|
|
|
| |
Don't define QML_PARSER_EXPORT to dllimport when doing static builds.
Task-number: QTBUG-59767
Change-Id: I24acb2c51f54a0cde8d2e50a935ede876e5eb5b7
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
(cherry picked from commit 3caf24c514e7b5dfe62dc656d48282f3816dd6cc)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GCC 7 warns about preprocessor macros expanding to defined(),
which the masm config macros use pervasively.
Fix by suppressing the warning (-Wexpansion-to-defined).
Task-number: QTBUG-59647
Change-Id: I9220741cf594824472bffc2305b994b311e55832
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 29bf17dee1497972152566af6916fd0a20b784ee)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only 65536 vertices (65536 / 4 = 16384 characters) can be drawn in one
draw call. This is why QSGDistanceFieldGlyphNode (renderType:
Text.QtRendering) creates subnodes if number of characters exceeds that
limit. QSGDefaultGlyphNode (renderType: Text.NativeRendering) missed
that logic for some reason.
Task-number: QTBUG-58852
Change-Id: I88b3fcdb8e56bc92622d3347cd638634d43df138
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 42e098fa0ad318a6b6fafadbadce21b974c29c4d)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Transitions contain both an id and a set of flags, but the sorting
failed to take the flags into account in the operator<. As a result
we would some times end up with duplicate entries if the same id
was added multiple times with different flags.
If the same id was added again and again with varying flags, this
could lead to an ever expanding list filled with duplicate entries.
Fix this by also taking flags into account in operator< so that
operator< and operator== are symetric and the list gets correctly
sorted.
Change-Id: I6d55c67083e4a09e3eb2952edbec302389421f33
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
(cherry picked from commit 94324a4ea2261940d1d55dec141c885bf4f57832)
|
|
|
|
|
|
|
|
| |
Change-Id: I88ffdd1d1224705e980e449b6c799c9f186143b1
Task-number: QTBUG-58271
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 22b03fd6d3efdfa0385ced2450c6c7dfcf555d6e)
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After commit 0e3380f9c6ab6e3ea7398caccf5aa84f1575f1cd we wouldn't crash
anymore, if QJSValue::UndefinedValue was provided as value for a
QJSValue C++ signal parameter. However that was not a complete fix for
the regression of commit aa869cbb06bcf005e238059a2cb0205947ff0b5f, as
other primitive values stored in QJSValue as QVariant were not
converted, so for example QJSValue(42). So let's fix this once and for
all by using QJSValuePrivate::valueForData, that handles all types of
QJSValuePrivate encodings.
Task-number: QTBUG-58133
Change-Id: Ib7c0461b18df6260ccd4bce729ae2348281eb7f3
Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 89c6bee139422b17534f79129eea2820d2ce952e)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Private Use Area characters are quite valid input characters when used
in combination with a custom font. Joiners also serve an important language
purpose in semitic writing systems.
[ChangeLog][QtWidgets][Input] Support characters in Private Use Area, as well as
zero-width joiners and zero-width non-joiners in input in TextInput and TextEdit.
Task-number: QTBUG-42074
Task-number: QTBUG-57003
Change-Id: I62bcd2ab0784f7f731921fbcdd8c695c02b165e4
(cherry picked from commit 97e4d5d5aeb0d415db18c075f905763ae5ba5f18)
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When converting the parameters of a C++ signal to JS values to provide
to a signal handler written in JS, the conversion of a QJSValue to a
QV4::Value* may yield a null pointer in case of a default constructed
QJSValue for example. This is a regression from commit
aa869cbb06bcf005e238059a2cb0205947ff0b5f and we must check for this.
Task-number: QTBUG-58133
Change-Id: I528b606b2851dfb3072e54902bd8843d31571a55
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 0e3380f9c6ab6e3ea7398caccf5aa84f1575f1cd)
|
|
|
|
| |
Change-Id: I9ee9754d3464f0cf33718267535ba6d054bbea10
|
|
|
|
|
|
| |
Change-Id: Ie86302f12d4ad65ff46335a1ea248bbb4c5559f3
Task-number: QTBUG-56008
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The profiler can be switched on in the middle of a frame. In that case
the last offset into the timing data would be some random number, which
may lead to a crash when recording the sample.
However, as we know all the data points we are going to record, we can
as well specify where they are supposed to go. The timings themselves
may still be random for frames of which we only recorded parts, but
the clients can deal with this.
Task-number: QTBUG-57304
Change-Id: I1d507f2591516e43d5b3cd25f7939716f2b64ed9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
When checking for undefined, both the tag and the value need to be
checked. When loading the tag, it shouldn't end up in the same register
that is used to hold the address of the QV4::Value.
Change-Id: I380fce432ba489fdabe569dd2c9cac31e9905260
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
For example during dead code elimination we may invalidate statements,
but at the same time there may still be instances left in the work list
of optimizeSSA(). When we encounter then, we should not process them any
further.
Task-number: QTBUG-56255
Change-Id: I4c24b1a225ce1bde112172e9606f91c426c19f19
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Relies on qtbase/f2205c48c21a6b135f2f59d0cf46e72f90f9f0f4.
Asking QFontDatabase whether or not the font can be smoothly scaled is expensive
Now that the attribute is available on QFontEngine, we can bypass all that.
Benchmark results from qmlbench on creation/delegates_text on a 2011 mbp.
Before: Average: 173.2 ops/frame; using 5/5 samples; MedianAll=173; StdDev=1.94, CoV=0.0112 - StdDev (all samples included)=1.94
After: Average: 180.8 ops/frame; using 5/5 samples; MedianAll=182; StdDev=1.94, CoV=0.0107 - StdDev (all samples included)=1.94
Change-Id: I56efd903037a29ee014de0cbf482cfbef7fce494
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression from commit
4876ea6a18ccdfd72014582aa5d50ab9f6b6ec9e, which avoided returning an
expensive QObject when calling get() but also lost the ability to
perform binding captures when accessing the properties. This change
restores the captures by performing them by hand in get() and also
triggering the notifiers directly when the values change, without
creating the QObject.
Task-number: QTBUG-52356
Change-Id: Ia429ffafd4032b63d3e592aa63bb0864a24e0965
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
"string" is the argument type, not its name.
Change-Id: Ia8f1afe01363eb6bfa69247aca5c0849c56000c4
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
| |
Change-Id: I64b671243a107c518da2000e2ffd964f441af037
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
|
|
|
|
|
| |
The QQmlListReference will build a property cache entry, but it won't
assign it to an engine when none is available (meaning: it would create
the entry every time a QQmlListReference is created). QML won't do that,
because it (obviously) has an engine available.
Change-Id: I46eeaf3dffcb690902dd3d78be48c8509be6e84d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QMetaProperty::type() maps an un-registered enum to QMetaType::Int, and
so if a property cache is created for a gadget with enum properties,
then their type will be int and we'll correctly read enum properties as
ints in JavaScript. However if the enum is registered at the time we
create the cache, then the property type will be the specific type and
not QMetaType::Int. The property reading code in QV4::QObjectWrapper can
deal with that, but the property reading code in the gadget value type
wrapper code did not.
[ChangeLog][Qt][Qml] Fix reading of enum properties from gadgets / value
types when the enum was registered with qRegisterMetaType().
Change-Id: I7812b216a276dcc95c36e313507e1a1142250d0b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
| |
Change-Id: I33ca6140d89041f89f0e3db9db7206aca50361d7
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
|
|
|
|
|
|
|
|
| |
This should make (properly functioning) static code checkers stop
complaining.
Task-number: QTBUG-57025
Change-Id: Ic7e6f1b0b02f2e9324dbc891ab4620d53d9f9a18
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
the CI obtains them from the qt5 super repo nowadays.
Change-Id: I1be0b8a494a5f7db02fa82ec46de2ec3573dd485
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@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>
|
|
|
|
|
|
| |
Task-number: QTBUG-56425
Change-Id: I2246245216fb8cd0d4dc4b15a0687edfc64ccad1
Reviewed-by: J-P Nurmi <jpnurmi@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>
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The replace Text item that is overlayed on the TextInput, behaves
like the TextField.placeholderText property. The opacity of the item
varies based on whether the TextInput has any text or not. Using the
length property to adjust the opacity fails on platforms such as
Android where the length is not updated until the text is committed
(i.e. until you hit the [ENTER] key). Whereas the displayText
property is updated when you key in text, so it is ideal to use the
length of the displayText than the length property itself.
Change-Id: I678e5db5e5d5027e4aae816b6620095c68138eb7
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
| |
These two were mixed, but have completely different values.
Task-number: QTBUG-56471
Change-Id: Ifbf6da3032335ea89bfbc3acde17f64a571b9dc0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Timestamp is necessary for testing custom mouse event handlers e.g. what
Qt WebEngine uses for handling triple and quadruple mouse clicks.
Based on Qt Base commit 181ee8f9ffacc51265ccc3a0005bf146f230cf85
Task-number: QTBUG-56223
Change-Id: I84d0ca40767d0b1dccb33da1fb1f6ff5721d1096
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't both invert offset position and inter-value positions of tag
and value.
This patch changes 32-bit big-endian to use the same order inside
the tag/value but just at different offsets. This also make it
compatible with how we use it with doubles.
This fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
Task-number: QTBUG-56271
Change-Id: I95cf792c29ac3f42a4018ce1f115193c143a0df0
(cherry picked from commit 2a658344397729450f869138bf77e063a0a6166b)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Commit 833c99db20 introduced this regression by only moving part of the
value data to the proper offset.
Task-number: QTBUG-53261
Change-Id: I11241c57057a57794bc3ca60ee437206e524f355
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|