Use Data::CloudImage for userpics.

This commit is contained in:
John Preston
2020-05-28 18:32:10 +04:00
parent 249f7813c1
commit f066e0f05a
55 changed files with 748 additions and 284 deletions

View File

@@ -32,11 +32,11 @@ using UpdateFlag = Notify::PeerUpdate::Flag;
} // namespace
GroupMembersWidget::Member::Member(UserData *user) : Item(user) {
GroupMembersWidget::Member::Member(not_null<UserData*> user) : Item(user) {
}
UserData *GroupMembersWidget::Member::user() const {
return static_cast<UserData*>(peer);
not_null<UserData*> GroupMembersWidget::Member::user() const {
return static_cast<UserData*>(peer.get());
}
GroupMembersWidget::GroupMembersWidget(

View File

@@ -55,8 +55,8 @@ private:
void refreshUserOnline(UserData *user);
struct Member : public Item {
explicit Member(UserData *user);
UserData *user() const;
explicit Member(not_null<UserData*> user);
not_null<UserData*> user() const;
TimeId onlineTextTill = 0;
TimeId onlineTill = 0;

View File

@@ -10,13 +10,14 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/effects/ripple_animation.h"
#include "ui/text_options.h"
#include "data/data_peer.h"
#include "data/data_cloud_file.h"
#include "main/main_session.h"
#include "styles/style_profile.h"
#include "styles/style_widgets.h"
namespace Profile {
PeerListWidget::Item::Item(PeerData *peer) : peer(peer) {
PeerListWidget::Item::Item(not_null<PeerData*> peer) : peer(peer) {
}
PeerListWidget::Item::~Item() = default;
@@ -84,7 +85,7 @@ void PeerListWidget::paintItem(Painter &p, int x, int y, Item *item, bool select
}
int skip = _st.photoPosition.x();
item->peer->paintUserpicLeft(p, x + _st.photoPosition.x(), y + _st.photoPosition.y(), width(), _st.photoSize);
item->peer->paintUserpicLeft(p, item->userpic, x + _st.photoPosition.x(), y + _st.photoPosition.y(), width(), _st.photoSize);
if (item->name.isEmpty()) {
item->name.setText(

View File

@@ -9,6 +9,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "profile/profile_block_widget.h"
namespace Data {
class CloudImageView;
} // namespace Data
namespace Ui {
class RippleAnimation;
class PopupMenu;
@@ -29,10 +33,11 @@ public:
PeerListWidget(QWidget *parent, PeerData *peer, const QString &title, const style::PeerListItem &st, const QString &removeText);
struct Item {
explicit Item(PeerData *peer);
explicit Item(not_null<PeerData*> peer);
~Item();
PeerData * const peer;
const not_null<PeerData*> peer;
std::shared_ptr<Data::CloudImageView> userpic;
Ui::Text::String name;
QString statusText;
bool statusHasOnlineColor = false;