diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-09-16 07:49:46 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2014-09-16 08:37:04 +0300 |
commit | ce6aff50ecd1445d148c1bbb9f712d6bfb77a78e (patch) | |
tree | bd9f2d2d9f11ad8bb24819faefe5c40292de6fe5 | |
parent | b6d5edf9775f6bf2aa4f91906763bd1c492d47e7 (diff) |
Prevent selection label generation on rotate
Task-number: QTRD-3234
Selection pointer label needs to be regenrated only when either
theme or label text changes.
Change-Id: Iabe91a88b719b186c998cda9e712207752762279
Reviewed-by: Pasi Keränen <pasi.keranen@digia.com>
-rw-r--r-- | src/datavisualization/engine/selectionpointer.cpp | 10 | ||||
-rw-r--r-- | src/datavisualization/engine/selectionpointer_p.h | 2 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/datavisualization/engine/selectionpointer.cpp b/src/datavisualization/engine/selectionpointer.cpp index c40034ba..f7f8344b 100644 --- a/src/datavisualization/engine/selectionpointer.cpp +++ b/src/datavisualization/engine/selectionpointer.cpp @@ -211,10 +211,12 @@ void SelectionPointer::setRotation(const QQuaternion &rotation) m_rotation = rotation; } -void SelectionPointer::setLabel(const QString &label) +void SelectionPointer::setLabel(const QString &label, bool themeChange) { - m_label = label; - m_drawer->generateLabelItem(m_labelItem, m_label); + if (themeChange || m_label != label) { + m_label = label; + m_drawer->generateLabelItem(m_labelItem, m_label); + } } void SelectionPointer::setPointerObject(ObjectHelper *object) @@ -230,7 +232,7 @@ void SelectionPointer::setLabelObject(ObjectHelper *object) void SelectionPointer::handleDrawerChange() { m_cachedTheme = m_drawer->theme(); - setLabel(m_label); + setLabel(m_label, true); } void SelectionPointer::updateBoundingRect(const QRect &rect) diff --git a/src/datavisualization/engine/selectionpointer_p.h b/src/datavisualization/engine/selectionpointer_p.h index 7dc28024..08382b9f 100644 --- a/src/datavisualization/engine/selectionpointer_p.h +++ b/src/datavisualization/engine/selectionpointer_p.h @@ -49,7 +49,7 @@ public: void render(GLuint defaultFboHandle = 0, bool useOrtho = false); void setPosition(const QVector3D &position); - void setLabel(const QString &label); + void setLabel(const QString &label, bool themeChange = false); void setPointerObject(ObjectHelper *object); void setLabelObject(ObjectHelper *object); void handleDrawerChange(); |