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.
This commit is contained in:
Mark Liversedge
2021-08-21 16:42:29 +01:00
parent f86bc6752e
commit 1297d76ee4
2 changed files with 11 additions and 9 deletions

View File

@@ -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));
}

View File

@@ -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