platform/upstream/qtdeclarative.git
10 years agoExtend the ReturnedValue mechanism to pointers to Managed objects
Lars Knoll [Fri, 13 Sep 2013 12:11:55 +0000 (14:11 +0200)]
Extend the ReturnedValue mechanism to pointers to Managed objects

Add a Returned<T> that we can return instead of raw pointers
to Managed objects.

Start using the Returned<T> for a few methods.

Also clean up all our classes to use the Q_MANAGED macro instead
of manually defining their vtable.

Change-Id: I0a2962e47f3de955cd2cd8474f8f3fcc9e36d084
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake QJSValue::prototype() gc safe
Lars Knoll [Fri, 13 Sep 2013 12:10:56 +0000 (14:10 +0200)]
Make QJSValue::prototype() gc safe

Change-Id: Ia93af291f97fd2b6473267e95520bc0759034029
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't polish items if the screen is 0
Lars Knoll [Fri, 13 Sep 2013 10:49:46 +0000 (12:49 +0200)]
Don't polish items if the screen is 0

The current code leads to an assertion during qapp
destruction time, as the screen gets set to 0, which
triggers a force polish that in turns accesses the qapp instance.

In addition, we don't need to do any work when the screen is 0,
as the window can't be visble in that case. Once it gets visible
again, forcePolish() will be called again.

Change-Id: I81d9a11e494b4573a56d06bca651cc6b5fa785c7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoConvert most remaining return values from Value to ReturnedValue
Lars Knoll [Thu, 12 Sep 2013 20:37:41 +0000 (22:37 +0200)]
Convert most remaining return values from Value to ReturnedValue

Change-Id: If8b0c3b91be50678693868c10fefc3678008834d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix regression in Object.isExtensible()
Lars Knoll [Fri, 13 Sep 2013 06:37:49 +0000 (08:37 +0200)]
Fix regression in Object.isExtensible()

We need to encode a bool, but the extensible flag
in Object is a bitfield (ie uint).

Change-Id: I2461c8ae90e92840da737c0c7ee88b9a2cee21e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert more methods to use ReturnedValue
Lars Knoll [Thu, 12 Sep 2013 13:27:01 +0000 (15:27 +0200)]
Convert more methods to use ReturnedValue

Change Exception.value() and a few other places.

Change-Id: I53ce17e5656e260138b1ac7f6d467e4636c0a0b9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert builtin methods to return a ReturnedValue
Lars Knoll [Thu, 12 Sep 2013 09:13:03 +0000 (11:13 +0200)]
Convert builtin methods to return a ReturnedValue

Change-Id: I6b75adbf53a5be0deab023d2eed98ce2a7915551
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRename BuiltinFunctionOld to BuiltinFunction
Lars Knoll [Thu, 12 Sep 2013 07:23:34 +0000 (09:23 +0200)]
Rename BuiltinFunctionOld to BuiltinFunction

This is the correct abstraction for a builtin method.
Time to get rid of the 'old' in the name.

Change-Id: Ia386d2cc8ef0e6c269ab24da6fc8ebfac52d7f69
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't check whether Scoped<T> really contains a T
Lars Knoll [Thu, 12 Sep 2013 07:18:47 +0000 (09:18 +0200)]
Don't check whether Scoped<T> really contains a T

When retriveing a pointer to T, there's no need to check
that we really have a Managed stored in the value, as the
type checking is already done by the constructor and
assignment operators.

Change-Id: I246610b8d6e33848e6a2e2179a5e6e6d9d0975ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert lookups to use ReturnedValue
Lars Knoll [Wed, 11 Sep 2013 20:45:47 +0000 (22:45 +0200)]
Convert lookups to use ReturnedValue

Change-Id: Idbcd1fbd2aa43775ce8c1a3d8fac29a6b58b678a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse a ReturnedValue for Managed::getIndexed()
Lars Knoll [Wed, 11 Sep 2013 19:48:23 +0000 (21:48 +0200)]
Use a ReturnedValue for Managed::getIndexed()

Change-Id: I0371ed21c4ef99564d3ffa1082dd109e890a78bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse ReturnedValue for Managed::get().
Lars Knoll [Wed, 11 Sep 2013 14:28:17 +0000 (16:28 +0200)]
Use ReturnedValue for Managed::get().

Change-Id: Ia8f35d227b69d32e1f6a041283abbbd083aa34ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse ReturnedValue for Managed::construct()
Lars Knoll [Wed, 11 Sep 2013 13:09:25 +0000 (15:09 +0200)]
Use ReturnedValue for Managed::construct()

Change-Id: I9e702d60c4e1b7ba19a699ff7a8d53876d6cd5f7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't access out of bounds arguments
Lars Knoll [Thu, 12 Sep 2013 10:58:39 +0000 (12:58 +0200)]
Don't access out of bounds arguments

QQmlV4Function wasn't checking argc correctly when
accessing the arguments it contains.

Change-Id: I475c1366d46a5ef9c91104c12343507e469a69bb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRename QV4::ValueScope to QV4::Scope
Lars Knoll [Wed, 11 Sep 2013 12:47:34 +0000 (14:47 +0200)]
Rename QV4::ValueScope to QV4::Scope

The class is going to be used all over the place, so let's
give it a short name :)

Change-Id: If61543cb2c885e7fbb95c8fc4d0e870097c352ed
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRequire a ValueScope for ScopedCallData as well
Lars Knoll [Wed, 11 Sep 2013 12:36:01 +0000 (14:36 +0200)]
Require a ValueScope for ScopedCallData as well

This brings things more in line with ScopedValue, and
also simplifies cleanup of Scoped values.

Change-Id: If5f1466b4e13c629d56c1e7c638937f61ba48f77
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse a ReturnedValue for Managed::call()
Lars Knoll [Wed, 11 Sep 2013 11:55:01 +0000 (13:55 +0200)]
Use a ReturnedValue for Managed::call()

Change-Id: Ief2d75e9789dd367c603d90dc0fe5316a0d055e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdjust return values to use ReturnedValue
Lars Knoll [Wed, 11 Sep 2013 11:10:42 +0000 (13:10 +0200)]
Adjust return values to use ReturnedValue

Change-Id: I03822d360ad90cc659da66252439472ecb1a52bb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoChange calling convention in JIT to use ReturnedValue
Simon Hausmann [Wed, 11 Sep 2013 10:46:20 +0000 (12:46 +0200)]
Change calling convention in JIT to use ReturnedValue

This simplifies the masm backend as well and should be faster.

Change-Id: I64ad5d9ee1b6caca950471e3aec4ef19d7503e62
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDisable quick autotests on mac until qtbase is fixed
Lars Knoll [Wed, 18 Sep 2013 11:15:47 +0000 (13:15 +0200)]
Disable quick autotests on mac until qtbase is fixed

Change-Id: I8c4fecfe42f93b3d6c272d2552a856e3ed1fce28
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoAvoid copying touchpoints, and only check until we find a match.
Robin Burchell [Tue, 17 Sep 2013 13:20:22 +0000 (15:20 +0200)]
Avoid copying touchpoints, and only check until we find a match.

Change-Id: I46fad782e93fe1f940acec05f4e1bb4afb5be230
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
10 years agoExpose "Qt.application.state".
Yoann Lopes [Thu, 29 Aug 2013 15:18:06 +0000 (17:18 +0200)]
Expose "Qt.application.state".

This deprecates Qt.application.active.
The new property can indicate more states than just active or inactive
(currently Suspended and Hidden exists in addition to the
aforementioned).

Change-Id: I8d5bf72f89a357c13daf1625c20e8e7311dac013
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoThese files are not used anywhere.
Gunnar Sletta [Fri, 13 Sep 2013 06:27:47 +0000 (08:27 +0200)]
These files are not used anywhere.

Change-Id: I0aa3b7ad944375ec53d8bd831a233d8055d21582
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
10 years agowince: Build fix, Windows can also run on ARM.
Sergio Martins [Sun, 25 Aug 2013 20:08:13 +0000 (21:08 +0100)]
wince: Build fix, Windows can also run on ARM.

Change-Id: I113a9fd86215700fe11fa5b2bfb8461953b1255b
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDoc: PathView::currentItem is an Item, not an int.
David Faure [Fri, 13 Sep 2013 13:35:44 +0000 (15:35 +0200)]
Doc: PathView::currentItem is an Item, not an int.

Change-Id: If06c747b424ac8dd6b880aa296af5e5957bb9b51
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
10 years agoqmlplugindump: fix prototypes identification for composite types
Caroline Chao [Mon, 16 Sep 2013 10:40:30 +0000 (12:40 +0200)]
qmlplugindump: fix prototypes identification for composite types

The prototype name for the composite type is the first "default"
prototype found in the reachable types. If none is found then
the default value is QObject.

Change-Id: I40b4fefaab40e4c9f83d24c89bd026579be63e7b
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
10 years agoQt Quick Dialogs: can see and control geometry of QML implementations
Shawn Rutledge [Mon, 5 Aug 2013 13:41:11 +0000 (15:41 +0200)]
Qt Quick Dialogs: can see and control geometry of QML implementations

QQuickAbstractDialog had x/y/width/height properties already but they
didn't do anything.  It's still not possible with the native dialogs
because neither QPlatformDialogHelper nor QFileDialogOptions etc.
have any geometric properties; but the application author can now
see and control the geometry of any QML dialog implementation.

Change-Id: Icdac9592c72e81175436436027f7fe3d75ff7f42
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoFix wrong return type
Alex Blasche [Fri, 13 Sep 2013 08:53:12 +0000 (10:53 +0200)]
Fix wrong return type

Android g++4.8 errors out with

jsapi/qjsvalueiterator.cpp: In member function 'QString QJSValueIterator::name() const':
jsapi/qjsvalueiterator.cpp:155:16: error: converting 'false' to pointer type for argument 1
of 'QString::QString(const char*)' [-Werror=conversion-null]
         return false;

Change-Id: I589418e34c7e1ae72f2bf547067ea8e5944119b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemoved strange character from MacroAssemblerARM.cpp file.
Tomasz Olszak [Sun, 15 Sep 2013 20:53:15 +0000 (22:53 +0200)]
Removed strange character from MacroAssemblerARM.cpp file.

It caused:
error: stray ‘\302’ in program
error: stray ‘\304’ in program
when cross-compiling for ARM with gcc 4.5

Change-Id: Ibd80a21b436b65b355181b1e304ade22f9ff7404
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't depend on widgets plugin in QtQuick
Eskil Abrahamsen Blomfeldt [Tue, 10 Sep 2013 09:57:31 +0000 (11:57 +0200)]
Don't depend on widgets plugin in QtQuick

Since the accessible directory contains plugins for both the
widgets and quick plugins, we need to specify the precise
plugin, otherwise all QtQuick apps will depend on QtWidgets
on Android.

Change-Id: I8016afc64f8a75cc4ac0a3a69871df9cb2894f8a
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
10 years agoAdd currentColor property to ColorDialog.
Mitch Curtis [Fri, 23 Aug 2013 13:14:33 +0000 (15:14 +0200)]
Add currentColor property to ColorDialog.

QColorDialog has this property. This patch effectively means that
the color property will be set when the dialog closes, instead of
whenever the current color in the dialog changes, so pressing cancel
will revert the color to what it was before the dialog was opened.

[ChangeLog][QtDeclarative][ColorDialog] Added currentColor property.

Change-Id: I2ef6b32954342cd2469cf1552d53f9e2fbf3420b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agofixed warnings in dialog module when PURE_QML_ONLY is defined
Shawn Rutledge [Mon, 16 Sep 2013 09:07:35 +0000 (11:07 +0200)]
fixed warnings in dialog module when PURE_QML_ONLY is defined

There are a couple of unused parameters in that case.

Change-Id: Ica81621e7d74474cbfa0b54c20501ecc72661c08
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoAdd qml tool
Alan Alpert [Fri, 21 Dec 2012 23:42:47 +0000 (15:42 -0800)]
Add qml tool

This tool simply runs QML files using a QQmlApplicationEngine.

It is configurable so as to behave, by default, like qmlscene in
that it will automatically place non-Window QtQuick 2 Items inside
a QQuickWindow with the size of the root item. The configuration
is extensible so that other GUI scenes can also use it by altering
the configuration files in their installation.

On OS X, it is an app bundle, and handles the QFileOpenEvent so that
it can be the tool with which qml files are usually launched by
double-clicking.  (This does not break the ability to use it on the
command line too: the options still work, you just have to give the
path to the executable inside the bundle.)

Change-Id: I6bac813ce188be54842a78d7b532fcf2d54dc443
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
10 years agoSkip failing tests
Alan Alpert [Mon, 16 Sep 2013 21:14:05 +0000 (14:14 -0700)]
Skip failing tests

Rendering seems to have changed for some reason. Unblocking CI while it
is investigated.

Task-number: QTBUG-33517
Change-Id: Ieb7fdf2bbe151fc46fbdee64a2b5786349f9fbe8
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
10 years agoSkip failing test for now
Alan Alpert [Mon, 16 Sep 2013 21:12:04 +0000 (14:12 -0700)]
Skip failing test for now

It's been difficult to reproduce locally and is blocking CI. Skipping
test while we look into the error.

Task-number: QTBUG-33516
Change-Id: I77f00a024143e12d19526d0b52593cc2d128cedf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
10 years agoMerge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Sergio Ahumada [Fri, 13 Sep 2013 20:08:13 +0000 (22:08 +0200)]
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev

10 years agoExpose drag threshold in MouseArea
Jens Bache-Wiig [Thu, 22 Aug 2013 15:20:52 +0000 (17:20 +0200)]
Expose drag threshold in MouseArea

In several cases such as for creating a Slider, it is useful to  have a
0 pixel threshold in order to initiate a drag operation. We have
previously hardcoded this to a platform dependent (usually 10 pixel)
value for MouseArea.

Note that we have no way of indicating the version/revision number
in a grouped property for documentation at the moment.

In addition we deliberately had to remove the REVISION from the
property because it is blocked by QTBUG-33179. However, since
this is not a user-creatable type it should not cause any
issues in practice.

This patch adds MouseArea.drag.threshold in order to improve on this.

Change-Id: Ia4871e64fab39e30c4494f00be99ad38cdd630df
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoMerge remote-tracking branch 'origin/stable' into dev
Sergio Ahumada [Fri, 13 Sep 2013 14:42:55 +0000 (16:42 +0200)]
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: I6fc67bf30a901f8078a5b99a9e290190b3f64b81

10 years agosystemdialogs example bug fix: don't allow clicking through tabs
Shawn Rutledge [Wed, 11 Sep 2013 12:21:20 +0000 (14:21 +0200)]
systemdialogs example bug fix: don't allow clicking through tabs

For example on Font Dialogs tab of
examples/quick/dialogs/systemdialogs/systemdialogs.qml
it was possible to open the color dialog by clicking slightly below
the open button, because the color dialog tab was behind the
current one.

Change-Id: If9917e2baef7cfd49a0d01acd73ffa69dfcee088
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoV4: Fix SSA decomposition when no regalloc is used.
Erik Verbruggen [Sun, 1 Sep 2013 13:45:53 +0000 (15:45 +0200)]
V4: Fix SSA decomposition when no regalloc is used.

Add scheduling for moves generated by removing phi nodes by re-using the
MoveMapping class from the register allocator. This change applies to
both the JIT when no register allocator is used, and the interpreter.

Change-Id: I38eac5b13759c7790132d1ef07fa17fcb53187e3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoqmlplugindump: Add support for composite types
Caroline Chao [Tue, 3 Sep 2013 12:03:21 +0000 (14:03 +0200)]
qmlplugindump: Add support for composite types

Task-number: QTBUG-33106

Change-Id: I80fc817eb59256e860f3fdd591104930688ef84c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoRemove qStableSort usages from declarative
Giuseppe D'Angelo [Thu, 12 Sep 2013 09:06:59 +0000 (11:06 +0200)]
Remove qStableSort usages from declarative

QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I57912f2d1f36053055ea36b1699f704a675dc8b0
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoRemove qLowerBound usages from declarative
Giuseppe D'Angelo [Thu, 12 Sep 2013 09:06:59 +0000 (11:06 +0200)]
Remove qLowerBound usages from declarative

QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I85df32525af0c5706c631555a06b66ef3484d797
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove qCopy usages from declarative
Giuseppe D'Angelo [Thu, 12 Sep 2013 09:06:59 +0000 (11:06 +0200)]
Remove qCopy usages from declarative

QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: Id410f20cba2abb4724351ebb29e20b7a8f784ede
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove qSort usages from declarative
Giuseppe D'Angelo [Thu, 12 Sep 2013 09:06:59 +0000 (11:06 +0200)]
Remove qSort usages from declarative

QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I8fa7d0186cc8f0ba562695974829e37f1eb87f2f
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix ReturnedValue support on ia32 and arm
Simon Hausmann [Wed, 11 Sep 2013 10:25:07 +0000 (12:25 +0200)]
Fix ReturnedValue support on ia32 and arm

The 64-bit value is passed in eax:edx and r0:r1

Change-Id: I9a8a7d8ae41f14780958351ecedea2d117f77d85
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoConvert ReturnedValue into a primitive (typedef to quint64)
Lars Knoll [Wed, 11 Sep 2013 09:28:27 +0000 (11:28 +0200)]
Convert ReturnedValue into a primitive (typedef to quint64)

ReturnedValue is used to return values from runtime methods
The type has to be a primitive type (no struct or union), so that
the compiler will return it in a register on all platforms.

They will be returned in rax on x64, [eax,edx] on x86 and [r0,r1] on arm.

Change-Id: I38433e6fad252370dda5dc335d9c5be8f22e8c76
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix __qmljs_init_closure to use ReturnedValue
Lars Knoll [Mon, 9 Sep 2013 20:34:47 +0000 (22:34 +0200)]
Fix __qmljs_init_closure to use ReturnedValue

Change-Id: I777a63db32857a6a326839e3fcdb99657dc80e7f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoChange binops to use ReturnedValue
Lars Knoll [Mon, 9 Sep 2013 20:23:10 +0000 (22:23 +0200)]
Change binops to use ReturnedValue

Change-Id: I068b1af5c352fc84793079e5bccbe3482b04cafa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert unary operations and some other runtime methods
Lars Knoll [Mon, 9 Sep 2013 19:35:37 +0000 (21:35 +0200)]
Convert unary operations and some other runtime methods

Change-Id: I985876ade37efd24e1d4f8360a6472282cf44f8b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse ReturnedValue for more runtime methods
Lars Knoll [Mon, 9 Sep 2013 19:17:01 +0000 (21:17 +0200)]
Use ReturnedValue for more runtime methods

Change-Id: I6e92dccf4c3c1a9e4c23128ced41b6e19da1e490
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove unused code to generate post increment and decrement expressions
Lars Knoll [Mon, 9 Sep 2013 18:34:30 +0000 (20:34 +0200)]
Remove unused code to generate post increment and decrement expressions

We generate lower level code in codegen and don't use these
runtime methods anymore.

Change-Id: If1023ce5295431305f4528839bcf2a3031fa7ad2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse ReturnedValue for some more runtime methods
Lars Knoll [Mon, 9 Sep 2013 18:32:01 +0000 (20:32 +0200)]
Use ReturnedValue for some more runtime methods

Change-Id: I68c7d321f8d17b32110ee050aa48fae5735e63ad
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse QV4::ReturnedValue in the runtime API
Lars Knoll [Mon, 9 Sep 2013 13:10:03 +0000 (15:10 +0200)]
Use QV4::ReturnedValue in the runtime API

This makes function calls from the JIT/Moth into the
runtime significantly nicer.

Change-Id: Ie7d7123984d65c0bee0525d3d28c643a76b394c4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse a ReturnedValue when converting to String or Object
Lars Knoll [Mon, 9 Sep 2013 12:33:28 +0000 (14:33 +0200)]
Use a ReturnedValue when converting to String or Object

Also rename Value::toQString() to Value::toQStringNoThrow(),
and add a throwing toQString() method for JS use.

Change-Id: I821b33fc61abb7d08839df965fd337685f61a545
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix passing of exception table pointers to ARM runtime on unwinding
Simon Hausmann [Wed, 11 Sep 2013 09:26:32 +0000 (11:26 +0200)]
Fix passing of exception table pointers to ARM runtime on unwinding

Our synthetic exception unwind table for ARM is located at

    (char *)codeStart + function->codeSize;

This relies on function->codeSize to contain the number of bytes of
instructions the function has, not the size of the MacroAssemblerCodeRef
(which contains the size of the entire area).

This patch fixes the calculation of function->codeSize and also replaces
the QHash for the IR::Function* -> CodeRef mapping in the masm backend
with a simple vector that's perfectly sufficient.

Bug spotted by Petr Nejedly

Change-Id: I78a53599085c613c6d97aa2490922f54e0bb4f63
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4: fix variable collection for assignment to non-temporaries.
Erik Verbruggen [Tue, 3 Sep 2013 09:19:02 +0000 (11:19 +0200)]
V4: fix variable collection for assignment to non-temporaries.

Change-Id: Ie1de760824d8927cf10cbc1e02145f40d812e8ee
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 JIT: add env. var. QV4_NO_REGALLOC.
Erik Verbruggen [Fri, 30 Aug 2013 15:45:51 +0000 (17:45 +0200)]
V4 JIT: add env. var. QV4_NO_REGALLOC.

If set to anything, no register allocation will be performed.

Change-Id: Ibe11ad8c8ac6dacd898bc4a4d5296476ca6ddb14
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4: add counters for built-in function invocations.
Erik Verbruggen [Thu, 29 Aug 2013 17:42:50 +0000 (19:42 +0200)]
V4: add counters for built-in function invocations.

When enabled, counters for the number of invocations of built-in runtime
functions are dumped when the application exits normally.

Note: this gives a penalty on execution speed. It is not meant to be
super light-weight, but as a tool to have an indication which functions
get called most, thereby helping to indicate which code-paths to
optimize.

Change-Id: Ica701f36a578affcce5ee8414532259972e5ede5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 IR: fix Temp equality, and its use in type inference.
Erik Verbruggen [Thu, 29 Aug 2013 14:08:10 +0000 (16:08 +0200)]
V4 IR: fix Temp equality, and its use in type inference.

Change-Id: Ibf14d8835517981eda41ee768446da49965248be
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAllow QtQuick private headers to be used with QT_NO_KEYWORDS.
Jocelyn Turcotte [Mon, 9 Sep 2013 13:55:04 +0000 (15:55 +0200)]
Allow QtQuick private headers to be used with QT_NO_KEYWORDS.

This is necessary for the QtWebEngine module.

This also adds an empty nokeywords test using the same mechanism
as qtbase/tests/auto/tools/moc/no-keywords.h to find conflicts
at compile time.

Change-Id: I9df541720797dd61f078178c2af68ead18ff8bfe
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoExport QQuickDefaultClipNode for modules using quick-private.
Jocelyn Turcotte [Mon, 9 Sep 2013 13:54:52 +0000 (15:54 +0200)]
Export QQuickDefaultClipNode for modules using quick-private.

Change-Id: Ia79d53dcb5a2ce4e91820c88e2dada666c6d7841
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 JIT: change the stack layout.
Erik Verbruggen [Thu, 12 Sep 2013 09:32:43 +0000 (11:32 +0200)]
V4 JIT: change the stack layout.

The saved register area (used to store values in registers that need to
be passed by reference in a function call) is now right behind the
callee saved register area. This means that the stack now has two
"parts": a JavaScript part with the function call arguments and the
locals, and a "C++" part that holds saved registers which do not need to
be garbage collected.

This also fixes a bug where the size of the CallData was not taken into
account when calculating the offset for the saved registers.

Change-Id: If0af072f3299176c54ad33710e7d15bc9d26ae8b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4 regalloc: correct life-time hole handling.
Erik Verbruggen [Thu, 29 Aug 2013 12:46:31 +0000 (14:46 +0200)]
V4 regalloc: correct life-time hole handling.

When a life-range is active, but does not cover a position, it means
that it is inactive. When going from active to inactive (or vice-versa),
a (un-)spill is only needed when there is a stack-slot allocated to the
range. It is valid to not have a stack slot: when no call is done, or
when the register pressure does not push the end of the hole onto the
stack.

Change-Id: I5f5a05181c8cb384f031538dbefd7d11de682b8d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4 regalloc: fix cycle scheduling in resolve phase.
Erik Verbruggen [Thu, 29 Aug 2013 11:43:04 +0000 (13:43 +0200)]
V4 regalloc: fix cycle scheduling in resolve phase.

When resolving differences in register/spill-slot assignment between
basic-blocks, dependency cycles can occur. Those cycles have to be
scheduled after non-cyclic dependencies.

This also removes a assertion that only held when the cycle was 2 long,
but would incorrectly fire for longer cycles.

Change-Id: I519fd43bbf117d3480e4169ff363e97a9ec450f8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoQquickimageparticle: Simplify code
Tobias Hunger [Thu, 29 Aug 2013 11:48:34 +0000 (13:48 +0200)]
Qquickimageparticle: Simplify code

Clang nags about perfLevel < 9999 being always true.

Change-Id: I09f46a8cd81f0f7eecdbd5eabd52f8f7ff4603c1
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoDefaultColorDialog bugfix: binding color to a TextField
Shawn Rutledge [Wed, 11 Sep 2013 13:14:28 +0000 (15:14 +0200)]
DefaultColorDialog bugfix: binding color to a TextField

The text field shows the hex value of the currently selected color,
but the color to string conversion is not implicit.

Change-Id: I914033d6358696b4014ca48bf3ae435c98b5be33
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoV4 JIT: fix visitRet for UInt32 temps.
Erik Verbruggen [Thu, 29 Aug 2013 08:03:51 +0000 (10:03 +0200)]
V4 JIT: fix visitRet for UInt32 temps.

Change-Id: Ia104cc50523f6aef348ecbe0b597b79c1817390a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 JIT: finish swapValues.
Erik Verbruggen [Thu, 29 Aug 2013 08:01:38 +0000 (10:01 +0200)]
V4 JIT: finish swapValues.

Change-Id: I92b2a84128714927d61c9879c5ddb584631ea2ce
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agotst_qquicktextinput/data::maxLength(): Fix assert about zero-width window.
Friedemann Kleint [Tue, 10 Sep 2013 13:28:24 +0000 (15:28 +0200)]
tst_qquicktextinput/data::maxLength(): Fix assert about zero-width window.

Occurring with ANGLE-builds.

Task-number: QTBUG-32541
Change-Id: Ib48f0c802dd3242a227f8c5d7fda2fccca71403a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
10 years agoV4 JIT: generate code for binary expressions.
Erik Verbruggen [Wed, 28 Aug 2013 13:05:24 +0000 (15:05 +0200)]
V4 JIT: generate code for binary expressions.

Change-Id: If32ee3528fa0b6a2d04263d6c6abe1d34053d658
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix return type checks in test.
Erik Verbruggen [Wed, 11 Sep 2013 08:00:43 +0000 (10:00 +0200)]
Fix return type checks in test.

Same problem as 3dbc7a72c7e38b2a34df3a9ef496547c795420af fixed in
another test. Same solution.

Change-Id: Ib476239e567c43e4657487c34cfc7157a1f5d33f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoContinue conversion to using scoped values
Lars Knoll [Mon, 9 Sep 2013 11:38:10 +0000 (13:38 +0200)]
Continue conversion to using scoped values

This converts all methods in qv4runtime_p.h to not
use raw values in arguments anymore.

The conversion of return values will be done in a separate
commit.

Change-Id: Ie6e8f3bed459d09cb831f7f87920b7eada161502
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMore work on converting calling conventions to fit the new GC scheme
Lars Knoll [Mon, 9 Sep 2013 09:07:21 +0000 (11:07 +0200)]
More work on converting calling conventions to fit the new GC scheme

Change-Id: I4283cc85ad599b62a8efbe9268680287cf74097e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoStart adapting function signatures in the qv4runtime
Lars Knoll [Mon, 9 Sep 2013 08:46:06 +0000 (10:46 +0200)]
Start adapting function signatures in the qv4runtime

Move the signatures over to something that will enforce
the exact GC later on.

Change-Id: I2e1a472aea296cc1862c76c1e6dab5d0d2f5177c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd ValueRef classe and use it to make things GC safe
Lars Knoll [Sun, 8 Sep 2013 19:02:07 +0000 (21:02 +0200)]
Add ValueRef classe and use it to make things GC safe

The ValueRef class holds a reference to a Value that
is already known to the GC. ValueRef's should be
used to pass Value arguments to methods.

As a first step us the class to make unary
operations GC safe

Change-Id: Ie13e332ed95b2908df9a201a3f757db864c05ca9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove unusued method
Lars Knoll [Fri, 6 Sep 2013 12:00:32 +0000 (14:00 +0200)]
Remove unusued method

Change-Id: I76233198e01d853637bd09b12f73ba3b45104e70
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoProperly unwind the js stack for generated code
Lars Knoll [Fri, 6 Sep 2013 11:48:33 +0000 (13:48 +0200)]
Properly unwind the js stack for generated code

Surround all calls into generated code with a
try {} catch {} statement that resets the jstack
to the correct position.

Like this we properly unwind the js stack in all cases, and
can also use stricter assertions in our ScopedCallData, etc.
classes to check that the stack is healthy.

Change-Id: I7ca03e06ea55007be683305d9c2a6898cf5fc689
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoChange signature of call/construct() to take a pointer to a CallData
Lars Knoll [Fri, 6 Sep 2013 10:44:12 +0000 (12:44 +0200)]
Change signature of call/construct() to take a pointer to a CallData

Change-Id: I5467aadba083e4b01fb0a7170946695207033680
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGenerate CallData structures directly in the instruction selection
Lars Knoll [Thu, 5 Sep 2013 12:49:55 +0000 (14:49 +0200)]
Generate CallData structures directly in the instruction selection

Like this we can hand the CallData through the runtime methods
without any need to modify them. This simplifies the code in there,
and should also speed them up to some degree.

Change-Id: Ibd92ff4a8f279a5c4a054c5678646f658cfed5ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove CallData onto the JS stack
Lars Knoll [Thu, 5 Sep 2013 11:22:23 +0000 (13:22 +0200)]
Move CallData onto the JS stack

Change-Id: I22e853acfd2da337344b581bb0412c5f9930c510
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd ScopedValue and ScopedValueArray classes
Lars Knoll [Wed, 4 Sep 2013 14:05:34 +0000 (16:05 +0200)]
Add ScopedValue and ScopedValueArray classes

Use these classes to hold Values on the stack. They
are known by the GC and very fast to create and destroy.

Change-Id: Idacf639485295ff446f290c5b0e149465354720e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoCreate a stack for JS values and use it in the interpreter
Lars Knoll [Tue, 3 Sep 2013 10:40:07 +0000 (12:40 +0200)]
Create a stack for JS values and use it in the interpreter

First step towards being able to do an exact GC.

Create a stack for JS Values that is separate from the C++
stack.

Use the stack for generated methods (masm and moth).

Change-Id: I80ac0e5b5d86439dda5e9ea2b21fa0c57d8aef22
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoQQuickWindow: Quieten warning about unused variable
Tobias Hunger [Thu, 29 Aug 2013 11:47:17 +0000 (13:47 +0200)]
QQuickWindow: Quieten warning about unused variable

Clang nags about this.

Change-Id: I4b1b3123ef526a4692b08af7211ecb6cae6835d8
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoV4: add environment variable QV4_FORCE_INTERPRETER
Erik Verbruggen [Mon, 9 Sep 2013 14:07:01 +0000 (16:07 +0200)]
V4: add environment variable QV4_FORCE_INTERPRETER

By setting this variable, the interpreter will always be used, even when
the JIT is available.

Change-Id: I66a439b649fd22e0d10be4f07f1e7be392b012f5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoEnable -Werror for qtdeclarative
Alan Alpert [Wed, 4 Sep 2013 22:52:43 +0000 (15:52 -0700)]
Enable -Werror for qtdeclarative

This allows CI to screen for warnings in src and tools code. It does
not apply to examples or tests.

This is the same as commit 7012db159bc4196444ace26991b24a31e3fba495 in
qtbase.

Change-Id: I0ea00fbd4b45156dedabfd16a3cb3e5f6170f23f
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
10 years agoV4: Fix build in release with forced asserts
Konstantin Ritt [Tue, 10 Sep 2013 08:58:29 +0000 (11:58 +0300)]
V4: Fix build in release with forced asserts

Change-Id: I7419b10223ebb28cc54cbb595818509a7384ac6a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoAdd Q_UNUSED for reserved fields.
Alan Alpert [Tue, 10 Sep 2013 07:38:55 +0000 (00:38 -0700)]
Add Q_UNUSED for reserved fields.

Prevents the following compiler errors with Clang

src/quick/scenegraph/coreapi/qsggeometry.h:183:10: error: private field
      'm_reserved_bits' is not used [-Werror,-Wunused-private-field]
    uint m_reserved_bits : 25;
         ^
 src/quick/scenegraph/util/qsgsimplerectnode.h:66:11: error: private field
      'reserved' is not used [-Werror,-Wunused-private-field]
    void *reserved;
          ^
 src/quick/items/qquickclipnode_p.h:66:10: error: private field 'm_reserved' is not
      used [-Werror,-Wunused-private-field]
    uint m_reserved : 31;
         ^
 src/quick/scenegraph/coreapi/qsgmaterial.h:143:11: error: private field
      'm_reserved' is not used [-Werror,-Wunused-private-field]
    void *m_reserved;
          ^
 src/quick/scenegraph/coreapi/qsgnode.h:267:10: error: private field 'm_reserved'
      is not used [-Werror,-Wunused-private-field]
    uint m_reserved : 31;

Change-Id: I0ea00fbd4b45156dedabfd16a3cb3e5f6170f2ff
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoV4: Constant binary expression evaluation.
Erik Verbruggen [Mon, 19 Aug 2013 08:54:42 +0000 (10:54 +0200)]
V4: Constant binary expression evaluation.

Statically calculate binary expressions which have two constants as
operands. Currently only for add/subtract/multiply/divide and
comparisons.

Change-Id: Ia8c7222d45bbba956025fe349fc1494015a3e74f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 debugger: change agent API to work on all debuggers.
Erik Verbruggen [Tue, 10 Sep 2013 10:24:37 +0000 (12:24 +0200)]
V4 debugger: change agent API to work on all debuggers.

From a client point of view, there is no way to know which engine is
executing which script. So, instead of passing in a debugger for a
specific engine, have the agent set breakpoints on all debuggers.

Change-Id: I53b8cbc1bdc02c7705042f2ac3a99a041992c134
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake it possible to handle pointers to QObject derived in QML.
Stephen Kelly [Thu, 12 Jan 2012 19:01:15 +0000 (20:01 +0100)]
Make it possible to handle pointers to QObject derived in QML.

This way, properties of QObject derived types can be read in QML
code for example:

 Q_PROPERTY(MyObject* obj READ obj CONSTANT)

Previously, only QObject* types could be read by QML:

 Q_PROPERTY(QObject* obj READ obj CONSTANT)

This meant that multiple properties and methods had to be created
for classes which were relevant to both QML and non-QML code.

This patch lifts that restriction.

As a consequence, we can also remove a Q_EXPECT_FAIL from
the qqmllanguage unit test. That test was introduced in
commit 92562eacbc3c (Allow signal parameters which are custom QML
object-types, 2012-07-13) to document knowledge of the limitation
while fixing it as much as possible.

Task-number: QTBUG-26662

Change-Id: Ic85fa73c6f3655189438ec509765bae2eab9993a
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 regalloc: loading this never needs/needed a call.
Erik Verbruggen [Tue, 3 Sep 2013 19:44:34 +0000 (21:44 +0200)]
V4 regalloc: loading this never needs/needed a call.

Change-Id: Ibf95a5fe7634094386ba103b01b4e7e9f2c183e8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoChange access mode for functions declared in qml
Caroline Chao [Wed, 4 Sep 2013 13:13:53 +0000 (15:13 +0200)]
Change access mode for functions declared in qml

Give the method a QMetaMethod::Public access instead
of a QMetaMethod::Protected one. This is valid
and is also needed when using the qmlplugindump tool
with composite types.

Change-Id: Ie1660716d8767cdc949f04a2f324799f2d2fe6c5
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
10 years agoFix warning by ICC: function without return value
Thiago Macieira [Thu, 5 Sep 2013 00:45:29 +0000 (17:45 -0700)]
Fix warning by ICC: function without return value

Yes, it can't be reached due to the Q_UNREACHABLE(). ICC expands that to an
__assume(0), which I guess isn't strong enough.

qv4isel_util_p.h(94): error #1011: missing return statement at end of non-void function "QQmlJS::convertToValue"

Change-Id: I41d9fd7382a41fe0e753812fc1d71fdc802ef854
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoTrigger rebuild when xform of alpha nodes change.
Gunnar Sletta [Fri, 6 Sep 2013 08:35:26 +0000 (10:35 +0200)]
Trigger rebuild when xform of alpha nodes change.

When transforms change, overlaps may have changed, so we
need to rebuild all batches under the current root.

Instead of adding taggedRoots logic for rebuilding
batches only, we reuse the existing tagged roots for render
lists. This one is slightly more expensive, but for now
I believe the reduced code complexity outweights the tiny
overhead.

Change-Id: I1bd0efc18e5628f404d6d4dce38c725436e87ce5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
10 years agoFix partial rebuilds and geometry changes.
Gunnar Sletta [Thu, 5 Sep 2013 12:12:53 +0000 (14:12 +0200)]
Fix partial rebuilds and geometry changes.

When we do partial rebuilds, we need to update the render order
for the entire subtree unconditionally. The previous logic
was to reuse existing render orders beneath batch roots, which
caused overlapping orders to be used.

When geometry of an alpha batch changes, we need to rebuild
everything under the current root. Otherwise, we might end
up with previously batched content which incorrectly
overlaps the changed geometry.

Change-Id: I7b6de5ce34a02434294ac5ae29ae1b87eb3c4464
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
10 years agoMake tiled images not use atlas.
Gunnar Sletta [Thu, 5 Sep 2013 09:13:08 +0000 (11:13 +0200)]
Make tiled images not use atlas.

The imagenode has two code paths, one fast path relying on
GL_REPEAT and one slower based on one quad per internal tile.
The quad path is very costly and should be avoided at all cost
so extract the texture from the atlas when we have tiling.

Task-number: QTBUG-33310
Task-number: QTBUG-29786

Change-Id: I952749e86dc407db43b168db3ab880eb93329a7a
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
10 years agoConvenience function for resetting the OpenGL state.
Gunnar Sletta [Fri, 30 Aug 2013 10:18:42 +0000 (12:18 +0200)]
Convenience function for resetting the OpenGL state.

Change-Id: I222930c74b9153c4d6d2b62afe0cc2906afb61fa
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
10 years agoAdd support for external drag and drop in Quick items.
Chris Meyer [Mon, 26 Aug 2013 23:15:23 +0000 (16:15 -0700)]
Add support for external drag and drop in Quick items.

Add dragType enums with values of None, Automatic, Internal (default).
Setting to Automatic allows startDrag to be called automatically.
Setting to Internal (default) retains old behavior.

Add mimeData to Drag item to enable external drags.

Call startDrag to start drag manually or change from internal drag to
external drag. Added events dragStarted and dragFinished that get
invoked from startDrag.

Mime data must be specified in the mimeData property as
mime-type / data pairs.

Moved QQuickDrag from qquickmousearea* files to qquickdrag* files to
reduce header interdependencies that caused linking errors in other
modules and also to improve code organization.

Allow DropArea to receive and process external data.

Introduced new variable containsDrag to QQuickDropAreaPrivate. This
replaces mimeData which was previously being used to determine if a
drop operation was currently occurring. The problem was that mimeData
was being externally destructed.

Also introduced accessor methods for getting color, html, image, text,
and urls out of the drop. This facilitates dropping of external data of
those types onto a DropArea.

Added example quick/externaldraganddrop.

Task-number: QTBUG-27498
Change-Id: I1420df7c161ea3399e49a23305273e106baa246f
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
10 years agoTests: Re-enabled tests for access type of QMetaObject::Signal
Caroline Chao [Mon, 9 Sep 2013 06:51:40 +0000 (08:51 +0200)]
Tests: Re-enabled tests for access type of QMetaObject::Signal

QMetaMethod::Signal access is now QMetaMethod:Public in qtbase.

Change-Id: If1a3e76889bd25fb20ba6ed1e3b8206053acd8d9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>