diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-02 10:56:09 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-02 11:10:36 +0300 |
commit | e4ae069de4b69856771a804926f23d3644599d99 (patch) | |
tree | baef00fe16a91e93c8236356612324ee4d7da725 /src/datavisualization | |
parent | 23052d3f50764e3d6a0def345d09c9a78d38857a (diff) |
Make surface selection label follow the theme
Task-number: QTRD-2269
Change-Id: Ibcfb467e72fa2bf63453108d73a027446113fcb0
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'src/datavisualization')
-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 |
5 files changed, 16 insertions, 33 deletions
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) { |