diff options
author | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2023-01-18 10:18:07 +0200 |
---|---|---|
committer | Tomi Korpipaa <tomi.korpipaa@qt.io> | 2023-01-18 12:56:55 +0200 |
commit | a1f26581e2d266cc23f31ec481d6c5b1154b42ab (patch) | |
tree | 5c4acc6d4a91c091ddceeff67d771a5ea6976d75 /examples | |
parent | fd448f47f973c31a5c920824caf4a32e1e01d0e8 (diff) |
Fix qmllint warnings in qml3doscilloscope
Pick-to: 6.5
Task-number: QTBUG-110274
Change-Id: Iea96521c55007faebc960ffa1d103477062cf7bc
Reviewed-by: Kwanghyo Park <kwanghyo.park@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Diffstat (limited to 'examples')
5 files changed, 73 insertions, 49 deletions
diff --git a/examples/datavisualization/qml3doscilloscope/CMakeLists.txt b/examples/datavisualization/qml3doscilloscope/CMakeLists.txt index 4b331820..3db581f6 100644 --- a/examples/datavisualization/qml3doscilloscope/CMakeLists.txt +++ b/examples/datavisualization/qml3doscilloscope/CMakeLists.txt @@ -23,7 +23,6 @@ find_package(Qt6 COMPONENTS Quick) find_package(Qt6 COMPONENTS DataVisualization) qt_add_executable(qml3doscilloscope - datasource.cpp datasource.h main.cpp ) set_target_properties(qml3doscilloscope PROPERTIES @@ -38,15 +37,14 @@ target_link_libraries(qml3doscilloscope PUBLIC Qt::DataVisualization ) -set(qml3doscilloscope_resource_files - "qml/qml3doscilloscope/main.qml" -) - -qt6_add_resources(qml3doscilloscope "qml3doscilloscope" - PREFIX - "/" - FILES - ${qml3doscilloscope_resource_files} +qt6_add_qml_module(qml3doscilloscope + URI DataSource + VERSION 1.0 + NO_RESOURCE_TARGET_PATH + SOURCES + datasource.cpp datasource.h + QML_FILES + qml/qml3doscilloscope/main.qml ) install(TARGETS qml3doscilloscope diff --git a/examples/datavisualization/qml3doscilloscope/datasource.h b/examples/datavisualization/qml3doscilloscope/datasource.h index eb202c05..1544b66b 100644 --- a/examples/datavisualization/qml3doscilloscope/datasource.h +++ b/examples/datavisualization/qml3doscilloscope/datasource.h @@ -5,20 +5,24 @@ #define DATASOURCE_H #include <QtDataVisualization/QSurface3DSeries> +#include <QtQml/qqmlregistration.h> +//! [1] class DataSource : public QObject { Q_OBJECT + QML_ELEMENT +//! [1] public: explicit DataSource(QObject *parent = 0); virtual ~DataSource(); //! [0] -public Q_SLOTS: - void generateData(int cacheCount, int rowCount, int columnCount, - float xMin, float xMax, float yMin, float yMax, float zMin, float zMax); + Q_INVOKABLE void generateData(int cacheCount, int rowCount, int columnCount, + float xMin, float xMax, float yMin, float yMax, + float zMin, float zMax); - void update(QSurface3DSeries *series); + Q_INVOKABLE void update(QSurface3DSeries *series); //! [0] private: void clearData(); diff --git a/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc b/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc index 17defa5e..7acfc40b 100644 --- a/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc +++ b/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc @@ -27,7 +27,7 @@ To overcome this limitation, we implement a simple \c DataSource class in C++ to populate the data proxy of the series. - The \c DataSource class provides three methods that can be called from QML: + The \c DataSource class provides two methods that can be called from QML: \snippet qml3doscilloscope/datasource.h 0 @@ -47,9 +47,23 @@ the graph to render the data. To be able to access the \c DataSource methods from QML, we need to expose it. We do this by - defining a context property in application main: + making the DataSource a QML_ELEMENT: - \snippet qml3doscilloscope/main.cpp 0 + \snippet qml3doscilloscope/datasource.h 1 + + In addition to that, it needs to be declared as a QML module in the CMakeLists.txt: + + \badcode + qt6_add_qml_module(qml3doscilloscope + URI DataSource + VERSION 1.0 + NO_RESOURCE_TARGET_PATH + SOURCES + datasource.cpp datasource.h + QML_FILES + qml/qml3doscilloscope/main.qml + ) + \endcode To make it possible to use QSurface3DSeries pointers as parameters on the \c DataSource class methods on all environments and builds, we need to make sure the meta @@ -61,7 +75,14 @@ \section1 QML - In the QML codes, we define a Surface3D graph normally and give it a Surface3DSeries: + To be able to use the \c{DataSource}, we need to import the QML module, and create an + instance of it to be used: + + \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 0 + \dots 0 + \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 5 + + We define a Surface3D graph normally and give it a Surface3DSeries: \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 0 diff --git a/examples/datavisualization/qml3doscilloscope/main.cpp b/examples/datavisualization/qml3doscilloscope/main.cpp index aa1e1841..a6bd20f3 100644 --- a/examples/datavisualization/qml3doscilloscope/main.cpp +++ b/examples/datavisualization/qml3doscilloscope/main.cpp @@ -1,8 +1,6 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only -#include "datasource.h" - //! [2] #include <QtDataVisualization/qutils.h> //! [2] @@ -38,11 +36,6 @@ int main(int argc, char *argv[]) viewer.setTitle(QStringLiteral("Oscilloscope example")); - //! [0] - DataSource dataSource; - viewer.rootContext()->setContextProperty("dataSource", &dataSource); - //! [0] - viewer.setSource(QUrl("qrc:/qml/qml3doscilloscope/main.qml")); viewer.setResizeMode(QQuickView::SizeRootObjectToView); viewer.show(); diff --git a/examples/datavisualization/qml3doscilloscope/qml/qml3doscilloscope/main.qml b/examples/datavisualization/qml3doscilloscope/qml/qml3doscilloscope/main.qml index 6089447a..b0457656 100644 --- a/examples/datavisualization/qml3doscilloscope/qml/qml3doscilloscope/main.qml +++ b/examples/datavisualization/qml3doscilloscope/qml/qml3doscilloscope/main.qml @@ -4,7 +4,9 @@ import QtQuick import QtQuick.Controls import QtDataVisualization -import "." +//! [1] +import DataSource +//! [1] Item { id: mainView @@ -22,6 +24,12 @@ Item { generateData() } + //![5] + DataSource { + id: dataSource + } + //![5] + Item { id: dataView anchors.bottom: parent.bottom @@ -61,14 +69,14 @@ Item { //! [0] Surface3DSeries { id: surfaceSeries - drawMode: Surface3DSeries.DrawSurface; - flatShadingEnabled: false; + drawMode: Surface3DSeries.DrawSurfaceAndWireframe + flatShadingEnabled: false meshSmooth: true itemLabelFormat: "@xLabel, @zLabel: @yLabel" itemLabelVisible: false onItemLabelChanged: { - if (surfaceSeries.selectedPoint === surfaceSeries.invalidSelectionPosition) + if (surfaceSeries.selectedPoint == surfaceSeries.invalidSelectionPosition) selectionText.text = "No selection" else selectionText.text = surfaceSeries.itemLabel @@ -94,8 +102,8 @@ Item { Rectangle { id: controlArea - height: portraitMode ? flatShadingToggle.implicitHeight * 7 - : flatShadingToggle.implicitHeight * 2 + height: mainView.portraitMode ? flatShadingToggle.implicitHeight * 7 + : flatShadingToggle.implicitHeight * 2 anchors.left: parent.left anchors.top: parent.top anchors.right: parent.right @@ -104,7 +112,7 @@ Item { // Samples Rectangle { id: samples - width: portraitMode ? mainView.width : mainView.width / 4 + width: mainView.portraitMode ? mainView.width : mainView.width / 4 height: flatShadingToggle.implicitHeight anchors.left: parent.left anchors.top: parent.top @@ -138,10 +146,10 @@ Item { // Frequency Rectangle { id: frequency - width: portraitMode ? mainView.width : mainView.width / 4 + width: mainView.portraitMode ? mainView.width : mainView.width / 4 height: flatShadingToggle.implicitHeight - anchors.left: portraitMode ? parent.left : samples.right - anchors.top: portraitMode ? samples.bottom : parent.top + anchors.left: mainView.portraitMode ? parent.left : samples.right + anchors.top: mainView.portraitMode ? samples.bottom : parent.top border.color: "gray" border.width: 1 @@ -172,10 +180,10 @@ Item { // FPS Rectangle { id: fpsindicator - width: portraitMode ? mainView.width : mainView.width / 4 + width: mainView.portraitMode ? mainView.width : mainView.width / 4 height: flatShadingToggle.implicitHeight - anchors.left: portraitMode ? parent.left : frequency.right - anchors.top: portraitMode ? frequency.bottom : parent.top + anchors.left: mainView.portraitMode ? parent.left : frequency.right + anchors.top: mainView.portraitMode ? frequency.bottom : parent.top border.color: "gray" border.width: 1 @@ -192,10 +200,10 @@ Item { // Selection Rectangle { id: selection - width: portraitMode ? mainView.width : mainView.width / 4 + width: mainView.portraitMode ? mainView.width : mainView.width / 4 height: flatShadingToggle.implicitHeight - anchors.left: portraitMode ? parent.left : fpsindicator.right - anchors.top: portraitMode ? fpsindicator.bottom : parent.top + anchors.left: mainView.portraitMode ? parent.left : fpsindicator.right + anchors.top: mainView.portraitMode ? fpsindicator.bottom : parent.top border.color: "gray" border.width: 1 @@ -213,7 +221,7 @@ Item { // Flat shading Button { id: flatShadingToggle - width: portraitMode ? mainView.width : mainView.width / 3 + width: mainView.portraitMode ? mainView.width : mainView.width / 3 anchors.left: parent.left anchors.top: selection.bottom @@ -234,11 +242,11 @@ Item { // Surface grid Button { id: surfaceGridToggle - width: portraitMode ? mainView.width : mainView.width / 3 - anchors.left: portraitMode ? parent.left : flatShadingToggle.right - anchors.top: portraitMode ? flatShadingToggle.bottom : selection.bottom + width: mainView.portraitMode ? mainView.width : mainView.width / 3 + anchors.left: mainView.portraitMode ? parent.left : flatShadingToggle.right + anchors.top: mainView.portraitMode ? flatShadingToggle.bottom : selection.bottom - text: "Show Surface Grid" + text: "Hide Surface Grid" onClicked: { if (surfaceSeries.drawMode & Surface3DSeries.DrawWireframe) { @@ -254,9 +262,9 @@ Item { // Exit Button { id: exitButton - width: portraitMode ? mainView.width : mainView.width / 3 - anchors.left: portraitMode ? parent.left : surfaceGridToggle.right - anchors.top: portraitMode ? surfaceGridToggle.bottom : selection.bottom + width: mainView.portraitMode ? mainView.width : mainView.width / 3 + anchors.left: mainView.portraitMode ? parent.left : surfaceGridToggle.right + anchors.top: mainView.portraitMode ? surfaceGridToggle.bottom : selection.bottom text: "Quit" |