Added ability to cache both colorized and default CrossLineAnimation.

This commit is contained in:
23rd 2021-02-01 08:18:50 +03:00
parent 4dd6444cb2
commit 52e1d6d740
2 changed files with 8 additions and 3 deletions

View file

@ -43,11 +43,14 @@ void CrossLineAnimation::paint(
_st.icon.paint(p, left, top, _st.icon.width()); _st.icon.paint(p, left, top, _st.icon.width());
} }
} else if (progress == 1.) { } else if (progress == 1.) {
if (_completeCross.isNull()) { auto &complete = colorOverride
? _completeCrossOverride
: _completeCross;
if (complete.isNull()) {
fillFrame(progress, colorOverride); fillFrame(progress, colorOverride);
_completeCross = _frame; complete = _frame;
} }
p.drawImage(left, top, _completeCross); p.drawImage(left, top, complete);
} else { } else {
fillFrame(progress, colorOverride); fillFrame(progress, colorOverride);
p.drawImage(left, top, _frame); p.drawImage(left, top, _frame);
@ -94,6 +97,7 @@ void CrossLineAnimation::fillFrame(
void CrossLineAnimation::invalidate() { void CrossLineAnimation::invalidate() {
_completeCross = QImage(); _completeCross = QImage();
_completeCrossOverride = QImage();
} }
} // namespace Ui } // namespace Ui

View file

@ -43,6 +43,7 @@ private:
QLineF _line; QLineF _line;
QImage _frame; QImage _frame;
QImage _completeCross; QImage _completeCross;
QImage _completeCrossOverride;
}; };