summary refs log tree commit diff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/UserProfile.cpp39
-rw-r--r--src/ui/UserProfile.h1
2 files changed, 40 insertions, 0 deletions
diff --git a/src/ui/UserProfile.cpp b/src/ui/UserProfile.cpp

index 08219a38..503f314c 100644 --- a/src/ui/UserProfile.cpp +++ b/src/ui/UserProfile.cpp
@@ -4,6 +4,7 @@ #include "DeviceVerificationFlow.h" #include "Logging.h" #include "Utils.h" +#include <mtx/responses/common.hpp> #include "mtx/responses/crypto.hpp" #include "timeline/TimelineModel.h" #include "timeline/TimelineViewManager.h" @@ -214,6 +215,44 @@ UserProfile::startChat() } void +UserProfile::changeUsername(QString username) +{ + // change room username + mtx::events::state::Member member; + member.display_name = username.toStdString(); + member.avatar_url = + cache::avatarUrl(roomid_, + QString::fromStdString(http::client()->user_id().to_string())) + .toStdString(); + member.membership = mtx::events::state::Membership::Join; + + http::client()->send_state_event(roomid_.toStdString(), + http::client()->user_id().to_string(), + member, + [](mtx::responses::EventId, mtx::http::RequestErr err) { + if (err) + nhlog::net()->error( + "Failed to set room displayname: {}", + err->matrix_error.error); + }); + + /*connect(modal, &EditModal::nameChanged, this, [this](const QString &newName) { + if (roomNameLabel_) + roomNameLabel_->setText(newName); + });*/ + + /*std::string newName = "jedi18"; + // change user name + http::client()->set_displayname( + newName, [this]( mtx::http::RequestErr err) { + if (err) { + nhlog::net()->warn("could not change username"); + return; + } + });*/ +} + +void UserProfile::verify(QString device) { if (!device.isEmpty()) diff --git a/src/ui/UserProfile.h b/src/ui/UserProfile.h
index 19527310..df90e5a1 100644 --- a/src/ui/UserProfile.h +++ b/src/ui/UserProfile.h
@@ -109,6 +109,7 @@ public: // Q_INVOKABLE void ignoreUser(); Q_INVOKABLE void kickUser(); Q_INVOKABLE void startChat(); + Q_INVOKABLE void changeUsername(QString username); signals: void userStatusChanged();