mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-14 21:27:07 +02:00
Replaced PeerData::generateUserpicImage with static function.
This commit is contained in:
parent
5ac80d2655
commit
2b502b22b9
16 changed files with 57 additions and 31 deletions
|
@ -214,7 +214,10 @@ struct State {
|
|||
|
||||
[[nodiscard]] QImage GenerateUserpic(Userpic &userpic, int size) {
|
||||
size *= style::DevicePixelRatio();
|
||||
auto result = userpic.peer->generateUserpicImage(userpic.view, size);
|
||||
auto result = PeerData::GenerateUserpicImage(
|
||||
userpic.peer,
|
||||
userpic.view,
|
||||
size);
|
||||
result.setDevicePixelRatio(style::DevicePixelRatio());
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -79,7 +79,8 @@ void ProcessUserpic(
|
|||
if (!state->userpicView.cloud) {
|
||||
GenerateImage(
|
||||
state,
|
||||
peer->generateUserpicImage(
|
||||
PeerData::GenerateUserpicImage(
|
||||
peer,
|
||||
state->userpicView,
|
||||
st::shortInfoWidth * style::DevicePixelRatio(),
|
||||
0),
|
||||
|
|
|
@ -460,7 +460,8 @@ void Viewport::RendererGL::validateUserpicFrame(
|
|||
return;
|
||||
}
|
||||
const auto size = tile->trackOrUserpicSize();
|
||||
tileData.userpicFrame = tile->row()->peer()->generateUserpicImage(
|
||||
tileData.userpicFrame = PeerData::GenerateUserpicImage(
|
||||
tile->row()->peer(),
|
||||
tile->row()->ensureUserpicView(),
|
||||
size.width(),
|
||||
0);
|
||||
|
|
|
@ -77,7 +77,8 @@ void Viewport::RendererSW::validateUserpicFrame(
|
|||
}
|
||||
const auto size = tile->trackOrUserpicSize();
|
||||
data.userpicFrame = Images::BlurLargeImage(
|
||||
tile->row()->peer()->generateUserpicImage(
|
||||
PeerData::GenerateUserpicImage(
|
||||
tile->row()->peer(),
|
||||
tile->row()->ensureUserpicView(),
|
||||
size.width(),
|
||||
0),
|
||||
|
|
|
@ -437,11 +437,12 @@ InMemoryKey PeerData::userpicUniqueKey(Ui::PeerUserpicView &view) const {
|
|||
: inMemoryKey(_userpic.location());
|
||||
}
|
||||
|
||||
QImage PeerData::generateUserpicImage(
|
||||
QImage PeerData::GenerateUserpicImage(
|
||||
not_null<PeerData*> peer,
|
||||
Ui::PeerUserpicView &view,
|
||||
int size,
|
||||
std::optional<int> radius) const {
|
||||
if (const auto userpic = userpicCloudImage(view)) {
|
||||
std::optional<int> radius) {
|
||||
if (const auto userpic = peer->userpicCloudImage(view)) {
|
||||
auto image = userpic->scaled(
|
||||
{ size, size },
|
||||
Qt::IgnoreAspectRatio,
|
||||
|
@ -455,7 +456,7 @@ QImage PeerData::generateUserpicImage(
|
|||
return image;
|
||||
} else if (radius) {
|
||||
return round(*radius);
|
||||
} else if (isForum()) {
|
||||
} else if (peer->isForum()) {
|
||||
return round(size * Ui::ForumUserpicRadiusMultiplier());
|
||||
} else {
|
||||
return Images::Circle(std::move(image));
|
||||
|
@ -468,11 +469,12 @@ QImage PeerData::generateUserpicImage(
|
|||
|
||||
Painter p(&result);
|
||||
if (radius == 0) {
|
||||
ensureEmptyUserpic()->paintSquare(p, 0, 0, size, size);
|
||||
peer->ensureEmptyUserpic()->paintSquare(p, 0, 0, size, size);
|
||||
} else if (radius) {
|
||||
ensureEmptyUserpic()->paintRounded(p, 0, 0, size, size, *radius);
|
||||
} else if (isForum()) {
|
||||
ensureEmptyUserpic()->paintRounded(
|
||||
const auto r = *radius;
|
||||
peer->ensureEmptyUserpic()->paintRounded(p, 0, 0, size, size, r);
|
||||
} else if (peer->isForum()) {
|
||||
peer->ensureEmptyUserpic()->paintRounded(
|
||||
p,
|
||||
0,
|
||||
0,
|
||||
|
@ -480,7 +482,7 @@ QImage PeerData::generateUserpicImage(
|
|||
size,
|
||||
size * Ui::ForumUserpicRadiusMultiplier());
|
||||
} else {
|
||||
ensureEmptyUserpic()->paintCircle(p, 0, 0, size, size);
|
||||
peer->ensureEmptyUserpic()->paintCircle(p, 0, 0, size, size);
|
||||
}
|
||||
p.end();
|
||||
|
||||
|
|
|
@ -333,10 +333,11 @@ public:
|
|||
[[nodiscard]] Ui::PeerUserpicView createUserpicView();
|
||||
[[nodiscard]] bool useEmptyUserpic(Ui::PeerUserpicView &view) const;
|
||||
[[nodiscard]] InMemoryKey userpicUniqueKey(Ui::PeerUserpicView &view) const;
|
||||
[[nodiscard]] QImage generateUserpicImage(
|
||||
[[nodiscard]] static QImage GenerateUserpicImage(
|
||||
not_null<PeerData*> peer,
|
||||
Ui::PeerUserpicView &view,
|
||||
int size,
|
||||
std::optional<int> radius = {}) const;
|
||||
std::optional<int> radius = {});
|
||||
[[nodiscard]] ImageLocation userpicLocation() const;
|
||||
|
||||
static constexpr auto kUnknownPhotoId = PhotoId(0xFFFFFFFFFFFFFFFFULL);
|
||||
|
|
|
@ -542,10 +542,12 @@ rpl::producer<QImage> PeerUserpicImageValue(
|
|||
}
|
||||
state->key = key;
|
||||
state->empty = false;
|
||||
consumer.put_next(peer->generateUserpicImage(
|
||||
state->view,
|
||||
size,
|
||||
radius));
|
||||
consumer.put_next(
|
||||
PeerData::GenerateUserpicImage(
|
||||
peer,
|
||||
state->view,
|
||||
size,
|
||||
radius));
|
||||
};
|
||||
peer->session().changes().peerFlagsValue(
|
||||
peer,
|
||||
|
|
|
@ -118,7 +118,7 @@ constexpr auto kBlurRadius = 24;
|
|||
const auto &partSize = partRect.width();
|
||||
const auto partSkip = fullSize - partSize;
|
||||
auto result = Images::Circle(BlurredDarkenedPart(
|
||||
peer->generateUserpicImage(view, fullSize * ratio, 0),
|
||||
PeerData::GenerateUserpicImage(peer, view, fullSize * ratio, 0),
|
||||
QRect(
|
||||
QPoint(partSkip, partSkip) * ratio,
|
||||
QSize(partSize, partSize) * ratio)));
|
||||
|
|
|
@ -142,7 +142,8 @@ rpl::producer<Ui::GroupCallBarContent> GroupCallBarContentByCall(
|
|||
state->someUserpicsNotLoaded = false;
|
||||
for (auto &userpic : state->userpics) {
|
||||
userpic.peer->loadUserpic();
|
||||
auto image = userpic.peer->generateUserpicImage(
|
||||
auto image = PeerData::GenerateUserpicImage(
|
||||
userpic.peer,
|
||||
userpic.view,
|
||||
userpicSize * style::DevicePixelRatio());
|
||||
userpic.uniqueKey = userpic.peer->userpicUniqueKey(userpic.view);
|
||||
|
|
|
@ -86,7 +86,8 @@ rpl::producer<Ui::RequestsBarContent> RequestsBarContentByPeer(
|
|||
state->someUserpicsNotLoaded = false;
|
||||
for (auto &userpic : state->userpics) {
|
||||
userpic.peer->loadUserpic();
|
||||
auto image = userpic.peer->generateUserpicImage(
|
||||
auto image = PeerData::GenerateUserpicImage(
|
||||
userpic.peer,
|
||||
userpic.view,
|
||||
userpicSize * style::DevicePixelRatio());
|
||||
userpic.uniqueKey = userpic.peer->userpicUniqueKey(userpic.view);
|
||||
|
|
|
@ -54,7 +54,8 @@ constexpr auto kLoadViewsPages = 2;
|
|||
static const auto size = st::storiesWhoViewed.userpics.size;
|
||||
|
||||
static const auto GenerateUserpic = [](Userpic &userpic) {
|
||||
auto result = userpic.peer->generateUserpicImage(
|
||||
auto result = PeerData::GenerateUserpicImage(
|
||||
userpic.peer,
|
||||
userpic.view,
|
||||
size * style::DevicePixelRatio());
|
||||
result.setDevicePixelRatio(style::DevicePixelRatio());
|
||||
|
@ -522,7 +523,8 @@ void RecentViews::addMenuRow(Data::StoryView entry, const QDateTime &now) {
|
|||
const auto show = _controller->uiShow();
|
||||
const auto prepare = [&](Ui::PeerUserpicView &view) {
|
||||
const auto size = st::storiesWhoViewed.photoSize;
|
||||
auto userpic = peer->generateUserpicImage(
|
||||
auto userpic = PeerData::GenerateUserpicImage(
|
||||
peer,
|
||||
view,
|
||||
size * style::DevicePixelRatio());
|
||||
userpic.setDevicePixelRatio(style::DevicePixelRatio());
|
||||
|
@ -636,7 +638,8 @@ void RecentViews::subscribeToMenuUserpicsLoading(
|
|||
const auto update = (entry.key != key);
|
||||
if (update) {
|
||||
const auto size = st::storiesWhoViewed.photoSize;
|
||||
auto userpic = peer->generateUserpicImage(
|
||||
auto userpic = PeerData::GenerateUserpicImage(
|
||||
peer,
|
||||
view,
|
||||
size * style::DevicePixelRatio());
|
||||
userpic.setDevicePixelRatio(style::DevicePixelRatio());
|
||||
|
|
|
@ -336,7 +336,10 @@ QImage Sibling::userpicImage(const SiblingLayout &layout) {
|
|||
const auto key = _peer->userpicUniqueKey(_userpicView);
|
||||
if (_userpicImage.width() != size || _userpicKey != key) {
|
||||
_userpicKey = key;
|
||||
_userpicImage = _peer->generateUserpicImage(_userpicView, size);
|
||||
_userpicImage = PeerData::GenerateUserpicImage(
|
||||
_peer,
|
||||
_userpicView,
|
||||
size);
|
||||
_userpicImage.setDevicePixelRatio(ratio);
|
||||
}
|
||||
return _userpicImage;
|
||||
|
|
|
@ -235,7 +235,8 @@ PaintRoundImageCallback Row::generatePaintUserpicCallback(bool forceRound) {
|
|||
p.drawImage(QRect(x, y, size, size), userpic.cached);
|
||||
} else {
|
||||
if (_emptyUserpic.isNull()) {
|
||||
_emptyUserpic = peer->generateUserpicImage(
|
||||
_emptyUserpic = PeerData::GenerateUserpicImage(
|
||||
peer,
|
||||
_userpic,
|
||||
size * ratio,
|
||||
size * ratio * Ui::ForumUserpicRadiusMultiplier());
|
||||
|
|
|
@ -1026,10 +1026,12 @@ void UserpicButton::prepareUserpicPixmap() {
|
|||
true);
|
||||
p.drawImage(QRect(0, 0, size, size), _userpicView.cached);
|
||||
} else {
|
||||
const auto empty = _peer->generateUserpicImage(
|
||||
const auto empty = PeerData::GenerateUserpicImage(
|
||||
_peer,
|
||||
_userpicView,
|
||||
size * ratio,
|
||||
size * ratio * Ui::ForumUserpicRadiusMultiplier());
|
||||
(size * ratio)
|
||||
* Ui::ForumUserpicRadiusMultiplier());
|
||||
p.drawImage(QRect(0, 0, size, size), empty);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -245,7 +245,11 @@ QImage PeerUserpic::image(int size) {
|
|||
} else {
|
||||
const auto full = size * style::DevicePixelRatio();
|
||||
const auto r = full / 2.;
|
||||
const auto empty = _peer->generateUserpicImage(view, full, r);
|
||||
const auto empty = PeerData::GenerateUserpicImage(
|
||||
_peer,
|
||||
view,
|
||||
full,
|
||||
r);
|
||||
p.drawImage(QRect(0, 0, size, size), empty);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ QImage GenerateUserpic(not_null<PeerData*> peer, Ui::PeerUserpicView &view) {
|
|||
? Ui::EmptyUserpic::GenerateSavedMessages(st::notifyMacPhotoSize)
|
||||
: peer->isRepliesChat()
|
||||
? Ui::EmptyUserpic::GenerateRepliesMessages(st::notifyMacPhotoSize)
|
||||
: peer->generateUserpicImage(view, st::notifyMacPhotoSize);
|
||||
: PeerData::GenerateUserpicImage(peer, view, st::notifyMacPhotoSize);
|
||||
}
|
||||
|
||||
CachedUserpics::CachedUserpics()
|
||||
|
|
Loading…
Add table
Reference in a new issue