From 71adf272c5518e92d2f4470fe13d814235b9c832 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 23 Sep 2019 16:55:18 +0300 Subject: [PATCH] Use simple QPainter in CrossFadeAnimation. --- ui/widgets/labels.cpp | 15 ++++++++++++--- ui/widgets/labels.h | 15 ++++++++++++--- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/ui/widgets/labels.cpp b/ui/widgets/labels.cpp index 2f9c9c0..c3ab3c2 100644 --- a/ui/widgets/labels.cpp +++ b/ui/widgets/labels.cpp @@ -45,12 +45,16 @@ void CrossFadeAnimation::addLine(Part was, Part now) { _lines.push_back(Line(std::move(was), std::move(now))); } -void CrossFadeAnimation::paintFrame(Painter &p, float64 dt) { +void CrossFadeAnimation::paintFrame(QPainter &p, float64 dt) { auto progress = anim::linear(1., dt); paintFrame(p, progress, 1. - progress, progress); } -void CrossFadeAnimation::paintFrame(Painter &p, float64 positionReady, float64 alphaWas, float64 alphaNow) { +void CrossFadeAnimation::paintFrame( + QPainter &p, + float64 positionReady, + float64 alphaWas, + float64 alphaNow) { if (_lines.isEmpty()) return; for (const auto &line : std::as_const(_lines)) { @@ -58,7 +62,12 @@ void CrossFadeAnimation::paintFrame(Painter &p, float64 positionReady, float64 a } } -void CrossFadeAnimation::paintLine(Painter &p, const Line &line, float64 positionReady, float64 alphaWas, float64 alphaNow) { +void CrossFadeAnimation::paintLine( + QPainter &p, + const Line &line, + float64 positionReady, + float64 alphaWas, + float64 alphaNow) { auto &snapshotWas = line.was.snapshot; auto &snapshotNow = line.now.snapshot; if (snapshotWas.isNull() && snapshotNow.isNull()) { diff --git a/ui/widgets/labels.h b/ui/widgets/labels.h index 3ae79fb..31d7721 100644 --- a/ui/widgets/labels.h +++ b/ui/widgets/labels.h @@ -32,8 +32,12 @@ public: }; void addLine(Part was, Part now); - void paintFrame(Painter &p, float64 dt); - void paintFrame(Painter &p, float64 positionReady, float64 alphaWas, float64 alphaNow); + void paintFrame(QPainter &p, float64 dt); + void paintFrame( + QPainter &p, + float64 positionReady, + float64 alphaWas, + float64 alphaNow); private: struct Line { @@ -42,7 +46,12 @@ private: Part was; Part now; }; - void paintLine(Painter &p, const Line &line, float64 positionReady, float64 alphaWas, float64 alphaNow); + void paintLine( + QPainter &p, + const Line &line, + float64 positionReady, + float64 alphaWas, + float64 alphaNow); style::color _bg; QList _lines;