From 29f28f586ba4060c4cc42216cd5d374f89f3b0fc Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Tue, 16 Jan 2018 11:49:30 +0100 Subject: Add a "Getting Started" guide for the Qt IVI Generator Change-Id: I94d7b76030de854086e915c2d9184a96360832f3 Reviewed-by: Robert Griebl --- .../qtivi/src/ivigenerator/generator-usage.qdoc | 9 ++- .../qtivi/src/ivigenerator/getting-started.qdoc | 77 ++++++++++++++++++++++ src/doc/qtivi/src/qtivi.qdoc | 1 + 3 files changed, 84 insertions(+), 3 deletions(-) create mode 100644 src/doc/qtivi/src/ivigenerator/getting-started.qdoc diff --git a/src/doc/qtivi/src/ivigenerator/generator-usage.qdoc b/src/doc/qtivi/src/ivigenerator/generator-usage.qdoc index 8055526..956fcaf 100644 --- a/src/doc/qtivi/src/ivigenerator/generator-usage.qdoc +++ b/src/doc/qtivi/src/ivigenerator/generator-usage.qdoc @@ -72,15 +72,18 @@ based on the \e {--format} option value. These are: \table \row - \li frontend + \li \l {frontend} + \target frontend-template \li Generates a developer facing API using base classes from qtivicore and the \l {Dynamic Backend System} \row - \li backend_simulator + \li \l {Backend Simulator} {backend_simulator} + \target backend-simulator-template \li Generates a simulation backend for the API generated by the "frontend" option. This backend serves as a mock implementation. \row - \li control_panel + \li \l {Control Panel} {control_panel} + \target control-panel-template \li Generates a controller application, consisting of an UI and a C++ plugin, which communicates to the simulation backend generated from the same qface file using QtSimulator. \row diff --git a/src/doc/qtivi/src/ivigenerator/getting-started.qdoc b/src/doc/qtivi/src/ivigenerator/getting-started.qdoc new file mode 100644 index 0000000..0249f2c --- /dev/null +++ b/src/doc/qtivi/src/ivigenerator/getting-started.qdoc @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2018 Pelagicore AG +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the QtIvi module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:FDL-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 Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ +/*! +\page gettingstartedivigenerator.html +\title Getting Started Using the Qt IVI Generator + +This guide explains how to get started with the Qt IVI Generator. +The generator is used to generate source code from an IDL file. It supports +multiple templates to select what kind of code should be generated. + +The Qt IVI Generator can be found inside the \c bin folder of your Qt installation. +If it is not available, please make sure all prerequisites listed in the qmake +configuration summary are met. See \l {Configuration} for more information on how +Qt IVI can be configured. + +\section1 Basics + +The generator takes an IDL file as input for generating its source code. The +following code shows a minimal IDL file: + +\code +module my.idl 1.0 + +interface MyInterface { + property int value; + void increment(); + signal valueIncremented(int newValue); +} +\endcode + +The IDL pretty much self-explanatory: it defines a new module (namespace) +\e my.idl in version \e 1.0. Inside there should be an interface called \e MyInterface. +The interface provides a property storing a value and a function to increment and notify +the user. The \l {QFace IDL syntax} page provides a more detailed documentation about the IDL. + +Using the previously defined IDL file, the \l {frontend-template}{frontend} template can be used to generate +a library providing an implementation of \e MyInterface. The generated class will use the +\l {Dynamic backend System} provided by Qt IVI for an abstraction of \e frontend and \e backend code. + +The actual implementation of the class behavior is done inside a \e backend plugin. A very basic +backend plugin can be generated by using the \l {backend-simulator-template}{backend_simulator} template. For more information +how Qt locates and loads its plugins, please see \l {How to Create Qt Plugins} {here}. + +For more in-depth information, the \l {Qt IVI Generator Example} comes with a step by step documentation. +*/ + +/* +This provides ideas on how this page should be extended in the future. + +\section1 Generating a complete qt module +\section1 Extending the autogenerator +\section1 Android Deployment +*/ diff --git a/src/doc/qtivi/src/qtivi.qdoc b/src/doc/qtivi/src/qtivi.qdoc index c51aa83..d07039f 100644 --- a/src/doc/qtivi/src/qtivi.qdoc +++ b/src/doc/qtivi/src/qtivi.qdoc @@ -67,6 +67,7 @@ \section1 Getting Started \list + \li \l {Getting Started Using the Qt IVI Generator} \li \l {Qt IVI Vehicle Functions C++ Classes#Getting Started} {Getting started with Qt IVI Vehicle Functions (C++)} \li \l {Qt IVI Vehicle Functions QML Types#Getting Started} -- cgit v1.2.1