summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/ivicore/qface-ivi-addressbook/backend_simulator/backend_simulator.pro2
-rw-r--r--src/plugins/ivivehiclefunctions/ivivehiclefunctions.pro2
-rw-r--r--src/tools/ivigenerator/common/plugins.qmltypes.tpl (renamed from src/tools/ivigenerator/templates_frontend/plugins.qmltypes.tpl)0
-rw-r--r--src/tools/ivigenerator/common/qmldir.tpl (renamed from src/tools/ivigenerator/templates_frontend/qmldir.tpl)0
-rw-r--r--src/tools/ivigenerator/common/simulation.qmltypes.tpl255
-rw-r--r--src/tools/ivigenerator/ivigenerator.pro9
-rw-r--r--src/tools/ivigenerator/templates_backend_simulator.yaml8
7 files changed, 272 insertions, 4 deletions
diff --git a/examples/ivicore/qface-ivi-addressbook/backend_simulator/backend_simulator.pro b/examples/ivicore/qface-ivi-addressbook/backend_simulator/backend_simulator.pro
index a65f7d5..c1cc0e1 100644
--- a/examples/ivicore/qface-ivi-addressbook/backend_simulator/backend_simulator.pro
+++ b/examples/ivicore/qface-ivi-addressbook/backend_simulator/backend_simulator.pro
@@ -23,3 +23,5 @@ INSTALLS += target
#! [0]
RESOURCES += plugin_resource.qrc
#! [0]
+
+QML_IMPORT_PATH = $$OUT_PWD/qml
diff --git a/src/plugins/ivivehiclefunctions/ivivehiclefunctions.pro b/src/plugins/ivivehiclefunctions/ivivehiclefunctions.pro
index c2f3ff3..400191c 100644
--- a/src/plugins/ivivehiclefunctions/ivivehiclefunctions.pro
+++ b/src/plugins/ivivehiclefunctions/ivivehiclefunctions.pro
@@ -21,3 +21,5 @@ load(qt_plugin)
RESOURCES += \
qml.qrc
+
+QML_IMPORT_PATH = $$OUT_PWD/qml
diff --git a/src/tools/ivigenerator/templates_frontend/plugins.qmltypes.tpl b/src/tools/ivigenerator/common/plugins.qmltypes.tpl
index cbe086c..cbe086c 100644
--- a/src/tools/ivigenerator/templates_frontend/plugins.qmltypes.tpl
+++ b/src/tools/ivigenerator/common/plugins.qmltypes.tpl
diff --git a/src/tools/ivigenerator/templates_frontend/qmldir.tpl b/src/tools/ivigenerator/common/qmldir.tpl
index 4ed2cd6..4ed2cd6 100644
--- a/src/tools/ivigenerator/templates_frontend/qmldir.tpl
+++ b/src/tools/ivigenerator/common/qmldir.tpl
diff --git a/src/tools/ivigenerator/common/simulation.qmltypes.tpl b/src/tools/ivigenerator/common/simulation.qmltypes.tpl
new file mode 100644
index 0000000..4ad2f34
--- /dev/null
+++ b/src/tools/ivigenerator/common/simulation.qmltypes.tpl
@@ -0,0 +1,255 @@
+{#
+# Copyright (C) 2019 Luxoft Sweden AB
+# Contact: https://www.qt.io/licensing/
+#
+# This file is part of the QtIvi module of the Qt Toolkit.
+#
+# $QT_BEGIN_LICENSE:LGPL-QTAS$
+# Commercial License Usage
+# Licensees holding valid commercial Qt Automotive Suite licenses may use
+# this file in accordance with the commercial license agreement provided
+# with the Software or, alternatively, in accordance with the terms
+# contained in a written agreement between you and The Qt Company. For
+# licensing terms and conditions see https://www.qt.io/terms-conditions.
+# For further information use the contact form at https://www.qt.io/contact-us.
+#
+# GNU Lesser General Public License Usage
+# Alternatively, this file may be used under the terms of the GNU Lesser
+# General Public License version 3 as published by the Free Software
+# Foundation and appearing in the file LICENSE.LGPL3 included in the
+# packaging of this file. Please review the following information to
+# ensure the GNU Lesser General Public License version 3 requirements
+# will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
+#
+# GNU General Public License Usage
+# Alternatively, this file may be used under the terms of the GNU
+# General Public License version 2.0 or (at your option) the GNU General
+# Public license version 3 or any later version approved by the KDE Free
+# Qt Foundation. The licenses are as published by the Free Software
+# Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
+# included in the packaging of this file. Please review the following
+# information to ensure the GNU General Public License requirements will
+# be met: https://www.gnu.org/licenses/gpl-2.0.html and
+# https://www.gnu.org/licenses/gpl-3.0.html.
+#
+# $QT_END_LICENSE$
+#
+# SPDX-License-Identifier: LGPL-3.0
+#}
+{% import 'qtivi_macros.j2' as ivi %}
+{% set module_qml_name = (module|qml_type).split('.')[-1]|upperfirst %}
+import QtQuick.tooling 1.2
+
+// This file describes the plugin-supplied types contained in the library.
+// It is used for QML tooling purposes only.
+//
+// This file was auto-generated with the QtIvi ivigenerator
+
+Module {
+ dependencies: ["QtIvi 1.0"]
+ Component {
+ name: "IviSimulator"
+ prototype: "QIviSimulationGlobalObject"
+ exports: ["{{module|qml_type}}.simulation/IviSimulator {{module.majorVersion}}.{{module.minorVersion}}"]
+ isCreatable: false
+ isSingleton: true
+
+ Property { name: "simulationData"; type: "QVariantMap" }
+ Method {
+ name: "findData"
+ type: "QVariantMap"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "interface"; type: "string" }
+ }
+ Method {
+ name: "initializeDefault"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "object"; type: "QObject"; isPointer: true }
+ }
+ Method {
+ name: "defaultValue"
+ type: "QVariant"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "zone"; type: "string" }
+ }
+ Method {
+ name: "constraint"
+ type: "string"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "value"; type: "QVariant" }
+ }
+ Method {
+ name: "checkSettings"
+ type: "bool"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "value"; type: "QVariant" }
+ Parameter { name: "zone"; type: "string" }
+ }
+ Method {
+ name: "parseDomainValue"
+ type: "QVariant"
+ Parameter { name: "data"; type: "QVariantMap" }
+ Parameter { name: "domain"; type: "string" }
+ Parameter { name: "zone"; type: "string" }
+ }
+ }
+
+{% for interface in module.interfaces %}
+{% for property in interface.properties %}
+{% if property.type.is_model %}
+ Component {
+ name: "{{property|upperfirst}}ModelBackend"
+ prototype: "{{property|upperfirst}}ModelBackendInterface"
+ exports: ["{{module|qml_type}}.simulation/{{property|upperfirst}}ModelBackend {{module.majorVersion}}.{{module.minorVersion}}"]
+
+ Property { name: "Base"; type: "{{property|upperfirst}}ModelBackend"; isPointer: true }
+
+ Method { name: "initialize" }
+ Method {
+ name: "registerInstance"
+ Parameter { name: "identifier"; type: "QUuid" }
+ }
+ Method {
+ name: "unregisterInstance"
+ Parameter { name: "identifier"; type: "QUuid" }
+ }
+ Method {
+ name: "fetchData"
+ Parameter { name: "identifier"; type: "QUuid" }
+ Parameter { name: "start"; type: "int" }
+ Parameter { name: "count"; type: "int" }
+ }
+ Method {
+ name: "insert"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "{{property.type.nested}}" }
+ }
+ Method {
+ name: "remove"
+ Parameter { name: "index"; type: "int" }
+ }
+ Method {
+ name: "move"
+ Parameter { name: "currentIndex"; type: "int" }
+ Parameter { name: "newIndex"; type: "int" }
+ }
+ Method { name: "reset" }
+ Method {
+ name: "update"
+ Parameter { name: "index"; type: "int" }
+ Parameter { name: "item"; type: "{{property.type.nested}}" }
+ }
+ Method {
+ name: "at"
+ type: "{{property.type.nested}}"
+ Parameter { name: "index"; type: "int" }
+ }
+ }
+
+{% endif %}
+{% endfor %}
+{% set class = interface %}
+{% set interface_zoned = interface.tags.config and interface.tags.config.zoned %}
+{% if interface_zoned %}
+ Component {
+ name: "{{class}}Zone"
+ prototype: "{{class}}Zone"
+ isCreatable: false
+ exports: ["{{module|qml_type}}.simulation/{{class}}Zone {{module.majorVersion}}.{{module.minorVersion}}"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "zones"; type: "QQmlPropertyMap"; isPointer: true }
+{% for property in interface.properties %}
+ Property { name: "{{property}}" {% if property.type.is_model %}; type: "{{property|upperfirst}}ModelBackend"; isPointer: true {% else %} ; type: "{{property|qml_info_type}}" {% endif %} }
+{% endfor %}
+{% for property in interface.properties %}
+ Signal {
+ name: "{{property}}Changed"
+ Parameter { name: "{{property}}" {% if property.type.is_model %}; type: "{{property|upperfirst}}ModelBackend"; isPointer: true {% else %} ; type: "{{property|qml_info_type}}" {% endif %} }
+ }
+{% endfor %}
+{% for property in interface.properties %}
+ Method {
+ name: "{{property|setter_name}}"
+ Parameter { name: "{{property}}" {% if property.type.is_model %}; type: "{{property|upperfirst}}ModelBackend"; isPointer: true {% else %} ; type: "{{property|qml_info_type}}" {% endif %} }
+ }
+{% endfor %}
+ }
+{% endif %}
+ Component {
+ name: "{{class}}Backend"
+ prototype: "{{class}}BackendInterface"
+ exports: ["{{module|qml_type}}.simulation/{{class}}Backend {{module.majorVersion}}.{{module.minorVersion}}"]
+ exportMetaObjectRevisions: [0]
+ Property { name: "Base"; type: "{{class}}Backend"; isPointer: true }
+{% for property in interface.properties %}
+ Property { name: "{{property}}" {% if property.type.is_model %}; type: "{{property|upperfirst}}ModelBackend"; isPointer: true {% else %} ; type: "{{property|qml_info_type}}" {% endif %} }
+{% endfor %}
+{% for property in interface.properties %}
+ Signal {
+ name: "{{property}}Changed"
+ Parameter { name: "{{property}}"; type: "{{property|qml_info_type}}" }
+ }
+{% endfor %}
+{% for signal in interface.signals %}
+ Signal {
+ name: "{{signal}}"
+{% for parameter in signal.parameters %}
+ Parameter { name: "{{parameter}}"; type: "{{parameter|qml_info_type}}" }
+{% endfor %}
+ }
+{% endfor %}
+ Method { name: "initialize" }
+{% for operation in interface.operations %}
+ Method {
+ name: "{{operation}}"
+{# TODO: Once QtCreator can also provide the completion for return types we need to reevaluate this #}
+ type: "QIviPendingReply<{{operation|return_type}}>"
+{% for parameter in operation.parameters %}
+ Parameter { name: "{{parameter}}"; type: "{{parameter|qml_info_type}}" }
+{% endfor %}
+ }
+{% endfor %}
+{% for property in interface.properties %}
+ Method {
+ name: "{{property|setter_name}}"
+ Parameter { name: "{{property}}"; type: "{{property|qml_info_type}}" }
+ }
+{% endfor %}
+ }
+{% endfor %}
+
+ Component {
+ name: "{{module.module_name|upperfirst}}Module"
+ prototype: "QObject"
+ exports: ["{{module|qml_type}}.simulation/{{module_qml_name}} {{module.majorVersion}}.{{module.minorVersion}}"]
+ isCreatable: false
+ isSingleton: true
+ exportMetaObjectRevisions: [0]
+{% for enum in module.enums %}
+ Enum {
+ name: "{{enum|flag_type}}"
+ values: {
+{% for member in enum.members %}
+ "{{member.name}}": {{member.value}}{% if not loop.last %},{% endif %}
+
+{% endfor %}
+ }
+ }
+{% endfor %}
+{% for struct in module.structs %}
+ Method {
+ name: "{{struct|lowerfirst}}"
+ type: "{{struct}}"
+{% for fields in struct.fields %}
+ Parameter { name: "{{fields}}"; type: "{{fields|qml_info_type}}" }
+{% endfor %}
+ }
+{% endfor %}
+{% for struct in module.structs %}
+ Method {
+ name: "{{struct|lowerfirst}}"
+ type: "{{struct}}"
+ }
+{% endfor %}
+ }
+}
diff --git a/src/tools/ivigenerator/ivigenerator.pro b/src/tools/ivigenerator/ivigenerator.pro
index cfd64cc..02afe56 100644
--- a/src/tools/ivigenerator/ivigenerator.pro
+++ b/src/tools/ivigenerator/ivigenerator.pro
@@ -13,7 +13,10 @@ CONFIG -= debug_and_release
common.files += \
common/generated_comment.cpp.tpl \
- common/qtivi_macros.j2
+ common/qtivi_macros.j2 \
+ common/simulation.qmltypes.tpl \
+ common/plugins.qmltypes.tpl \
+ common/qmldir.tpl
common.path = $$[QT_HOST_BINS]/ivigenerator/common
templates_frontend.files += \
@@ -30,9 +33,7 @@ templates_frontend.files += \
templates_frontend/modulefactory.cpp.tpl \
templates_frontend/modulefactory.h.tpl \
templates_frontend/struct.cpp.tpl \
- templates_frontend/struct.h.tpl \
- templates_frontend/plugins.qmltypes.tpl \
- templates_frontend/qmldir.tpl
+ templates_frontend/struct.h.tpl
templates_frontend.path = $$[QT_HOST_BINS]/ivigenerator/templates_frontend
templates_backend_simulator.files += \
diff --git a/src/tools/ivigenerator/templates_backend_simulator.yaml b/src/tools/ivigenerator/templates_backend_simulator.yaml
index f9749d5..c93f586 100644
--- a/src/tools/ivigenerator/templates_backend_simulator.yaml
+++ b/src/tools/ivigenerator/templates_backend_simulator.yaml
@@ -14,6 +14,14 @@ generate_rules:
template_file: "data.qrc.tpl"
- dest_file: "{{srcBase|lower}}.pri"
template_file: "plugin.pri.tpl"
+ - dest_file: "qml/{{module|qml_type|replace('.', '/')}}/simulation/plugins.qmltypes"
+ template_file: "simulation.qmltypes.tpl"
+ - dest_file: "qml/{{module|qml_type|replace('.', '/')}}/simulation/qmldir"
+ template_file: "qmldir.tpl"
+ - dest_file: "qml/{{module|qml_type|replace('.', '/')}}/plugins.qmltypes"
+ template_file: "plugins.qmltypes.tpl"
+ - dest_file: "qml/{{module|qml_type|replace('.', '/')}}/qmldir"
+ template_file: "qmldir.tpl"
interface_rules:
- dest_file: '{{interface|lower}}backend.h'
template_file: 'backend.h.tpl'