1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4//
5// W A R N I N G
6// -------------
7//
8// This file is not part of the QtGraphs API. It exists purely as an
9// implementation detail. This header file may change from version to
10// version without notice, or even be removed.
11//
12// We mean it.
13
14#ifndef QQUICKGRAPHSSCATTERSERIES_P_H
15#define QQUICKGRAPHSSCATTERSERIES_P_H
16
17#include "common/theme/qquickgraphscolor_p.h"
18#include "gradientholder_p.h"
19#include "qscatter3dseries.h"
20
21#include <QtQml/qqml.h>
22#include <QtQuick/private/qquickrectangle_p.h>
23#include <private/qgraphsglobal_p.h>
24#include <private/qgraphstheme_p.h>
25
26QT_BEGIN_NAMESPACE
27
28class QQuickGraphsScatter3DSeries : public QScatter3DSeries
29{
30 Q_OBJECT
31 Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren CONSTANT)
32 Q_PROPERTY(QQuickGradient *baseGradient READ baseGradient WRITE setBaseGradient NOTIFY
33 baseGradientChanged FINAL)
34 Q_PROPERTY(QQuickGradient *singleHighlightGradient READ singleHighlightGradient WRITE
35 setSingleHighlightGradient NOTIFY singleHighlightGradientChanged FINAL)
36 Q_PROPERTY(QQuickGradient *multiHighlightGradient READ multiHighlightGradient WRITE
37 setMultiHighlightGradient NOTIFY multiHighlightGradientChanged FINAL)
38 // This is static method in parent class, overload as constant property for qml.
39 Q_PROPERTY(qsizetype invalidSelectionIndex READ invalidSelectionIndex CONSTANT)
40 Q_CLASSINFO("DefaultProperty", "seriesChildren")
41
42 QML_NAMED_ELEMENT(Scatter3DSeries)
43
44public:
45 QQuickGraphsScatter3DSeries(QObject *parent = 0);
46 ~QQuickGraphsScatter3DSeries() override;
47
48 QQmlListProperty<QObject> seriesChildren();
49 static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element);
50
51 void setBaseGradient(QQuickGradient *gradient);
52 QQuickGradient *baseGradient() const;
53 void setSingleHighlightGradient(QQuickGradient *gradient);
54 QQuickGradient *singleHighlightGradient() const;
55 void setMultiHighlightGradient(QQuickGradient *gradient);
56 QQuickGradient *multiHighlightGradient() const;
57
58 qsizetype invalidSelectionIndex() const;
59
60public Q_SLOTS:
61 void handleBaseGradientUpdate();
62 void handleSingleHighlightGradientUpdate();
63 void handleMultiHighlightGradientUpdate();
64
65Q_SIGNALS:
66 void baseGradientChanged(QQuickGradient *gradient);
67 void singleHighlightGradientChanged(QQuickGradient *gradient);
68 void multiHighlightGradientChanged(QQuickGradient *gradient);
69
70private:
71 GradientHolder m_gradients;
72
73 void setGradientHelper(QQuickGradient *newGradient,
74 QQuickGradient *memberGradient,
75 GradientType type);
76};
77
78QT_END_NAMESPACE
79
80#endif
81

Provided by KDAB

Privacy Policy
Learn Advanced QML with KDAB
Find out more

source code of qtgraphs/src/graphs3d/qml/qquickgraphsscatterseries_p.h