From 0d2310e76a64aaecb6a5df81c99039c68752b109 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Tue, 17 Aug 2021 18:24:00 +0100 Subject: [PATCH] Overview Zone tile refresh .. updates when config changes, not just at restart. --- src/Charts/OverviewItems.cpp | 23 ++++++++++++++++++++--- src/Charts/OverviewItems.h | 13 +++++++------ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/Charts/OverviewItems.cpp b/src/Charts/OverviewItems.cpp index df3dbaaf8..b7562d916 100644 --- a/src/Charts/OverviewItems.cpp +++ b/src/Charts/OverviewItems.cpp @@ -606,10 +606,29 @@ ZoneOverviewItem::ZoneOverviewItem(ChartSpace *parent, QString name, RideFile::s // we have a mid sized font for chart labels etc chart->setFont(parent->midfont); + configwidget = new OverviewItemConfig(this); + configwidget->hide(); + + barset = NULL; + barseries = NULL; + barcategoryaxis = NULL; + + // setup + configChanged(0); +} + +void +ZoneOverviewItem::configChanged(qint32) +{ + if (barcategoryaxis) delete barcategoryaxis; + if (barset) delete barset; + if (barseries) delete barseries; + // needs a set of bars barset = new QBarSet(tr("Time In Zone"), this); barset->setLabelFont(parent->midfont); + // config changed... if (series == RideFile::hr) { barset->setLabelColor(GColor(CHEARTRATE)); barset->setBorderColor(GColor(CHEARTRATE)); @@ -628,6 +647,7 @@ ZoneOverviewItem::ZoneOverviewItem(ChartSpace *parent, QString name, RideFile::s barset->setBrush(GColor(CSPEED)); } + categories.clear(); // // HEARTRATE @@ -702,9 +722,6 @@ ZoneOverviewItem::ZoneOverviewItem(ChartSpace *parent, QString name, RideFile::s chart->axisY(barseries)->setRange(0,100); chart->axisY(barseries)->setGridLineVisible(false); - configwidget = new OverviewItemConfig(this); - configwidget->hide(); - } ZoneOverviewItem::~ZoneOverviewItem() diff --git a/src/Charts/OverviewItems.h b/src/Charts/OverviewItems.h index 781865870..56a1df0d9 100644 --- a/src/Charts/OverviewItems.h +++ b/src/Charts/OverviewItems.h @@ -385,16 +385,17 @@ class ZoneOverviewItem : public ChartSpaceItem ZoneOverviewItem(ChartSpace *parent, QString name, RideFile::seriestype, bool polarized); ~ZoneOverviewItem(); - void itemPaint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *); - void itemGeometryChanged(); - void setData(RideItem *item); - void setDateRange(DateRange); - void dragChanged(bool x); + void itemPaint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override; + void itemGeometryChanged() override; + void setData(RideItem *item) override; + void setDateRange(DateRange) override; + void dragChanged(bool x) override; - QWidget *config() { return configwidget; } + QWidget *config() override { return configwidget; } // create and config static ChartSpaceItem *create(ChartSpace *parent) { return new ZoneOverviewItem(parent, tr("Power Zones"), RideFile::watts, false); } + void configChanged(qint32) override; RideFile::seriestype series; bool polarized;