aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2021-01-29 13:43:37 +0100
committerUlf Hermann <ulf.hermann@qt.io>2021-02-01 14:02:24 +0100
commita052487c9ccd3697d487f3936f2cfa5b8088edd1 (patch)
treef9f3dfe59aaf1b4ac9ccd5a3683d7bc5ab8bf264
parent4e36c03112e62f3d65391b21c5574cae1a0050c6 (diff)
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 <fabian.kosmale@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
-rw-r--r--src/imports/builtins/builtins.qmltypes38
1 files 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"