Changed edit method from double clicking to an edit button

This commit is contained in:
Jedi18 2021-01-28 23:35:02 +05:30
parent 87490c29cd
commit b3f29f592b
5 changed files with 41 additions and 12 deletions

View File

@ -42,15 +42,23 @@ ApplicationWindow {
color: TimelineManager.userColor(profile.userid, colors.window) color: TimelineManager.userColor(profile.userid, colors.window)
font.bold: true font.bold: true
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
focus: true selectByMouse: true
onEditingFinished: profile.changeUsername(displayUsername.text) Keys.priority: Keys.BeforeItem
Keys.onReturnPressed: profile.changeUsername(displayUsername.text)
MouseArea { ImageButton {
enabled: !profile.isUsernameEditingAllowed anchors.leftMargin: 5
anchors.fill: parent anchors.left: displayUsername.right
onDoubleClicked: { anchors.verticalCenter: displayUsername.verticalCenter
profile.allowUsernameEditing(true) image: profile.isUsernameEditingAllowed ? ":/icons/icons/ui/checkmark.png" : ":/icons/icons/ui/edit.png"
onClicked: {
if(profile.isUsernameEditingAllowed) {
profile.changeUsername(displayUsername.text)
}else{
profile.allowUsernameEditing(true)
}
} }
} }
} }

View File

@ -22,6 +22,7 @@
#include "TimelineViewManager.h" #include "TimelineViewManager.h"
#include "Utils.h" #include "Utils.h"
#include "dialogs/RawMessage.h" #include "dialogs/RawMessage.h"
#include <mtx/responses.hpp>
Q_DECLARE_METATYPE(QModelIndex) 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) { connect(&events, &EventStore::updateFlowEventId, this, [this](std::string event_id) {
this->updateFlowEventId(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> QHash<int, QByteArray>
@ -801,7 +813,12 @@ TimelineModel::viewDecryptedRawMessage(QString id) const
void void
TimelineModel::openUserProfile(QString userid, bool global) 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 void

View File

@ -317,6 +317,7 @@ private:
mutable EventStore events; mutable EventStore events;
QString room_id_; QString room_id_;
QString globalUsername;
bool decryptDescription = true; bool decryptDescription = true;
bool m_paginationInProgress = false; bool m_paginationInProgress = false;

View File

@ -12,12 +12,14 @@
UserProfile::UserProfile(QString roomid, UserProfile::UserProfile(QString roomid,
QString userid, QString userid,
TimelineViewManager *manager_, TimelineViewManager *manager_,
TimelineModel *parent) TimelineModel *parent,
QString globalUsername)
: QObject(parent) : QObject(parent)
, roomid_(roomid) , roomid_(roomid)
, userid_(userid) , userid_(userid)
, manager(manager_) , manager(manager_)
, model(parent) , model(parent)
, globalUsername(globalUsername)
{ {
fetchDeviceList(this->userid_); fetchDeviceList(this->userid_);
@ -98,7 +100,7 @@ UserProfile::userid()
QString QString
UserProfile::displayName() UserProfile::displayName()
{ {
return cache::displayName(roomid_, userid_); return globalUserProfile() ? globalUsername : cache::displayName(roomid_, userid_);
} }
QString QString

View File

@ -94,7 +94,8 @@ public:
UserProfile(QString roomid, UserProfile(QString roomid,
QString userid, QString userid,
TimelineViewManager *manager_, TimelineViewManager *manager_,
TimelineModel *parent = nullptr); TimelineModel *parent = nullptr,
QString globalUsername = "");
DeviceInfoModel *deviceList(); DeviceInfoModel *deviceList();
@ -119,11 +120,11 @@ public:
signals: signals:
void userStatusChanged(); void userStatusChanged();
void usernameEditingChanged(); void usernameEditingChanged();
private: private:
QString roomid_, userid_; QString roomid_, userid_;
QString globalUsername;
DeviceInfoModel deviceList_; DeviceInfoModel deviceList_;
bool isUserVerified = false; bool isUserVerified = false;
bool hasMasterKey = false; bool hasMasterKey = false;