summary refs log tree commit diff
path: root/src/ui/NhekoGlobalObject.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2022-03-29 04:50:25 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2022-03-29 20:51:18 +0200
commit6d1416fb6ec7e64a765af652ea3b21722ec12be3 (patch)
treee5a7f21a13cb9aa7e4a737dd52c243da78622300 /src/ui/NhekoGlobalObject.cpp
parentexpose options better (diff)
downloadnheko-6d1416fb6ec7e64a765af652ea3b21722ec12be3.tar.xz
Add backend for new room creation dialogs
Diffstat (limited to 'src/ui/NhekoGlobalObject.cpp')
-rw-r--r--src/ui/NhekoGlobalObject.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/ui/NhekoGlobalObject.cpp b/src/ui/NhekoGlobalObject.cpp

index 3abcdf08..2e1aadf0 100644 --- a/src/ui/NhekoGlobalObject.cpp +++ b/src/ui/NhekoGlobalObject.cpp
@@ -13,7 +13,6 @@ #include "Cache_p.h" #include "ChatPage.h" #include "Logging.h" -#include "MainWindow.h" #include "UserSettingsPage.h" #include "Utils.h" #include "voip/WebRTCSession.h" @@ -129,8 +128,32 @@ Nheko::logout() const } void -Nheko::openCreateRoomDialog() const +Nheko::createRoom(QString name, QString topic, QString aliasLocalpart, bool isEncrypted, int preset) { - MainWindow::instance()->openCreateRoomDialog( - [](const mtx::requests::CreateRoom &req) { ChatPage::instance()->createRoom(req); }); + mtx::requests::CreateRoom req; + + switch (preset) { + case 1: + req.preset = mtx::requests::Preset::PublicChat; + break; + case 2: + req.preset = mtx::requests::Preset::TrustedPrivateChat; + break; + case 0: + default: + req.preset = mtx::requests::Preset::PrivateChat; + } + + req.name = name.toStdString(); + req.topic = topic.toStdString(); + req.room_alias_name = aliasLocalpart.toStdString(); + + if (isEncrypted) { + mtx::events::StrippedEvent<mtx::events::state::Encryption> enc; + enc.type = mtx::events::EventType::RoomEncryption; + enc.content.algorithm = mtx::crypto::MEGOLM_ALGO; + req.initial_state.emplace_back(std::move(enc)); + } + + emit ChatPage::instance()->createRoom(req); }