Add backend for new room creation dialogs
This commit is contained in:
parent
d7cb2bd647
commit
6d1416fb6e
14 changed files with 125 additions and 275 deletions
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@ public:
|
|||
Q_INVOKABLE void setStatusMessage(QString msg) const;
|
||||
Q_INVOKABLE void showUserSettingsPage() const;
|
||||
Q_INVOKABLE void logout() const;
|
||||
Q_INVOKABLE void openCreateRoomDialog() const;
|
||||
Q_INVOKABLE void
|
||||
createRoom(QString name, QString topic, QString aliasLocalpart, bool isEncrypted, int preset);
|
||||
|
||||
public slots:
|
||||
void updateUserProfile();
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ UserProfile::UserProfile(QString roomid,
|
|||
|
||||
emit verificationStatiChanged();
|
||||
});
|
||||
connect(this, &UserProfile::devicesChanged, [this]() {
|
||||
nhlog::net()->critical("Device list: {}", deviceList_.rowCount());
|
||||
});
|
||||
fetchDeviceList(this->userid_);
|
||||
}
|
||||
|
||||
|
|
@ -187,7 +190,6 @@ UserProfile::fetchDeviceList(const QString &userID)
|
|||
nhlog::net()->warn("failed to query device keys: {},{}",
|
||||
mtx::errors::to_string(err->matrix_error.errcode),
|
||||
static_cast<int>(err->status_code));
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure local key cache is up to date
|
||||
|
|
@ -201,7 +203,6 @@ UserProfile::fetchDeviceList(const QString &userID)
|
|||
nhlog::net()->warn("failed to query device keys: {},{}",
|
||||
mtx::errors::to_string(err->matrix_error.errcode),
|
||||
static_cast<int>(err->status_code));
|
||||
return;
|
||||
}
|
||||
|
||||
emit verificationStatiChanged();
|
||||
|
|
@ -312,10 +313,16 @@ UserProfile::kickUser()
|
|||
ChatPage::instance()->kickUser(this->userid_, QLatin1String(""));
|
||||
}
|
||||
|
||||
void
|
||||
UserProfile::startChat(bool encryption)
|
||||
{
|
||||
ChatPage::instance()->startChat(this->userid_, encryption);
|
||||
}
|
||||
|
||||
void
|
||||
UserProfile::startChat()
|
||||
{
|
||||
ChatPage::instance()->startChat(this->userid_);
|
||||
ChatPage::instance()->startChat(this->userid_, std::nullopt);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -143,6 +143,7 @@ public:
|
|||
// Q_INVOKABLE void ignoreUser();
|
||||
Q_INVOKABLE void kickUser();
|
||||
Q_INVOKABLE void startChat();
|
||||
Q_INVOKABLE void startChat(bool encryptionEnabled);
|
||||
Q_INVOKABLE void changeUsername(QString username);
|
||||
Q_INVOKABLE void changeDeviceName(QString deviceID, QString deviceName);
|
||||
Q_INVOKABLE void changeAvatar();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue