fixed global avatar updation in the dialog

pull/445/head
Jedi18 4 years ago
parent cd3f719e43
commit 2ff3c0c97e
  1. 37
      src/ui/UserProfile.cpp
  2. 2
      src/ui/UserProfile.h

@ -24,6 +24,7 @@ UserProfile::UserProfile(QString roomid,
, model(parent) , model(parent)
{ {
fetchDeviceList(this->userid_); fetchDeviceList(this->userid_);
globalAvatarUrl = "";
connect(cache::client(), connect(cache::client(),
&Cache::verificationStatusChanged, &Cache::verificationStatusChanged,
@ -56,16 +57,9 @@ UserProfile::UserProfile(QString roomid,
&UserProfile::setGlobalUsername, &UserProfile::setGlobalUsername,
Qt::QueuedConnection); Qt::QueuedConnection);
http::client()->get_profile( if (isGlobalUserProfile()) {
userid_.toStdString(), getGlobalProfileData();
[this](const mtx::responses::Profile &res, mtx::http::RequestErr err) { }
if (err) {
nhlog::net()->warn("failed to retrieve own profile info");
return;
}
emit globalUsernameRetrieved(QString::fromStdString(res.display_name));
});
} }
QHash<int, QByteArray> QHash<int, QByteArray>
@ -125,7 +119,10 @@ UserProfile::displayName()
QString QString
UserProfile::avatarUrl() UserProfile::avatarUrl()
{ {
return cache::avatarUrl(roomid_, userid_); return (isGlobalUserProfile() && globalAvatarUrl != "")
? globalAvatarUrl
: cache::avatarUrl(roomid_, userid_);
;
} }
bool bool
@ -353,6 +350,7 @@ UserProfile::changeAvatar()
isLoading_ = false; isLoading_ = false;
emit loadingChanged(); emit loadingChanged();
getGlobalProfileData();
}); });
} else { } else {
// change room username // change room username
@ -393,4 +391,21 @@ bool
UserProfile::isLoading() const UserProfile::isLoading() const
{ {
return isLoading_; return isLoading_;
}
void
UserProfile::getGlobalProfileData()
{
http::client()->get_profile(
userid_.toStdString(),
[this](const mtx::responses::Profile &res, mtx::http::RequestErr err) {
if (err) {
nhlog::net()->warn("failed to retrieve own profile info");
return;
}
emit globalUsernameRetrieved(QString::fromStdString(res.display_name));
globalAvatarUrl = QString::fromStdString(res.avatar_url);
emit avatarUrlChanged();
});
} }

@ -134,10 +134,12 @@ protected slots:
private: private:
void updateRoomMemberState(mtx::events::state::Member member); void updateRoomMemberState(mtx::events::state::Member member);
void getGlobalProfileData();
private: private:
QString roomid_, userid_; QString roomid_, userid_;
QString globalUsername; QString globalUsername;
QString globalAvatarUrl;
DeviceInfoModel deviceList_; DeviceInfoModel deviceList_;
bool isUserVerified = false; bool isUserVerified = false;
bool hasMasterKey = false; bool hasMasterKey = false;

Loading…
Cancel
Save