Added ability to paint non-optimized ministars to fix possible glitches.
This commit is contained in:
parent
49d5cf939c
commit
6ca777102c
|
@ -95,7 +95,7 @@ void GiftBox(
|
||||||
+ st::defaultUserpicButton.size.height()));
|
+ st::defaultUserpicButton.size.height()));
|
||||||
|
|
||||||
using ColoredMiniStars = Ui::Premium::ColoredMiniStars;
|
using ColoredMiniStars = Ui::Premium::ColoredMiniStars;
|
||||||
const auto stars = box->lifetime().make_state<ColoredMiniStars>(top);
|
const auto stars = box->lifetime().make_state<ColoredMiniStars>(top, true);
|
||||||
|
|
||||||
const auto userpic = Ui::CreateChild<Ui::UserpicButton>(
|
const auto userpic = Ui::CreateChild<Ui::UserpicButton>(
|
||||||
top,
|
top,
|
||||||
|
|
|
@ -171,7 +171,8 @@ void AddPremiumTopBarWithDefaultTitleBar(
|
||||||
nullptr,
|
nullptr,
|
||||||
tr::lng_giveaway_new_title(),
|
tr::lng_giveaway_new_title(),
|
||||||
tr::lng_giveaway_new_about(Ui::Text::RichLangValue),
|
tr::lng_giveaway_new_about(Ui::Text::RichLangValue),
|
||||||
true);
|
true,
|
||||||
|
false);
|
||||||
bar->setAttribute(Qt::WA_TransparentForMouseEvents);
|
bar->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||||
|
|
||||||
box->addRow(
|
box->addRow(
|
||||||
|
|
|
@ -523,7 +523,7 @@ TopBarUser::TopBarUser(
|
||||||
, _content(this)
|
, _content(this)
|
||||||
, _title(_content, st::settingsPremiumUserTitle)
|
, _title(_content, st::settingsPremiumUserTitle)
|
||||||
, _about(_content, st::userPremiumCover.about)
|
, _about(_content, st::userPremiumCover.about)
|
||||||
, _ministars(_content)
|
, _ministars(_content, true)
|
||||||
, _smallTop({
|
, _smallTop({
|
||||||
.widget = object_ptr<Ui::RpWidget>(this),
|
.widget = object_ptr<Ui::RpWidget>(this),
|
||||||
.text = Ui::Text::String(
|
.text = Ui::Text::String(
|
||||||
|
|
|
@ -13,10 +13,16 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
namespace Ui {
|
namespace Ui {
|
||||||
namespace Premium {
|
namespace Premium {
|
||||||
|
|
||||||
ColoredMiniStars::ColoredMiniStars(not_null<Ui::RpWidget*> parent)
|
ColoredMiniStars::ColoredMiniStars(
|
||||||
: _ministars([=](const QRect &r) {
|
not_null<Ui::RpWidget*> parent,
|
||||||
parent->update(r.translated(_position));
|
bool optimizeUpdate)
|
||||||
}, true) {
|
: _ministars(
|
||||||
|
optimizeUpdate
|
||||||
|
? Fn<void(const QRect &)>([=](const QRect &r) {
|
||||||
|
parent->update(r.translated(_position));
|
||||||
|
})
|
||||||
|
: Fn<void(const QRect &)>([=](const QRect &) { parent->update(); }),
|
||||||
|
true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColoredMiniStars::setSize(const QSize &size) {
|
void ColoredMiniStars::setSize(const QSize &size) {
|
||||||
|
|
|
@ -16,7 +16,8 @@ namespace Premium {
|
||||||
|
|
||||||
class ColoredMiniStars final {
|
class ColoredMiniStars final {
|
||||||
public:
|
public:
|
||||||
ColoredMiniStars(not_null<Ui::RpWidget*> parent);
|
// optimizeUpdate may cause paint glitch.
|
||||||
|
ColoredMiniStars(not_null<Ui::RpWidget*> parent, bool optimizeUpdate);
|
||||||
|
|
||||||
void setSize(const QSize &size);
|
void setSize(const QSize &size);
|
||||||
void setPosition(QPoint position);
|
void setPosition(QPoint position);
|
||||||
|
|
|
@ -155,13 +155,14 @@ TopBar::TopBar(
|
||||||
Fn<QVariant()> clickContextOther,
|
Fn<QVariant()> clickContextOther,
|
||||||
rpl::producer<QString> title,
|
rpl::producer<QString> title,
|
||||||
rpl::producer<TextWithEntities> about,
|
rpl::producer<TextWithEntities> about,
|
||||||
bool light)
|
bool light,
|
||||||
|
bool optimizeMinistars)
|
||||||
: TopBarAbstract(parent, st)
|
: TopBarAbstract(parent, st)
|
||||||
, _light(light)
|
, _light(light)
|
||||||
, _titleFont(st.titleFont)
|
, _titleFont(st.titleFont)
|
||||||
, _titlePadding(st.titlePadding)
|
, _titlePadding(st.titlePadding)
|
||||||
, _about(this, std::move(about), st.about)
|
, _about(this, std::move(about), st.about)
|
||||||
, _ministars(this) {
|
, _ministars(this, optimizeMinistars) {
|
||||||
std::move(
|
std::move(
|
||||||
title
|
title
|
||||||
) | rpl::start_with_next([=](QString text) {
|
) | rpl::start_with_next([=](QString text) {
|
||||||
|
|
|
@ -72,7 +72,8 @@ public:
|
||||||
Fn<QVariant()> clickContextOther,
|
Fn<QVariant()> clickContextOther,
|
||||||
rpl::producer<QString> title,
|
rpl::producer<QString> title,
|
||||||
rpl::producer<TextWithEntities> about,
|
rpl::producer<TextWithEntities> about,
|
||||||
bool light = false);
|
bool light = false,
|
||||||
|
bool optimizeMinistars = true);
|
||||||
~TopBar();
|
~TopBar();
|
||||||
|
|
||||||
void setPaused(bool paused) override;
|
void setPaused(bool paused) override;
|
||||||
|
|
Loading…
Reference in New Issue