diff --git a/Telegram/SourceFiles/settings/settings_privacy_security.cpp b/Telegram/SourceFiles/settings/settings_privacy_security.cpp
index 66a26632b..ab8f32217 100644
--- a/Telegram/SourceFiles/settings/settings_privacy_security.cpp
+++ b/Telegram/SourceFiles/settings/settings_privacy_security.cpp
@@ -30,6 +30,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "core/application.h"
#include "core/core_settings.h"
#include "ui/chat/chat_style.h"
+#include "ui/effects/premium_graphics.h"
#include "ui/effects/premium_top_bar.h"
#include "ui/text/format_values.h"
#include "ui/text/text_utilities.h"
@@ -79,7 +80,8 @@ using Privacy = Api::UserPrivacy;
image.fill(Qt::transparent);
{
auto p = QPainter(&image);
- auto star = QSvgRenderer(Ui::Premium::ColorizedSvg());
+ auto star = QSvgRenderer(
+ Ui::Premium::ColorizedSvg(Ui::Premium::ButtonGradientStops()));
star.render(&p, Rect(size));
}
return image;
diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
index aaba431ca..fd3d11950 100644
--- a/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
+++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.cpp
@@ -46,15 +46,15 @@ QString Svg() {
return u":/gui/icons/settings/star.svg"_q;
}
-QByteArray ColorizedSvg() {
+QByteArray ColorizedSvg(const QGradientStops &gradientStops) {
auto f = QFile(Svg());
if (!f.open(QIODevice::ReadOnly)) {
return QByteArray();
}
auto content = QString::fromUtf8(f.readAll());
- auto stops = [] {
+ auto stops = [&] {
auto s = QString();
- for (const auto &stop : Ui::Premium::ButtonGradientStops()) {
+ for (const auto &stop : gradientStops) {
s += QString("")
.arg(QString::number(stop.first), stop.second.name());
}
@@ -209,8 +209,10 @@ TopBar::TopBar(
_ministars.setColorOverride(
QGradientStops{{ 0, st::premiumButtonFg->c }});
} else {
- _star.load(ColorizedSvg());
- _ministars.setColorOverride(std::nullopt);
+ _star.load(ColorizedSvg(descriptor.gradientStops
+ ? (*descriptor.gradientStops)
+ : Ui::Premium::ButtonGradientStops()));
+ _ministars.setColorOverride(descriptor.gradientStops);
}
auto event = QResizeEvent(size(), size());
resizeEvent(&event);
diff --git a/Telegram/SourceFiles/ui/effects/premium_top_bar.h b/Telegram/SourceFiles/ui/effects/premium_top_bar.h
index 13e8a38c7..86c8158ff 100644
--- a/Telegram/SourceFiles/ui/effects/premium_top_bar.h
+++ b/Telegram/SourceFiles/ui/effects/premium_top_bar.h
@@ -26,7 +26,7 @@ class FlatLabel;
namespace Ui::Premium {
[[nodiscard]] QString Svg();
-[[nodiscard]] QByteArray ColorizedSvg();
+[[nodiscard]] QByteArray ColorizedSvg(const QGradientStops &gradientStops);
[[nodiscard]] QImage GenerateStarForLightTopBar(QRectF rect);
class TopBarAbstract : public RpWidget {
@@ -71,6 +71,7 @@ struct TopBarDescriptor {
rpl::producer about;
bool light = false;
bool optimizeMinistars = true;
+ std::optional gradientStops;
};
class TopBar final : public TopBarAbstract {