diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2016-09-28 11:00:40 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2016-10-13 17:24:41 +0000 |
commit | 1e3df38bcb61054d53b0853fa2648aae87f1044b (patch) | |
tree | a7579d53b693b5c1449bbed5817328f8fb6fe00e /src/quick/items/qquickitemsmodule.cpp | |
parent | b4cdfc4a12d2b9ebc79fe17a2f1aff67bd940d71 (diff) |
Item: sort out mapFromGlobal() and mapToGlobal()
The commit message of 08327da, and the change log of Qt 5.7.0 promised
that mapFromGlobal() and mapToGlobal() were available in QML. But since
the revision 7 of QQuickItem was not registered, this was not entirely
true.
Due to a little quirk in the QML engine's handling of revisioned
methods, mapFromGlobal() and mapToGlobal() were only accessible via
an identifier or property, but not directly:
// works
MouseArea { id: ma; onClicked: console.log(ma.mapToGlobal(Qt.point(mouse.x, mouse.y))) }
// ReferenceError: mapToGlobal is not defined
MouseArea { onClicked: console.log(mapToGlobal(Qt.point(mouse.x, mouse.y))) }
Furhermore, this is inconsistent with how mapFromItem() and mapToItem()
are exposed to QML. Even though the C++ versions of these methods take
QPointF and QRectF, the QML versions take 2-4 number specifying x, y,
width and height:
object mapFromItem(Item item, real x, real y)
object mapFromItem(Item item, real x, real y, real width, real height)
object mapToItem(Item item, real x, real y)
object mapToItem(Item item, real x, real y, real width, real height)
Therefore the signature of mapFromGlobal() and mapToGlobal() should be:
object mapFromGlobal(real x, real y)
object mapToGlobal(real x, real y)
This change implements the QML versions of these methods using
QQmlV4Function, and adds the missing documentation for the QML API.
NOTE: This is QML-only API.
Change-Id: I2ced4836d274c7d1e644ea29fc25dbdd2045001b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/quick/items/qquickitemsmodule.cpp')
-rw-r--r-- | src/quick/items/qquickitemsmodule.cpp | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp index 08d95119d7..efb86aff11 100644 --- a/src/quick/items/qquickitemsmodule.cpp +++ b/src/quick/items/qquickitemsmodule.cpp @@ -281,6 +281,7 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor) QQuickEnterKeyAttached::tr("EnterKey is only available via attached properties")); qmlRegisterType<QQuickShaderEffectSource, 1>(uri, 2, 6, "ShaderEffectSource"); + qmlRegisterType<QQuickItem, 7>(uri, 2, 7, "Item"); qmlRegisterType<QQuickListView, 7>(uri, 2, 7, "ListView"); qmlRegisterType<QQuickGridView, 7>(uri, 2, 7, "GridView"); qmlRegisterType<QQuickTextInput, 7>(uri, 2, 7, "TextInput"); |