platform/upstream/qtdeclarative.git
10 years agoConvert Boolean, Number and DateObject
Lars Knoll [Sat, 5 Apr 2014 19:03:37 +0000 (21:03 +0200)]
Convert Boolean, Number and DateObject

Change-Id: I8815578422fe1af87eb5f02899f35131fea70b76
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove object data into internal structure
Lars Knoll [Sat, 5 Apr 2014 18:47:36 +0000 (20:47 +0200)]
Move object data into internal structure

Change-Id: I1fcccd535ed356e736468337bd450270cd290044
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove string data into subclass
Lars Knoll [Sat, 5 Apr 2014 18:23:43 +0000 (20:23 +0200)]
Move string data into subclass

Change-Id: I95dcdda8c68e2a5c36244798c8c10dcfdd69d2c2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove Managed data into it's own subclass
Lars Knoll [Sat, 5 Apr 2014 18:23:20 +0000 (20:23 +0200)]
Move Managed data into it's own subclass

This prepares for moving over to a d pointer scheme,
where Managed subclasses don't hold any data directly. This
is required to be able to move over to a modern GC.

Change-Id: I3f59633ac07a7da461bd2d4f0f9f3a8e3b0baf02
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of different macros for vtable specializations
Lars Knoll [Fri, 4 Apr 2014 10:22:00 +0000 (12:22 +0200)]
Get rid of different macros for vtable specializations

Detect existence of a a vtable entry at compile time.

Change-Id: Ieed5d34b063184bc4435b22c6685ac0e3fabf493
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse Members for storing the bound arguments in BoundFunction
Lars Knoll [Thu, 3 Apr 2014 11:08:25 +0000 (13:08 +0200)]
Use Members for storing the bound arguments in BoundFunction

Cleans up the code, and allows us to remove the destructor
for bound function objects.

Change-Id: Id32ac69171f7975ec7679d07d25c0eb6b4ca6fb5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAvoid calling destroy() on most objects
Lars Knoll [Thu, 3 Apr 2014 11:00:49 +0000 (13:00 +0200)]
Avoid calling destroy() on most objects

The method is now optional, and we can simply avoid
calling it if all members an object has are themselves
garbage collected.

Change-Id: If560fce051908bcc10409ead1a7d8a5bd5fa71d2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix Scoped<T> constructors/assignment operators that take a T*
Simon Hausmann [Fri, 13 Jun 2014 13:11:14 +0000 (15:11 +0200)]
Fix Scoped<T> constructors/assignment operators that take a T*

When assigning a null T*, we would not always set m correctly to zero but to
undefinedValue() instead.

Change-Id: Ia2a439f4a9946664d9835230869161a8499b1659
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove XFAILs from tst_QQuickText
Eskil Abrahamsen Blomfeldt [Mon, 21 Jul 2014 14:06:57 +0000 (16:06 +0200)]
Remove XFAILs from tst_QQuickText

The bug for these has been fixed.

Task-number: QTBUG-39961
Change-Id: I306dff766f048faf527a18f21b69996641fd8b79
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDon't allow a filtering item to block other filtering items.
Andrew den Exter [Fri, 7 Mar 2014 07:54:20 +0000 (17:54 +1000)]
Don't allow a filtering item to block other filtering items.

With delayed press it's possible for a filtering item to not accept a press
on the first go around but to later steal mouse grab and accept future events.
This means outer items  which also filter will have received the mouse press,
but don't receive release events leading to phantom long presses or inadvertent
drags.

Task-number: QTBUG-37316
Change-Id: I2ff18df2a019f8d3a5e81a0adc2c5b5994799862
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
10 years agoqml: Make ownership of CompiledUnit more clear
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:42:59 +0000 (16:42 +0200)]
qml: Make ownership of CompiledUnit more clear

The coverity scan utility didn't understand the code flow and assumed
the compiledData would be leaked. Use a QScopedPointer and have the
::backendCompileStep() forward the ownership. From what I see the code
has not leaked memory.

Fixes: CID 10605, CID 10607

Change-Id: I7759f681871bbe12e2aa320a5f39c47c70f4e4e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoqml: Fix potential memory leak in the file selector
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:46:28 +0000 (16:46 +0200)]
qml: Fix potential memory leak in the file selector

The myInstance doesn't seem to be part of a QObject parent/child
relationship and Coverity complained about it. Use a QScopedPointer
to make sure the data will be deleted.

Fixes: CID 10606

Change-Id: I30848ab4d1e621d82281aaa7d6f84e0c2cce4084
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Delay creating the ScopedValue/ScopedProperty in objectLiteral
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:12:17 +0000 (08:12 +0200)]
v4: Delay creating the ScopedValue/ScopedProperty in objectLiteral

Creating a ScopedValue/ScopedProperty is not free. It will use the
ExecutionEngine directly to reserve memory from the JS Stack. In
tests/manual/v4/v8-bench.js and bench-allocate-nonretained.js a lot
of objects are created and the arrayValueCount and the
arrayGetterSetterCount are 0. We can delay the creation for a small
gain.

When generating the code we already know the various sizes and
could already call specialized versions of the creation code. The
gain is not so clear though.

Change-Id: Ic99b241f5506457e57611ad4eba143c56be1f657
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Remove dead code ScriptFunction constructor
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:05:03 +0000 (08:05 +0200)]
v4: Remove dead code ScriptFunction constructor

Creating a Scope/ScopedValue will immediately access ExecutionEngine
of the ExecutionContext so the null check is not needed here. Move
the v4 variable into the scope that is using it.

Change-Id: I9189ee9d1a63997119e49c12182dffefadc916f1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Manually inline the access to the execution engine
Holger Hans Peter Freyther [Fri, 13 Jun 2014 18:51:00 +0000 (20:51 +0200)]
v4: Manually inline the access to the execution engine

Executing an allocation heavy testcase of JavaScriptCore on my
i7 Sandy Bridge notebook 6.85% is spent inside the ::engine()
call as gcc 4.8.2 of Debian didn't inline the call. Inline the
call sites by hand. I removed the protected ::engine() as it is
now unused.

$ time qmljs JavaScriptCore/tests/perf/bench-allocate-nonretained.js
before (best run of three)
real 0m2.234s
user 0m2.228s
sys 0m0.008s

after (worse run of three)
real 0m2.097s
user 0m2.088s
sys 0m0.008s

Change-Id: I20b73b3b3dac630eb1d5e7d66bcb50c839630567
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove QWidget include from QQmlProperty test.
Andrew den Exter [Thu, 17 Jul 2014 07:10:24 +0000 (17:10 +1000)]
Remove QWidget include from QQmlProperty test.

Change-Id: I1a23816b65273c920b319836f015f6746aa3ad06
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoAdd QQuickFontMetrics.
Mitch Curtis [Thu, 10 Jul 2014 15:16:09 +0000 (17:16 +0200)]
Add QQuickFontMetrics.

This will be a private C++ type that is exposed to QtQuick 2.4 as
FontMetrics.

[ChangeLog][QtQuick] Added QQuickFontMetrics, which provides a subset
of QFontMetricsF's API.

Change-Id: Iac31e5a555bd8f1dc0904b8de0408e5f1a402b25
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
10 years agoAdd containsPress property to MouseArea
Martin Jones [Fri, 11 Jul 2014 04:10:49 +0000 (14:10 +1000)]
Add containsPress property to MouseArea

It is very common to use pressed and containsMouse properties
together to highlight a pressed item, e.g.

    property bool highlighted: pressed && containsMouse

The containsPress property allows simplification and optimization of
user code.

[ChangeLog][QtQuick] Add containsPress property to MouseArea

Task-number: QTBUG-40130
Change-Id: Ie286d431154eb37a99e57e4cf881d68d7cbbe31d
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Thu, 10 Jul 2014 08:12:12 +0000 (10:12 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657

10 years agoDocs: fix "classname" indentation in the qmldir specs
J-P Nurmi [Wed, 9 Jul 2014 11:22:30 +0000 (13:22 +0200)]
Docs: fix "classname" indentation in the qmldir specs

Change-Id: Idaaaaa77654c2cd3abb56d0bfd3ed7bac7281632
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoFix role for generic Accessible items
Frederik Gladhorn [Wed, 9 Jul 2014 08:53:06 +0000 (10:53 +0200)]
Fix role for generic Accessible items

Currently QQuickItem specifies Pane as default role which at least on
linux leads to big confusion. Instead use QAccessible::Client which is
in line with QWidget.

Change-Id: I06b287843a0bf1546f16e67c53ea5d2321ba214b
Task-number: QTBUG-40136
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
10 years agoChange default to QQuickWidget in the comparison example
Laszlo Agocs [Tue, 8 Jul 2014 15:53:11 +0000 (17:53 +0200)]
Change default to QQuickWidget in the comparison example

This way the example will run on embedded devices (eglfs)out of the
box and will only abort when switching to QQuickView.

Change-Id: I07855ac1a9d112f868adf6fcab8db888ba0888ec
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoCall glBindTexture() via QOpenGLFunctions in qsg_safeguard_texture().
Friedemann Kleint [Mon, 7 Jul 2014 14:57:20 +0000 (16:57 +0200)]
Call glBindTexture() via QOpenGLFunctions in  qsg_safeguard_texture().

Fix linking for dynamic OpenGL builds.

Change-Id: I82e6597d2cb9a74707e3f1e9fce245cce1a5d72b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoCalqlatr demo: Remove unused files
Niels Weber [Mon, 7 Jul 2014 10:19:25 +0000 (12:19 +0200)]
Calqlatr demo: Remove unused files

There were a few images etc that were never used. Remove them.

Change-Id: I606241903cf098cb495aa06ac4c595fb175cd9fc
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoMake sure JIT architectures lists are in sync
Dmitry Shachnev [Thu, 12 Jun 2014 15:43:56 +0000 (19:43 +0400)]
Make sure JIT architectures lists are in sync

We have two lists: in qv4global_p.h and qv4targetplatform_p.h. This commit blacklists
OSes on x86 and x86_64 where JIT is not supported, improves support for FreeBSD and
adds cross-references between these two files.

Change-Id: Id3715a2ab717186e510a54e5a548dfa22120cd87
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoRemove usage of external dependencies from the RSS News demo
Topi Reinio [Fri, 27 Jun 2014 08:00:24 +0000 (10:00 +0200)]
Remove usage of external dependencies from the RSS News demo

Examples in qtdeclarative shouldn't depend on Qt Quick Controls,
Layouts, or add on modules like Qt Graphical Effects.

Change-Id: Ic069ed3223a4cfebde5263e846ae394aebed0b33
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
10 years agoFix segfault on certain resize patterns in QQuickWidget
Laszlo Agocs [Tue, 1 Jul 2014 09:36:33 +0000 (11:36 +0200)]
Fix segfault on certain resize patterns in QQuickWidget

Resizing to an empty size followed by another resize leads to
sync() without having the context and the render control intialized.
This is wrong.

Task-number: QTBUG-39858
Change-Id: I5908723272165a656d192644cceb16ed253e6d3b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoAdd findChild to TestCase.
Mitch Curtis [Wed, 2 Jul 2014 07:53:00 +0000 (09:53 +0200)]
Add findChild to TestCase.

This is useful for auto tests where it's necessary to have access to
dynamically created child items. For example:

property Component threeItemDelegate: Text {
    objectName: "delegate" + styleData.index
    text: styleData.value
}

...

function test_stuff() {
    ...

    var delegate0 = findChild(item, "delegate0");
    // check delegate0 for some condition...
}

[ChangeLog][QtTest][TestCase] Added findChild function to TestCase.

Change-Id: I04a8b07c9904768c07ec12f4b03f1afb1989e054
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoVerbose fatal instead of crash when the scene graph state is invalid.
Gunnar Sletta [Thu, 3 Jul 2014 10:15:46 +0000 (12:15 +0200)]
Verbose fatal instead of crash when the scene graph state is invalid.

Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoV4 IR: (natural) loop detection.
Erik Verbruggen [Fri, 21 Mar 2014 10:22:41 +0000 (11:22 +0100)]
V4 IR: (natural) loop detection.

We perform loop detection to be able to assign to each block its loop,
an chain them up from inner loop to outer loop. The new algorithm works
on each basic block just once, and looks at a basic block just the
number of connections it has. As it relies on the dominator tree it is
more robust on actually finding al looping constructs and only those
rather than relying on the statements used. It assumes that a basic
block is analyzed before the one that dominate it (to guarantee finding
outer loop headers before inner loop headers), so blocks are ordered to
work on them in a way that guarantees that, using dominator tree depth,
that is trivially available.

Loop detection allows us to then schedule the loop body before the part
after the loop (the header dominates both so just domination cannot
choose between both), and can be used to optimize loops (either
unrolling the first iteration or hoisting constant parts out of it).

It also helps with generated JavaScript code: in order to simulate gotos
or other unconditional branches, nested labeled do-while(false) loops
are often used in combination with break/continue to "jump" between
"loops".

Change-Id: Idfcc74589e057b191f74880ffd309d0a9c301811
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
10 years agoAvoid race condition in QQmlEngine on shutdown.
Gunnar Sletta [Tue, 1 Jul 2014 12:48:07 +0000 (14:48 +0200)]
Avoid race condition in QQmlEngine on shutdown.

The QQmlTypeLoader was deleted (and its thread shut down) when
the QQmlEnginePrivate was destroyed. However, the QQmlTypeLoader
runs a thread which would happiliy make calls on the engine and
its managed data. Fix this by stopping the QQmlTypeLoader's
thread right away in QQmlEngine.

Task-number: QTBUG-39905
Change-Id: Ida8e95d083f79237c74b036fd3521133a9fa4ac7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoRemove old state logic for ComboBox
Frederik Gladhorn [Wed, 22 Jan 2014 15:18:47 +0000 (16:18 +0100)]
Remove old state logic for ComboBox

The editable state is now part of the Accessible attached property, so
this hack is no longer needed.

Change-Id: Id17ec508015a8b9663804123e544f6c71ff38177
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoFix crash on QQmlEngine destruction.
Andrew den Exter [Fri, 27 Jun 2014 02:49:07 +0000 (12:49 +1000)]
Fix crash on QQmlEngine destruction.

QQmlTypeLoader references QQmlImportDatabase in a thread, so change the
declaration order so QQmlTypeLoader is destroyed and its thread stopped
before QQmlImportDatabase is destroyed.

Change-Id: Idfa511cf9625f893c4398f419a74d869169b478d
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoDon't dereference null QQuickWindowPrivate.
Sérgio Martins [Thu, 3 Jul 2014 12:44:41 +0000 (13:44 +0100)]
Don't dereference null QQuickWindowPrivate.

windowDestroyed() triggers a sendPostedEvent(DeferredDelete) to
cleanup GL resources. If the window was deleted through deleteLater()
it will also be deleted at this point.

Change-Id: I3b0cc0f36c4a543c5fbaa4af107dc4aa0c8b6725
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoEnable QSG_RUNTIME_DESCRIPTION by default for debug builds.
Gunnar Sletta [Thu, 3 Jul 2014 08:24:12 +0000 (10:24 +0200)]
Enable QSG_RUNTIME_DESCRIPTION by default for debug builds.

This can be quite helpful when doing scene graph debugging
with QSG_RENDERER_DEBUG=dump or using qDebug() on nodes
in general.

Change-Id: I6328d3f2a0fad87161c386bed14408598c986dcb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoProfiler: Fix MSVC warning about signed integers.
Friedemann Kleint [Thu, 3 Jul 2014 09:22:57 +0000 (11:22 +0200)]
Profiler: Fix MSVC warning about signed integers.

src\qml\jsruntime\qv4profiling_p.h(144) :  warning C4146: unary minus operator applied to unsigned type, result still unsigned

Introduced by ac56e7cda724aa7463ef6ffe5f0e93bd3208cb51 .

Change-Id: Ib77234d663bfafd9d55ae2dd551b0aabd6561d6d
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
10 years agoAdd opt-out environment variable for @2x images
Morten Johan Sørvig [Mon, 19 May 2014 12:42:14 +0000 (14:42 +0200)]
Add opt-out environment variable for @2x images

There are cases where @2x images are in use but
where you don't want the associated behavior:
- You are implementing an image editor
- You are inheriting a resource set which has @2x
  images, but don't want that behavior with Qt.

Add support for disabling @2x behavior with QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING.

Change-Id: Ia570dfe556e0571a19e5ebdc626c4a7e626721b9
Task-id: QTBUG-38485
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
10 years agoDoc: correct link/compilation errors in Qt Declarative
Nico Vertriest [Tue, 8 Apr 2014 11:24:42 +0000 (13:24 +0200)]
Doc: correct link/compilation errors in Qt Declarative

Task-number: QTBUG-34749
Change-Id: I507d54b0568d77c6099a0bd99f5c369b8667032a
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
10 years agoMerge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Frederik Gladhorn [Wed, 2 Jul 2014 12:52:52 +0000 (14:52 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev

10 years agoUse qNextPowerOfTwo instead of reimplementing it
Allan Sandfeld Jensen [Tue, 17 Jun 2014 12:23:15 +0000 (14:23 +0200)]
Use qNextPowerOfTwo instead of reimplementing it

This patch uses the new shared qNextPowerOfTwo implementation introduced in qtbase.

Change-Id: I831d056f584897a99df2ceb8c1d840764464e344
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoFix crash in Flickable with pressDelay.
Martin Jones [Wed, 2 Jul 2014 02:12:05 +0000 (02:12 +0000)]
Fix crash in Flickable with pressDelay.

Looks like this was exposed by the touch event compression change.

Task-number: QTBUG-40000
Change-Id: I037c848e0c5d766857dff3162c244213aba847da
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoFix output of swap times for basic render loop
Ulf Hermann [Tue, 1 Jul 2014 14:23:04 +0000 (16:23 +0200)]
Fix output of swap times for basic render loop

The swap time was treated as absolute by the qCDebug output, but was
actually relative.

Change-Id: Ia1539b8f8305ca37430022803419eb12a05934cb
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoProperly collect polish timings from all render loops
Ulf Hermann [Mon, 30 Jun 2014 12:01:38 +0000 (14:01 +0200)]
Properly collect polish timings from all render loops

Previously the polish timings were collected incorrectly from the
windows render loop and not at all from the basic render loop. By
collecting the polish times at the right places we can get rid of
the 2-argument profile macro as well.

Task-number: QTBUG-39876
Change-Id: I0b4aaf87162c652b8dcea6cd4f54db053f8312fe
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoUse the same length for all scene graph numeric data
Ulf Hermann [Mon, 30 Jun 2014 12:28:31 +0000 (14:28 +0200)]
Use the same length for all scene graph numeric data

Having one int between all the qint64 is really not worth it. Also, the
clients were not picking that up correctly.

Change-Id: I9a9bc1c26c7518e1b666b788fa41f83c714a6db5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Wed, 2 Jul 2014 07:58:13 +0000 (09:58 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Conflicts:
.qmake.conf
examples/quick/scenegraph/openglunderqml/squircle.h
src/quick/doc/src/qmltypereference.qdoc
src/quick/scenegraph/qsgthreadedrenderloop.cpp

Change-Id: Ife4f4b897044a7ffcd0710493c6aed1d87cf1ef9

10 years agoTools and examples: consistently use organization name QtProject
Shawn Rutledge [Fri, 27 Jun 2014 10:59:14 +0000 (12:59 +0200)]
Tools and examples: consistently use organization name QtProject

This affects the location of the QSettings files or registry entries.
Other parts of Qt are using this organization name so it's good to
have all the settings in the same place.

[ChangeLog][QtQuick] tools and examples consistently use the
QtProject organization name

Change-Id: I1fae4eaed0248411fe95dda9572d38006648b162
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoQQuickSystemPalette: use QGuiApplication::paletteChanged()
J-P Nurmi [Fri, 20 Jun 2014 11:38:46 +0000 (13:38 +0200)]
QQuickSystemPalette: use QGuiApplication::paletteChanged()

Use the newly introduced signal instead of filtering events
of the whole application.

Change-Id: I876268145485ba07316e916d26a93d53c464ef3a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoRemove redundant sse2 math flags
Allan Sandfeld Jensen [Tue, 1 Jul 2014 09:57:36 +0000 (11:57 +0200)]
Remove redundant sse2 math flags

Qtbase already enables sse2 math by default now. This version is no
longer needed and may actually hurt performance by triggering scheduling
for pentium4.

Change-Id: Ib3b6781fb0b92c1351344cc2d2f13101fa2b632b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
10 years agoSkip rssnews demo if xmlpatterns is not present
Laszlo Agocs [Fri, 27 Jun 2014 13:14:33 +0000 (15:14 +0200)]
Skip rssnews demo if xmlpatterns is not present

Otherwise builds without the QtXmlPatterns module will fail.

Change-Id: I11d0b84653f8d59787b09cd9c12977d18be92729
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
10 years agoAdd grabFramebuffer() to QQuickWidget and use it in the autotest
Laszlo Agocs [Wed, 19 Mar 2014 08:21:11 +0000 (09:21 +0100)]
Add grabFramebuffer() to QQuickWidget and use it in the autotest

This introduces the need for a grab function in QQuickWidget.
The render control has one already so there is no reason for not exposing
this in QQuickWidget too.

This also means that a relatively meaningful autotest can be now be added.

[ChangeLog][QtQuick] Added QQuickWidget::grabFramebuffer() for capturing the content into a QImage.

Task-number: QTBUG-37589
Change-Id: I5ca8192c0ef8dab4f076a4db27b64aebe3359bb8
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoAvoid direct GL calls in Qt Quick examples and tests
Laszlo Agocs [Thu, 26 Jun 2014 13:08:47 +0000 (15:08 +0200)]
Avoid direct GL calls in Qt Quick examples and tests

Change-Id: I204a5513708aeff5cae00d06d4f0c27c20a13ace
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoDocs: clarify the relation between default alpha and format.
Laszlo Agocs [Fri, 27 Jun 2014 11:28:34 +0000 (13:28 +0200)]
Docs: clarify the relation between default alpha and format.

Reformat the new API docs the get rid of the unnecessary stars.

And fix some typos.

Change-Id: I09dcb3bea55cfd7b9209a4e0ad43e28a47fd1fa4
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoUse categorized logging for all things scenegraph.
Gunnar Sletta [Thu, 26 Jun 2014 18:48:47 +0000 (20:48 +0200)]
Use categorized logging for all things scenegraph.

Change-Id: I865ee838b0fd6c257b7189f24130012b98206fd1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoAvoid deadlock during window hiding.
Gunnar Sletta [Fri, 27 Jun 2014 05:35:18 +0000 (07:35 +0200)]
Avoid deadlock during window hiding.

Because we do event processing in polishAndSync, hide() or
handleObscurity() might have been called by the time we
continue execution. We already handled that windowDestroyed()
was called.

Change-Id: If45bcf3fa18cef1a60ca31bc26d3830045f581d9
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoMark failing testcases with QEXPECT_FAIL for windows
Gunnar Sletta [Tue, 1 Jul 2014 10:21:01 +0000 (12:21 +0200)]
Mark failing testcases with QEXPECT_FAIL for windows

Task-number: QTBUG-39961
Change-Id: I981159921b38ac2af37e8a6d715f0d67d6f01da8
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoMerge "Merge remote-tracking branch 'origin/5.3.1' into 5.3" into refs/staging/5.3
Frederik Gladhorn [Mon, 30 Jun 2014 12:32:51 +0000 (14:32 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3.1' into 5.3" into refs/staging/5.3

10 years agoAvoid double deletion of QQuickWindow
Shawn Rutledge [Tue, 17 Sep 2013 13:05:04 +0000 (15:05 +0200)]
Avoid double deletion of QQuickWindow

It's uncertain why 4fc0df58b8458052a818e3e970a97457882808e6 added
the call to sendPostedEvents(0, QEvent::DeferredDelete) but now we can
see that it easily results in the destructor calling itself, and
therefore double-deleting its own d_ptr.  removePostedEvents seems
safer to ensure that the window cannot be doubly deleted, in spite
of the qdoc warning that "You should never need to call this function."

Task-number: QTBUG-33436
Change-Id: I4873ebe179dde551407eba1f6baac5f03ca7f177
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoFix intermittent crash with older MinGW releases
Robin KAY [Tue, 24 Jun 2014 22:35:22 +0000 (23:35 +0100)]
Fix intermittent crash with older MinGW releases

An alternate code-path was previously added to work around a bad
signature for the SHParseDisplayName() function in older and non-w64
versions of the MinGW headers. This code-path incorrectly passed a
single rather double indirect pointer to the third argument of that
function causing it to produce corrupt data and subsequently crash.
This change modifies the code to instead cast a pointer of the correct
type to the incorrect type expected by the headers.

Task-number: QTBUG-39793
Change-Id: I4d65dea4fc38d7e885468cd23434d8570c311fc2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
10 years agoDoc: Add documentation for the Maroon in Trouble example
Leena Miettinen [Fri, 30 May 2014 16:01:56 +0000 (18:01 +0200)]
Doc: Add documentation for the Maroon in Trouble example

Change-Id: I8b272894ef6374aeb6ec09275d7ce96d16a6be0f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoQQuickApplication: do not filter LayoutDirectionChange events
J-P Nurmi [Fri, 20 Jun 2014 09:26:54 +0000 (11:26 +0200)]
QQuickApplication: do not filter LayoutDirectionChange events

The newly introduced QGuiApplication::layoutDirectionChanged() is much
cheaper to use than filtering events of the application object.

Change-Id: I356c94cc6bea806bf3644c31c2610501d90f6c35
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoAllow integer values to be assigned QList<qreal> properties
Oleg Shparber [Wed, 25 Jun 2014 00:03:08 +0000 (17:03 -0700)]
Allow integer values to be assigned QList<qreal> properties

Before this patch it was not possible to assign an integer value to
QList<qreal> property, while it worked for non-list properties.

Change-Id: Iab00288f7d78f4f76056ab4291700d7f51626de4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMerge remote-tracking branch 'origin/5.3.1' into 5.3
Frederik Gladhorn [Wed, 25 Jun 2014 08:25:44 +0000 (10:25 +0200)]
Merge remote-tracking branch 'origin/5.3.1' into 5.3

Change-Id: Ic4418ade05ff7d89cbb375a25d9fd80353a2317a

10 years agoMerge remote-tracking branch 'origin/stable' into 5.3
Frederik Gladhorn [Wed, 25 Jun 2014 08:22:38 +0000 (10:22 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: Iafccb173a9b5569bc9fd1022abb210955519fc61

10 years agoWarn at runtime about badly threaded calls to QQuickItem::update()
Gunnar Sletta [Tue, 24 Jun 2014 10:21:46 +0000 (12:21 +0200)]
Warn at runtime about badly threaded calls to QQuickItem::update()

Change-Id: Ia3fc01f11ff28441d4ef095b520297a73e3399d6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoFix crash in QQmlDelegateModel during destruction phase
Simon Hausmann [Tue, 24 Jun 2014 14:09:29 +0000 (16:09 +0200)]
Fix crash in QQmlDelegateModel during destruction phase

It has been reported multiple times (with different back traces) that
the QQmlDelegateModel tries to access a dangling QQmlContext pointer.
The scenarios for reaching this point differ slightly, one such scenario
is very late model activity during the scene destruction. The provided
test-case simulates that and the provided patch guards the QQmlContext
in a QPointer.

Task-number: QTBUG-39780
Change-Id: I594ee4918cd1b78c5db5c164314e85e9eea99fbd
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
10 years agoExclude private methods and QObject::deleteLater from enumerable properties
Simon Hausmann [Tue, 24 Jun 2014 10:05:35 +0000 (12:05 +0200)]
Exclude private methods and QObject::deleteLater from enumerable properties

This is a regression from Qt 5.1/5.0 introduced with 5.2. Private slots/methods
such as QObject::_q_reRegisterTimers() as well as QObject::deleteLater() are
not suitable for calls from JavaScript. deleteLater() in particular is covered
by the destroy() replacement slot.

Task-number: QTBUG-39744
Change-Id: I9b25f3c0d4095ba8e2e8e5ee47e37903b5def1f9
Reviewed-by: Michael Brasser <michael.brasser@live.com>
10 years agoMake QQuickRenderControl public
Laszlo Agocs [Mon, 31 Mar 2014 13:59:18 +0000 (15:59 +0200)]
Make QQuickRenderControl public

QQuickRenderControl allows rendering Qt Quick 2 scenes into framebuffer
objects which can then be used in arbitrary ways in Qt-based or 3rd party
OpenGL renderers.

[ChangeLog][QtQuick] Introduced QQuickRenderControl as a public API.

Task-number: QTBUG-37944
Change-Id: I84262243b261b35cefdf67ec6bba8127a0f29275
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
10 years agoV4 JIT: add IR printer that uses platform register names.
Erik Verbruggen [Fri, 23 May 2014 13:52:08 +0000 (15:52 +0200)]
V4 JIT: add IR printer that uses platform register names.

After running register allocation, the IR is printed one last time (when
the environment variable QV4_SHOW_IR is set). This will now use the
platform defined register names, e.g. "ebx" or "d2".

Change-Id: I2f2f4536d1de940a69690056e5165d38fa7910bb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix crash when deleting component in Component.onComplete through loader
Simon Hausmann [Fri, 20 Jun 2014 15:26:57 +0000 (17:26 +0200)]
Fix crash when deleting component in Component.onComplete through loader

This is a regression introduced with Qt 5.3.0. The recursion watcher code that
is supposed to handle the test case of QTBUG-39775 can detect the recursion
into the object creator. However the boolean that indicates the recursion is a
member of a structure that's deleted afterwards. To avoid access to deleted
memory, this patch simply reference counts data structure shared between the
creators and also wraps the recursion watcher into a convenience class that
also increases/decreases the reference count accordingly.

Change-Id: I8d2e3e200ab1295e89d951e09f187d382a056d5a
Task-number: QTBUG-39775
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoQQuickApplication: do not filter ApplicationActive/Inactive events
J-P Nurmi [Fri, 20 Jun 2014 09:22:26 +0000 (11:22 +0200)]
QQuickApplication: do not filter ApplicationActive/Inactive events

Listening to QGuiApplication::applicationStateChanged() is enough, no
need to do expensive event filtering for listening to application state
changes.

Change-Id: Iba71bc8cefec236f2f7e2e25c57c5c6b9c9fb1ea
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoFix memory leak in QQmlComponent::createObject
Simon Hausmann [Sat, 21 Jun 2014 08:56:00 +0000 (10:56 +0200)]
Fix memory leak in QQmlComponent::createObject

Regression introduced with 5.3.0. Prevent the leak of the object creator
on repeated createObject calls by using a scoped pointer.

Change-Id: Ib4fe7c9c6926c2390f7ae78f3287bb7da5f60527
Task-number: QTBUG-39742
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoUpdate QtQuick import value to 2.3
Samuel Gaist [Tue, 3 Jun 2014 20:44:25 +0000 (22:44 +0200)]
Update QtQuick import value to 2.3

The current documentation uses import QtQuick 2.2 which is wrong since
there are new APIs like mipmap for the QML Image element.

Task-number: QTBUG-39302
Change-Id: I3cc3a1522efd85090c3b4011429fa16b95e79435
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
10 years agoMake sure program is bound before calling initialize().
Gunnar Sletta [Mon, 9 Jun 2014 09:41:03 +0000 (11:41 +0200)]
Make sure program is bound before calling initialize().

Some implementations will use the initialization to set
constant uniforms like texture locations, so bind the
program before so this will work.

Task-number: QTBUG-39472
Change-Id: I677c5aeefe68535bd4805e83b93308d0bd090030
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoSet locked state while locking for grab.
Gunnar Sletta [Thu, 5 Jun 2014 05:11:54 +0000 (07:11 +0200)]
Set locked state while locking for grab.

Change-Id: If4b8fa77e6e3a288487a011e83791ad6a189675c
Reviewed-by: Manish Sharma <83.manish@gmail.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoQQmlObjectCreator: Clear sharedState componentAttached in destruction/clear
Albert Astals Cid [Tue, 17 Jun 2014 11:10:35 +0000 (13:10 +0200)]
QQmlObjectCreator: Clear sharedState componentAttached in destruction/clear

Fixes crash when delegate is being deleted while not totally instantiated

Valgrind trace:
==15748== Invalid write of size 8
==15748==    at 0x57A02DB: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:985)
==15748==    by 0x57A0318: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:989)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D348A5: QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064)
==15748==    by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106)
==15748==    by 0x6689607: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x5D1B012: QQuickItem::event(QEvent*) (qquickitem.cpp:7114)
==15748==    by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x40711B: startShell(int, char const**, void*) (main.cpp:171)
==15748==    by 0x407A74: main (main.cpp:227)
==15748==  Address 0x1be83870 is 64 bytes inside a block of size 112 free'd
==15748==    at 0x4C2C2BC: operator delete(void*) (vg_replace_malloc.c:503)
==15748==    by 0x5815FB0: QQmlObjectCreator::~QQmlObjectCreator() (qqmlobjectcreator.cpp:156)
==15748==    by 0x57A52AA: QQmlIncubatorPrivate::clear() (qscopedpointer.h:62)
==15748==    by 0x57A53C6: QQmlIncubator::clear() (qqmlincubator.cpp:577)
==15748==    by 0x5DCEA20: QQuickLoader::setActive(bool) (qquickloader.cpp:350)
==15748==    by 0x5DCF6D2: QQuickLoader::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickloader_p.cpp:277)
==15748==    by 0x579DC66: QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1322)
==15748==    by 0x579E76E: QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1246)
==15748==    by 0x579F2F9: QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1578)
==15748==    by 0x580CF69: QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlbinding.cpp:266)
==15748==    by 0x580D5BD: QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (qqmlbinding_p.h:105)
==15748==    by 0x57E6156: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:81)
==15748==    by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76)
==15748==    by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76)
==15748==    by 0x5788FA3: QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (qqmlengine.cpp:721)
==15748==    by 0x6688232: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x57882A7: QQmlData::destroyed(QObject*) (qqmlengine.cpp:1658)
==15748==    by 0x668FD7D: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x55E8B64: QQmlDMAbstractItemModelData::~QQmlDMAbstractItemModelData() (qqmladaptormodel.cpp:95)
==15748==    by 0x58643DC: QQmlDelegateModelPrivate::release(QObject*) (qqmldelegatemodel.cpp:520)
==15748==    by 0x586440C: QQmlDelegateModel::release(QObject*) (qqmldelegatemodel.cpp:536)
==15748==    by 0x5DFED4F: QQuickItemViewPrivate::releaseItem(FxViewItem*) (qquickitemview.cpp:2349)
==15748==    by 0x5DBAB94: QQuickGridViewPrivate::addVisibleItems(double, double, double, double, bool) (qquickgridview.cpp:497)
==15748==    by 0x5DFC94E: QQuickItemViewPrivate::refill(double, double) (qquickitemview.cpp:1751)
==15748==    by 0x5DFF26A: QQuickItemViewPrivate::layout() (qquickitemview.cpp:1859)
==15748==    by 0x5D275F7: QQuickWindowPrivate::polishItems() (qquickwindow.cpp:271)
==15748==    by 0x5D02B7D: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (qsgthreadedrenderloop.cpp:1150)
==15748==    by 0x5D03167: QSGThreadedRenderLoop::event(QEvent*) (qsgthreadedrenderloop.cpp:1235)
==15748==    by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66B00CC: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66B03F0: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==15748==    by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==15748==    by 0x40711B: startShell(int, char const**, void*) (main.cpp:171)
==15748==    by 0x407A74: main (main.cpp:227)

Change-Id: I2c7d38fa5a2566520173bff7ad4e5f9c966d083e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoInitialize velocity
Albert Astals Cid [Mon, 16 Jun 2014 14:51:17 +0000 (16:51 +0200)]
Initialize velocity

Fixes valgrind warning
==21054== Conditional jump or move depends on uninitialised value(s)
==21054==    at 0x5DAE6D4: QQuickListView::viewportMoved(QFlags<Qt::Orientation>) (qquicklistview.cpp:2789)
==21054==    by 0x5D9ED76: QQuickFlickablePrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickflickable.cpp:296)
==21054==    by 0x5DFC438: QQuickItemViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquickitemview.cpp:1158)
==21054==    by 0x5DAC6A2: QQuickListViewPrivate::itemGeometryChanged(QQuickItem*, QRectF const&, QRectF const&) (qquicklistview.cpp:1369)
==21054==    by 0x5D0D5F2: QQuickItem::geometryChanged(QRectF const&, QRectF const&) (qquickitem.cpp:3365)
==21054==    by 0x5D11822: QQuickItem::setY(double) (qquickitem.cpp:5858)
==21054==    by 0x5C84FED: QQuickTimeLinePrivate::advance(int) (qquicktimeline.cpp:826)
==21054==    by 0x5C85155: QQuickTimeLine::updateCurrentTime(int) (qquicktimeline.cpp:702)
==21054==    by 0x58576FA: QAbstractAnimationJob::setCurrentTime(int) (qabstractanimationjob.cpp:497)
==21054==    by 0x5857BDD: QQmlAnimationTimer::updateAnimationsTime(long long) (qabstractanimationjob.cpp:119)
==21054==    by 0x640C7EC: QUnifiedTimer::updateAnimationTimers(long long) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x58570C8: QQmlAnimationTimer::startAnimations() (qabstractanimationjob.cpp:152)
==21054==    by 0x66895B5: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054==    by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054==    by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0)
==21054==    by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)
==21054==    by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0)

Change-Id: I72e101140b8bee0b6867cf92902e70660c8d21ab
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoImprove RSS News Qt Quick Demo
Topi Reinio [Thu, 12 Jun 2014 13:05:05 +0000 (15:05 +0200)]
Improve RSS News Qt Quick Demo

    - Add main.cpp for launching, use Qt resource system
    - Update feed URLs
    - New layout and images
    - Make the example scalable, react to orientation changes
    - Use graphical effects and animations
    - Display time and link for each news item
    - Fix license headers to use the correct license

Task-number: QTBUG-37203
Change-Id: I6f8941cbdaed78a3dee30305496b3ea7777ba3e3
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
10 years agoFix QQmlComponent detailed description.
Mitch Curtis [Tue, 17 Jun 2014 11:35:21 +0000 (13:35 +0200)]
Fix QQmlComponent detailed description.

setParent() => setParentItem()

Task-number: QTBUG-39687
Change-Id: I67dc871a6d3b10af321d1f7b08921dcad0a6f19d
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoAdd a QQuickWidget - QQuickView comparison example
Laszlo Agocs [Fri, 6 Jun 2014 14:53:33 +0000 (16:53 +0200)]
Add a QQuickWidget - QQuickView comparison example

Besides serving as a side-by-side test tool for QQuickView and
QQuickWidget (including multisampling), it also demonstrates some
useful practices for rendering 3D content via QQuickFramebufferObject.

Done-with: Paul Olav Tvete <paul.tvete@digia.com>
Change-Id: Ie73e998ee91e32ef1535dd6f0f65c8a69addcc5e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
10 years agoFix crash in QObjectWrapper
Oleg Shparber [Tue, 17 Jun 2014 22:47:43 +0000 (15:47 -0700)]
Fix crash in QObjectWrapper

This can happen during QObject destruction, when
QObjectPrivate::deleteChildren() itself sets entries
in the children list to zero when deleting. These
zeros cause crash in markChildQObjectsRecursively().

Task-number: QTBUG-38635
Change-Id: I29ad9e793b78ca4e8d73fbb125f46db1b8292f20
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoUse QSignalSpy instead of waitFor in tst_qpacketprotocol
Ulf Hermann [Mon, 16 Jun 2014 09:21:01 +0000 (11:21 +0200)]
Use QSignalSpy instead of waitFor in tst_qpacketprotocol

QTcpServer::waitForNewConnection() blocks the event loop and prevents
the client, that runs in the same event loop, from sending anything.
Also, if the connection is established before waitForNewConnection() is
called we're going to wait for another connection, which will never
happen.

It's not clear if this is actually the cause of the test failures but
blocking the event loop is generally a bad idea and the last change to
the test that actually made a difference to the functionality added
exactly that line, see b36bbe3626bc68ac267d7653fa6408a8f258251d.

Task-number: QTBUG-39655
Change-Id: Ic03a4e7cac78155532588476b99449664c343ee2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 JIT: add some documentation and literature references.
Erik Verbruggen [Thu, 22 May 2014 14:04:20 +0000 (16:04 +0200)]
V4 JIT: add some documentation and literature references.

Change-Id: I67667b74672b94b951361bf2a446476edf44b826
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4 JIT: add hint for phi-node operands.
Erik Verbruggen [Thu, 22 May 2014 14:09:43 +0000 (16:09 +0200)]
V4 JIT: add hint for phi-node operands.

Not only is it preferable for the target of a phi-node to be stored in
the same location as one of the sources, but the same yields for the
sources. For example, in a loop, it is preferable to store the result
of a value used in a phi-node in the loop header to be stored in the
same location as that phi-node's target. Doing that will eliminate extra
moves that are generated to resolve differences between edges.

Change-Id: I0cb5fbe8915d602ac9b9a2a7e8b95cf47b1efb68
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoTest the javascript heap profiler
Ulf Hermann [Tue, 3 Jun 2014 13:12:28 +0000 (15:12 +0200)]
Test the javascript heap profiler

Change-Id: I6ac08e520e263ae1cda9eeccd08dea997f6bdd2f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix compiler warning
Lars Knoll [Tue, 6 May 2014 11:30:31 +0000 (13:30 +0200)]
Fix compiler warning

Change-Id: I26df4f1b8417c6b075d81eaf118669a4103503e2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse the correct 'no-widgets' check
Gunnar Sletta [Wed, 18 Jun 2014 12:02:00 +0000 (14:02 +0200)]
Use the correct 'no-widgets' check

Change-Id: I754f785625a534886c6c40f1e850b90cf2418297
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoAdd changelog for 5.3.1 upstream/5.3.1
Simon Hausmann [Wed, 18 Jun 2014 08:27:05 +0000 (10:27 +0200)]
Add changelog for 5.3.1

Change-Id: I5d9c67a2f89c0c191de9e6de24d068fca17dba0e
Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
10 years agoBump version
Oswald Buddenhagen [Tue, 17 Jun 2014 22:28:50 +0000 (00:28 +0200)]
Bump version

Change-Id: I48d18a93971f4595b295aa6a1f70dfbe2b2266a1

10 years agoV4 JIT: teach regalloc about callee-saved registers.
Erik Verbruggen [Thu, 22 May 2014 12:45:59 +0000 (14:45 +0200)]
V4 JIT: teach regalloc about callee-saved registers.

Callee-saved registers won't get clobbered by a call, so any value
stored in it will survive the call.

Change-Id: I2b61b84617b01bf7ce7e81cd0119a6da689ee9d5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMerge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Sergio Ahumada [Tue, 17 Jun 2014 06:51:08 +0000 (08:51 +0200)]
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev

10 years agoIntroduce Accessible.ignored
Frederik Gladhorn [Fri, 23 May 2014 11:53:11 +0000 (13:53 +0200)]
Introduce Accessible.ignored

Task-number: QTBUG-39163
Change-Id: Ic09573408c460c64503cf1c4d6fff3754e92a223
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
10 years agoSeparate renderer out in "OpenGL under QML" example.
Gunnar Sletta [Fri, 13 Jun 2014 11:59:57 +0000 (13:59 +0200)]
Separate renderer out in "OpenGL under QML" example.

The example was promoting very bad practice.

Change-Id: Ibb83780ec33e59ee5aabf65a775705dd0da681e6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoUse newest QtQuick in rssnews demo
Niels Weber [Fri, 13 Jun 2014 11:27:45 +0000 (13:27 +0200)]
Use newest QtQuick in rssnews demo

Task-number: QTBUG-37203
Change-Id: I720e510b875f63eb5c184cd7d8b9eb127674d505
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
10 years agoMerge remote-tracking branch 'origin/stable' into 5.3
Sergio Ahumada [Sat, 14 Jun 2014 16:19:53 +0000 (18:19 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: Id783915b0139a90ecfb99f8298b1ff5cf506a1dd

10 years agoFix copy-paste errors.
Richard J. Moore [Fri, 18 Apr 2014 10:53:05 +0000 (11:53 +0100)]
Fix copy-paste errors.

Fix two copy-paste errors identified by static analysis at
http://www.viva64.com/en/b/0251/

Change-Id: I359a4635a4a837995f9ed9bf0182a1ca543725df
Reviewed-by: Daniel Molkentin <daniel@molkentin.de>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Simon Hausmann [Fri, 13 Jun 2014 21:10:03 +0000 (23:10 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Conflicts:
src/quickwidgets/qquickwidget.cpp

Change-Id: Id4b080aea713df68608847bb82570231e37ce536

10 years agoMerge remote-tracking branch 'origin/stable' into 5.3
Simon Hausmann [Fri, 13 Jun 2014 14:45:46 +0000 (16:45 +0200)]
Merge remote-tracking branch 'origin/stable' into 5.3

Change-Id: I9cff3f4d42d58157fd8d17ec172b6a74dc386508

10 years agoV4 JIT: use RegisterInfo in the register allocator.
Erik Verbruggen [Thu, 22 May 2014 12:31:03 +0000 (14:31 +0200)]
V4 JIT: use RegisterInfo in the register allocator.

Change-Id: Ia9faeb20b360f41d00f908132fd306e2d25c7574
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix Stmt:Data object leak
Liang Jian [Wed, 28 May 2014 07:46:51 +0000 (15:46 +0800)]
Fix Stmt:Data object leak

call Stmt::destroyData() whenever a Stmt object is to be removed in
BasicBlock to delete the Stmt::Data object hold in the Stmt object.

Change-Id: I59c939d79b935153e6f8613e54f149120f5198f5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoSet StrongFocus on QQuickWidget
Laszlo Agocs [Thu, 12 Jun 2014 13:10:51 +0000 (15:10 +0200)]
Set StrongFocus on QQuickWidget

Make text input functional out of the box.

Both QGraphicsView and QDeclarativeView (QQuick1) do this so there
is no reason to do this differently for QQuickWidget. For QQuickWindow
and QQuickView the issue does not exist in the first place, they will
accept the focus by default.

Task-number: QTBUG-39605
Change-Id: I74f01b85342df51aa3c0e80baf58ba1619c63438
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>