diff options
6 files changed, 49 insertions, 3 deletions
diff --git a/src/datavisualization/CMakeLists.txt b/src/datavisualization/CMakeLists.txt index ca75d284..74b76cc3 100644 --- a/src/datavisualization/CMakeLists.txt +++ b/src/datavisualization/CMakeLists.txt @@ -34,6 +34,7 @@ qt_internal_add_module(DataVisualization data/scatteritemmodelhandler.cpp data/scatteritemmodelhandler_p.h data/scatterrenderitem.cpp data/scatterrenderitem_p.h data/surfaceitemmodelhandler.cpp data/surfaceitemmodelhandler_p.h + engine/abstractdeclarativeinterface.cpp engine/abstractdeclarativeinterface_p.h engine/abstract3dcontroller.cpp engine/abstract3dcontroller_p.h engine/abstract3drenderer.cpp engine/abstract3drenderer_p.h engine/axisrendercache.cpp engine/axisrendercache_p.h diff --git a/src/datavisualization/engine/abstract3dcontroller_p.h b/src/datavisualization/engine/abstract3dcontroller_p.h index 279524bf..5081d37f 100644 --- a/src/datavisualization/engine/abstract3dcontroller_p.h +++ b/src/datavisualization/engine/abstract3dcontroller_p.h @@ -31,6 +31,7 @@ QT_FORWARD_DECLARE_CLASS(QOpenGLFramebufferObject) QT_BEGIN_NAMESPACE +class AbstractDeclarativeInterface; class AbstractDeclarative; class Abstract3DRenderer; class QAbstract3DSeries; @@ -201,7 +202,7 @@ protected: qreal m_margin; QMutex m_renderMutex; - AbstractDeclarative *m_qml = nullptr; + AbstractDeclarativeInterface *m_qml = nullptr; explicit Abstract3DController(QRect initialViewport, Q3DScene *scene, QObject *parent = 0); diff --git a/src/datavisualization/engine/abstractdeclarativeinterface.cpp b/src/datavisualization/engine/abstractdeclarativeinterface.cpp new file mode 100644 index 00000000..8a8b80fd --- /dev/null +++ b/src/datavisualization/engine/abstractdeclarativeinterface.cpp @@ -0,0 +1,11 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QtDataVisualization/private/abstractdeclarativeinterface_p.h> + +QT_BEGIN_NAMESPACE + +AbstractDeclarativeInterface::~AbstractDeclarativeInterface() + = default; + +QT_END_NAMESPACE diff --git a/src/datavisualization/engine/abstractdeclarativeinterface_p.h b/src/datavisualization/engine/abstractdeclarativeinterface_p.h new file mode 100644 index 00000000..8ea01bb1 --- /dev/null +++ b/src/datavisualization/engine/abstractdeclarativeinterface_p.h @@ -0,0 +1,31 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef ABSTRACTDECLARATIVEINTERFACE_P_H +#define ABSTRACTDECLARATIVEINTERFACE_P_H + +#include <QtDataVisualization/qdatavisualizationglobal.h> + +// +// W A R N I N G +// ------------- +// +// This file is not part of the QtDataVisualization API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +QT_BEGIN_NAMESPACE + +class Q_DATAVISUALIZATION_EXPORT AbstractDeclarativeInterface +{ +protected: + ~AbstractDeclarativeInterface(); +public: + virtual bool isReady() const = 0; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/datavisualizationqml/abstractdeclarative.cpp b/src/datavisualizationqml/abstractdeclarative.cpp index ca634ec2..5358050a 100644 --- a/src/datavisualizationqml/abstractdeclarative.cpp +++ b/src/datavisualizationqml/abstractdeclarative.cpp @@ -24,6 +24,7 @@ static QHash<AbstractDeclarative *, QQuickWindow *> graphWindowList; AbstractDeclarative::AbstractDeclarative(QQuickItem *parent) : QQuickItem(parent), + AbstractDeclarativeInterface(), m_controller(0), m_contextWindow(0), m_renderMode(RenderIndirect), diff --git a/src/datavisualizationqml/abstractdeclarative_p.h b/src/datavisualizationqml/abstractdeclarative_p.h index d5712bf4..f7b7e4cd 100644 --- a/src/datavisualizationqml/abstractdeclarative_p.h +++ b/src/datavisualizationqml/abstractdeclarative_p.h @@ -18,6 +18,7 @@ #include <private/datavisualizationglobal_p.h> #include <private/abstract3dcontroller_p.h> +#include <QtDataVisualization/private/abstractdeclarativeinterface_p.h> #include <QtQuick/QQuickItem> #include <QtCore/QPointer> @@ -29,7 +30,7 @@ class GLStateStore; QT_BEGIN_NAMESPACE -class AbstractDeclarative : public QQuickItem +class AbstractDeclarative : public QQuickItem, public AbstractDeclarativeInterface { Q_OBJECT Q_PROPERTY(SelectionFlags selectionMode READ selectionMode WRITE setSelectionMode NOTIFY selectionModeChanged) @@ -213,7 +214,7 @@ public: QMutex *mutex() { return &m_mutex; } - bool isReady() { return isComponentComplete(); } + bool isReady() const override { return isComponentComplete(); } public Q_SLOTS: virtual void handleAxisXChanged(QAbstract3DAxis *axis) = 0; |