summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data/barrenderitem.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-24 14:03:14 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-24 14:23:34 +0200
commit37493fac3422ce5cbe34748ca25757ca6302a583 (patch)
tree4bbffa04287106049fca1857225e0711fafe4730 /src/datavisualization/data/barrenderitem.cpp
parente07e480d744c6f091844350704b916a71811c6b9 (diff)
Move selection labels to renderer from render items
Creating a new label on demand is fast enough, so we don't need to store old labels. Storing labels unnecessarily leads to unchecked use of graphics memory. Optimized bar slices a bit by having separate class of render items for slice items. Change-Id: I5afdecfb3949393341b6c3eaefbc667c65da32e3 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/data/barrenderitem.cpp')
-rw-r--r--src/datavisualization/data/barrenderitem.cpp38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/datavisualization/data/barrenderitem.cpp b/src/datavisualization/data/barrenderitem.cpp
index 869dac2e..50d2a4b4 100644
--- a/src/datavisualization/data/barrenderitem.cpp
+++ b/src/datavisualization/data/barrenderitem.cpp
@@ -25,7 +25,6 @@ BarRenderItem::BarRenderItem()
: AbstractRenderItem(),
m_value(0),
m_height(0.0f),
- m_sliceLabelItem(0),
m_seriesIndex(0)
{
}
@@ -36,31 +35,58 @@ BarRenderItem::BarRenderItem(const BarRenderItem &other)
m_value = other.m_value;
m_position = other.m_position;
m_height = other.m_height;
- m_sliceLabel = other.m_sliceLabel;
- m_sliceLabelItem = 0;
m_seriesIndex = other.m_seriesIndex;
}
BarRenderItem::~BarRenderItem()
{
+}
+
+BarRenderSliceItem::BarRenderSliceItem()
+ : BarRenderItem(),
+ m_sliceLabelItem(0)
+{
+}
+
+BarRenderSliceItem::BarRenderSliceItem(const BarRenderSliceItem &other)
+ : BarRenderItem(other)
+{
+ m_sliceLabel = other.m_sliceLabel;
+ m_sliceLabelItem = 0;
+}
+
+BarRenderSliceItem::~BarRenderSliceItem()
+{
delete m_sliceLabelItem;
}
-LabelItem &BarRenderItem::sliceLabelItem()
+void BarRenderSliceItem::setItem(const BarRenderItem &renderItem)
+{
+ m_translation = renderItem.translation();
+ m_rotation = renderItem.rotation();
+ m_value = renderItem.value();
+ m_position = renderItem.position();
+ m_height = renderItem.height();
+ m_seriesIndex = renderItem.seriesIndex();
+ m_sliceLabel = QString();
+ m_sliceLabelItem = 0;
+}
+
+LabelItem &BarRenderSliceItem::sliceLabelItem()
{
if (!m_sliceLabelItem)
m_sliceLabelItem = new LabelItem;
return *m_sliceLabelItem;
}
-void BarRenderItem::setSliceLabel(const QString &label)
+void BarRenderSliceItem::setSliceLabel(const QString &label)
{
if (m_sliceLabelItem)
m_sliceLabelItem->clear();
m_sliceLabel = label;
}
-const QString &BarRenderItem::sliceLabel() const
+const QString &BarRenderSliceItem::sliceLabel() const
{
return m_sliceLabel;
}