diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-24 14:03:14 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-24 14:23:34 +0200 |
commit | 37493fac3422ce5cbe34748ca25757ca6302a583 (patch) | |
tree | 4bbffa04287106049fca1857225e0711fafe4730 /src/datavisualization/data/barrenderitem.cpp | |
parent | e07e480d744c6f091844350704b916a71811c6b9 (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.cpp | 38 |
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; } |