| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ia37d4a5e64b653c9af614ed633c3c443190d015a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's no need for a separate propertiesAllocated bool,
we can keep that state in the WeakValue itself.
Change-Id: Ife0f517bee9bc5830680eec68983767379a3c2cf
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The goal should be to make these dynamic metaobjects
independent of the concrete QObject instance.
Change-Id: I13448420d15792918cc30e994a8d6d83216a0a1a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This allows users in a JavaScript-only environment to install extensions including:
- Translation functions (qsTr(), etc.)
- The console object (console.log(), print(), etc.)
- Garbage collection functions (gc())
This deprecates installTranslatorFunctions(). This API results in less
clutter in the API, as we'd otherwise need to have several functions
for each type of extension.
[ChangeLog][QJSEngine] Introduced an extension API that allows
installing various function and object extensions (qsTr(),
console.log(), etc.) to QJSEngine.
[ChangeLog][QJSEngine] installTranslatorFunctions() was deprecated in
favor of the new extension API (see installExtensions()).
Change-Id: I4d6eb2097c3eda6810e967b2e8f6441c28c91a16
Task-number: QTBUG-40772
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If this cache is used for a second instance of QGuiApplication then the
cache is invalid.
Change-Id: I02ca16dc03a1239b0ed50c7bcfbf87880ca8d948
Task-number: QTBUG-40861
Reviewed-by: Tim Blechmann <tim@klingt.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QML text rendering elements have a renderType property controlling
whether to use 'Qt' rendering or 'Native' rendering. There is no reason
to mix different types of rendering in one static ui. The element-local
properties may be used to change the rendering type during animation
for example, but otherwise there should be an application-wide rendering
mode for text.
That means that all Text-based elements in QML should default to the
same rendering mode. Additionally, applications wishing to use
NativeRendering, wish to use it for all text-based elements, so they
require changing the defaults of the elements themselves, still allowing
the possibility of changing the rendering mode during animation.
Creating third party wrappers for each of the QML text rendering types
is not a solution because an application requires the same font
rendering for all text.
That is, whether written directly with QML Text* elements, or using
QtQuick controls, or another 3rd party component set, it is necessary to
set the same font rendering mode for all text, except in temporary
execptional cases.
The known options to achieve this are
1) Create an environment variable to set the default rendering.
2) Add C++ API to set the default
3) Add a build-time option to set the default.
The first option is unsatisfying because it is fragile and is easy to
get wrong.
The second option is incomplete because it does not affect qmlscene etc,
so it would require adding a command line argument to qmlscene to change
the default. That is unsatisfying because it is also fragile. It is
necessary for the sanity of developers and designers (and also end
users) that qmlscene use the correct default by default. It must be
easy to create qml files for designers to run with qmlscene and which
look correct.
The third option is the one chosen for this patch. It is most suitable
for environments where the Qt build and settings are contained because a
particular Qt build is shipped with the application using it (This is
the most common way Qt is used). It affects all uses of the text
rendering elements, whether used through qmlscene or through another
entry point, and it allows changing the property in QML code away from
the build-time-determined default.
When building Qt, -DQT_QUICK_DEFAULT_TEXT_RENDER_TYPE=NativeRendering
may be passed to configure to affect the default rendering for the Qt
build.
It also leaves the question why the default text rendering is 'Qt'
instead of being 'Native', given that many of the Qt controls need to
switch to Native anyway (though this depends on the platform and the
style).
Change-Id: Ib0eed61caf4895b29e5c05e0418fad9962779f85
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allows controlling case sensitivity of nameFilters
Task-number: QTBUG-45566
Change-Id: Iab3bdd4cbaee59e16fafb9d153f51b35b22a822a
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Overlay headers are supposed to be fixed in position. This worked for "usual"
cases, but flicking a list with an empty model allowed the header & footer to
move.
Two fixes were required:
* viewportMoved needs to call updateHeader and updateFooter if there are no
items if sticky headers are enabled
* updateHeader and updatefooter need to always fix the position of the header &
footer.
Change-Id: I77519d91f587458777c6c8f4863270cf762ac286
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
updateHeader checks for a nonexistent header at the very beginning and creates
one if there is none, so 'header' will always have a valid pointer. static_cast
isn't type-safe, so if it wasn't a FxListItemSG, it wouldn't end up giving us 0
anyway, so this check did nothing.
Change-Id: I7a021173b2ab7c634f0a290b8e3b3e1659756076
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Spotted while profiling an application with a large number of OpacityAnimators.
qmlobject_connect is around 1/3 the time of a regular connect.
Change-Id: Ib37d79c6478d13c1acb6b191b635d9780c22ed00
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/debugger/qqmldebug.cpp
Change-Id: I93de5a81b18cdece475870cf7cfba1b9baef2304
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I68b5253eafc0f3786e4aa671b388a8f4c78c9ed7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move the connect/disconnect methods for signal handlers into
their prototype, so that we don't need to define them per instance
anymore.
Change-Id: Iac1e6d1dd7bce86730dbb6c51e2c3f79713641f7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Slightly speeds up construction of value type wrappers
Change-Id: Ia50e9bcdb07475ed15b5aac908714d25631a0de8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I68f7ea476cb00a571908b7ec0a036f8517b091d5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
SparseArray::deleteNode should modify size_left only if
the deleted node had a right child
Change-Id: I0f3504a5c6568dbd9e392bf83eaf3f9780eb2b84
Task-number: QTBUG-46022
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The old algorithm could lead to excessive garbage collection
in cases where lots of strings are being created.
The new algorithm is a bit more agressive in doubling the GC limit
for string data. This doubles the performance of both the v8 regexp
and splay benchmarks.
Change-Id: I2b5cd27c14410b033038a409d5ae03c9636d4f71
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This avoids one indirection in the called code and should allow the
compiler to generate slightly better code for this lookup.
Change-Id: I6ca8063496015fa74d7f48a7c038dfdd29bb2dd2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I79a7093c7086ea7f34252f097f18fe7c835053aa
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Gives around 10% speedup on the v8 splay benchmark.
Change-Id: I47f64e7b73bde59ac3bdd2c94fc199ecfbbf290e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allocating a new String for the Identifier is wasting both memory
and CPU. Let's rather extract it from the IdentifierTable.
Change-Id: Ibb9b2ac9775fefce74602d6954586195cdd5814e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I478967dacc6f0e7b8a6df706bb878f46306871ce
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Freezing the global object using a script is pretty slow,
esp. given that the script needs to be compiled as well. Rather
do it programmatically.
The old code actually had a bug that would only cause the global
object to be frozen, not it's children. The new code fixes this,
but doesn't completely freeze the objects. Instead it makes all
the existing properties of the global object and it's children
readonly, but still allows extending existing objects with new
properties.
Change-Id: I0d7331cdc89a0ac717b8ed3b1a490b2a3742de02
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the height changes and the vertical alignment is
center or bottom, we need to call updateSize(), since
this updates the baseline offset. So we need to account
for this case in the geometryChanged() handler.
[ChangeLog][Text] Fixed baseline of Text elements where the
vertical alignment was something other than top.
Change-Id: I738c0603e7bf91e5e7ea1a40d4f925f41f868758
Task-number: QTBUG-43226
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Print a warning if there is no property with the given
name of the specified target object, or the property
is read-only.
Change-Id: I5dc2e8330fb1ce53be396b7bf5baf13c1702d2f4
Task-number: QTBUG-39243
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Factor out the code to get the pretty QML type name
for an QObject from ~QQmlInfo and put it into
QQmlMetaType::prettyTypeName() method.
Change-Id: I54ab0c49ba4a52074877447ef67708104f954f2d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit 92836d052efb6d8073136e8507083f93fb60bb80 fixed the type punning
but introduced undefined behavior on 32-bit systems. Detected by GCC 5.2
qv4value_p.h:96:55: error: ‘v.Qti386::QV4::Value::_val’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
qv4scopedvalue_p.h:199:15: note: ‘v.Qti386::QV4::Value::_val’ was declared here
Trace: starting at qv4scopedvalue_p.h:199
Value v;
v = o;
=>
Value &operator=(Heap::Base *o) {
setM(o);
=>
Q_ALWAYS_INLINE void setM(Heap::Base *b) { quint32 v; memcpy(&v, &b,
4); setValue(v); }
=>
Q_ALWAYS_INLINE void setValue(quint32 v) { setTagValue(tag(), v); }
=>
Q_ALWAYS_INLINE quint32 tag() const { return _val >> 32; }
The call to tag() reads from _val before it is initialized. Up until
C++11, uninitialized variables simply had an indeterminate value.
Starting with C++14 (see N3914, resolution of DR1787), reading that
variable not as an unsigned char has undefined behavior. See 8.5
[dcl.init] p12:
... When storage for an object with automatic or dynamic storage
duration is obtained, the object has an indeterminate value, and if no
initialization is performed for the object, that object retains an
indeterminate value until that value is replaced (5.18). [...] If an
indeterminate value is produced by an evaluation, the behavior is
undefined except in the following cases:
[list of cases that use unsigned char]
Change-Id: I42e7ef1a481840699a8dffff1406852f2badabca
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Ib7fbbab5760e1f0c9727f8767ff79f64075fd358
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
V4's version makes an effort to find the shortest possible
representation, which QVariant doesn't do.
Task-number: QTBUG-47070
Change-Id: I49ce130020496592325074e0db29a6984ee7649a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iaa0ad08fd849f604bf12a17b19a3757b5ba4f72c
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Returning a PersistentValue doesn't make much sense.
Change-Id: I6044a12e48aa835ef78008e070bacda5125a7ca7
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move the name and message property into the prototype as
per JS spec. Only define the message property in the
object itself if the value used for construction is not
undefined.
In addition, clean up creation of the objects and centralize
it in a few template methods.
Change-Id: I014017b710575b30bf4e0b0228111878f5c73b9a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I5f30d4fc3901fcd77aba4e7601586aa34cc0f5d2
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also disable the old way of constructing objects.
Change-Id: Ib4e69087cd563ae1481da116d6caf97876239798
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I269c20abdc7f9eb0d71a2d2d485d622b65405762
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Declare the default prototype and internal class
in the class itself.
Change-Id: I08c2b42aa61a886580061336ae60cef8dedc0f03
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I533c7bf90d49aee10b5661fd15a98e013b1169bd
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I5ee3b453b74f5832997aca68d04979302f9afac5
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Gives around 10% speed improvement on the v8 regexp
benchmark.
Change-Id: Iad37bcbc79ccbfb92f65852b660364c919862a75
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I0241efe10d115f8e4a646f840e47e220eb6cfc18
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Append the part of the objects property data that is
known ad instantiation time to the object itself and
by that avoid creating a separate MemberData. Saves
some memory and should speed up object creation.
Currently implemented only for Object and ArrayObject.
Change-Id: I7693bf2f3a28fb718522398ebb94ac115e021fa4
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The output of QV4_MM_STATS was only reporting the items allocated on the
JS HEAP. It was missing out on the LargeItems which are allocated on
the C++ heap.
Change-Id: Ife3d7afd769beb31afd1ed681d503f9811b03b96
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Problem: in Qt Quick Controls 2, enums declared in the abstract
C++ base types were not accessible with the concrete QML type name,
but had to be referenced using the base type name:
Slider {
snapMode: AbstractSlider.SnapOnRelease
}
Solution: this change resolves the C++ base type and creates the
missing link between the composite type and its base type's meta-
object. This allows referencing enums using the concrete/composite
QML type name:
Slider {
snapMode: Slider.SnapOnRelease
}
Change-Id: Icefdec91b012b12728367fd54b4d16796233ee12
Task-number: QTBUG-43582
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Also get rid of the unnecessary QQmlCustomCompilerBackend interface.
Change-Id: I6cfdd88ef49d3d314d07aa069da481d304e7a285
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qquicktextcontrol was only checking if the text was previous selected
or not and if the current state matched the previous state it would not
dispatch a selectedTextChanged event. This is wrong if you
programmatically select text a second time with a different start or
end of selection. You must notify that the selected text changed since
visually you can see the highlight changed locations.
When correcting this and creating a test case, it was seen that other
tests had QEXPECT_FAIL set for this specific case. Upon further
inspection, I could remove those calls and adjust the expected data
that was set before the test (changing false to true).
testing of tst_qquicktext:
Totals: 182 passed, 0 failed, 0 skipped, 0 blacklisted
testing of tst_qquicktextedit:
Totals: 354 passed, 0 failed, 3 skipped, 0 blacklisted
Task-number: QTBUG-38704
Change-Id: Ib5244dc264ab76951bb722a31dcb64717282725a
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
According to the spec, unsigned integer getter/setters should be cased "Uint".
http://www.ecma-international.org/ecma-262/6.0/#sec-dataview.prototype.getuint8
For backword compatibility, this diff does not remove mis-cased methods.
Change-Id: I8e65dca12b8358376dbb3c519246c8abca0d47b0
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When the viewport is moved, the ListView may cull its currentItem
if it's out of the viewport bounds. However, it could be that this
is only a transient state while the currentItem is being animated.
Unfortunately, we don't uncull the currentItem at any moment during
the animation.
To solve this, we simply set the currentItem's culled state every
time its geometry changes.
Change-Id: I72d548f13f229029ccd8568721ea23e73f7b4392
Task-number: QTBUG-48044
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iacab320dcedfc7ba1d12703f63a812f2660929b7
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In some cases the connection may relay a message to the server directly
when calling one of the connect methods. This leads to a crash if the
server, due to not knowing the connection yet, cannot reply.
Change-Id: Iac2da08c621b70c2e5a1922efad0cd6ae4edc4e1
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I0ed3a592e9d6f1ac114af7a998517d9aa3b56828
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|