summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-09-16 07:49:46 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-09-16 08:37:04 +0300
commitce6aff50ecd1445d148c1bbb9f712d6bfb77a78e (patch)
treebd9f2d2d9f11ad8bb24819faefe5c40292de6fe5
parentb6d5edf9775f6bf2aa4f91906763bd1c492d47e7 (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.cpp10
-rw-r--r--src/datavisualization/engine/selectionpointer_p.h2
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();