summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-02 10:56:09 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-10-02 11:10:36 +0300
commite4ae069de4b69856771a804926f23d3644599d99 (patch)
treebaef00fe16a91e93c8236356612324ee4d7da725 /src
parent23052d3f50764e3d6a0def345d09c9a78d38857a (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')
-rw-r--r--src/datavisualization/engine/drawer.cpp5
-rw-r--r--src/datavisualization/engine/drawer_p.h1
-rw-r--r--src/datavisualization/engine/selectionpointer.cpp33
-rw-r--r--src/datavisualization/engine/selectionpointer_p.h6
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp4
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) {