diff options
author | Sakaria Pouke <[email protected]> | 2025-05-21 12:22:43 +0300 |
---|---|---|
committer | Sami Varanka <[email protected]> | 2025-06-01 09:19:10 +0300 |
commit | 52a361988d84ed893ac4cea36fe11e49d2c58fa5 (patch) | |
tree | df1f384507d2700ce4ffcff7babe57cbc5e6883f /src/graphs3d/data | |
parent | 65f74386ef747a1ac6c0d223191cc20aa2feb718 (diff) |
Fixes: QTBUG-136978
Change-Id: I57dc414e28742b5cce2ed6facae745ce90881a99
Reviewed-by: Sami Varanka <[email protected]>
Diffstat (limited to 'src/graphs3d/data')
-rw-r--r-- | src/graphs3d/data/qabstract3dseries.cpp | 59 | ||||
-rw-r--r-- | src/graphs3d/data/qabstract3dseries.h | 11 | ||||
-rw-r--r-- | src/graphs3d/data/qabstract3dseries_p.h | 6 |
3 files changed, 76 insertions, 0 deletions
diff --git a/src/graphs3d/data/qabstract3dseries.cpp b/src/graphs3d/data/qabstract3dseries.cpp index 28c86e37..f2d8930a 100644 --- a/src/graphs3d/data/qabstract3dseries.cpp +++ b/src/graphs3d/data/qabstract3dseries.cpp @@ -60,6 +60,7 @@ QT_BEGIN_NAMESPACE * Series type for Q3DSurfaceWidgetItem. */ + /*! * \enum QAbstract3DSeries::Mesh * @@ -94,6 +95,17 @@ QT_BEGIN_NAMESPACE */ /*! + * \enum QAbstract3DSeries::LightingMode + * + * Predefined lighting modes + * + * \value Shaded + * Graphs respond to real time lighting + * \value Unshaded + * Graphs do not respond to real time lighting + */ + +/*! * \qmlproperty Abstract3DSeries.SeriesType Abstract3DSeries::type * The type of the series. One of the QAbstract3DSeries::SeriesType values. * @@ -217,6 +229,16 @@ QT_BEGIN_NAMESPACE */ /*! + * \qmlproperty Abstract3DSeries.LightingMode Abstract3DSeries::lightingMode + * \since 6.10 + * + * Sets the lightingMode of the items in the series. + * The default value is \l{QAbstract3DSeries::LightingMode::Shaded} + * + * \sa QAbstract3DSeries::LightingMode + */ + +/*! * \qmlproperty string Abstract3DSeries::name * * The series name. @@ -320,6 +342,12 @@ QT_BEGIN_NAMESPACE This signal is emitted when multiHighlightGradient changes to \a gradient. */ /*! + \qmlsignal Abstract3DSeries::lightingModeChanged(Abstract3DSeries.LightingMode lightingMode) + + This signal is emitted when \l lightingMode changes to \a lightingMode. + \since 6.10 +*/ +/*! \qmlsignal Abstract3DSeries::nameChanged(string name) This signal is emitted when \l name changes to \a name. @@ -748,6 +776,28 @@ QLinearGradient QAbstract3DSeries::multiHighlightGradient() const } /*! + * \property QAbstract3DSeries::lightingMode + * + * \brief The LightingMode of the series + * \since 6.10 + * + */ +void QAbstract3DSeries::setLightingMode(QAbstract3DSeries::LightingMode LightingMode) +{ + Q_D(QAbstract3DSeries); + if (d->m_lightingMode != LightingMode) { + d->setLightingMode(LightingMode); + emit lightingModeChanged(LightingMode); + } +} + +QAbstract3DSeries::LightingMode QAbstract3DSeries::lightingMode() const +{ + Q_D(const QAbstract3DSeries); + return d->m_lightingMode; +} + +/*! * \property QAbstract3DSeries::name * * \brief The series name. @@ -837,6 +887,7 @@ QAbstract3DSeriesPrivate::QAbstract3DSeriesPrivate(QAbstract3DSeries::SeriesType , m_multiHighlightColor(Qt::black) , m_itemLabelDirty(true) , m_itemLabelVisible(true) + , m_lightingMode(QAbstract3DSeries::LightingMode::Shaded) {} QAbstract3DSeriesPrivate::~QAbstract3DSeriesPrivate() {} @@ -990,6 +1041,14 @@ void QAbstract3DSeriesPrivate::setMultiHighlightGradient(const QLinearGradient & m_graph->markSeriesVisualsDirty(); } +void QAbstract3DSeriesPrivate::setLightingMode(QAbstract3DSeries::LightingMode lightingMode) +{ + m_lightingMode = lightingMode; + if (m_graph) + m_graph->markSeriesVisualsDirty(); + m_changeTracker.lightingModeChanged = true; +} + void QAbstract3DSeriesPrivate::setName(const QString &name) { m_name = name; diff --git a/src/graphs3d/data/qabstract3dseries.h b/src/graphs3d/data/qabstract3dseries.h index 1e7331fd..8db77813 100644 --- a/src/graphs3d/data/qabstract3dseries.h +++ b/src/graphs3d/data/qabstract3dseries.h @@ -47,6 +47,7 @@ class Q_GRAPHS_EXPORT QAbstract3DSeries : public QObject Q_PROPERTY(QString itemLabel READ itemLabel NOTIFY itemLabelChanged) Q_PROPERTY(bool itemLabelVisible READ isItemLabelVisible WRITE setItemLabelVisible NOTIFY itemLabelVisibleChanged) + Q_PROPERTY(QAbstract3DSeries::LightingMode lightingMode READ lightingMode WRITE setLightingMode NOTIFY lightingModeChanged REVISION(6,10)) QML_NAMED_ELEMENT(Abstract3DSeries) QML_UNCREATABLE("Uncreatable base type") public: @@ -74,6 +75,12 @@ public: }; Q_ENUM(Mesh) + enum class LightingMode{ + Shaded, + Unshaded, + }; + Q_ENUM(LightingMode) + protected: explicit QAbstract3DSeries(QAbstract3DSeriesPrivate &d, QObject *parent = nullptr); @@ -116,6 +123,9 @@ public: void setMultiHighlightGradient(const QLinearGradient &gradient); QLinearGradient multiHighlightGradient() const; + QAbstract3DSeries::LightingMode lightingMode() const; + void setLightingMode(QAbstract3DSeries::LightingMode lightingMode); + void setName(const QString &name); QString name() const; @@ -140,6 +150,7 @@ Q_SIGNALS: void nameChanged(const QString &name); void itemLabelChanged(const QString &label); void itemLabelVisibleChanged(bool visible); + void lightingModeChanged(QAbstract3DSeries::LightingMode lightingMode); private: Q_DISABLE_COPY(QAbstract3DSeries) diff --git a/src/graphs3d/data/qabstract3dseries_p.h b/src/graphs3d/data/qabstract3dseries_p.h index 1103adc6..fde70d3f 100644 --- a/src/graphs3d/data/qabstract3dseries_p.h +++ b/src/graphs3d/data/qabstract3dseries_p.h @@ -37,6 +37,7 @@ struct QAbstract3DSeriesChangeBitField bool singleHighlightGradientChanged : 1; bool multiHighlightColorChanged : 1; bool multiHighlightGradientChanged : 1; + bool lightingModeChanged: 1; bool nameChanged : 1; bool itemLabelChanged : 1; bool itemLabelVisibilityChanged : 1; @@ -54,6 +55,7 @@ struct QAbstract3DSeriesChangeBitField , singleHighlightGradientChanged(true) , multiHighlightColorChanged(true) , multiHighlightGradientChanged(true) + , lightingModeChanged(true) , nameChanged(true) , itemLabelChanged(true) , itemLabelVisibilityChanged(true) @@ -119,6 +121,8 @@ public: void setItemLabelVisible(bool visible); bool isUsingGradient(); + void setLightingMode(QAbstract3DSeries::LightingMode mode); + protected: QAbstract3DSeriesChangeBitField m_changeTracker; QAbstract3DSeriesThemeOverrideBitField m_themeTracker; @@ -145,6 +149,8 @@ protected: bool m_itemLabelDirty; bool m_itemLabelVisible; + QAbstract3DSeries::LightingMode m_lightingMode; + friend class QQuickGraphsScatter; friend class QQuickGraphsSurface; friend class QQuickGraphsBars; |