blob: 865c0e833fcc93000186df88cd2a3eb3eadb620f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
//
// W A R N I N G
// -------------
//
// This file is not part of the QtGraphs 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.
//
#ifndef QQUICKGRAPHSBARSNODE_P_H
#define QQUICKGRAPHSBARSNODE_P_H
#include "qbar3dseries.h"
#include "qquickgraphsbars_p.h"
#include "qquickgraphsnode_p.h"
#include <private/qgraphsglobal_p.h>
QT_BEGIN_NAMESPACE
class QQuickGraphsBarsNode;
class Q_GRAPHS_EXPORT QQuickGraphsBarsNode : public QQuickGraphsNode
{
Q_OBJECT
Q_PROPERTY(QCategory3DAxis *rowAxis READ rowAxis WRITE setRowAxis NOTIFY rowAxisChanged)
Q_PROPERTY(QValue3DAxis *valueAxis READ valueAxis WRITE setValueAxis NOTIFY valueAxisChanged)
Q_PROPERTY(
QCategory3DAxis *columnAxis READ columnAxis WRITE setColumnAxis NOTIFY columnAxisChanged)
Q_PROPERTY(bool multiSeriesUniform READ isMultiSeriesUniform WRITE setMultiSeriesUniform NOTIFY
multiSeriesUniformChanged)
Q_PROPERTY(float barThickness READ barThickness WRITE setBarThickness NOTIFY barThicknessChanged)
Q_PROPERTY(QSizeF barSpacing READ barSpacing WRITE setBarSpacing NOTIFY barSpacingChanged)
Q_PROPERTY(bool barSpacingRelative READ isBarSpacingRelative WRITE setBarSpacingRelative NOTIFY
barSpacingRelativeChanged)
Q_PROPERTY(QSizeF barSeriesMargin READ barSeriesMargin WRITE setBarSeriesMargin NOTIFY
barSeriesMarginChanged)
Q_PROPERTY(QQmlListProperty<QBar3DSeries> seriesList READ seriesList CONSTANT)
Q_PROPERTY(QBar3DSeries *selectedSeries READ selectedSeries NOTIFY selectedSeriesChanged)
Q_PROPERTY(QBar3DSeries *primarySeries READ primarySeries WRITE setPrimarySeries NOTIFY
primarySeriesChanged)
Q_PROPERTY(float floorLevel READ floorLevel WRITE setFloorLevel NOTIFY floorLevelChanged)
Q_CLASSINFO("DefaultProperty", "seriesList")
QML_ADDED_IN_VERSION(6, 10)
QML_NAMED_ELEMENT(Bars3DNode)
public:
explicit QQuickGraphsBarsNode(QQuick3DNode *parent = nullptr);
~QQuickGraphsBarsNode() override;
void setRowAxis(QCategory3DAxis *axis);
QCategory3DAxis *rowAxis() const;
void setValueAxis(QValue3DAxis *axis);
QValue3DAxis *valueAxis() const;
void setColumnAxis(QCategory3DAxis *axis);
QCategory3DAxis *columnAxis() const;
void setMultiSeriesUniform(bool uniform);
bool isMultiSeriesUniform() const;
void setBarThickness(float thickness);
float barThickness() const;
void setBarSpacing(QSizeF spacing);
QSizeF barSpacing() const;
void setBarSpacingRelative(bool relative);
bool isBarSpacingRelative() const;
void setBarSeriesMargin(QSizeF margin);
QSizeF barSeriesMargin() const;
QBar3DSeries *selectedSeries() const;
void setPrimarySeries(QBar3DSeries *series);
QBar3DSeries *primarySeries() const;
void setFloorLevel(float floorLevel);
float floorLevel() const;
QList<QBar3DSeries *> barSeriesList();
QQmlListProperty<QBar3DSeries> seriesList();
static void appendSeriesFunc(QQmlListProperty<QBar3DSeries> *list, QBar3DSeries *series);
static qsizetype countSeriesFunc(QQmlListProperty<QBar3DSeries> *list);
static QBar3DSeries *atSeriesFunc(QQmlListProperty<QBar3DSeries> *list, qsizetype index);
static void clearSeriesFunc(QQmlListProperty<QBar3DSeries> *list);
Q_INVOKABLE void addSeries(QBar3DSeries *series);
Q_INVOKABLE void removeSeries(QBar3DSeries *series);
Q_INVOKABLE void insertSeries(qsizetype index, QBar3DSeries *series);
Q_INVOKABLE void clearSelection() override;
Q_INVOKABLE bool doPicking(QPointF point) override;
Q_INVOKABLE bool doRayPicking(const QVector3D &origin, const QVector3D &direction) override;
protected:
void componentComplete() override;
Q_SIGNALS:
void rowAxisChanged(QCategory3DAxis *axis);
void valueAxisChanged(QValue3DAxis *axis);
void columnAxisChanged(QCategory3DAxis *axis);
void multiSeriesUniformChanged(bool uniform);
void barThicknessChanged(float thicknessRatio);
void barSpacingChanged(QSizeF spacing);
void barSpacingRelativeChanged(bool relative);
void barSeriesMarginChanged(QSizeF margin);
void primarySeriesChanged(QBar3DSeries *series);
void selectedSeriesChanged(QBar3DSeries *series);
void floorLevelChanged(float level);
private:
QQuickGraphsBars *graphBars();
const QQuickGraphsBars *graphBars() const;
bool m_multiSeriesUniform;
QSizeF m_barSpacing;
float m_barThickness;
bool m_barSpacingRelative;
QSizeF m_barSeriesMargin;
QBar3DSeries *m_primarySeries = nullptr;
QBar3DSeries *m_selectedSeries = nullptr;
float m_floorLevel;
};
QT_END_NAMESPACE
#endif // QQUICKGRAPHSBARSNODE_P_H
|