From 1297d76ee497939185d48b032e4cb598dda40017 Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Sat, 21 Aug 2021 16:42:29 +0100 Subject: [PATCH] UserChartOverviewItem paint events .. the base class method ChartSpaceItem::sceneEvent() generates lots of paint events when the mouse moves about, and its mostly to repaint the top right corner. .. for user charts this generates a lot of overhead that is 99.99% unneccessary - so we now override this and do nothing. --- src/Charts/UserChartOverviewItem.cpp | 3 +-- src/Charts/UserChartOverviewItem.h | 17 ++++++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/Charts/UserChartOverviewItem.cpp b/src/Charts/UserChartOverviewItem.cpp index 25dfd94f9..ea8bc2ea7 100644 --- a/src/Charts/UserChartOverviewItem.cpp +++ b/src/Charts/UserChartOverviewItem.cpp @@ -49,13 +49,12 @@ UserChartOverviewItem::UserChartOverviewItem(ChartSpace *parent, QString name, Q setConfig(settings); connect(nameEdit, SIGNAL(textEdited(QString)), this, SLOT(nameChanged())); - connect(parent->context, SIGNAL(configChanged(qint32)), this, SLOT(configChanged())); } UserChartOverviewItem::~UserChartOverviewItem() { } void -UserChartOverviewItem::configChanged() +UserChartOverviewItem::configChanged(qint32) { chart->setBackgroundColor(GColor(CCARDBACKGROUND)); } diff --git a/src/Charts/UserChartOverviewItem.h b/src/Charts/UserChartOverviewItem.h index d2761ab75..f28c405e1 100644 --- a/src/Charts/UserChartOverviewItem.h +++ b/src/Charts/UserChartOverviewItem.h @@ -37,12 +37,12 @@ class UserChartOverviewItem : public ChartSpaceItem UserChartOverviewItem(ChartSpace *parent, QString name, QString config); ~UserChartOverviewItem(); - void dragging(bool); - void itemPaint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *); - void itemGeometryChanged(); - void setData(RideItem *item); - void setDateRange(DateRange); - QWidget *config() { return chart->settingsTool(); } + void dragging(bool) override; + void itemPaint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) override; + void itemGeometryChanged() override; + void setData(RideItem *item) override; + void setDateRange(DateRange) override; + QWidget *config() override { return chart->settingsTool(); } // create a blank one static ChartSpaceItem *create(ChartSpace *parent) { return new UserChartOverviewItem(parent, "User Chart", @@ -55,10 +55,13 @@ class UserChartOverviewItem : public ChartSpaceItem QString getConfig() const { return chart->settings(); } void setConfig(QString config) { chart->applySettings(config); } + protected: + bool sceneEvent(QEvent *) override { return false; } // override the default one + public slots: void nameChanged(); - void configChanged(); + void configChanged(qint32) override; private: // embedding