summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTomi Korpipaa <tomi.korpipaa@qt.io>2023-01-18 10:18:07 +0200
committerTomi Korpipaa <tomi.korpipaa@qt.io>2023-01-18 12:56:55 +0200
commita1f26581e2d266cc23f31ec481d6c5b1154b42ab (patch)
tree5c4acc6d4a91c091ddceeff67d771a5ea6976d75 /examples
parentfd448f47f973c31a5c920824caf4a32e1e01d0e8 (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')
-rw-r--r--examples/datavisualization/qml3doscilloscope/CMakeLists.txt18
-rw-r--r--examples/datavisualization/qml3doscilloscope/datasource.h12
-rw-r--r--examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc29
-rw-r--r--examples/datavisualization/qml3doscilloscope/main.cpp7
-rw-r--r--examples/datavisualization/qml3doscilloscope/qml/qml3doscilloscope/main.qml56
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"