diff options
Diffstat (limited to 'src/datavisualization/engine')
4 files changed, 32 insertions, 28 deletions
diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index a6c086aa..7f905243 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -183,6 +183,31 @@ void Abstract3DController::synchDataToRenderer() m_changeTracker.selectionModeChanged = false; } + if (m_changeTracker.axisXFormatterChanged) { + m_changeTracker.axisXFormatterChanged = false; + if (m_axisX->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisX = static_cast<QValue3DAxis *>(m_axisX); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationX, + valueAxisX->formatter()); + } + } + if (m_changeTracker.axisYFormatterChanged) { + m_changeTracker.axisYFormatterChanged = false; + if (m_axisY->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisY = static_cast<QValue3DAxis *>(m_axisY); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationY, + valueAxisY->formatter()); + } + } + if (m_changeTracker.axisZFormatterChanged) { + m_changeTracker.axisZFormatterChanged = false; + if (m_axisZ->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisZ = static_cast<QValue3DAxis *>(m_axisZ); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationZ, + valueAxisZ->formatter()); + } + } + if (m_changeTracker.axisXTypeChanged) { m_renderer->updateAxisType(QAbstract3DAxis::AxisOrientationX, m_axisX->type()); m_changeTracker.axisXTypeChanged = false; @@ -326,31 +351,6 @@ void Abstract3DController::synchDataToRenderer() } } - if (m_changeTracker.axisXFormatterChanged) { - m_changeTracker.axisXFormatterChanged = false; - if (m_axisX->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisX = static_cast<QValue3DAxis *>(m_axisX); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationX, - valueAxisX->formatter()); - } - } - if (m_changeTracker.axisYFormatterChanged) { - m_changeTracker.axisYFormatterChanged = false; - if (m_axisY->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisY = static_cast<QValue3DAxis *>(m_axisY); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationY, - valueAxisY->formatter()); - } - } - if (m_changeTracker.axisZFormatterChanged) { - m_changeTracker.axisZFormatterChanged = false; - if (m_axisZ->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisZ = static_cast<QValue3DAxis *>(m_axisZ); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationZ, - valueAxisZ->formatter()); - } - } - if (m_isSeriesVisibilityDirty || m_isSeriesVisualsDirty) { m_renderer->updateSeries(m_seriesList, m_isSeriesVisibilityDirty); m_isSeriesVisibilityDirty = false; diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index c5e265aa..f0aec0cc 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -345,6 +345,7 @@ void Abstract3DRenderer::updateAxisFormatter(QAbstract3DAxis::AxisOrientation or cache.setCtrlFormatter(formatter); } formatter->d_ptr->populateCopy(*(cache.formatter())); + cache.markPositionsDirty(); } void Abstract3DRenderer::fixMeshFileName(QString &fileName, QAbstract3DSeries::Mesh mesh) diff --git a/src/datavisualization/engine/axisrendercache_p.h b/src/datavisualization/engine/axisrendercache_p.h index eede9917..f37857d9 100644 --- a/src/datavisualization/engine/axisrendercache_p.h +++ b/src/datavisualization/engine/axisrendercache_p.h @@ -33,6 +33,7 @@ #include "labelitem_p.h" #include "qabstract3daxis_p.h" #include "drawer_p.h" +#include <QtCore/QPointer> QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -66,11 +67,11 @@ public: m_formatter = formatter; m_positionsDirty = true; } inline QValue3DAxisFormatter *formatter() const { return m_formatter; } - inline void setCtrlFormatter(const QValue3DAxisFormatter *formatter) + inline void setCtrlFormatter(QValue3DAxisFormatter *formatter) { m_ctrlFormatter = formatter; } - inline const QValue3DAxisFormatter *ctrlFormatter() const { return m_ctrlFormatter; } + inline QValue3DAxisFormatter *ctrlFormatter() const { return m_ctrlFormatter; } inline LabelItem &titleItem() { return m_titleItem; } inline QList<LabelItem *> &labelItems() { return m_labelItems; } @@ -80,6 +81,7 @@ public: inline int labelCount() { return m_adjustedLabelPositions.size(); } void updateAllPositions(); inline bool positionsDirty() const { return m_positionsDirty; } + inline void markPositionsDirty() { m_positionsDirty = true; } inline void setTranslate(float translate) { m_translate = translate; m_positionsDirty = true; } inline float translate() { return m_translate; } inline void setScale(float scale) { m_scale = scale; m_positionsDirty = true; } @@ -106,7 +108,7 @@ private: QString m_labelFormat; QFont m_font; QValue3DAxisFormatter *m_formatter; - const QValue3DAxisFormatter *m_ctrlFormatter; + QPointer<QValue3DAxisFormatter> m_ctrlFormatter; // Renderer items Drawer *m_drawer; // Not owned diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index ed99e49e..9ce80081 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -900,6 +900,7 @@ void Surface3DRenderer::drawSlicedScene() // Vertical lines QVector3D gridLineScaleY(gridLineWidth, backgroundMargin, gridLineWidth); + gridLineCount = sliceCache.gridLineCount(); for (int line = 0; line < gridLineCount; line++) { QMatrix4x4 modelMatrix; QMatrix4x4 MVPMatrix; |