platform/upstream/qtdeclarative.git
9 years agoCanvas: add a testcase for QSGSimpleTextureNode crash.
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>
9 years agoFix crash in QQuickCanvasItem::updatePaintNode()
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>
9 years agoFix incorrectly formatted code in QQmlEngine documentation.
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>
9 years agoMake QQmlExtensionPlugin documentation clearer.
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>
9 years agoDoc: added documentation to undocumented methods
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>
9 years agoFix selections in tables that span over several cells
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>
9 years agoRephrase sentence about versioning in QQmlExtensionPlugin documentation
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>
9 years agoConsolidate duplicated QQmlExtensionPlugin documentation.
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>
9 years agoFix typo in plugin documentation.
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>
9 years agoFix selecting single character in middle of string
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>
9 years agoFix disappearing selection spanning different scripts
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>
9 years agoWork around ICC 16 beta compiler bug in SFINAE expansion
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>
9 years agoUse the new macros for disabling warnings in qtdeclarative
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>
9 years agoqmlprofiler: Add missing #include <limits>.
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>
9 years agoFix typo in squircle example.
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>
9 years agoFix typo in QSGGeometryNode documentation.
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>
9 years agoInstantiator: fix typo in docs
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>
9 years agoadd null check for qmlRegisterSingletonType()
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>
9 years agoMerge "Merge remote-tracking branch 'origin/5.4' into 5.5" into refs/staging/5.5
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

9 years agoFix possible stack overflow with many property bindings
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>
9 years agofix readonly metaproperties (revealed by compiler warning)
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>
9 years agoqquicktext: Fix using CSS line-height with RichText
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>
9 years agoMerge remote-tracking branch 'origin/5.4' into 5.5
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

9 years agoConsistently use the override keyword
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>
9 years agoFix warning about returning address of local variable by MSVC2015 in qv4engine.cpp.
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>
9 years agoLet unit tests pass if xmlpatterns is not around
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>
9 years agoStocQt demo: Fix text layout issues
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>
9 years agoFix trivial bug where ArrayBuffer.isView never returned false
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>
9 years agoDoc: replace Mac OS X with OS X
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>
9 years agoTest if the state machine reacts to a QObject signal.
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>
9 years agoFix QML/JS debugging.
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>
9 years agoV4: track C++ heap usage for Strings in the MemoryManager
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>
9 years agodoc: fix copy/paste error in warning
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>
9 years agoFlickable: drag-over-bounds is not velocity-sensitive
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>
9 years agoQtQml: Fix const correctness in old style casts
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>
9 years agoFix encoding of QV4::Value in host builds
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>
9 years agoFix more casts that dropped the constness.
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>
9 years agoFix ICC warning about change of sign
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>
9 years agoDelete QQuickWindow's animator driver at the right time.
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>
9 years agoQSGSimpleTextureNode: Fix ownership of QSGTexture
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>
9 years agoImprove support for HTML entities in StyledText
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 (&nbsp;) 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>
9 years agoAdd lancelot test for Emoji text rendering / color glyphs
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>
9 years agoBump version
Oswald Buddenhagen [Mon, 29 Jun 2015 08:47:36 +0000 (10:47 +0200)]
Bump version

Change-Id: If10035949b42f8481dc182af3d176e68d07d71a3

9 years agoMerge remote-tracking branch 'origin/5.5.0' into 5.5
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

9 years agoFix documentation for ItemSelectionModel
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>
9 years agoCorrectly initialize ListView section attached properties.
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>
9 years agoFix missing images when alpha and shader effects are involved
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>
9 years agoDoc: resize tables with overflow
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>
9 years agoSupport 32-bit color bitmap glyphs in native text rendering.
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>
9 years agoDoc: document work-around for static builds using dynamic object creation
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>
9 years agoQSGDefaultRectangleNode: Fix gradient position calculations
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>
9 years agoEnable high-dpi mode for qml.app on OS X.
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>
9 years agoVersion scrollGestureEnabled as a new property
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>
9 years agoqml: Output information about build and GL renderer in verbose mode.
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>
9 years agoVersion scrollGestureEnabled as a new property
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>
9 years agoAndroid: Another work around bug of Vertex Shader
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>
9 years agoImprove qml error message "invalid alias location"
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>
9 years agoMake argument to QQmlDebuggingEnabler::startTcpServer an enum
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>
9 years agoV4: Fix use of uninitialized field.
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>
9 years agoAdd a version of BitVector that uses QBitArray.
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>
9 years agoWrap std::vector<bool> in our own class.
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>
9 years agoFix performance regression in Image construction.
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>
9 years agoDoc: Document limits of QSGGeometry::setLineWidth
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>
9 years agoAdded auto-generated change log
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>
9 years agoqml: Add options to control the GL renderer.
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>
9 years agoqmlscene: Add option --verbose to obtain diagnostic output.
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>
9 years agoqmlscene: Add options to control the GL renderer.
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>
9 years agoRedirect the default FBO correctly with QQuickWidget
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>
9 years agotst_qquickwindow: Prospective fix for instability of cursor test.
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>
9 years agoAdd left, right, top and bottom properties to basic QML rect type.
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>
9 years agoRemove testing of active window change on hide
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>
9 years agoDoc: Added the missing \brief and \image to the example docs
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>
9 years agoDoc: Added the missing examples \group page for Qt QML
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>
9 years agoFix flickering when QQuickWidget becomes visible
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>
9 years agoDocument the render loops a bit more
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>
9 years agoPurge use of VisualDataModel from docs where DelegateModel is required
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>
9 years agoCalqlatr Demo: Adjust ListView delegate height based on font size
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>
9 years agoMakes it possible to extract all data from a QML DropArea
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>
9 years agoFix the implicitSize of SVG Images on retina display
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>
9 years agoqquickwindow: ensure we delete the correct delayed touch event after delivery
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>
9 years agoFix basic and windows render loops to use the correct screen
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>
9 years agoFix null pointer dereference in QQmlImportNamespace
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>
9 years agoOptionally apply orientation on images
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>
9 years agoWinRT: fix warnings
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>
9 years agoFix render loop warning about invalid geometry of exposed windows.
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>
9 years agoFix MSVC warning about unused variable
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>
9 years agoMSVC: Fix compiler warning
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>
9 years agoQtQuick: Fix const correctness in old style casts
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>
9 years agoCreate contexts and pbuffers with the correct screen in QQuickWidget
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>
9 years agoQML: fix mixed debug/release build on OSX.
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>
9 years agoHide cursor when text fields becomes read only
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>
9 years agoAdd QtQuick::Text::font.weight enum values
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>
9 years agoqmllint: Fix parsing js files with .import directives
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>
9 years agoAdd protection against "wrong" marking in debug builds
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>
9 years agoFix memory corruption when sharing QObjects between different QML engines
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>
9 years agoAvoid namespacing QTEST_MAIN
Rainer Keller [Fri, 8 May 2015 07:18:03 +0000 (09:18 +0200)]
Avoid namespacing QTEST_MAIN

The test tries to be smart but it won't work once GPU blacklists are
supported because QTEST_MAIN will contain some imports that cannot be
namespaced.

Change-Id: Id0538cf1ba3885736d8b177e64064bd06f8fef2e
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
9 years agoAvoid uninitialized bytes in QV4::CompiledData
Simon Hausmann [Tue, 5 May 2015 11:14:36 +0000 (13:14 +0200)]
Avoid uninitialized bytes in QV4::CompiledData

When populating the QV4::CompiledData for a JS unit, we memset the malloc'ed
data to zero. We should do the same when creating a unit for QML files. We do
write all the fields that we use, but due to padding we may end up with bytes
that are neither used nor written but still uninitialized. Consequently they
should be zero'ed, otherwise serialization will write garbage.

Change-Id: I0b093e4dde6789d7236247507221f4f3476ba89d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoFix memory corruption in array handling
Simon Hausmann [Tue, 5 May 2015 08:52:34 +0000 (10:52 +0200)]
Fix memory corruption in array handling

SimpleArrayData's markObjects() implementation did not mark the entries
correctly. When the dequeue offset was non-zero, we would end up marking values
that may have been garbage collected earlier.

Task-number: QTBUG-45888
Change-Id: Iacec350ccc76399ad4d16138af50acf22b2809db
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoFix memory corruption when multiple QML engines have JavaScript wrappers for the...
Simon Hausmann [Tue, 28 Apr 2015 13:38:09 +0000 (15:38 +0200)]
Fix memory corruption when multiple QML engines have JavaScript wrappers for the same QObject

It's possible that the same QObject is exposed to multiple JavaScript
environments, for which we have this "extra" hack in the form of a QMap.  The
common case is that QQmlData has a QV4::WeakValue that points to the JS wrapper
for the object. However in the rare case of multiple exposure, a map in the
other engines stores those references. That map was erroneously storing
pointers to temporary values on the JS stack instead of heap pointers.

Change-Id: I8587f9921a9b4f9efd288326d00cebc25ad0bc12
Task-number: QTBUG-45051
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoBorderImage support for @2x assets
Andy Nichols [Thu, 6 Nov 2014 19:30:45 +0000 (11:30 -0800)]
BorderImage support for @2x assets

Despite being a subclass of QQuickImageBase, BorderImage components did
not support using @2x assets like Image components.  The 9 patch image
logic now accounts for device pixel ratio when needed.

Manual tests added for stretch, repeat and round tiling modes.

[ChangeLog][BorderImage] Add support for @2x HiDPI border images.
This means, no more need to multiply the border sizes by the device
pixel ratio.

Change-Id: I79958739929964c816ba5dacedd9eaf93a60a183
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>