summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/timeline/TimelineModel.cpp19
-rw-r--r--src/timeline/TimelineModel.h1
-rw-r--r--src/ui/UserProfile.cpp6
-rw-r--r--src/ui/UserProfile.h5
4 files changed, 26 insertions, 5 deletions
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp

index ffb0beec..41c0b40e 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -22,6 +22,7 @@ #include "TimelineViewManager.h" #include "Utils.h" #include "dialogs/RawMessage.h" +#include <mtx/responses.hpp> Q_DECLARE_METATYPE(QModelIndex) @@ -260,6 +261,17 @@ TimelineModel::TimelineModel(TimelineViewManager *manager, QString room_id, QObj connect(&events, &EventStore::updateFlowEventId, this, [this](std::string event_id) { this->updateFlowEventId(event_id); }); + + const auto userid = utils::localUser().toStdString(); + http::client()->get_profile( + userid, [this](const mtx::responses::Profile &res, mtx::http::RequestErr err) { + if (err) { + nhlog::net()->warn("failed to retrieve own profile info"); + return; + } + + globalUsername = QString::fromStdString(res.display_name); + }); } QHash<int, QByteArray> @@ -801,7 +813,12 @@ TimelineModel::viewDecryptedRawMessage(QString id) const void TimelineModel::openUserProfile(QString userid, bool global) { - emit openProfile(new UserProfile(global ? "" : room_id_, global ? utils::localUser() : userid, manager_, this)); + if (global) { + emit openProfile(new UserProfile("",utils::localUser(), + manager_, this, globalUsername)); + } else { + emit openProfile(new UserProfile(room_id_, userid, manager_, this)); + } } void diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 51b8049e..e6cb7d3a 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -317,6 +317,7 @@ private: mutable EventStore events; QString room_id_; + QString globalUsername; bool decryptDescription = true; bool m_paginationInProgress = false; diff --git a/src/ui/UserProfile.cpp b/src/ui/UserProfile.cpp
index 4b7f054d..a53d25f4 100644 --- a/src/ui/UserProfile.cpp +++ b/src/ui/UserProfile.cpp
@@ -12,12 +12,14 @@ UserProfile::UserProfile(QString roomid, QString userid, TimelineViewManager *manager_, - TimelineModel *parent) + TimelineModel *parent, + QString globalUsername) : QObject(parent) , roomid_(roomid) , userid_(userid) , manager(manager_) , model(parent) + , globalUsername(globalUsername) { fetchDeviceList(this->userid_); @@ -98,7 +100,7 @@ UserProfile::userid() QString UserProfile::displayName() { - return cache::displayName(roomid_, userid_); + return globalUserProfile() ? globalUsername : cache::displayName(roomid_, userid_); } QString diff --git a/src/ui/UserProfile.h b/src/ui/UserProfile.h
index 4839e0d8..04317766 100644 --- a/src/ui/UserProfile.h +++ b/src/ui/UserProfile.h
@@ -94,7 +94,8 @@ public: UserProfile(QString roomid, QString userid, TimelineViewManager *manager_, - TimelineModel *parent = nullptr); + TimelineModel *parent = nullptr, + QString globalUsername = ""); DeviceInfoModel *deviceList(); @@ -119,11 +120,11 @@ public: signals: void userStatusChanged(); - void usernameEditingChanged(); private: QString roomid_, userid_; + QString globalUsername; DeviceInfoModel deviceList_; bool isUserVerified = false; bool hasMasterKey = false;