Kai Koehne [Tue, 18 Aug 2015 13:54:41 +0000 (15:54 +0200)]
qml: Don't build OpenGL support if OpenGL is not available in Qt.
This is an amended backport of change
668ccf18d in dev.
Change-Id: I168a4d5a55c34592599a557bef941ce1629c8178
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Albert Astals Cid [Fri, 14 Aug 2015 13:51:43 +0000 (15:51 +0200)]
Fix memory leak when QQuickPixmapReply::Event is delete before being used
It can happen that QQuickPixmapReply::postReply is called, and before
QQuickPixmapReply::event is called the object gets deleted. That means that
the texture factory will never be deleted.
To fix that we delete it in the destructor of QQuickPixmapReply::Event and set
it to 0 in QQuickPixmapReply::event after assigning to the next data structure
that will take care of it
Change-Id: Ibea62f5a10a53cca586de7c5f03f00aabfb88b2e
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Mitch Curtis [Fri, 14 Aug 2015 09:02:28 +0000 (11:02 +0200)]
Fix casing in Models and Views documentation.
Change-Id: I461c5a55e3dbb2dc713640ec4d7aa00397a4415d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Gunnar Sletta [Tue, 11 Aug 2015 16:33:01 +0000 (18:33 +0200)]
Support QSGGeometry::lineWidth also in the batched code path.
Change-Id: Ifc664b9c718744b9549953e42ac3450a88403dea
Task-number: QTBUG-47090
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Thiago Macieira [Wed, 8 Jul 2015 00:35:11 +0000 (17:35 -0700)]
Add the GPLv3 license text
LGPLv3 refers to it but does not include it in its body.
Change-Id: Ib056b47dde3341ef9a52ffff13eed18cf3504738
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Mitch Curtis [Wed, 12 Aug 2015 08:27:07 +0000 (10:27 +0200)]
Canvas: add a testcase for QSGSimpleTextureNode crash.
Task-number: QTBUG-47714
Change-Id: I8ecf2673ebc5de3d0fe1dec8a67bee81f5d4fb8f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Tobias Koenig [Tue, 11 Aug 2015 15:55:00 +0000 (17:55 +0200)]
Fix crash in QQuickCanvasItem::updatePaintNode()
QQuickCanvasItem manages the life time of the texture
already, so it shouldn't set the ownsTexture flag on the
QSGSimpleTextureNode, because that would result in a double deletion
when QSGSimpleTextureNode::setTexture() is called.
Change-Id: I7c1cc949b664d1a8b64bab092250439171e66233
Task-number: QTBUG-47714
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Mitch Curtis [Tue, 11 Aug 2015 10:49:10 +0000 (12:49 +0200)]
Fix incorrectly formatted code in QQmlEngine documentation.
Change-Id: I70832871cbd697b77cfcbbe425ba5936be1c01d5
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Mitch Curtis [Wed, 5 Aug 2015 08:47:38 +0000 (10:47 +0200)]
Make QQmlExtensionPlugin documentation clearer.
I spent too long wondering why my plugin wasn't being loaded, until I
realized that the directory I was installing the qmldir into was not
named the same as the module. This is already documented in the
"Module Definition qmldir Files" documentation:
http://doc.qt.io/qt-5/qtqml-modules-qmldir.html#contents-of-a-module-definition-qmldir-file
But as I was writing a plugin, I was following this documentation:
http://doc.qt.io/qt-5/qtqml-modules-cppplugins.html
Where it was not at all obvious that they should be named the same.
Change-Id: I3e20bc31f8b42c7141b4c22c8cb1750ba9782971
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Nico Vertriest [Thu, 30 Jul 2015 10:33:32 +0000 (12:33 +0200)]
Doc: added documentation to undocumented methods
Task-number: QTBUG-36985
Change-Id: Idc6f7961f4f02f66dc3d4a8e5d09dd15d43b7757
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Eskil Abrahamsen Blomfeldt [Tue, 28 Jul 2015 11:00:48 +0000 (13:00 +0200)]
Fix selections in tables that span over several cells
In the code that converts text layouts to subtrees in the scene
graph specifically for TextEdit, there was a cutoff to treat
text tables as single nodes in the graph (for simplicity).
However, this breaks selections, since the ranges spanned by
each cell will be interpreted as overlapping, messing up the
selection merging logic. We need the same approach here as for
any other text frame where we check frame boundaries.
[ChangeLog][TextEdit] Fixed issues with selections that spanned
several cells in a table.
Change-Id: I789041d84b5d163e209488f8f2f1f83a6471389f
Task-number: QTBUG-46928
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Mitch Curtis [Mon, 3 Aug 2015 11:44:10 +0000 (13:44 +0200)]
Rephrase sentence about versioning in QQmlExtensionPlugin documentation
The original sentence (
885735d0) is better than the new one (
2c4c7a38).
Some small adjustments were made in this patch as well.
Change-Id: I2cc62c2ffcde7df289b07486439456350a2f60ab
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Mitch Curtis [Mon, 3 Aug 2015 11:37:28 +0000 (13:37 +0200)]
Consolidate duplicated QQmlExtensionPlugin documentation.
There have already been doc improvements made to one of the duplicated
pieces and not the other. This patch uses the improved one.
Change-Id: I12a6cb013e61f63e67fb9d691ee58ba12e21054d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Mitch Curtis [Mon, 3 Aug 2015 11:03:36 +0000 (13:03 +0200)]
Fix typo in plugin documentation.
Change-Id: I5cd851e493b6663bd0a7d09a1c5435c37a4ad7d6
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Eskil Abrahamsen Blomfeldt [Wed, 29 Jul 2015 12:27:58 +0000 (14:27 +0200)]
Fix selecting single character in middle of string
The fix for QTBUG-46829 revealed a bug in the code to handle
selecting part of ligatures. The ranges were assumed to be
[start, end], while they are in fact [start, end>. This would
cause the engine to assume the previous node overlapped completely
with the selected node and that the node had thus already been
added to the graph.
Due to the bug in QTBUG-46829, this accidentally worked before,
but when that bug was fixed, this bug appeared.
Change-Id: I517d260de9f58db4504dd4320b7113fbbe305a81
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Eskil Abrahamsen Blomfeldt [Wed, 29 Jul 2015 11:47:45 +0000 (13:47 +0200)]
Fix disappearing selection spanning different scripts
Due to the way itemization is currently done in Qt,
Cyrillic text (and other writing systems) separated by
spaces will become separate items because the spaces
are itemized as Script_Common. In the Scenegraph's text
node engine, we should merge these items into a single node
as long as the same font is used for all the text. But
a bug in the engine caused this to fail when the text
was selected. The symptom of this was that in some rare
cases one of the items would vanish if it were in the
middle of a selection.
In order to support the bearing of selected text leaning outside
the selection rect, I previously added a hack which would add
all selected text as unselected text as well in
b0783c21fb54b939f07ddf5658cc51113b8014e6. This was an awkward
way of doing it and caused said regression. A less intrusive way
is just to add the text to the scene graph twice, as this does not
interfere with the logic needed to support selecting part of
ligatures nor the engine's ability to merge nodes correctly.
[ChangeLog][Text] Fixed regression with selections spanning
different scripts.
Task-number: QTBUG-46829
Change-Id: I0faed76fb2cd1ac0b2e5cc54b81008b5e2550733
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Thiago Macieira [Fri, 31 Jul 2015 07:30:00 +0000 (00:30 -0700)]
Work around ICC 16 beta compiler bug in SFINAE expansion
Calling std::vector<int>'s constructor (or assign()) with two ints can
select one of two different overloads: the (size_t, value_type) overload
which fills with n copies of the value or (iterator, iterator) overload,
which would copy a range.
libstdc++ had some workarounds for this scenario, by using an indirect
dispatch to determine whether it was a pair of integrals or not. But
ever since the resolution of DR1234 (https://gcc.gnu.org/bugzilla/
show_bug.cgi?id=43813) with C++11's more expressive SFINAE, the
dispatching is done actually by the outer template by adding an extra
template parameter that requires std::iterator_traite<T> to expand.
That's where ICC fails: it expands std::iterator_traits<int> and that
fails. It should have ignored the expansion and discarded that overload.
The workaround is simple: pass different types as the parameters, which
means the compiler cannot select the overload containing a pair of
iterators.
/usr/include/c++/5/bits/stl_iterator_base_types.h(154): error: name followed by "::" must be a class or namespace name
typedef typename _Iterator::iterator_category iterator_category;
^
detected during:
instantiation of class "std::__iterator_traits<_Iterator, void> [with _Iterator=int]" at line 163
instantiation of class "std::iterator_traits<_Iterator> [with _Iterator=int]" at line 876 of "compiler/qv4ssa.cpp"
Change-Id: I52dd43c12685407bb9a6ffff13f5f783820213a5
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Thiago Macieira [Fri, 31 Oct 2014 05:58:18 +0000 (22:58 -0700)]
Use the new macros for disabling warnings in qtdeclarative
Change-Id: I476da50ba23598c7ca98651477fb701f74053b82
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Friedemann Kleint [Tue, 28 Jul 2015 13:58:07 +0000 (15:58 +0200)]
qmlprofiler: Add missing #include <limits>.
Fixes the build with VS 2008 (Desktop).
Change-Id: I8c9682526754586ea6f597f540a4d5b42363f052
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Mitch Curtis [Mon, 27 Jul 2015 10:54:53 +0000 (12:54 +0200)]
Fix typo in squircle example.
Change-Id: I352de9cdd6842f11395982212889b6f0ed3ecc70
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Mitch Curtis [Mon, 27 Jul 2015 10:57:19 +0000 (12:57 +0200)]
Fix typo in QSGGeometryNode documentation.
Change-Id: I0138aa116abdf890060e868fb95e866db1c7a398
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Andrew Knight [Sat, 25 Jul 2015 06:50:19 +0000 (09:50 +0300)]
Instantiator: fix typo in docs
The method is objectAt(), not itemAt().
Change-Id: Ie37636a6f9a641edfe3ec2b47def8806b9b10aa8
Reviewed-by: Martin Smith <martin.smith@digia.com>
Tasuku Suzuki [Tue, 7 Jul 2015 14:08:30 +0000 (23:08 +0900)]
add null check for qmlRegisterSingletonType()
When the callback passed to the function returns nullptr,
QQmlData::ensurePropertyCache(e, o) crashes.
Change-Id: I11efd7e9d6c5f18611e796d896384dd14a280303
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Christopher Adams <chris.adams@jollamobile.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Oswald Buddenhagen [Thu, 23 Jul 2015 16:59:48 +0000 (16:59 +0000)]
Merge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5
Eskil Abrahamsen Blomfeldt [Mon, 13 Jul 2015 12:57:16 +0000 (14:57 +0200)]
Fix possible stack overflow with many property bindings
When there are a lot of bindings to the same property (like 20 000),
we would get stack overflows because the notify list for the
changed signal was traversed recursively.
Changing this also speeds up the traversal. I see something like
~40% reduction in the case of layout() for a notify list of around
200 items.
Note: To make it possible to traverse the double-linked list backwards,
the next-pointer needs to be moved to the beginning of the struct,
because the implementation pattern assumes this
(node->next->prev = &node->next).
I think this code has rotted after it was added, since the prev pointer
was never actually used anywhere before.
Change-Id: Icdfac50b7c8584a908efa65694c7f5f416cb153b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Shawn Rutledge [Mon, 20 Jul 2015 12:21:08 +0000 (14:21 +0200)]
fix readonly metaproperties (revealed by compiler warning)
Found thanks to -Wparentheses + gcc 5.1
Change-Id: Iad784a26d268b85f7c67623fd63f0b097a9f29f9
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Kai Uwe Broulik [Fri, 10 Jul 2015 13:46:55 +0000 (15:46 +0200)]
qquicktext: Fix using CSS line-height with RichText
Only if lineHeight has explicitly been set it will override the block format.
Task-number: QTBUG-45204
Change-Id: I6e0d6dd70460cbf436dda3e5640bb9b1d16d7e5a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Oswald Buddenhagen [Fri, 17 Jul 2015 16:08:53 +0000 (18:08 +0200)]
Merge remote-tracking branch 'origin/5.4' into 5.5
Conflicts:
tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
Change-Id: I272074fa2ca259439cae2f686325932f7f9d7c01
Thiago Macieira [Sun, 19 Jul 2015 04:33:33 +0000 (21:33 -0700)]
Consistently use the override keyword
Clang doesn't like when it's inconsistent.
Change-Id: Ib306f8f647014b399b87ffff13f23eebda07757b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Friedemann Kleint [Mon, 6 Jul 2015 10:11:19 +0000 (12:11 +0200)]
Fix warning about returning address of local variable by MSVC2015 in qv4engine.cpp.
qtdeclarative\src\qml\jsruntime\qv4engine.cpp(179) : warning C4172: returning address of local variable or temporary: dummy
Disable warning as using the address is intended.
Change-Id: Ide894a8dc2fb94f11d0455723c46567c84d91f8d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Sune Vuorela [Thu, 16 Jul 2015 18:36:31 +0000 (20:36 +0200)]
Let unit tests pass if xmlpatterns is not around
The blacklist for xmlpatterns tests is not applied unless xmlpatterns
specifically has been disabled, but code builds anyways.
Fix up the blacklist.
Change-Id: I013701e787e8ec28f1282a911270dd7a158d6f01
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Topi Reinio [Wed, 15 Jul 2015 10:18:57 +0000 (12:18 +0200)]
StocQt demo: Fix text layout issues
The precision of the data received from the stock feed has changed,
and so we must round it before assigning to Text objects to avoid
overflow.
This change also rearranges the layout of the StockInfo element,
using Flow and proper word wrap and eliding for long company names
to improve the look of the stock info view on narrow screens.
Change-Id: I53aaefd1cdc984fcceae9874e5ca2f66b47a190d
Task-number: QTBUG-47207
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Nobuaki Sukegawa [Mon, 13 Jul 2015 16:04:20 +0000 (01:04 +0900)]
Fix trivial bug where ArrayBuffer.isView never returned false
Change-Id: I168d2ec54997d057e3d32463c2b153df38073838
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Nico Vertriest [Wed, 15 Jul 2015 13:04:20 +0000 (15:04 +0200)]
Doc: replace Mac OS X with OS X
Task-number: QTBUG-40759
Change-Id: If21b4551eb95af3370cc21edd7a6721fc06e1346
Reviewed-by: Martin Smith <martin.smith@digia.com>
BogDan Vatra [Wed, 15 Jul 2015 07:24:53 +0000 (10:24 +0300)]
Test if the state machine reacts to a QObject signal.
Change-Id: I4987e10ac0b31977249ce9ebe00e26de334db30d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Erik Verbruggen [Fri, 10 Jul 2015 12:30:05 +0000 (14:30 +0200)]
Fix QML/JS debugging.
Converting from any ScopedObject to Object* resulted in the same
pointer value. Prevent this by not using either, but instead use the
QV4::Value directly.
Task-number: QTBUG-47061
Change-Id: I98d3889f5504dbd5962099d30d4af9d57bc518f9
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Erik Verbruggen [Fri, 3 Jul 2015 11:20:18 +0000 (13:20 +0200)]
V4: track C++ heap usage for Strings in the MemoryManager
... and do a GC run when it exceeds a threshold. The issue with Strings
is that they hold on to QString instances that store the real content.
However, the GC only sees the light-weight JS handle, and doesn't take
the size of the backing content into account. So it could happen that
big QStrings accumulate in the heap as long as the GC didn't reach its
threshold.
The newly introduced unmanaged heap threshold is upped by a factor of
two when exceeded, and lowered by a factor of 2 when the used heap space
falls below a quarter of the threshold. Also grow the threshold if there
is enough space after running the GC, but another GC run would be
triggered for the next allocation.
There is a special case for Heap::String::append, because this method
will copy the data from the left and right substrings into a new
QString. To track this, append notifies the memory manager directly of
the new length. The pointer to the memory manager is stored in
Heap::String, growing it from 40 bytes to 48 bytes (which makes it still
fit in the same bucket, so no extra memory is allocated).
Task-number: QTBUG-42002
Change-Id: I71313915e593a9908a2b227b0bc4d768e375ee17
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Gunnar Sletta [Thu, 2 Jul 2015 13:30:47 +0000 (15:30 +0200)]
doc: fix copy/paste error in warning
Change-Id: I4a9a46913b589b14c879620848d76b31e435ee02
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Shawn Rutledge [Fri, 26 Jun 2015 16:14:31 +0000 (18:14 +0200)]
Flickable: drag-over-bounds is not velocity-sensitive
The inspiration for velocity sensitivity was to make it feel more like
native trackpad flicking on OS X. But on touchscreens it doesn't
make as much sense, and it became too difficult to intentionally
overshoot in applications that depend on pull-to-refresh functionality.
Task-number: QTBUG-46108
Change-Id: I3fea5324aaac1f003ead200e14b0c76bd8c0ece6
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Thiago Macieira [Sat, 7 Mar 2015 22:35:47 +0000 (14:35 -0800)]
QtQml: Fix const correctness in old style casts
Found with GCC's -Wcast-qual.
Change-Id: Ia0aac2f09e9245339951ffff13c958364a2e9859
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Simon Hausmann [Tue, 7 Jul 2015 11:13:22 +0000 (14:13 +0300)]
Fix encoding of QV4::Value in host builds
When building on a 64-bit host targeting a 32-bit architecture, we would
use QT_POINTER_SIZE == 4 from qconfig.h, which is unfortunately shared.
However on 64-bit hosts the 32-bit encoding appears to result in gcc/clang
to miscompile simple QV4::Value uses - when optimizations are enabled.
As a workaround, let's use 64-bit encoding in all host scenarios.
Change-Id: I000cf13abcc9240c931191d6361b6dee578cb5d4
Task-number: QTBUG-45364
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
Thiago Macieira [Wed, 13 May 2015 21:20:57 +0000 (06:20 +0900)]
Fix more casts that dropped the constness.
Found with GCC's -Wcast-qual
Change-Id: I66a35ce5f88941f29aa6ffff13dde502fccefb1d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Thiago Macieira [Sat, 28 Mar 2015 05:12:56 +0000 (22:12 -0700)]
Fix ICC warning about change of sign
qv4typedarray.cpp(87): error #68: integer conversion resulted in a change of sign
Change-Id: Iee8cbc07c4434ce9b560ffff13cf917dd8f9012e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Gunnar Sletta [Thu, 2 Jul 2015 13:54:43 +0000 (15:54 +0200)]
Delete QQuickWindow's animator driver at the right time.
For the non-threaded renderloops, we there might be a timer firing
before the animationController is cleaned up through deleteLater()
which will then reference the deleted QQuickWindow. Rely instead on
direct and explicit cleanup at the right time in each render loop.
Change-Id: Id81daddae78ce3922d6a932fb21200f2dc7955bb
Task-number: QTBUG-33723
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Tobias Koenig [Fri, 3 Jul 2015 08:55:35 +0000 (10:55 +0200)]
QSGSimpleTextureNode: Fix ownership of QSGTexture
Make sure the QSGSimpleTextureNode deletes the old QSGTexture
if a new one is set via setTexture() and the ownsTexture flag
is true.
[ChangeLog][QtQuick][SceneGraph] QSGSimpleTextureNode will now delete
the currently set QSGTexture object, if a new QSGTexture is set and
the ownsTexture flag is on.
Change-Id: Iabfbccd390e16948d4575baf29e6c8b4a184a404
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Kai Uwe Broulik [Wed, 27 May 2015 08:52:59 +0000 (10:52 +0200)]
Improve support for HTML entities in StyledText
This adds support for the non-breaking space character ( ) and properly
handling entities that do not end with a semicolon, such as a stray ampersand
in a text.
Change-Id: I2f157c9aa651b27511809d5a47ac07660949a290
Task-number: QTBUG-44869
Task-number: QTBUG-31816
Task-number: QTBUG-33368
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Tor Arne Vestbø [Fri, 26 Jun 2015 15:37:50 +0000 (17:37 +0200)]
Add lancelot test for Emoji text rendering / color glyphs
We test both native text rendering and distance field text rendering
(which should switch to native for the emoji glyphs automatically),
in various configurations of text color, opacity, and background
color.
Change-Id: I06178820943cd2a52cf338f7eb5c0fca881cb625
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Oswald Buddenhagen [Mon, 29 Jun 2015 08:47:36 +0000 (10:47 +0200)]
Bump version
Change-Id: If10035949b42f8481dc182af3d176e68d07d71a3
Liang Qi [Fri, 26 Jun 2015 12:03:55 +0000 (14:03 +0200)]
Merge remote-tracking branch 'origin/5.5.0' into 5.5
Change-Id: I4020a1b3c59dea18faf7cbcbb78b90fcfc3680f0
Gabriel de Dietrich [Wed, 24 Jun 2015 13:59:45 +0000 (15:59 +0200)]
Fix documentation for ItemSelectionModel
Change-Id: I28f61e1853ea2cc75fbf814f76a7ef09e0d17f5d
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Martin Jones [Wed, 24 Jun 2015 05:56:09 +0000 (15:56 +1000)]
Correctly initialize ListView section attached properties.
During item insertion, indexes of items in the visibleItems list were
not adjusted before new items were created. Section initialization was
broken during insertion because section calculation relies on the
indexes of the items in the visibleItems list. The incorrect section
properties caused spurious section header creation, and layout issues.
Apply the index offset before creating the new items. This mirrors what
GridView already does.
Change-Id: I549a81825cf0e979bc5830840bf6cb75c7a82cac
Task-number: QTBUG-43873
Reviewed-by: Bea Lam <bea.lam@jollamobile.com>
Laszlo Agocs [Tue, 23 Jun 2015 16:39:40 +0000 (18:39 +0200)]
Fix missing images when alpha and shader effects are involved
Once we hit removedFromAtlas() and the glCopyTexImage2D() path, bad things
tend to happen with OpenGL ES, both on certain embedded devices (Beaglebone, RPi)
and ANGLE.
ANGLE just rejects GL_BGRA_EXT with INVALID_ENUM. So if it fails, just try
with GL_RGBA. The BGRA extensions do not mention glCopyTexImage2D in any form
and in plain GLES (any version) BGRA does not exist. So rejecting it may be valid,
depending on how one reads the specs.
Same problem on Beaglebone, where the call with BGRA fails as INVALID_OPERATION.
The RPi 1 and 2 fails in a different way: the temporary framebuffer is not complete
because BGRA textures are not supported as color attachments. So our only choice
here is to do what we do for some Android devices already: ignore BGRA support.
Task-number: QTBUG-46806
Change-Id: I89b3b38bf7f8883c39509606ec5ae525f131292b
Reviewed-by: aavit <eirik.aavitsland@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Nico Vertriest [Thu, 4 Jun 2015 10:41:56 +0000 (12:41 +0200)]
Doc: resize tables with overflow
Task-number: QTBUG-46475
Change-Id: Iebb2f7677f8b514d2b3e08480abfc98a0e155c1c
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Eli Fidler [Fri, 19 Jun 2015 20:44:29 +0000 (16:44 -0400)]
Support 32-bit color bitmap glyphs in native text rendering.
We had been accidentally using the 8-bit alpha glyph shader, which
resulted in rendering solid black outlines of the glyphs.
Task-number: QTBUG-37986
Task-number: QTBUG-45514
Change-Id: Ie8728d50068f58d659e24bc5db2d73e01ca8db75
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Richard Moe Gustavsen [Wed, 17 Jun 2015 13:10:22 +0000 (15:10 +0200)]
Doc: document work-around for static builds using dynamic object creation
Currently we have no system to detect import dependencies that are
not explicitly added to a QML file (other than qmldir "depends", which
is for plugins only). Until we do, document the work-around.
Change-Id: Ic7244728b63bd1f2eb4bf9734474b3e6e48e26fe
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Santtu Lakkala [Fri, 29 May 2015 15:40:56 +0000 (18:40 +0300)]
QSGDefaultRectangleNode: Fix gradient position calculations
Change the gradient position calculations to consider full border, not
just half of it, because the border is fully drawn inside the
rectangle, not half outside, half inside.
Task-number: QTBUG-36059
Change-Id: Ie7dec94d9f6e03ae07c612c6e3b1950781973dc7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Morten Johan Sørvig [Tue, 16 Jun 2015 11:44:38 +0000 (13:44 +0200)]
Enable high-dpi mode for qml.app on OS X.
Add missing "NSPrincipalClass" key.
Change-Id: If7d02470ecee9f85731626f26f2381d434db9367
Reviewed-by: Jens Bache-Wiig <jensbw@gmail.com>
Alan Alpert [Thu, 11 Jun 2015 01:40:22 +0000 (18:40 -0700)]
Version scrollGestureEnabled as a new property
Change-Id: I3408cf93a90327e8abbe2f8b7a85d8a84e24ae58
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Friedemann Kleint [Wed, 3 Jun 2015 09:05:12 +0000 (11:05 +0200)]
qml: Output information about build and GL renderer in verbose mode.
Make static contain() a member of LoadWatcher() and connect to
QQuickWindow::onOpenGlContextCreated(). Print information similar
to qtdiag.
Change-Id: I0bc6bc43418e4392c6b5e2643d4f7899ff4f4f8b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Alan Alpert [Thu, 11 Jun 2015 01:40:22 +0000 (18:40 -0700)]
Version scrollGestureEnabled as a new property
Change-Id: I3408cf93a90327e8abbe2f8b7a85d8a84e24ae58
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Takumi ASAKI [Wed, 3 Jun 2015 06:10:11 +0000 (15:10 +0900)]
Android: Another work around bug of Vertex Shader
Just like commit
fd565ec6, this fixes another vertex shader compilation
issue on certain OpenGL drivers.
Change-Id: Ided3d6082fa0790659e9c242d0b43d7de5a2ae4d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Aleix Pol [Wed, 10 Jun 2015 19:18:15 +0000 (21:18 +0200)]
Improve qml error message "invalid alias location"
Specify we're talking about the target itself rather than talking
location, which I always doubt about whether it's the location within the
file.
Also specify the offending property, so we get a clue about what to look
into.
[ChangeLog][QtQml] Improve "invalid alias location" error message by specifying
what's the offending property and by calling it "invalid alias target location"
Change-Id: I7a9390089ee8986872c119df44d8036bf267ab99
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Ulf Hermann [Mon, 8 Jun 2015 14:43:23 +0000 (16:43 +0200)]
Make argument to QQmlDebuggingEnabler::startTcpServer an enum
The bool argument is less intuitive as you don't know if e.g. true
means "Yes, run the QML" or "Yes, block the QML engine".
Task-number: QTBUG-46565
Change-Id: I6d268e1354cebeb794b065e118bc0c353d7dd59a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Erik Verbruggen [Fri, 5 Jun 2015 13:20:23 +0000 (15:20 +0200)]
V4: Fix use of uninitialized field.
Valgrind pointed out that Transition::id was used in a conditional jump
or move. Fixes regressions of the following tests on OSX:
ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-1 in non-strict mode
ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-2-2 in non-strict mode
ch15/15.2/15.2.3/15.2.3.12/15.2.3.12-3-28 in non-strict mode
Change-Id: Ia959ff6f9fdac8d4cb37f54f670fdff4c8ba9a67
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Erik Verbruggen [Fri, 5 Jun 2015 10:54:36 +0000 (12:54 +0200)]
Add a version of BitVector that uses QBitArray.
Some C++ STL libraries are unable to ship a bug-free std::vector<bool>,
and/or a bug-free specialization of std::find for std::vector<bool>. So,
for those platforms there now is a slow version of BitVector, which
relies on QBitArray, which we can fix if we find bugs.
Change-Id: I5ddfb18cabe82049a7ede6083fe6ba142bca068b
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Erik Verbruggen [Fri, 5 Jun 2015 10:30:32 +0000 (12:30 +0200)]
Wrap std::vector<bool> in our own class.
So we can replace the implementation when we encounter a broken version
of std::vector<bool> or a broken specialization of std::find for it.
Change-Id: I7d7c0af585388ddedf5167cd9863c52ab638442d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Gunnar Sletta [Sun, 7 Jun 2015 10:30:20 +0000 (12:30 +0200)]
Fix performance regression in Image construction.
Setting up the signal leads to a significant memory and performance
overhead. This patch improves the benchmark by almost 10%.
Change-Id: Ib0a76ba42fdce1ca707044a8f8b6bdc6405f20c3
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Kai Koehne [Thu, 21 May 2015 11:10:36 +0000 (13:10 +0200)]
Doc: Document limits of QSGGeometry::setLineWidth
Task-number: QTBUG-46260
Change-Id: Ib84a41da10d38391c3248a209a851f5b603d46b0
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Simon Hausmann [Wed, 3 Jun 2015 17:34:27 +0000 (19:34 +0200)]
Added auto-generated change log
Change-Id: I188f4137653505fd7635ad911ca41eecb89dd417
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Friedemann Kleint [Wed, 3 Jun 2015 08:04:54 +0000 (10:04 +0200)]
qml: Add options to control the GL renderer.
Task-number: QTBUG-46030
Change-Id: I5af5a0ef267444d85e8da6df196229ad8199c00f
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Friedemann Kleint [Fri, 29 May 2015 15:24:33 +0000 (17:24 +0200)]
qmlscene: Add option --verbose to obtain diagnostic output.
Print the build information and connect to
QQuickWindow::openglContextCreated() to print information on the
GL driver (similar to qtdiag).
Set a window title indicating render type and Qt version.
Task-number: QTBUG-46030
Change-Id: Ib4376126bf9c63f4cab8cb530ff1da66394b634b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Friedemann Kleint [Fri, 29 May 2015 14:38:34 +0000 (16:38 +0200)]
qmlscene: Add options to control the GL renderer.
Replace boolean option controlling context sharing by a vector of
QCoreApplication attributes (bearing in mind that for example
High DPI changes might add more attributes) and add the GL switching
attributes.
Task-number: QTBUG-46030
Change-Id: I934dd8910b7b50ec96ae9e00823649c9df6a00ef
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Laszlo Agocs [Mon, 1 Jun 2015 15:04:07 +0000 (17:04 +0200)]
Redirect the default FBO correctly with QQuickWidget
Similarly to QOpenGLWidget, functions like QOpenGLFramebufferObject::bindDefault()
should bind the QQuickWidget's FBO, not 0, while rendering the scene graph.
This becomes particularly important on platforms with surfaceless context support.
Here offscreen surfaces are not backed by any surface. Therefore any OpenGL operation
accessing the current draw framebuffer with FBO 0 bound may potentially crash, as there
is no draw framebuffer at all.
The distance field glyph cache exhibits this issue when running with EGL on Mesa:
glViewport crashes when we render via QQuickWidget and the current framebuffer is reset
to 0. The problem goes away when the code changed is to use bindDefault() - as it should have
anyhow - and QQuickWidget is enhanced to communicate the "default" framebuffer to QOpenGLContext,
just like QOpenGLWidget does.
Task-number: QTBUG-46415
Task-number: QTBUG-43269
Change-Id: I35fe375a0870dadecc4a074dfdec122c6a4c92ab
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Friedemann Kleint [Wed, 3 Jun 2015 12:27:27 +0000 (14:27 +0200)]
tst_qquickwindow: Prospective fix for instability of cursor test.
FAIL! : tst_qquickwindow::cursor() Compared values are not the same
Loc: [tst_qquickwindow.cpp(1444)]
Check that no windows are leaked in slot cleanup and fix all
leaking tests.
Position the window and enlarge it to fix the warning:
WARNING: tst_qquickwindow::cursor() Mouse event occurs outside of target window.
Add window titles to tests.
Replace QVERIFY(a == b) by QCOMPARE(a, b).
Change-Id: Ida892e8a8d7d5f40d4f50787608940dbffc7a29d
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Mitch Curtis [Fri, 22 May 2015 11:03:25 +0000 (13:03 +0200)]
Add left, right, top and bottom properties to basic QML rect type.
Task-number: QTBUG-45528
Task-number: QTBUG-45530
Change-Id: I83c4056b4bde37ef2dc4424ffddd823c1654d92e
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Alan Alpert [Tue, 31 Mar 2015 01:06:44 +0000 (18:06 -0700)]
Remove testing of active window change on hide
We don't actually control where the window manager
assigns focus if the currently active window is hidden,
so don't test for specific behavior.
We can now remove the blacklist entry for this test.
Change-Id: Ie09fc91c6317f6bb2d4b91000641ef241556fddf
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Venugopal Shivashankar [Fri, 15 May 2015 13:35:24 +0000 (15:35 +0200)]
Doc: Added the missing \brief and \image to the example docs
Task-number: QTBUG-41996
Change-Id: Ica6e069c7753a2004a4a4c0e93a49d1f240569d3
Reviewed-by: Martin Smith <martin.smith@digia.com>
Venugopal Shivashankar [Mon, 18 May 2015 10:50:13 +0000 (12:50 +0200)]
Doc: Added the missing examples \group page for Qt QML
The QHP meta info. was trying to link to the Qt Quick
page, which failed. This should fix the issue.
Task-number: QTBUG-46163
Change-Id: Ib012f8f73b74a51b7a8d4e849070742e94d40973
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Joni Poikelin [Fri, 29 May 2015 05:13:58 +0000 (08:13 +0300)]
Fix flickering when QQuickWidget becomes visible
QQuickWidget used short delay before rendering. This caused
black area to flash on the widget briefly. Instead of scheduling
redraw, render scene immediately.
Task-number: QTBUG-46387
Change-Id: I342d96a1aaef3244190221807b0d816815697623
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Laszlo Agocs [Wed, 27 May 2015 13:39:18 +0000 (15:39 +0200)]
Document the render loops a bit more
Task-number: QTBUG-42699
Change-Id: Ib8a1690bfe38bd0686799fac390207c26e5a6812
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Alex Blasche [Thu, 28 May 2015 09:07:19 +0000 (11:07 +0200)]
Purge use of VisualDataModel from docs where DelegateModel is required
They are the same types except that VisualDataModel is deprecated
and uses a different import statement. Now, references to VisualDataModel
are only used where we explicitly refer to the replacement/deprecation.
Change-Id: I1e68eb5784235a00233b3882c3d91e21e32af7d1
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Topi Reinio [Fri, 17 Apr 2015 09:11:48 +0000 (11:11 +0200)]
Calqlatr Demo: Adjust ListView delegate height based on font size
To prevent the list tem text overflowing the delegate boundary.
Task-number: QTBUG-45621
Change-Id: I46f35508ea49a2b435286de76dc9ab49620619a6
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Aleix Pol [Sat, 23 May 2015 12:10:36 +0000 (14:10 +0200)]
Makes it possible to extract all data from a QML DropArea
There's many types that aren't being covered by DropArea API, such as
images. getDataAsString is not acceptable, since fromUtf8 chokes on
reading non-utf8.
This patch introduces getDataAsArrayBuffer method that won't try to convert
the data into a QString and simply pass a QV4::ArrayBuffer, that internally
keeps a QByteArray.
Change-Id: I65411b3d365ee6c5e13effd9167156771ee08a05
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Jocelyn Turcotte [Wed, 20 May 2015 14:29:45 +0000 (16:29 +0200)]
Fix the implicitSize of SVG Images on retina display
If the user relies on the Image implicitSize to do the layout
but still sets sourceSize to the image, the sourceSize might
be (0, 0) instead of (-1, -1).
readImage checks that the size is > 0 to use the requestedSize
and this would cause us not to use the requestedSize, but still
divide by the devicePixelRatio in QQuickImageBase::pixmapChange,
which would give a different implicitSize on retina display.
Make sure that we get the same implicitSize on both by only
keeping the targetDevicePixelRatio if sourceSize is > (0, 0)
like readImage does.
Task-number: QTBUG-38991
Change-Id: Ib93f57efa47d096f88883845985b44f62db4ad74
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Richard Moe Gustavsen [Tue, 19 May 2015 09:20:12 +0000 (11:20 +0200)]
qquickwindow: ensure we delete the correct delayed touch event after delivery
Delivering a delayed touch event from QQuickWindow can cause the event loop
to recurse (e.g if it starts a drag'n'drop). This again can cause new touch
events to be delivered to QQuickWindow, and new delayed touch events to be
stored.
This results in the following:
(1) Receive new touch press event in QQuickWindow, and set
delayedTouch to be a copy of it
(2) Deliver delayedTouch to items. This can cause an event loop
recursion.
(3) While inside the recursion, QQuickWindow receives another new
touch press event. We then redeliver and delete the current
delayedTouch event created in (1), and set delayedTouch to be
a copy of the new event.
(4) Later we return back from (2), and try to access
delayedTouch (or actually a reference to the touchpoints inside
it, qquickwindow.cpp:1958). Since the event was deleted in (3), we
have a crash.
This patch will ensure that we set delayedTouch to 0 before delivering
it (so it cannot be redelivered), and that we safely delete it afterwards
when it goes out of scope. By converting delayedTouch to a QScopedPointer
we also ensure that the event is not leaked upon destruction.
Task-number: QTBUG-45877
Change-Id: Ic372a39a0eb127abfd12cec2d51b3743ad83194d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Laszlo Agocs [Thu, 7 May 2015 17:14:23 +0000 (19:14 +0200)]
Fix basic and windows render loops to use the correct screen
GLX, and potentially other platforms too, require that compatible
contexts and surfaces are created with the same screen.
This makes Quick functional on X.org configurations where each
physical screen represents a separate X screen on the same X display.
Change-Id: I03c87819e1aee148c880a3caca13d4a0c5409056
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Vishesh Handa [Thu, 12 Mar 2015 13:26:00 +0000 (14:26 +0100)]
Fix null pointer dereference in QQmlImportNamespace
Change-Id: Iaf61f38790b0dfddb924043e0a25eb8a882571c8
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Allan Sandfeld Jensen [Mon, 18 May 2015 08:13:48 +0000 (10:13 +0200)]
Optionally apply orientation on images
Adds the option to follow EXIF orientation. This was previuosly
automatically applied to TIFF images, but not JPEGs except in
Qt 5.4.1.
[ChangeLog][Image] An autoTransform property has been added to
control whether metadata image transforms such as EXIF orientation
are automatically applied. By default it enabled for TIFF images
and disabled for JPEG.
Change-Id: I8a4cf204985b2a7d158a0e046e52db7cda970d20
Task-number: QTBUG-37946
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Maurice Kalinowski [Tue, 19 May 2015 09:35:12 +0000 (11:35 +0200)]
WinRT: fix warnings
Change-Id: If11db499d743cbe79959145ecfcbcfec896a6845
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Friedemann Kleint [Mon, 18 May 2015 10:05:19 +0000 (12:05 +0200)]
Fix render loop warning about invalid geometry of exposed windows.
Do the screen check only for toplevel windows and make warning
more verbose.
Change-Id: Ie25271fe34c72c1410022afe8a1a9bdccdf7a12f
Task-number: QTCREATORBUG-10814
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Simon Hausmann [Tue, 19 May 2015 09:07:43 +0000 (11:07 +0200)]
Fix MSVC warning about unused variable
Change-Id: I9b2f21dd7cfc82a9da9aa3e4c60d47fa07fdceaf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Kai Koehne [Tue, 19 May 2015 07:16:44 +0000 (09:16 +0200)]
MSVC: Fix compiler warning
Fix compiler warning introduced in commit
d76921e3082cd31:
jsruntime\qv4engine.cpp(1626) : warning C4100: 'v' : unreferenced formal parameter
Change-Id: I1f2b74f8e3fb14019f6e28b407d0336b0812c573
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Thiago Macieira [Sat, 7 Mar 2015 22:42:59 +0000 (14:42 -0800)]
QtQuick: Fix const correctness in old style casts
Found with GCC's -Wcast-qual.
Change-Id: Ia0aac2f09e9245339951ffff13c9589afabc7ade
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Laszlo Agocs [Thu, 7 May 2015 17:09:39 +0000 (19:09 +0200)]
Create contexts and pbuffers with the correct screen in QQuickWidget
Change-Id: I8e9db998eee0af5f62c1384f2dcb2028254cc642
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Erik Verbruggen [Mon, 11 May 2015 08:16:37 +0000 (10:16 +0200)]
QML: fix mixed debug/release build on OSX.
Dyld will take the debug library and link it against the release
versions of the frameworks. (Using the debug versions is an option to
dyld when starting an application.) This requires all symbols in both
debug and release libraries in frameworks to be the same.
Change-Id: I6d96bcdf8577f1dffc63c508cb7adc0db2acc486
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Santtu Lakkala [Thu, 16 Apr 2015 13:51:45 +0000 (16:51 +0300)]
Hide cursor when text fields becomes read only
Clear the cursor node in TextEdit if field is read only. Otherwise the
cursor stays visible indefinitely, if it were at the moment the flag
was set.
Task-number: QTBUG-44735
Change-Id: Ib39138260ad8a4d7e5ed2185b8a04c577ee1eff0
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Shawn Rutledge [Mon, 11 May 2015 09:34:08 +0000 (11:34 +0200)]
Add QtQuick::Text::font.weight enum values
Followup to
517da68893be9e6d97c7993922c573de9560604d in qtbase:
make all possible font weights available in QML.
Task-number: QTBUG-38482
Change-Id: I4f821d2fadbcd42fbb237903be474d67a0a5a7c9
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Sérgio Martins [Fri, 8 May 2015 19:10:06 +0000 (20:10 +0100)]
qmllint: Fix parsing js files with .import directives
For .pragmas we removed them explicitly but the correct fix is to
not use "qmlMode" when setting code in the lexer.
Change-Id: I6ffc0ca9e7ebab09fbf91e647d292ff0a3a1fd7d
Task-number: QTBUG-45916
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Simon Hausmann [Fri, 8 May 2015 10:34:53 +0000 (12:34 +0200)]
Add protection against "wrong" marking in debug builds
To protect against situations where we accidentally mark an object that belongs
to a different engine - there are many possible entry points - this patch adds
an assertion in debug builds for this situation. When it happens, it will point
more or less directly to the code that tries to push an object to the wrong JS
stack for marking. This helped in the investigation of QTBUG-44895
Change-Id: I311b9ff6d282d52e725044b03a62cd77085536be
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Thu, 7 May 2015 14:22:24 +0000 (16:22 +0200)]
Fix memory corruption when sharing QObjects between different QML engines
When marking the JS wrappers for QObject manually, we cannot use
ddata->jsWrapper directly but we must respect the case where the same
object is exposed to different engines and then we must mark the wrapper
that belongs to the engine that is currently collecting garbage.
Change-Id: If82883c762ccaf3431e7074243ff2ff703234d66
Task-number: QTBUG-44895
Reviewed-by: Marco Martin <mart@kde.org>
Reviewed-by: Jan Kundrát <jkt@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>