diff options
-rw-r--r-- | examples/surfacechart/chartmodifier.cpp | 3 | ||||
-rw-r--r-- | src/datavisualization/engine/drawer.cpp | 5 | ||||
-rw-r--r-- | src/datavisualization/engine/drawer_p.h | 1 | ||||
-rw-r--r-- | src/datavisualization/engine/selectionpointer.cpp | 33 | ||||
-rw-r--r-- | src/datavisualization/engine/selectionpointer_p.h | 6 | ||||
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 4 |
6 files changed, 18 insertions, 34 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp index ec90cdf2..a5c6f3fd 100644 --- a/examples/surfacechart/chartmodifier.cpp +++ b/examples/surfacechart/chartmodifier.cpp @@ -52,6 +52,7 @@ ChartModifier::ChartModifier(Q3DSurface *chart) m_chart->setAxisZ(new Q3DValueAxis); m_chart->axisX()->setRange(m_minX, m_minX + m_rangeX); m_chart->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ); + changeTransparency(); connect(&m_timer, &QTimer::timeout, this, &ChartModifier::timeout); } @@ -295,7 +296,7 @@ void ChartModifier::changeFont(const QFont &font) void ChartModifier::changeTransparency() { - static int transparency = QDataVis::TransparencyNone; + static int transparency = QDataVis::TransparencyFromTheme; m_chart->setLabelTransparency((QDataVis::LabelTransparency)transparency); diff --git a/src/datavisualization/engine/drawer.cpp b/src/datavisualization/engine/drawer.cpp index 307dd63e..941feb00 100644 --- a/src/datavisualization/engine/drawer.cpp +++ b/src/datavisualization/engine/drawer.cpp @@ -68,6 +68,11 @@ void Drawer::setTheme(const Theme &theme) emit drawerChanged(); } +Theme Drawer::theme() const +{ + return m_theme; +} + void Drawer::setFont(const QFont &font) { m_font = font; diff --git a/src/datavisualization/engine/drawer_p.h b/src/datavisualization/engine/drawer_p.h index 3b3e7a1c..3de3f92f 100644 --- a/src/datavisualization/engine/drawer_p.h +++ b/src/datavisualization/engine/drawer_p.h @@ -69,6 +69,7 @@ public: void initializeOpenGL(); void setTheme(const Theme &theme); + Theme theme() const; void setFont(const QFont &font); QFont font() const; void setTransparency(QDataVis::LabelTransparency transparency); diff --git a/src/datavisualization/engine/selectionpointer.cpp b/src/datavisualization/engine/selectionpointer.cpp index f60b510b..ded4dc6f 100644 --- a/src/datavisualization/engine/selectionpointer.cpp +++ b/src/datavisualization/engine/selectionpointer.cpp @@ -34,15 +34,15 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -SelectionPointer::SelectionPointer(Surface3DController *controller, Drawer *drawer) - : QObject(controller), - m_controller(controller), +SelectionPointer::SelectionPointer(Drawer *drawer) + : QObject(0), m_labelShader(0), m_pointShader(0), m_labelObj(0), m_pointObj(0), m_textureHelper(0), m_isInitialized(false), + m_cachedTheme(drawer->theme()), m_labelTransparency(QDataVis::TransparencyFromTheme), m_drawer(drawer), m_cachedScene(0) @@ -50,7 +50,7 @@ SelectionPointer::SelectionPointer(Surface3DController *controller, Drawer *draw initializeOpenGL(); QObject::connect(m_drawer, &Drawer::drawerChanged, - this, &SelectionPointer::updateLabel); + this, &SelectionPointer::handleDrawerChange); } SelectionPointer::~SelectionPointer() @@ -77,8 +77,6 @@ void SelectionPointer::initializeOpenGL() loadLabelMesh(); loadPointMesh(); - updateTheme(m_controller->theme()); - // Set initialized -flag m_isInitialized = true; } @@ -218,32 +216,15 @@ void SelectionPointer::setLabel(QString label) { m_label = label; - m_labelItem.clear(); - - // Print label into a QImage - QImage image = Utils::printTextToImage(m_drawer->font(), - label, - m_cachedTheme.m_textBackgroundColor, - m_cachedTheme.m_textColor, - m_labelTransparency, - m_cachedTheme.m_labelBorders); - - // Set label size - m_labelItem.setSize(image.size()); - // Insert text texture into label (also deletes the old texture) - m_labelItem.setTextureId(m_textureHelper->create2DTexture(image, true, true)); + m_drawer->generateLabelItem(m_labelItem, m_label); } -void SelectionPointer::updateLabel() +void SelectionPointer::handleDrawerChange() { + m_cachedTheme = m_drawer->theme(); setLabel(m_label); } -void SelectionPointer::updateTheme(Theme theme) -{ - m_cachedTheme.setFromTheme(theme); -} - void SelectionPointer::updateBoundingRect(QRect rect) { m_mainViewPort = rect; diff --git a/src/datavisualization/engine/selectionpointer_p.h b/src/datavisualization/engine/selectionpointer_p.h index e4c4dab0..bbcf2abe 100644 --- a/src/datavisualization/engine/selectionpointer_p.h +++ b/src/datavisualization/engine/selectionpointer_p.h @@ -56,15 +56,14 @@ class QT_DATAVISUALIZATION_EXPORT SelectionPointer : public QObject, protected Q Q_OBJECT public: - explicit SelectionPointer(Surface3DController *controller, Drawer *drawer); + explicit SelectionPointer(Drawer *drawer); ~SelectionPointer(); void initializeOpenGL(); void render(GLuint defaultFboHandle = 0); void setPosition(QVector3D position); void setLabel(QString label); - void updateLabel(); - void updateTheme(Theme theme); + void handleDrawerChange(); void updateBoundingRect(QRect rect); void updateScene(Q3DScene *scene); void updateSliceData(bool sliceActivated, GLfloat autoScaleAdjustment); @@ -75,7 +74,6 @@ private: void loadPointMesh(); private: - Surface3DController *m_controller; ShaderHelper *m_labelShader; ShaderHelper *m_pointShader; ObjectHelper *m_labelObj; diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index c8aded31..0e762ff1 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -1762,8 +1762,6 @@ void Surface3DRenderer::idToRGBA(uint id, uchar *r, uchar *g, uchar *b, uchar *a void Surface3DRenderer::updateTextures() { - qDebug() << __FUNCTION__ << "NEED TO DO SOMETHING"; - updateSurfaceGradient(m_cachedTheme.m_surfaceGradient); } @@ -1892,7 +1890,7 @@ void Surface3DRenderer::surfacePointSelected(int id) qreal value = qreal(m_dataArray.at(row)->at(column).y()); if (!m_selectionPointer) - m_selectionPointer = new SelectionPointer(m_controller, m_drawer); + m_selectionPointer = new SelectionPointer(m_drawer); QVector3D pos; if (m_cachedSelectionMode == QDataVis::ModeSliceRow) { |