mirror of https://github.com/procxx/kepka.git
Pass correct FileOrigin for userpics.
This commit is contained in:
parent
e6c4c48261
commit
8850d974a2
|
@ -523,13 +523,13 @@ void Panel::refreshUserPhoto() {
|
||||||
if (isGoodUserPhoto(photo) && isNewPhoto(photo)) {
|
if (isGoodUserPhoto(photo) && isNewPhoto(photo)) {
|
||||||
_userPhotoId = photo->id;
|
_userPhotoId = photo->id;
|
||||||
_userPhotoFull = true;
|
_userPhotoFull = true;
|
||||||
createUserpicCache(photo->full);
|
createUserpicCache(photo->full, _user->userpicPhotoOrigin());
|
||||||
} else if (_userPhoto.isNull()) {
|
} 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 size = st::callWidth * cIntRetinaFactor();
|
||||||
auto options = _useTransparency ? (Images::Option::RoundedLarge | Images::Option::RoundedTopLeft | Images::Option::RoundedTopRight | Images::Option::Smooth) : Images::Option::None;
|
auto options = _useTransparency ? (Images::Option::RoundedLarge | Images::Option::RoundedTopLeft | Images::Option::RoundedTopRight | Images::Option::Smooth) : Images::Option::None;
|
||||||
if (image) {
|
if (image) {
|
||||||
|
@ -543,7 +543,7 @@ void Panel::createUserpicCache(ImagePtr image) {
|
||||||
width = size;
|
width = size;
|
||||||
}
|
}
|
||||||
_userPhoto = image->pixNoCache(
|
_userPhoto = image->pixNoCache(
|
||||||
_user->userpicPhotoOrigin(),
|
origin,
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
options,
|
options,
|
||||||
|
|
|
@ -92,7 +92,7 @@ private:
|
||||||
void processUserPhoto();
|
void processUserPhoto();
|
||||||
void refreshUserPhoto();
|
void refreshUserPhoto();
|
||||||
bool isGoodUserPhoto(PhotoData *photo);
|
bool isGoodUserPhoto(PhotoData *photo);
|
||||||
void createUserpicCache(ImagePtr image);
|
void createUserpicCache(ImagePtr image, Data::FileOrigin origin);
|
||||||
QRect signalBarsRect() const;
|
QRect signalBarsRect() const;
|
||||||
void paintSignalBarsBg(Painter &p);
|
void paintSignalBarsBg(Painter &p);
|
||||||
|
|
||||||
|
|
|
@ -187,7 +187,7 @@ void PeerData::setUserpicPhoto(const MTPPhoto &data) {
|
||||||
|
|
||||||
ImagePtr PeerData::currentUserpic() const {
|
ImagePtr PeerData::currentUserpic() const {
|
||||||
if (_userpic) {
|
if (_userpic) {
|
||||||
_userpic->load(userpicPhotoOrigin());
|
_userpic->load(userpicOrigin());
|
||||||
if (_userpic->loaded()) {
|
if (_userpic->loaded()) {
|
||||||
if (!useEmptyUserpic()) {
|
if (!useEmptyUserpic()) {
|
||||||
_userpicEmpty = nullptr;
|
_userpicEmpty = nullptr;
|
||||||
|
@ -203,7 +203,7 @@ ImagePtr PeerData::currentUserpic() const {
|
||||||
|
|
||||||
void PeerData::paintUserpic(Painter &p, int x, int y, int size) const {
|
void PeerData::paintUserpic(Painter &p, int x, int y, int size) const {
|
||||||
if (auto userpic = currentUserpic()) {
|
if (auto userpic = currentUserpic()) {
|
||||||
p.drawPixmap(x, y, userpic->pixCircled(userpicPhotoOrigin(), size, size));
|
p.drawPixmap(x, y, userpic->pixCircled(userpicOrigin(), size, size));
|
||||||
} else {
|
} else {
|
||||||
_userpicEmpty->paint(p, x, y, x + size + x, size);
|
_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 {
|
void PeerData::paintUserpicRounded(Painter &p, int x, int y, int size) const {
|
||||||
if (auto userpic = currentUserpic()) {
|
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 {
|
} else {
|
||||||
_userpicEmpty->paintRounded(p, x, y, x + size + x, size);
|
_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 {
|
void PeerData::paintUserpicSquare(Painter &p, int x, int y, int size) const {
|
||||||
if (auto userpic = currentUserpic()) {
|
if (auto userpic = currentUserpic()) {
|
||||||
p.drawPixmap(x, y, userpic->pix(userpicPhotoOrigin(), size, size));
|
p.drawPixmap(x, y, userpic->pix(userpicOrigin(), size, size));
|
||||||
} else {
|
} else {
|
||||||
_userpicEmpty->paintSquare(p, x, y, x + size + x, size);
|
_userpicEmpty->paintSquare(p, x, y, x + size + x, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PeerData::loadUserpic(bool loadFirst, bool prior) {
|
void PeerData::loadUserpic(bool loadFirst, bool prior) {
|
||||||
_userpic->load(userpicPhotoOrigin(), loadFirst, prior);
|
_userpic->load(userpicOrigin(), loadFirst, prior);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PeerData::userpicLoaded() const {
|
bool PeerData::userpicLoaded() const {
|
||||||
|
@ -256,7 +256,7 @@ void PeerData::saveUserpicRounded(const QString &path, int size) const {
|
||||||
|
|
||||||
QPixmap PeerData::genUserpic(int size) const {
|
QPixmap PeerData::genUserpic(int size) const {
|
||||||
if (auto userpic = currentUserpic()) {
|
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);
|
auto result = QImage(QSize(size, size) * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied);
|
||||||
result.setDevicePixelRatio(cRetinaFactor());
|
result.setDevicePixelRatio(cRetinaFactor());
|
||||||
|
@ -270,7 +270,7 @@ QPixmap PeerData::genUserpic(int size) const {
|
||||||
|
|
||||||
QPixmap PeerData::genUserpicRounded(int size) const {
|
QPixmap PeerData::genUserpicRounded(int size) const {
|
||||||
if (auto userpic = currentUserpic()) {
|
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);
|
auto result = QImage(QSize(size, size) * cIntRetinaFactor(), QImage::Format_ARGB32_Premultiplied);
|
||||||
result.setDevicePixelRatio(cRetinaFactor());
|
result.setDevicePixelRatio(cRetinaFactor());
|
||||||
|
|
|
@ -183,10 +183,13 @@ public:
|
||||||
PhotoId userpicPhotoId() const {
|
PhotoId userpicPhotoId() const {
|
||||||
return userpicPhotoUnknown() ? 0 : _userpicPhotoId;
|
return userpicPhotoUnknown() ? 0 : _userpicPhotoId;
|
||||||
}
|
}
|
||||||
|
Data::FileOrigin userpicOrigin() const {
|
||||||
|
return Data::FileOrigin(Data::FileOriginPeerPhoto(id));
|
||||||
|
}
|
||||||
Data::FileOrigin userpicPhotoOrigin() const {
|
Data::FileOrigin userpicPhotoOrigin() const {
|
||||||
return (isUser() && userpicPhotoId())
|
return (isUser() && userpicPhotoId())
|
||||||
? Data::FileOriginUserPhoto(bareId(), userpicPhotoId())
|
? Data::FileOriginUserPhoto(bareId(), userpicPhotoId())
|
||||||
: Data::FileOrigin(Data::FileOriginPeerPhoto(id));
|
: Data::FileOrigin();
|
||||||
}
|
}
|
||||||
|
|
||||||
int nameVersion = 1;
|
int nameVersion = 1;
|
||||||
|
|
Loading…
Reference in New Issue