summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/axisrendercache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/axisrendercache.cpp')
-rw-r--r--src/datavisualization/engine/axisrendercache.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/datavisualization/engine/axisrendercache.cpp b/src/datavisualization/engine/axisrendercache.cpp
index 0b7a5c7a..02e3b7f6 100644
--- a/src/datavisualization/engine/axisrendercache.cpp
+++ b/src/datavisualization/engine/axisrendercache.cpp
@@ -46,6 +46,7 @@ AxisRenderCache::~AxisRenderCache()
{
foreach (LabelItem *label, m_labelItems)
delete label;
+ m_titleItem.clear();
delete m_formatter;
}
@@ -54,10 +55,8 @@ void AxisRenderCache::setDrawer(Drawer *drawer)
{
m_drawer = drawer;
m_font = m_drawer->font();
- if (m_drawer) {
- QObject::connect(m_drawer, &Drawer::drawerChanged, this, &AxisRenderCache::updateTextures);
+ if (m_drawer)
updateTextures();
- }
}
void AxisRenderCache::setType(QAbstract3DAxis::AxisType type)
@@ -106,10 +105,12 @@ void AxisRenderCache::setLabels(const QStringList &labels)
if (i >= oldSize)
m_labelItems.append(new LabelItem);
if (m_drawer) {
- if (labels.at(i).isEmpty())
+ if (labels.at(i).isEmpty()) {
m_labelItems[i]->clear();
- else if (i >= oldSize || labels.at(i) != m_labels.at(i))
+ } else if (i >= oldSize || labels.at(i) != m_labels.at(i)
+ || m_labelItems[i]->size().width() != widest) {
m_drawer->generateLabelItem(*m_labelItems[i], labels.at(i), widest);
+ }
}
}
m_labels = labels;
@@ -175,6 +176,13 @@ void AxisRenderCache::updateTextures()
}
}
+void AxisRenderCache::clearLabels()
+{
+ m_titleItem.clear();
+ for (int i = 0; i < m_labels.size(); i++)
+ m_labelItems[i]->clear();
+}
+
int AxisRenderCache::maxLabelWidth(const QStringList &labels) const
{
int labelWidth = 0;