platform/upstream/qtdeclarative.git
9 years agoFix the nine patch node factory function (part 2)
Simon Hausmann [Sat, 9 Aug 2014 07:28:10 +0000 (09:28 +0200)]
Fix the nine patch node factory function (part 2)

Change-Id: I9edb6b0052d3b02cc412f56ae73e02652af0c93c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoMerge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4
Simon Hausmann [Tue, 12 Aug 2014 10:34:35 +0000 (12:34 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into 5.4" into refs/staging/5.4

9 years agoV4 JIT: generate code for int32 comparisons.
Erik Verbruggen [Tue, 22 Jul 2014 09:56:33 +0000 (11:56 +0200)]
V4 JIT: generate code for int32 comparisons.

Change-Id: I5e88fb3df7b01f4f515ce4d2e451a5a6f5ba92ad
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoDoc: Add a keyword for XMLHttpRequest
Topi Reinio [Tue, 12 Aug 2014 08:52:42 +0000 (10:52 +0200)]
Doc: Add a keyword for XMLHttpRequest

To make the search term 'XMLHttpRequest' return relevant results in
the Assistant, add a keyword for it.

Task-number: QTBUG-40240
Change-Id: I44b0d397cd014d2468e6302d4293c959ec8c8802
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
9 years agoDoc: Remove duplicated words
Topi Reinio [Mon, 11 Aug 2014 13:34:21 +0000 (15:34 +0200)]
Doc: Remove duplicated words

Removes duplicated (repeated) words and fixes other minor
documentation issues.

Change-Id: I891f2b3e60194b207737425c1dcc1d35a5bd921a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
9 years agoV4 JIT: fix LookupCall on ARM
Erik Verbruggen [Mon, 11 Aug 2014 11:15:34 +0000 (13:15 +0200)]
V4 JIT: fix LookupCall on ARM

To generate a LookupCall, the register r8 was used on ARM instead of the
ReturnValue register. The reason is that the ReturnValue register is
also the register for the first argument. However, now that we use
callee-saved registers (r8 among them), this would clobber any value
stored in r8. The fix is to actually use r0 to calculate the value,
because the first argument holds the lookup table, and the call is
relative to that. This leaves r8 free to be used by the register
allocator.

Change-Id: I5095bf69d27e16111ad32d9e5d5691c7bce14516
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoRemove Item.window
Alan Alpert [Thu, 7 Aug 2014 04:18:45 +0000 (21:18 -0700)]
Remove Item.window

Window is a type in a different import, so we can't just casually use
it in Item. Note that this API was going to be new in the next release,
so it can be safely removed (at least until we do it right).

Change-Id: I9e3eb5f65ea5f46d30fb7905d0f9c479daaccbff
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
9 years agoWrite memory events into tracefiles generated by qmlprofiler
Ulf Hermann [Mon, 16 Jun 2014 11:33:33 +0000 (13:33 +0200)]
Write memory events into tracefiles generated by qmlprofiler

Change-Id: Ic01505194f29967ed1aad16fe36e14dc5532ae25
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoMerge remote-tracking branch 'origin/5.3' into 5.4
Simon Hausmann [Tue, 12 Aug 2014 08:03:53 +0000 (10:03 +0200)]
Merge remote-tracking branch 'origin/5.3' into 5.4

Conflicts:
src/qml/jsruntime/qv4include.cpp
src/quick/items/qquickrendercontrol.cpp
src/quick/items/qquickrendercontrol_p.h
src/quickwidgets/qquickwidget.cpp

Change-Id: Ib2dc0051a38cd283a37a7665eb4a76f6f7ec8b15

9 years agoV4 JIT: tune generated instructions for inplace binops
Erik Verbruggen [Fri, 27 Jun 2014 12:37:50 +0000 (14:37 +0200)]
V4 JIT: tune generated instructions for inplace binops

Generate better code for in-place binary operations where the right-hand
side is either a constant or a memory address. Now that the JIT can do
this, also tell the register allocator not to un-spill that right-hand
side.

Change-Id: I0ab852f6b92f90dfed99c05fbaf91aad2549ecf4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoFix the nine patch node factory function (part 1)
Simon Hausmann [Sat, 9 Aug 2014 07:27:42 +0000 (09:27 +0200)]
Fix the nine patch node factory function (part 1)

Change-Id: I5981190dd43082715a7159efd478469365caf3a6
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoAdd more complete comparison function to QQuickShaderEffectMaterial.
Michael Brasser [Fri, 8 Aug 2014 15:57:46 +0000 (10:57 -0500)]
Add more complete comparison function to QQuickShaderEffectMaterial.

Task-number: QTBUG-37914
Change-Id: I3646991a9a7e43dcc5681fca0d8a5e24c9a427bd
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoAdd OpenGLInfo attached type
J-P Nurmi [Sat, 9 Aug 2014 21:42:20 +0000 (23:42 +0200)]
Add OpenGLInfo attached type

[ChangeLog][QtQuick] Introduced OpenGLInfo attached type that
provides information about the currently used OpenGL version.

Change-Id: Ibdf365decf9d6331cf91c0bf541e493ced02a417
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoFinish render() support for QQuickWidget
Laszlo Agocs [Thu, 7 Aug 2014 13:41:58 +0000 (15:41 +0200)]
Finish render() support for QQuickWidget

The enablers are already in. Now we just need to use the virtual in
QQuickWidgetPrivate and test it.

Task-number: QTBUG-39562
Change-Id: I1faf5a0a244ba4169fb8f9b0dae657304038b60e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoRemove setDefaultFormat() from QQuickWindow
Laszlo Agocs [Thu, 7 Aug 2014 15:19:50 +0000 (17:19 +0200)]
Remove setDefaultFormat() from QQuickWindow

Replaced by QSurfaceFormat::setDefaultFormat().

Change-Id: If4e37b75ccb55d556d80b0079be89e5a521f6dbb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoAvoid double deletion when deleting an incubating component.
Martin Jones [Sat, 9 Aug 2014 12:01:08 +0000 (22:01 +1000)]
Avoid double deletion when deleting an incubating component.

The guard in QQmlIncubatorPrivate::clear() was invalidated by clearing
the guards in QQmlIncubatorPrivate::incubate() when a deletion was
detected.

If we detect a deletion, leave the guards in place, to be handled in
QQmlIncubatorPrivate::clear().

Task-number: QTBUG-40685
Change-Id: I1bf7422fda97745f1f7a3b42285a399244c09a1f
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoAdded interface for the QStyle rendering in QtQuick Controls
Simon Hausmann [Fri, 8 Aug 2014 14:33:14 +0000 (16:33 +0200)]
Added interface for the QStyle rendering in QtQuick Controls

This allows a scene graph backend to customize the style rendering

Change-Id: I6048df47ed3705d81140d63a21257f704a0e0a82
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoProtect against crashes with invalid openglContext()
Simon Hausmann [Fri, 8 Aug 2014 11:00:45 +0000 (13:00 +0200)]
Protect against crashes with invalid openglContext()

1) Don't fail the assertion in the animator jobs if we don't have a context
2) Delegate the opengl context check in QQuickWindow::createTextureFromImage
   to the QSGContext

Change-Id: I1b248895dcd6db406f1af8866fd0052dd7564899
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoImprove support for node iteration in the internal API
Simon Hausmann [Fri, 8 Aug 2014 10:10:44 +0000 (12:10 +0200)]
Improve support for node iteration in the internal API

Added a new node visitor that allows easier traversal of the specialized
node types such as the image or rectangle nodes.

Change-Id: I45a7d3e1513b4a4db9d07998a6bcee9eba34044e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoCleanup: Remove remainders of dirty state usage
Simon Hausmann [Fri, 8 Aug 2014 08:43:27 +0000 (10:43 +0200)]
Cleanup: Remove remainders of dirty state usage

Change-Id: I4c379562af27a7eb2a47aee21090eff84fe84c55
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoAllow re-implementing renderScene
Simon Hausmann [Fri, 8 Aug 2014 08:33:23 +0000 (10:33 +0200)]
Allow re-implementing renderScene

Change-Id: Ic8e5e9ebbc5bbd1a7950807d6921304482cbde68
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoMake the QtQuick window surface type configurable
Simon Hausmann [Fri, 8 Aug 2014 08:32:53 +0000 (10:32 +0200)]
Make the QtQuick window surface type configurable

The default remains OpenGLSurface.

Change-Id: I96b400b7aa9c2b0435ea0614598e1b1f32b6d6b2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoSay hello to the Declarative State Machine Framework
Brett Stottlemyer [Thu, 31 Jul 2014 06:45:14 +0000 (09:45 +0300)]
Say hello to the Declarative State Machine Framework

The Declarative State Machine Framework extends Qt's State Machine
Framework (QSM) into QML to provide types for creating and executing
state graphs in QML. This gives you the power of deterministic state
machines, but declaratively and without having to write all of the
boilerplate code. It is an alternative to the existing QML State type,
intended for more complex models.

[ChangeLog][QtQML] The Declarative State Machine Framework extends Qt's
State Machine Framework (QSM) into QML. This gives you the power of
deterministic state machines, but declaratively.

Change-Id: I02390ba7f1baed50935364530925bd75087299cb
Reviewed-by: Sebastian Sauer <sebastian.sauer@kdab.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
9 years agoDo not emit Timer.onTriggered while executing arbitrary JS code
Gunnar Sletta [Fri, 30 May 2014 13:45:27 +0000 (15:45 +0200)]
Do not emit Timer.onTriggered while executing arbitrary JS code

Task-number: QTBUG-39371
Change-Id: Ibf232560918d30961bd979e14aac3ae7d2f264eb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
9 years agoAdd Window attached property on Item
Shawn Rutledge [Thu, 7 Aug 2014 11:57:50 +0000 (13:57 +0200)]
Add Window attached property on Item

An Item sometimes needs to know a few things about the window
in which it is being displayed; this attached property can expose
them without needing to go up the heirarchy to find the window.
Instead of adding the QQuickWindow pointer as a property on Item
as in 8f49f50a169db85401eb37daf4fe3a0fc3280603, having an attached
property means that it will not be found by introspection; and
it solves the problem that Window is in the QtQuick.Window module:
you must import the module to use the attached property, instead
of having access to a pointer whose type might not be defined
if you didn't import it.  The Window attached property is created
on-demand (so the memory cost adds up if you use it in too many
places); the tradeoff is that it can exist even when the item
is not yet being shown in a window, so bindings at startup work.
The API is purposely incomplete compared to that in QQuickWindow
so that we can introduce what is needed in a controlled fasion
over time.  For now we know of use cases for visibility, active
and activeFocusItem.

[ChangeLog][QtQuick][Window] Added Item.Window attached property

Change-Id: I649404cbd1383326678aa2144f790b2f2542dbbc
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
9 years agoMerge "Merge branch '5.3' into dev" into refs/staging/dev
Gunnar Sletta [Fri, 8 Aug 2014 09:05:12 +0000 (11:05 +0200)]
Merge "Merge branch '5.3' into dev" into refs/staging/dev

9 years agoV4 IR: extend BasicBlockSet functionality.
Erik Verbruggen [Wed, 23 Jul 2014 10:04:07 +0000 (12:04 +0200)]
V4 IR: extend BasicBlockSet functionality.

To be used in later patches.

Change-Id: I379addaea225482bcbfd7a0b03dbdbaa254dd579
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoV4: change string flattening to be iterative and use a worklist.
Erik Verbruggen [Wed, 6 Aug 2014 09:05:43 +0000 (11:05 +0200)]
V4: change string flattening to be iterative and use a worklist.

And not recursive, because that might blow out of stack space.

Task-number: QTBUG-39520
Change-Id: Id961d4af03a543d3efa173f976626cf2dae4f483
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoV4: add more line number information.
Erik Verbruggen [Tue, 5 Aug 2014 14:43:11 +0000 (16:43 +0200)]
V4: add more line number information.

Change-Id: Ibd3e747918dc0bc939fcbd173585fb1e4d4f08fb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoAdd support for conditional breakpoints and evaluate.
Erik Verbruggen [Fri, 4 Jul 2014 15:01:02 +0000 (17:01 +0200)]
Add support for conditional breakpoints and evaluate.

Also centralized the context state saver and added line number saving, so that the
JS jobs for evaluation of breakpoint conditions don't change the state of the current
engine context.

Task-number: QTBUG-37119
Task-number: QTCREATORBUG-11516
Change-Id: Ia21b3d64e239e5b67f3c07e1c006d8e6748f29b6
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoAdd declarative QQuickTextMetrics API from QQuickFontMetrics invokables
Mitch Curtis [Tue, 5 Aug 2014 15:42:54 +0000 (17:42 +0200)]
Add declarative QQuickTextMetrics API from QQuickFontMetrics invokables

This allows use of a declarative API for the functions in QFontMetricsF
which take parameters. This solves the problem of QML expressions that
use QML methods not being re-evaluated when the internal data changes,
by allowing the user to set the arguments as properties of a
TextMetrics object, that would otherwise have to be passed to QML
methods.

For example:

    FontMetrics {
        id: fontMetrics
    }

    property rect r: fontMetrics.boundingRect("Blah")

At some point, the font of the FontMetrics object is changed, but r
will still represent the original bounding rect. Instead, the user will
now write:

    TextMetrics {
        id: textMetrics
        text: "Blah"
    }

    property rect r: textMetrics.boundingRect

The QML methods remain in QQuickFontMetrics for those who need an
imperative API.

[ChangeLog][QtQuick] Added QQuickTextMetrics, which provides a
declarative API for the functions in QFontMetricsF which take
arguments.

Change-Id: I019dc4639531906fc751ba61281cc1c695742287
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
9 years agoInvalidate the scenegraph properly in the rendercontrol
Laszlo Agocs [Tue, 5 Aug 2014 12:53:34 +0000 (14:53 +0200)]
Invalidate the scenegraph properly in the rendercontrol

Taking the persistent flags from the QQuickWindow was a bad idea. These
are not applicable to the case when an application drives the scene via
QQuickRenderControl. Once stop() is called, all resources must be
released since the context itself will typically be destroyed afterwards.

This is a backport of 0b0bb319578bb2e2eced3a80ce3876a4408b72a7 in dev.

On top of this, stop() becomes invalidate() since the original
invalidate() function is never used by anyone. This naming is much cleaner
and is consistent with QSGContext and friends.

Task-number: QTBUG-40505
Task-number: QTBUG-40435
Change-Id: I398f1bda31f335c3508b238f0328305d3cd79ffd
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoFix crash when loading invalid QML with behavior on invalid group property
Simon Hausmann [Fri, 1 Aug 2014 08:13:06 +0000 (10:13 +0200)]
Fix crash when loading invalid QML with behavior on invalid group property

Behaviors require the creation of a meta-object. However when trying to
create a behavior on a non-existent group property, we don't have a
base meta-object to base the "new" meta-object on, therefore this patch
adds a null pointer check.

The error in the QML file itself will be caught later on. The added test
ensures that as well as that it doesn't crash of course.

Change-Id: If73116053464e7e69b02ef59e8387060835083c8
Task-number: QTBUG-40369
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoFix crash when animators are deleted just after being started.
Gunnar Sletta [Wed, 6 Aug 2014 09:01:06 +0000 (11:01 +0200)]
Fix crash when animators are deleted just after being started.

Change-Id: I35850e279dae596edb9a1b93143d6aa195221b41
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
9 years agoMultiPointTouchArea: Guard _mouseTouchPoint with a QPointer.
Robin Burchell [Wed, 6 Aug 2014 11:51:19 +0000 (13:51 +0200)]
MultiPointTouchArea: Guard _mouseTouchPoint with a QPointer.

The touch point can be deleted (for instance, on ungrab()) without
_mouseTouchPoint being reset occurs.

This caused a crash on tst_qquickmultipointtoucharea::inFlickable with
MallocScribble=1 enabled on OS X (use-after-free).

Change-Id: Ife9f59d75827285b18bb1772ddbee30d79a3f0b5
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
9 years agoFix use-after-free in testcase.
Erik Verbruggen [Wed, 6 Aug 2014 13:18:08 +0000 (15:18 +0200)]
Fix use-after-free in testcase.

The call to setActive does a deleteLater on the window. Then the QTRY_*
macros run the event loop, thereby deleting the window. So, after
wrapping the window in a QPointer, that pointer must either be null, or
the window shouldn't be visible.

Change-Id: Ib3fc5c5284bd5dae378a0f6a17117b262b9a3687
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
9 years agoHandle scene graph invalidation
Gunnar Sletta [Tue, 5 Aug 2014 10:07:42 +0000 (10:07 +0000)]
Handle scene graph invalidation

Change-Id: Icff592a4ae48444a36406a65c1c04a3a6da77616
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMake sure texture factories are delete before libraries are unloaded.
Gunnar Sletta [Thu, 7 Aug 2014 09:13:03 +0000 (11:13 +0200)]
Make sure texture factories are delete before libraries are unloaded.

Because scene graph adaptations and custom implementations can
instantiate QQuickTextureFactories, we need to make sure that
their destructors are called before their libraries are unloaded
to avoid crashes on shutdown.

Change-Id: I17d38e2909aabcb4ea7bf4eecc29df86c8479fdb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
9 years agoQQuickText::itemChange must call QQuickItem::itemChange
Shawn Rutledge [Thu, 7 Aug 2014 14:06:38 +0000 (16:06 +0200)]
QQuickText::itemChange must call QQuickItem::itemChange

The need for this was documented, but not done in this case.
d5e612fb3e9753c762b741d135fabd2b1f8ae1a6
So it was not possible to use the windowChanged signal inside a Text.

Change-Id: I4e3a49ca898cbd09b5731bd133cf93c212062fa2
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
9 years agoTextInput::displayText: include partial input from an input method
J-P Nurmi [Fri, 25 Jul 2014 13:49:36 +0000 (15:49 +0200)]
TextInput::displayText: include partial input from an input method

[ChangeLog][QtQuick][Important Behavior Changes] TextInput::displayText
now includes also partial input from an input method and thus matches with
the actual displayed text.

Task-number: QTBUG-40329
Change-Id: I407f464938c550d73eba1351283ec751aa293380
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
9 years agoListView: add support for "pull back" header & footer
J-P Nurmi [Mon, 3 Mar 2014 14:53:27 +0000 (15:53 +0100)]
ListView: add support for "pull back" header & footer

[ChangeLog][QtQuick][ListView] Introduced headerPositioning and
footerPositioning properties to control whether header and footer
are positioned inline, as overlays, or so that they slide away and
can be pulled back regardless of the content position.

Change-Id: Ifef1faf1ce6acf2b55cd1b6408e22ec2de841409
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
9 years agoRename QQuickRenderControl::stop() to invalidate()
Laszlo Agocs [Thu, 7 Aug 2014 08:05:04 +0000 (10:05 +0200)]
Rename QQuickRenderControl::stop() to invalidate()

To be consistent.

Change-Id: Ia78bf4a27e8ccb1a4f0a44865e810f1070c39e5d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoAccelerate property lookups for C++-based QObject singletons.
Michael Brasser [Wed, 23 Jul 2014 17:43:38 +0000 (12:43 -0500)]
Accelerate property lookups for C++-based QObject singletons.

Change-Id: Icbdf06a077014db5dd57cba42f84591433ec4196
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoAllow simple ShaderEffects to be batched by the renderer.
Michael Brasser [Wed, 23 Apr 2014 02:19:50 +0000 (21:19 -0500)]
Allow simple ShaderEffects to be batched by the renderer.

Identical ShaderEffects that use the standard vertex shader with a
single source texture, and that set supportsAtlasTextures, are now
candidates for batching.

Task-number: QTBUG-37914
Change-Id: Ib0ce58647a8c7c48e88bd84cf2645f1a8f28691f
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoTemporarily mark grab()/item.layer tests insignificant under ANGLE
Andrew Knight [Thu, 7 Aug 2014 12:44:50 +0000 (15:44 +0300)]
Temporarily mark grab()/item.layer tests insignificant under ANGLE

This is to pass CI while the issue is being fixed.

Task-number: QTBUG-40649
Change-Id: I9b095ce0ce0a3c51956ab81d09975b6cc6ce3592
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
9 years agoDisable tests on failing ANGLE config
Gunnar Sletta [Thu, 7 Aug 2014 17:55:42 +0000 (20:55 +0300)]
Disable tests on failing ANGLE config

Task-number: QTBUG-40658
Change-Id: I9a00083213de4d31216813351a406ec460d146fa
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
9 years agoMerge branch '5.3' into dev
Gunnar Sletta [Thu, 7 Aug 2014 09:31:23 +0000 (11:31 +0200)]
Merge branch '5.3' into dev

Conflicts:
src/quick/items/context2d/qquickcontext2d.cpp
src/quick/items/context2d/qquickcontext2dtexture.cpp

Change-Id: I1a9b911b3a92333a5dddbaf43275f71bad2006f0

9 years agoDon't try to reload QQuick images when changing to null screen
Taylor Braun-Jones [Thu, 31 Jul 2014 23:47:04 +0000 (19:47 -0400)]
Don't try to reload QQuick images when changing to null screen

When a QGuiApplication is destructing, a screen change occurs causing
QQuickImageBase to reload images ultimately resulting in "QPixmap: Must
construct a QGuiApplication before a QPixmap". This patch fixes the
issue (except for systems which multiple screens, which is a separate
issue).

Task-number: QTBUG-40539
Change-Id: I4bafc9790741204e90190a4491ac7a9393d0d0a7
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoClarify Component.onCompleted/onDestruction docs
Gunnar Sletta [Tue, 5 Aug 2014 06:16:14 +0000 (08:16 +0200)]
Clarify Component.onCompleted/onDestruction docs

Change-Id: I86bb6b85043282f4f46a685e30b435a2f7430430
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
9 years agoFix fbo creation and resize logic in QQuickWidget
Laszlo Agocs [Tue, 5 Aug 2014 15:16:56 +0000 (17:16 +0200)]
Fix fbo creation and resize logic in QQuickWidget

This corrects two issues:

1. Recreating the fbo twice when the widget is shown. Calling
createFramebufferObject() is not necessary in this case since createContext()
will trigger this anyhow due to scenegraphInitialized().

2. Avoid recreating the fbo when the size is the same as before. Some platforms
are keen on sending resize events with the same size. These should be ignored.
What's worse, some platforms (cocoa) generate a resize on exitting (Cmd-Q)
and not ignoring the resize at that stage is dangerous since the scenegraph
is already invalidated.

Task-number: QTBUG-40505
Change-Id: I21ff418fde449aa15eef4d6593e7a518861fcde1
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoFix Qt.include with cached compilation units and resources
Simon Hausmann [Mon, 4 Aug 2014 13:27:24 +0000 (15:27 +0200)]
Fix Qt.include with cached compilation units and resources

Similar to the worker scripts we also need to do a lookup for cached
scripts here. Added also a test to ensure that Qt.include works correctly
from Qt resources.

Change-Id: Idb67af3da4b0cc91edbd3d2746d074fd68ed8bf0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoSynchronize PathView gesture grabbing with other items.
Martin Jones [Wed, 23 Jul 2014 06:07:31 +0000 (16:07 +1000)]
Synchronize PathView gesture grabbing with other items.

PathView didn't attempt to grab the gesture at the same event as other
items. This prevented PathView from rightfully claiming the gesture
before lower items in the stack. Use the same threshold test for
PathView as used elsewhere.

Task-number: QTBUG-37859
Change-Id: Ic57cb805ac979e41c3e35d86b2e7db781e61d69d
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
9 years agoFix Flickable mouse grab issue.
Robert Griebl [Thu, 31 Jul 2014 13:43:42 +0000 (15:43 +0200)]
Fix Flickable mouse grab issue.

This issue cannot be reproduced on the desktop with a mouse (at least I
could not).  It can however reliably be reproduced on iMX6 embedded hardware
with a touch-screen.  It seems like the TS driver is reporting mouse events
with a much more coarse granularity than the USB mouse driver, which in turn
triggers this bug.
(Qt4's declarative, as well as Qt5's quick1 and 2 all have the same issue)

Change-Id: Id151e3847bc8d77c7b405b9c4d4d5747a6e33ed0
Task-number: QTBUG-27185# Please enter the commit message for your changes. Lines starting
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
9 years agoIntroducing qmllint tool.
Sérgio Martins [Wed, 9 Jul 2014 12:28:23 +0000 (13:28 +0100)]
Introducing qmllint tool.

A command line program that returns 0 if a .qml file is syntactically
correct.

Ideal to integrate into continuous integration systems.

[ChangeLog][QtQml] Added QML linter tool.

Change-Id: Id420159298e9d2390acd870fee9cf1c3d08e2dec
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoUse the renamed qt_gl_global_share_context
Jocelyn Turcotte [Tue, 1 Jul 2014 17:20:25 +0000 (19:20 +0200)]
Use the renamed qt_gl_global_share_context

Change-Id: I438c33a1dc83fd0cd1ec08bb4e4a1257a3216ca2
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoFix FBO recreated every time the QSG node is updated under some conditions
Taylor Braun-Jones [Fri, 1 Aug 2014 14:48:37 +0000 (10:48 -0400)]
Fix FBO recreated every time the QSG node is updated under some conditions

When textureFollowsItemsSize is true and the item width/height are (1)
not precise integer values or (2) less than the minimum FBO
width/height, then QQuickFramebufferObject will delete and recreate the
FBO every time the QSG node is updated. This patch fixes the issue.

Task-number: QTBUG-40548
Change-Id: I532aaaa88a5c604ee7cc1fd8f0acb0601c5a94fb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoFix uninitialized memory read
Lars Knoll [Mon, 4 Aug 2014 10:46:50 +0000 (12:46 +0200)]
Fix uninitialized memory read

Explicitly initialize the markBit to 0. This is important
for stack based execution contexts that can have uninitialized
data in the bit.

Change-Id: I50f1286949f1b4732e3a31b83b238bc7dcf7c7a7
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agoClean up Image and ShaderEffectSource properly.
Gunnar Sletta [Thu, 31 Jul 2014 09:40:03 +0000 (11:40 +0200)]
Clean up Image and ShaderEffectSource properly.

Change-Id: I9e3eb5f65ea5f46d30fb7905d0f9c479da367bf5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoSpeed up the test a bit..
Gunnar Sletta [Mon, 4 Aug 2014 08:10:10 +0000 (10:10 +0200)]
Speed up the test a bit..

Using hundreds of thousands of Items works, but it takes its
toll, so use a custom item to allocate QSGNodes directly which
are instantanous.

Change-Id: Iee5d8495b3d7d5abd24c14a53b2327e5efe9523b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMake ssa compile on Android with gcc 4.6
Laszlo Agocs [Thu, 31 Jul 2014 12:32:12 +0000 (14:32 +0200)]
Make ssa compile on Android with gcc 4.6

Avoid errors like

compiler/qv4ssa.cpp:660:59: error: no matching function for call to
'sort(QVector<QV4::IR::BasicBlock*>::iterator, QVector<QV4::IR::BasicBlock*>::iterator,
(anonymous namespace)::DominatorTree::calculateDFNodeIterOrder() const::Cmp)'

Change-Id: I4189bd621f1cef5e00b06f5b6b6dd430fefe653f
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
9 years agoRun autotests for Canvas.renderTarget == FramebufferObject also.
Gunnar Sletta [Fri, 1 Aug 2014 09:25:55 +0000 (11:25 +0200)]
Run autotests for Canvas.renderTarget == FramebufferObject also.

Change-Id: Id1729966b3b2b75a3bd4ad387b3d7914266fb3a5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMore QQuickCanvas cleanup handling.
Gunnar Sletta [Fri, 1 Aug 2014 09:22:31 +0000 (11:22 +0200)]
More QQuickCanvas cleanup handling.

Avoid calling into QQuickContext2D from QQuickContext2DTexture
after QQuickContext2D has been deleted. We acheive this by

1. Giving the texture a direct pointer to the gl context and
   and surface, so that it doesn't need to go through m_context
   to get to them (which may have been deleted).

2. Protect access to QQuickContext2DTexture::m_context with
   a mutex and make sure it is set to 0 in a safe manner
   when the QQuickContext2D object is deleted.

Change-Id: Ie0a30f9fc46f844224838a7cdf2f28a62e8ce322
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMake canvas cleanup work propertly...
Gunnar Sletta [Wed, 30 Jul 2014 15:11:02 +0000 (17:11 +0200)]
Make canvas cleanup work propertly...

Depending on which mode we are in, we need to run cleanup
on the right thread and in the right way.

Image canvas doesn't contain any GL resources and can be nuked
right away. The actual QSGTexture is managed by the node, so we
don't need to worry about it.

For FBO it is a bit more complicated.
 - Threaded: We create a cleanup handler that runs makeCurrent
   deleteTexture and doneCurrent and then release the surface
   on the GUI thread.
 - Immediate: Same as threaded, just right away
 - Cooperative: Schedule the texture to be deleted on the
   next sync. The Context doesn't have its own GL context
   in this case, so don't worry about it.

Change-Id: I2d0ae7acfa05561faa52f3cacd767eb18cabaf02
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoUse the current context to resolve extensions.
Gunnar Sletta [Wed, 30 Jul 2014 14:31:36 +0000 (16:31 +0200)]
Use the current context to resolve extensions.

When updating the code to not use direct gl calls, this
code was changed to use the context's gl context. The
context doesn't have a context when the rendering happens
on the same thread as the scene graph rendering and
we get a crash.

Change-Id: I8adf62c0ed12bb055982a71ba59af76afeefcca1
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoqmlplugindumper: do not pop up a window if an assert is triggered
Fawzi Mohamed [Wed, 30 Jul 2014 12:49:26 +0000 (14:49 +0200)]
qmlplugindumper: do not pop up a window if an assert is triggered

On windows the debug version of qmlplugindumper used to show a panel on
assert failure. Failure should be silent.

Done-with: Thomas Hartmann <thomas.hartmann@digia.com>
Task-number: QTCREATORBUG-12644
Change-Id: Ib5036754b37cdd5e3820e0cfd60b3ef7df3f1fb6
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
9 years agoSupport Canvas.antialiasing without multisample support.
Gunnar Sletta [Fri, 1 Aug 2014 10:41:59 +0000 (12:41 +0200)]
Support Canvas.antialiasing without multisample support.

FBO based rendering relies on framebuffer multisampling to do
antialiasing, which is often not available on OpenGL ES and even on
some desktop chips. As a high-level API, it is quite bad that Canvas
users (on embedded in particular) have to choose between quality
(Image) or performance (FBO).

This change implements super sampling, rendering the content
at twice the size and then scaling it down.

[ChangeLog][QtQuick][Canvas] Implement antialiasing on
FramebufferObject based render targets through super-sampling (SSAA)
when framebuffer multisampling is not available.

Change-Id: I373f3a645342dac157506b746c1e39b0f3f3f9f2
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoExpose the scene graph publically through a QSGEngine class
Jocelyn Turcotte [Tue, 1 Jul 2014 17:19:56 +0000 (19:19 +0200)]
Expose the scene graph publically through a QSGEngine class

This change wraps QSGRenderContext and QSGContext in a new QSGEngine
class, and expose a public interface of QSGRenderer through a
QSGAbstractRenderer to make it usable on a standalone window or FBO.

Change-Id: I2d41187472424f5ea64650a006bcd61f2711f6b9
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoMerge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Frederik Gladhorn [Fri, 1 Aug 2014 08:49:04 +0000 (10:49 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev

9 years agoFix touch/mouse propagation bugs
Martin Jones [Tue, 22 Jul 2014 01:31:04 +0000 (11:31 +1000)]
Fix touch/mouse propagation bugs

Filtered mouse release was not delivered if another touch started after a
touchMouseId was activated.  This meant that any filters expecting a
release event would not receive it if another touch was made before release
of the touchMouseId.

We prevented a touch becoming the touchMouseId in the child mouse filters
if there were any existing touches. The normal event delivery, however,
does not require a single touch.

Further to the previous, a touch could become the touchMouseId, even if
the initial press happened when there was an existing touchMouseId. This
meant that a touch could turn into a mouse when the existing mouse event
was released, resulting in a new touchMouseId which hadn't been through
child mouse filters.

Flickable delayed press should be sent via normal event processing, as other
touch/mouse events are now delivered in this way.

We often called childMouseEventFilter() multiple times for each event. This
is bad because the gesture handling relies on claiming a gesture in one event,
then stealing it in the next.

Instead of sending touch to mouse candidate points already determined to be
within the item bounds and already transformed, we sent all of the points
to the mouse recipient.

PinchArea did not store the starting position at the original touch points,
so other items could pass the dragThreshold before PinchArea and steal a gesture
meant for PinchArea.

Task-number: QTBUG-40330
Change-Id: Ic0009c176d3d1cb7cff0b5eda076a2c3ca864136
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
9 years agoFix assertion: ASSERT: "hasException" in file jsruntime/qv4engine.cpp, line 933
Robin Burchell [Thu, 31 Jul 2014 10:21:16 +0000 (12:21 +0200)]
Fix assertion: ASSERT: "hasException" in file jsruntime/qv4engine.cpp, line 933

This was seemingly tripped by trying to catch the exception twice: once with
catchException and once with catchExceptionAsQmlError.

Change-Id: I7176d56fe6e6f748e80d0894e314ed2b8f6e751d
Done-by: Mikko Harju <mikko.harju@jollamobile.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoMake canvas cleanup work propertly...
Gunnar Sletta [Wed, 30 Jul 2014 15:11:02 +0000 (17:11 +0200)]
Make canvas cleanup work propertly...

Depending on which mode we are in, we need to run cleanup
on the right thread and in the right way.

Image canvas doesn't contain any GL resources and can be nuked
right away. The actual QSGTexture is managed by the node, so we
don't need to worry about it.

For FBO it is a bit more complicated.
 - Threaded: We create a cleanup handler that runs makeCurrent
   deleteTexture and doneCurrent and then release the surface
   on the GUI thread.
 - Immediate: Same as threaded, just right away
 - Cooperative: Schedule the texture to be deleted on the
   next sync. The Context doesn't have its own GL context
   in this case, so don't worry about it.

Change-Id: I2d0ae7acfa05561faa52f3cacd767eb18cabaf02
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoDocument how to clean up graphics resources properly
Gunnar Sletta [Thu, 31 Jul 2014 13:28:11 +0000 (15:28 +0200)]
Document how to clean up graphics resources properly

Change-Id: I9a1477dcc608372120d8d8c9b57d8e15f8e64312
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoQQuickWindow: fix resetOpenGLState handling of vertex arrays
Giuseppe D'Angelo [Mon, 28 Jul 2014 19:13:13 +0000 (21:13 +0200)]
QQuickWindow: fix resetOpenGLState handling of vertex arrays

In the core profile it's forbidden to set vertex attributes
(via glVertexAttribPointer and similar) when there's no VAO bound.
Similarly, if there's a VAO bound when calling resetOpenGLState,
then we need to unbind it or those operations will affect its status.

Change-Id: Id7db028ddde9f9429f5a210b8b3d1468888dbce4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoStabilize tst_qquickimage
Gunnar Sletta [Thu, 31 Jul 2014 09:53:59 +0000 (11:53 +0200)]
Stabilize tst_qquickimage

Change-Id: Ib2b3d18c583991959d342e8ca36eb10c299b68bf
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoFix crash when throwing an exception from within a constructor
Simon Hausmann [Wed, 23 Jul 2014 13:10:58 +0000 (15:10 +0200)]
Fix crash when throwing an exception from within a constructor

We need to check for the exception before doing anything with the returned
value.

Change-Id: I0086be96b2df2434b95187489d7430ae67f561a1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
9 years agoAvoid eventloop recursion in touch event handling.
Gunnar Sletta [Wed, 30 Jul 2014 06:22:15 +0000 (08:22 +0200)]
Avoid eventloop recursion in touch event handling.

The eventloop recursion in the threaded render loop
was there to preempt any pending event to make sure
we worked with as recent as possible input events. The
benefit of this was never verified.

The recursion after the actual flush was to fix animations
which were constantly started during touch events, such
as a behavior tracking the mouse point. This is fixed
differently.

Event loop recursion is always dangerous, so we're
doing what we can to avoid it.

Change-Id: I120b2e98350e3b9068153415a671408773fbc769
Reviewed-by: Michael Brasser <michael.brasser@live.com>
9 years agoUse the current context to resolve extensions.
Gunnar Sletta [Wed, 30 Jul 2014 14:31:36 +0000 (16:31 +0200)]
Use the current context to resolve extensions.

When updating the code to not use direct gl calls, this
code was changed to use the context's gl context. The
context doesn't have a context when the rendering happens
on the same thread as the scene graph rendering and
we get a crash.

Change-Id: I8adf62c0ed12bb055982a71ba59af76afeefcca1
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoUpdate the WERROR setting for QtQml
Thiago Macieira [Wed, 30 Jul 2014 17:57:59 +0000 (10:57 -0700)]
Update the WERROR setting for QtQml

Apple Clang 5.1 added the -Wunused-const-variable option from Clang 3.4.

Change-Id: I95abe373d875ead0565d32187720e1b9042af0ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
9 years agotst_qqmlapplicationengine: clear $QT_MESSAGE_PATTERN
David Faure [Thu, 24 Jul 2014 10:41:56 +0000 (12:41 +0200)]
tst_qqmlapplicationengine: clear $QT_MESSAGE_PATTERN

The test fails if it's set, because it looks at the output from testapp
and compares it with expected output.

Change-Id: Idc82e2f9024b72cb8be919c2d1bfa4efb4957e4e
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
9 years agoMerge remote-tracking branch 'origin/stable' into 5.3
J-P Nurmi [Wed, 30 Jul 2014 13:41:10 +0000 (15:41 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Conflicts:
tests/auto/quick/qquicklistview/tst_qquicklistview.cpp

Change-Id: I80584b4f7d62cd86d3449e19176118e3bed886c1

9 years agoFix QQmlDelegateModel getting out of sync
Dan Vrátil [Tue, 29 Jul 2014 09:11:11 +0000 (11:11 +0200)]
Fix QQmlDelegateModel getting out of sync

Fixes a regression introduced by a0aefe1, which caused that the
source data model and adaptorModel could sometimes get out of
sync.

Change-Id: Ia6b5fc380cc6cf6549ae857e6da54e088a5dadb5
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
9 years agoQQuickWindow: add some links to resetOpenGLState
Giuseppe D'Angelo [Mon, 28 Jul 2014 19:11:59 +0000 (21:11 +0200)]
QQuickWindow: add some links to resetOpenGLState

... or people might not find it. So link it from the docs of the
various signals which expect the users to leave the GL state as
they found it.

Change-Id: I1ae41958449ded110aa2398b415d593bf04d2b7f
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoInvalidate the scenegraph properly in the rendercontrol's stop()
Laszlo Agocs [Tue, 29 Jul 2014 13:59:40 +0000 (15:59 +0200)]
Invalidate the scenegraph properly in the rendercontrol's stop()

Taking the persistent flags from the QQuickWindow was a bad idea. These
are not applicable to the case when an application drives the scene via
QQuickRenderControl. Once stop() is called, all resources must be
released since the context itself will typically be destroyed afterwards.

Task-number: QTBUG-40435
Change-Id: Iaa3b950e60ec36783a12074d706e1a501573f110
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoIntroducing QQuickWindow::scheduleRenderJob()
Gunnar Sletta [Fri, 4 Jul 2014 21:50:50 +0000 (23:50 +0200)]
Introducing QQuickWindow::scheduleRenderJob()

[ChangeLog][QtQuick][QQuickWindow] Added
QQuickWindow::scheduleRenderJob(), a convenience alternative to the
equivalent signals for one-shot tasks.

Change-Id: I5e4f0d67d5223f7fd77bca394e2a85810fadd335
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoMove QSGRenderer::updateStencilClip down to QSGBatchRenderer
Jocelyn Turcotte [Wed, 2 Jul 2014 14:56:26 +0000 (16:56 +0200)]
Move QSGRenderer::updateStencilClip down to QSGBatchRenderer

This convenience method is currently only used by the batch renderer.
Moving it allows removing the QOpenGLFunction inheritance of
QSGRenderer and unbinding it slightly from the rendering implementation.

Change-Id: I4322952f843de8d950ced32885feee8d6c4a2730
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoRemove dead code in QSGRenderer
Jocelyn Turcotte [Wed, 2 Jul 2014 15:09:12 +0000 (17:09 +0200)]
Remove dead code in QSGRenderer

QSGRenderer::draw, QSGRenderer::setProjectionMatrixToDeviceRect
and the QSGBindableFbo class aren't used anywhere anymore.

Change-Id: Ia00c60c288e1b89beaada6b2bbe7022ef9367391
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
9 years agoIntroducing QQuickItem::sceneGraphInvalidated/sceneGraphInitialized
Gunnar Sletta [Fri, 4 Jul 2014 13:43:55 +0000 (15:43 +0200)]
Introducing QQuickItem::sceneGraphInvalidated/sceneGraphInitialized

[ChangeLog][QtQuick][QQuickItem] Added signals sceneGraphInitialized and sceneGraphInvalidated

Change-Id: Idaea88bc743f0637d093cf1ba7ac4f78acd7e6ad
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
9 years agoLeave the depth mask on after rendering.
Gunnar Sletta [Mon, 28 Jul 2014 14:58:16 +0000 (16:58 +0200)]
Leave the depth mask on after rendering.

Try to be compatible with raw GL when possible.

Change-Id: Id6e17da2d8c134362a5428de970cd5e562f57143
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Tue, 29 Jul 2014 10:49:37 +0000 (12:49 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: Id95f7b01de36bccecbb7b73acc041654a1fe2ebe

10 years agoRemove metaobject revisioning for QQuickScreenAttached
Alan Alpert [Fri, 11 Jul 2014 01:50:02 +0000 (18:50 -0700)]
Remove metaobject revisioning for QQuickScreenAttached

Attached property versioning is not currently fully supported. Initial
approach was to add the version tags and not enforce them until you
could version attached properties. However the QML engine is currently
erroring on this. Specific error example:
""Screen.onNameChanged" is not available due to component versioning "

Workaround recommended in the JIRA task is to just not version them,
until attached property versioning is fully implemented.

Task-number: QTBUG-35569
Change-Id: I5ded7eb223ec00f70d847b3fac09ec240d5d7901
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoDon't dereference null pointer.
Sérgio Martins [Sat, 26 Jul 2014 17:31:22 +0000 (18:31 +0100)]
Don't dereference null pointer.

Task-number: QTBUG-40448
Change-Id: I75eb886ae765191101d6b01ebd038211e5fe8fba
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFlickable: Cancel interaction on interactive changes
Albert Astals Cid [Wed, 23 Jul 2014 13:40:42 +0000 (15:40 +0200)]
Flickable: Cancel interaction on interactive changes

Otherwise if you have a listview with a flickable inside with a mouseare inside
the pressed is never set to false if you make the interactive property of the
outer list depend on the moving of the inner flickable. This makes that when
later you change currentIndex of the list and you have
StrictlyEnforceRange set, the list won't move because it still thinks it is pressed

Change-Id: I2c2021f486fc0a31840c3f2199bc7cb76dc01e3e
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
10 years agoFix include to proper <>
Frederik Gladhorn [Thu, 17 Jul 2014 13:58:50 +0000 (15:58 +0200)]
Fix include to proper <>

Change-Id: I54b17480c1cca81c91c823f1f4ab9fe82e44f083
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
10 years ago Don't try to draw shader effect sources with dims < 0.
Gunnar Sletta [Mon, 28 Jul 2014 08:11:05 +0000 (10:11 +0200)]
 Don't try to draw shader effect sources with dims < 0.

Task-number: QTBUG-40099
Change-Id: I0eb0d877963a9394765ec8e0f10569a98a263743
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoQQuickMouseArea: Mark override functions with Q_DECL_OVERRIDE
Albert Astals Cid [Thu, 24 Jul 2014 09:37:49 +0000 (11:37 +0200)]
QQuickMouseArea: Mark override functions with Q_DECL_OVERRIDE

Change-Id: I6fb5fd48a24affc463c5eb7ea0e80c81fab33f66
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Simon Hausmann [Sat, 26 Jul 2014 07:14:44 +0000 (09:14 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Conflicts:
src/qml/compiler/qv4ssa.cpp
src/qml/jsruntime/qv4arrayobject.cpp
src/qml/jsruntime/qv4engine.cpp

Change-Id: Ie3ef6202b6a3a8521971e1be10c40c6a2db6989c

10 years agoFix interaction of garbage collector with JS objects during QML type instantiation
Simon Hausmann [Wed, 14 May 2014 14:04:33 +0000 (16:04 +0200)]
Fix interaction of garbage collector with JS objects during QML type instantiation

It may happen that during the lengthy process of instantiating a tree of
objects for QML, the garbage collector runs.

For objects created by QML we support different ownership models, for example
in QtQuick visual parents keep their visual children alive, despite perhaps a
lack of QObject parentship. That ownership becomes active once the QML
autoparent function has assigned the correct visual parent, which happens after
object instantiation (after QQmlObjectCreator).

Similarly when a composite type is created, its QObject parent is only set
after all properties have been set. The root QObject is kept alive through a
special boolean, but if the sub-objects aren't children yet, their JS wrapper
might get deleted. For composite types with var properties, that also means
their var properties get deleted, such as the model property of TableView.qml
in the bug report.

In the future we want to support creating QWidget hierarchies with QML, which
also for layouts may rely on a delayed parent assignment for layouts.

To accommodate all this, this patch introduces an array on the JS stack that
keeps track of all JS wrappers for all QObjects created. This array is alive
during object tree creation. Afterwards, the different ownership models take
over, for example the auto parent function assigning a visual parent.

This patch also fixes an off-by-one in the total object count calculation
for composite types, where when instantiating a composite type as a sub-object
we counted the sub composite's object count but forgot the object itself.

Task-number: QTBUG-38835
Task-number: QTBUG-39966
Change-Id: I6104b2434510642081e0c54793ed296adeca7481
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoqmlRegisterCustomExtendedType, qmlRegisterExtendedUncreatableType
Paul Lemire [Tue, 15 Jul 2014 08:35:24 +0000 (10:35 +0200)]
qmlRegisterCustomExtendedType, qmlRegisterExtendedUncreatableType

There are cases in Qt3D where we'd like to be able to register uncreatable
extended types. The main use case is having an abstract class that has an
extension class so as to have a clean separation between the C++
and QML API. Implementations of the abstract can then be easily registered
to QML and rely on the extension class for QML specific properties.

The other feature we'll need in the near future is the ability to create
extended QML types that use a custom parser.

Two new type registration method were added to qqml.h to fulfill those
needs. Unit tests for those are present in qqmlecmascript and qqmllanguage.

Change-Id: I15b2cd791ffd36b537305af1873491c079d4094e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDo not use mark() when marking ExecutionContexts
Lars Knoll [Fri, 25 Jul 2014 08:13:50 +0000 (10:13 +0200)]
Do not use mark() when marking ExecutionContexts

Some execution contexts in the parent chain can be allocated
on the C stack instead of the GC heap. Calling mark() on those would
push them onto the GC stack (which is identical to the JS stack).
In rare cases the reference can survive to live into the next call to
gc(), causing invalid accesses to already deleted contexts.

Change-Id: I709f58de27be9386cf70707c84e4c86c7c303fa7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd Sha1.js
Albert Astals Cid [Wed, 23 Apr 2014 13:56:32 +0000 (15:56 +0200)]
Add Sha1.js

Contains a self test that does some interesting JS that was causing an assert
when run on i386 (QTBUG-38451) so it seems interesting to keep
around for the future

Change-Id: I98d0892d281360425ad2c0b28f34feb6c0945dd2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>