diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-09-17 11:48:54 +0300 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-09-17 12:04:49 +0300 |
commit | ab8343a2df664545575b5233b74ea0329647c7df (patch) | |
tree | be72d823cbfb9fa22d1d2c9ff90229252e02d74e /src/datavisualization/engine/selectionpointer.cpp | |
parent | dbc876fa0f9c5c87d0ee250efa4d7a211bde3ddf (diff) |
Misc bug fixes
- Enabled zooming on Surface C++ api
- User modified gradient takes effect
- Scene pointer is updated to selection pointer
- Font changing is listened on selection pointer and label's are generated
using selected font
- Selection label format copied from scatter. Looks to be very handy.
- Check for OpenGL 1.5 version and block coarse surface if below
- Added some theme handling. Not sure if the bug is fully fixed. Probably
requires shadow fixes to be fully similar to others.
- HAHAA. Now even single rows and columns supported. Even one value will
produce surface
Task-number: QTRD-2279
Task-number: QTRD-2265
Task-number: QTRD-2261
Task-number: QTRD-2269
Task-number: QTRD-2268
Task-number: QTRD-2272
Change-Id: Id34d843b2898e4cf1e4dde10ce23e0eaab4738a7
Signed-off-by: Mika Salmela <mika.salmela@digia.com>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/selectionpointer.cpp')
-rw-r--r-- | src/datavisualization/engine/selectionpointer.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/datavisualization/engine/selectionpointer.cpp b/src/datavisualization/engine/selectionpointer.cpp index a19f3e82..53c0b816 100644 --- a/src/datavisualization/engine/selectionpointer.cpp +++ b/src/datavisualization/engine/selectionpointer.cpp @@ -33,7 +33,7 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE -SelectionPointer::SelectionPointer(Surface3DController *controller) +SelectionPointer::SelectionPointer(Surface3DController *controller, Drawer *drawer) : QObject(controller), m_controller(controller), m_labelShader(0), @@ -43,11 +43,13 @@ SelectionPointer::SelectionPointer(Surface3DController *controller) m_textureHelper(0), m_isInitialized(false), m_cachedScene(0), - m_font(QFont(QStringLiteral("Arial"))), m_labelTransparency(QDataVis::TransparencyFromTheme), - m_drawer(new Drawer(m_cachedTheme, m_font, m_labelTransparency)) + m_drawer(drawer) { initializeOpenGL(); + + QObject::connect(m_drawer, &Drawer::drawerChanged, + this, &SelectionPointer::updateLabel); } SelectionPointer::~SelectionPointer() @@ -57,8 +59,6 @@ SelectionPointer::~SelectionPointer() delete m_labelObj; delete m_pointObj; delete m_textureHelper; - delete m_drawer; - delete m_cachedScene; } void SelectionPointer::initializeOpenGL() @@ -84,9 +84,7 @@ void SelectionPointer::initializeOpenGL() void SelectionPointer::updateScene(Q3DScene *scene) { - Q_UNUSED(scene) - // Synchronize the scenes - // TODO + m_cachedScene = scene; } void SelectionPointer::render(GLuint defaultFboHandle) @@ -106,7 +104,7 @@ void SelectionPointer::render(GLuint defaultFboHandle) itModelMatrix.scale(m_scale); // Calculate scale factor to get uniform font size - GLfloat scaledFontSize = 0.05f + m_font.pointSizeF() / 500.0f; + GLfloat scaledFontSize = 0.05f + m_drawer->font().pointSizeF() / 500.0f; GLfloat scaleFactor = scaledFontSize / (GLfloat)textureSize.height(); // Set up projection matrix @@ -208,15 +206,16 @@ void SelectionPointer::setScaling(QVector3D scaling) void SelectionPointer::setLabel(QString label) { + m_label = label; + m_labelItem.clear(); // Print label into a QImage - QImage image = Utils::printTextToImage(m_font, + QImage image = Utils::printTextToImage(m_drawer->font(), label, m_cachedTheme.m_textBackgroundColor, m_cachedTheme.m_textColor, m_labelTransparency); - //label.save("C:\\Users\\misalmel\\Work\\gerrit\\qtdatavisualization_2\\notification.png"); // Set label size m_labelItem.setSize(image.size()); @@ -224,6 +223,11 @@ void SelectionPointer::setLabel(QString label) m_labelItem.setTextureId(m_textureHelper->create2DTexture(image, true, true)); } +void SelectionPointer::updateLabel() +{ + setLabel(m_label); +} + void SelectionPointer::updateTheme(Theme theme) { m_cachedTheme.setFromTheme(theme); |