From a052487c9ccd3697d487f3936f2cfa5b8088edd1 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Fri, 29 Jan 2021 13:43:37 +0100 Subject: Use QDateTime as internal name for the builtin date type The internal name serves as hint to the C++ class. This is the same as the internal name of url, for example. The internal name is not exposed to QML. So, from a language perspective, we can choose any name there. All the JavaScript methods of the Date prototype are not actually available on QDateTime. Due to the magic conversions the QML engine does in the background, much of them work in practice. Yet, when generating C++ code, we would need another conversion step to make them available. In order to express part of this, we introduce a second type for the JavaScript Date object. In the future we might link them via some "converts to" property. Then tools could know that creating a QJSManagedValue from a QDateTime (or QUrl etc) results in a richer API with additional methods. Change-Id: I13f66a37d985dbd3581d8bb84937adbbc31286fd Reviewed-by: Fabian Kosmale Reviewed-by: Andrei Golubev --- src/imports/builtins/builtins.qmltypes | 38 +++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/imports/builtins/builtins.qmltypes b/src/imports/builtins/builtins.qmltypes index 53c97e5b20..4d493193dc 100644 --- a/src/imports/builtins/builtins.qmltypes +++ b/src/imports/builtins/builtins.qmltypes @@ -1348,7 +1348,7 @@ Module { Method { name: "setDate" - type: "date" + type: "Date" Parameter { name: "date" @@ -1359,7 +1359,7 @@ Module { Method { name: "setFullYear" - type: "date" + type: "Date" Parameter { name: "year" @@ -1380,7 +1380,7 @@ Module { Method { name: "setHours" - type: "date" + type: "Date" Parameter { name: "hour" @@ -1406,7 +1406,7 @@ Module { Method { name: "setMilliseconds" - type: "date" + type: "Date" Parameter { name: "ms" @@ -1417,7 +1417,7 @@ Module { Method { name: "setMinutes" - type: "date" + type: "Date" Parameter { name: "min" @@ -1438,7 +1438,7 @@ Module { Method { name: "setMonth" - type: "date" + type: "Date" Parameter { name: "month" @@ -1454,7 +1454,7 @@ Module { Method { name: "setSeconds" - type: "date" + type: "Date" Parameter { name: "seconds" @@ -1470,7 +1470,7 @@ Module { Method { name: "setTime" - type: "date" + type: "Date" Parameter { name: "time" @@ -1481,7 +1481,7 @@ Module { Method { name: "setUTCDate" - type: "date" + type: "Date" Parameter { name: "date" @@ -1492,7 +1492,7 @@ Module { Method { name: "setUTCFullYear" - type: "date" + type: "Date" Parameter { name: "year" @@ -1513,7 +1513,7 @@ Module { Method { name: "setUTCHours" - type: "date" + type: "Date" Parameter { name: "hour" @@ -1539,7 +1539,7 @@ Module { Method { name: "setUTCMilliseconds" - type: "date" + type: "Date" Parameter { name: "ms" @@ -1550,7 +1550,7 @@ Module { Method { name: "setUTCMinutes" - type: "date" + type: "Date" Parameter { name: "min" @@ -1571,7 +1571,7 @@ Module { Method { name: "setUTCMonth" - type: "date" + type: "Date" Parameter { name: "month" @@ -1587,7 +1587,7 @@ Module { Method { name: "setUTCSeconds" - type: "date" + type: "Date" Parameter { name: "seconds" @@ -1703,14 +1703,18 @@ Module { Method { name: "valueOf" - type: "date" + type: "Date" } } Component { - name: "date" + name: "Date" prototype: "DatePrototype" + } + + Component { + name: "QDateTime" exports: ["QML/date 1.0"] exportMetaObjectRevisions: [256] accessSemantics: "value" -- cgit v1.2.3