diff options
author | Juha Vuolle <juha.vuolle@qt.io> | 2023-02-17 13:40:13 +0200 |
---|---|---|
committer | Juha Vuolle <juha.vuolle@qt.io> | 2023-02-22 08:37:59 +0200 |
commit | f5426ddda0c8e022d55290de70f96cb4db1801bb (patch) | |
tree | ad5cf038654f1a69ad1e86aea12bc1513a699202 /examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc | |
parent | 20373cfd4019c66884fb63a4316b1c60ede089ca (diff) |
Move sensor_explorer QML example to manual tests
The example is useful as a sensor testing tool, but less necessary
as an example. The primary demonstrative element of the example was
how to iterate the available sensors, which is covered in a
documentation snippet (followup commit).
This commit also renames the pre-existing widget-based sensor_explorer
manual test to avoid name conflicts, as well as removes the qdoc and qmake
support from the now-a-manual-test application.
Task-number: QTBUG-110939
Pick-to: 6.5
Change-Id: I422f62f852d0a7e40a76f555ec8aa98404164f7a
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
Diffstat (limited to 'examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc')
-rw-r--r-- | examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc | 118 |
1 files changed, 0 insertions, 118 deletions
diff --git a/examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc b/examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc deleted file mode 100644 index f4d7c6bc..00000000 --- a/examples/sensors/sensor_explorer/doc/src/sensor_explorer.qdoc +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright (C) 2017 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \example sensor_explorer - \title Qt Sensors - Explorer QML Example - \ingroup qtsensors-examples - \brief Demonstrates how to read the meta-data of available sensors. - - \image qtsensors-examples-sensor-explorer.png - - The example is implemented as a typical model-view application. The - models are written with C++ and exposed to QML, and the views are - implemented as QML types in the QML application. - - \section1 Exposing and Importing the Models - - The QML models written in C++ are exposed in the project build files - as a \c SensorModels QML module. - - \e CMake: - \code - qt_add_qml_module(sensor_explorer - URI SensorModels - VERSION 1.0 - ) - \endcode - - \e qmake: - \code - CONFIG += qmltypes - QML_IMPORT_NAME = SensorModels - QML_IMPORT_MAJOR_VERSION = 1 - \endcode - - The individual model elements are exposed as part of the model - code by using the \c QML_ELEMENT macro as illustrated here: - \snippet sensor_explorer/sensormodels.h 0 - - To access the models in the QML application, the module is imported - by the application QML: - \snippet sensor_explorer/sensor_explorer.qml 0 - - \section1 Populating the Model of Available Sensors - - The \c AvailableSensorsModel is a list model that provides information on - available sensors on the device. The model is populated once at the - element's construction time: - - \snippet sensor_explorer/sensormodels.cpp 0 - - The model's \c data() function returns a pointer to the requested sensor - object. - - \snippet sensor_explorer/sensormodels.cpp 1 - - Since the sensor (QSensor) is a QObject, the QML is then able to directly - access all metaproperties and -functions directly. - - \note It would be possible to refresh the sensor list later at will, but for - the simplicity of the example such functionality is not exposed to QML. - - \section1 Populating the Model of Sensor Properties - - The \c SensorPropertyModel is a table model that provides individual - sensor's property-value pairs as columns. The column \c 0 provides the - property's name and the column \c 1 provides the property's value. The - population of the properties is done by reading the metadata of the sensors. - The model reads both the sensor's metadata as well as the sensor's reading's - metadata. The code below illustrates the reading of the \c reading metadata: - - \snippet sensor_explorer/sensormodels.cpp 2 - - This metadata access allows providing the model data for all sensors - without prior compile-time understanding of their properties. - - Once the metadata is set, the code then subscribes to the - QSensor::readingChanged() signal to detect sensor reading changes. - Upon such changes (for example a rotation value changes), the model data - is updated accordingly. - - \section1 Viewing the Models - - The QML application is based on two views. The first view shows the available - sensors as a selectable list. The second view shows the selected sensor's - properties and their values. The delegates for viewing the individual items - are simplistic \e {rectangle and text} items. - - Binding the two views functionally together is done by binding the property - model's \c sensor property to the current selection of the available sensors - model: - - \snippet sensor_explorer/sensor_explorer.qml 1 - - When the selected sensor changes, the \c sensor of the property model changes - accordingly. - - The following snippet illustrates how the property view is implemented. For - more details about QML models and views, please see - \l{Models and Views in Qt Quick}. - - \snippet sensor_explorer/sensor_explorer.qml 3 - - For clarity it should be mentioned that the \c display attribute used by - the text element refers to the Qt::DisplayRole role of the model, which is - provided by default by Qt models. - - \section1 Activating the Sensors - - The example has a button for activating and deactivating the currently - selected sensor. The button is enabled only if a sensor is currently - selected, as illustrated below. - - \snippet sensor_explorer/sensor_explorer.qml 2 - - On clicking the button, the sensor's active property is toggled on/off. - -*/ |