mirror of
https://github.com/vale981/tdesktop
synced 2025-03-06 02:01:40 -05:00
Pass correct FileOrigin for userpics.
This commit is contained in:
parent
e6c4c48261
commit
8850d974a2
4 changed files with 16 additions and 13 deletions
|
@ -523,13 +523,13 @@ void Panel::refreshUserPhoto() {
|
|||
if (isGoodUserPhoto(photo) && isNewPhoto(photo)) {
|
||||
_userPhotoId = photo->id;
|
||||
_userPhotoFull = true;
|
||||
createUserpicCache(photo->full);
|
||||
createUserpicCache(photo->full, _user->userpicPhotoOrigin());
|
||||
} else if (_userPhoto.isNull()) {
|
||||
createUserpicCache(_user->currentUserpic());
|
||||
createUserpicCache(_user->currentUserpic(), _user->userpicOrigin());
|
||||
}
|
||||
}
|
||||
|
||||
void Panel::createUserpicCache(ImagePtr image) {
|
||||
void Panel::createUserpicCache(ImagePtr image, Data::FileOrigin origin) {
|
||||
auto size = st::callWidth * cIntRetinaFactor();
|
||||
auto options = _useTransparency ? (Images::Option::RoundedLarge | Images::Option::RoundedTopLeft | Images::Option::RoundedTopRight | Images::Option::Smooth) : Images::Option::None;
|
||||
if (image) {
|
||||
|
@ -543,7 +543,7 @@ void Panel::createUserpicCache(ImagePtr image) {
|
|||
width = size;
|
||||
}
|
||||
_userPhoto = image->pixNoCache(
|
||||
_user->userpicPhotoOrigin(),
|
||||
origin,
|
||||
width,
|
||||
height,
|
||||
options,
|
||||
|
|
|
@ -92,7 +92,7 @@ private:
|
|||
void processUserPhoto();
|
||||
void refreshUserPhoto();
|
||||
bool isGoodUserPhoto(PhotoData *photo);
|
||||
void createUserpicCache(ImagePtr image);
|
||||
void createUserpicCache(ImagePtr image, Data::FileOrigin origin);
|
||||
QRect signalBarsRect() const;
|
||||
void paintSignalBarsBg(Painter &p);
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ void PeerData::setUserpicPhoto(const MTPPhoto &data) {
|
|||
|
||||
ImagePtr PeerData::currentUserpic() const {
|
||||
if (_userpic) {
|
||||
_userpic->load(userpicPhotoOrigin());
|
||||
_userpic->load(userpicOrigin());
|
||||
if (_userpic->loaded()) {
|
||||
if (!useEmptyUserpic()) {
|
||||
_userpicEmpty = nullptr;
|
||||
|
@ -203,7 +203,7 @@ ImagePtr PeerData::currentUserpic() const {
|
|||
|
||||
void PeerData::paintUserpic(Painter &p, int x, int y, int size) const {
|
||||
if (auto userpic = currentUserpic()) {
|
||||
p.drawPixmap(x, y, userpic->pixCircled(userpicPhotoOrigin(), size, size));
|
||||
p.drawPixmap(x, y, userpic->pixCircled(userpicOrigin(), size, size));
|
||||
} else {
|
||||
_userpicEmpty->paint(p, x, y, x + size + x, size);
|
||||
}
|
||||
|
@ -211,7 +211,7 @@ void PeerData::paintUserpic(Painter &p, int x, int y, int size) const {
|
|||
|
||||
void PeerData::paintUserpicRounded(Painter &p, int x, int y, int size) const {
|
||||
if (auto userpic = currentUserpic()) {
|
||||
p.drawPixmap(x, y, userpic->pixRounded(userpicPhotoOrigin(), size, size, ImageRoundRadius::Small));
|
||||
p.drawPixmap(x, y, userpic->pixRounded(userpicOrigin(), size, size, ImageRoundRadius::Small));
|
||||
} else {
|
||||
_userpicEmpty->paintRounded(p, x, y, x + size + x, size);
|
||||
}
|
||||
|
@ -219,14 +219,14 @@ void PeerData::paintUserpicRounded(Painter &p, int x, int y, int size) const {
|
|||
|
||||
void PeerData::paintUserpicSquare(Painter &p, int x, int y, int size) const {
|
||||
if (auto userpic = currentUserpic()) {
|
||||
p.drawPixmap(x, y, userpic->pix(userpicPhotoOrigin(), size, size));
|
||||
p.drawPixmap(x, y, userpic->pix(userpicOrigin(), size, size));
|
||||
} else {
|
||||
_userpicEmpty->paintSquare(p, x, y, x + size + x, size);
|
||||
}
|
||||
}
|
||||
|
||||
void PeerData::loadUserpic(bool loadFirst, bool prior) {
|
||||
_userpic->load(userpicPhotoOrigin(), loadFirst, prior);
|
||||
_userpic->load(userpicOrigin(), loadFirst, prior);
|
||||
}
|
||||
|
||||
bool PeerData::userpicLoaded() const {
|
||||
|
@ -256,7 +256,7 @@ void PeerData::saveUserpicRounded(const QString &path, int size) const {
|
|||
|
||||
QPixmap PeerData::genUserpic(int size) const {
|
||||
if (auto userpic = currentUserpic()) {
|
||||
return userpic->pixCircled(userpicPhotoOrigin(), size, size);
|
||||
return userpic->pixCircled(userpicOrigin(), size, size);
|
||||
}
|
||||
auto result = QImage(QSize(size, size) * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied);
|
||||
result.setDevicePixelRatio(cRetinaFactor());
|
||||
|
@ -270,7 +270,7 @@ QPixmap PeerData::genUserpic(int size) const {
|
|||
|
||||
QPixmap PeerData::genUserpicRounded(int size) const {
|
||||
if (auto userpic = currentUserpic()) {
|
||||
return userpic->pixRounded(userpicPhotoOrigin(), size, size, ImageRoundRadius::Small);
|
||||
return userpic->pixRounded(userpicOrigin(), size, size, ImageRoundRadius::Small);
|
||||
}
|
||||
auto result = QImage(QSize(size, size) * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied);
|
||||
result.setDevicePixelRatio(cRetinaFactor());
|
||||
|
|
|
@ -183,10 +183,13 @@ public:
|
|||
PhotoId userpicPhotoId() const {
|
||||
return userpicPhotoUnknown() ? 0 : _userpicPhotoId;
|
||||
}
|
||||
Data::FileOrigin userpicOrigin() const {
|
||||
return Data::FileOrigin(Data::FileOriginPeerPhoto(id));
|
||||
}
|
||||
Data::FileOrigin userpicPhotoOrigin() const {
|
||||
return (isUser() && userpicPhotoId())
|
||||
? Data::FileOriginUserPhoto(bareId(), userpicPhotoId())
|
||||
: Data::FileOrigin(Data::FileOriginPeerPhoto(id));
|
||||
: Data::FileOrigin();
|
||||
}
|
||||
|
||||
int nameVersion = 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue