diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index 0978fc25..777b5b22 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -33,7 +33,6 @@
#include "ui/SnackBar.h"
#include "dialogs/CreateRoom.h"
-#include "dialogs/JoinRoom.h"
#include "dialogs/LeaveRoom.h"
MainWindow *MainWindow::instance_ = nullptr;
@@ -325,18 +324,6 @@ MainWindow::showOverlayProgressBar()
}
void
-MainWindow::openJoinRoomDialog(std::function<void(const QString &room_id)> callback)
-{
- auto dialog = new dialogs::JoinRoom(this);
- connect(dialog, &dialogs::JoinRoom::joinRoom, this, [callback](const QString &room) {
- if (!room.isEmpty())
- callback(room);
- });
-
- showDialog(dialog);
-}
-
-void
MainWindow::openCreateRoomDialog(
std::function<void(const mtx::requests::CreateRoom &request)> callback)
{
diff --git a/src/MainWindow.h b/src/MainWindow.h
index a3c3c767..01575a19 100644
--- a/src/MainWindow.h
+++ b/src/MainWindow.h
@@ -37,7 +37,6 @@ struct CreateRoom;
namespace dialogs {
class CreateRoom;
class InviteUsers;
-class JoinRoom;
class LeaveRoom;
class Logout;
class MemberList;
@@ -64,6 +63,7 @@ public:
void openCreateRoomDialog(
std::function<void(const mtx::requests::CreateRoom &request)> callback);
void openJoinRoomDialog(std::function<void(const QString &room_id)> callback);
+ void openLogoutDialog();
void hideOverlay();
void showSolidOverlayModal(QWidget *content, QFlags<Qt::AlignmentFlag> flags = Qt::AlignCenter);
diff --git a/src/dialogs/JoinRoom.cpp b/src/dialogs/JoinRoom.cpp
deleted file mode 100644
index 76baf857..00000000
--- a/src/dialogs/JoinRoom.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// SPDX-FileCopyrightText: 2021 Nheko Contributors
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#include <QLabel>
-#include <QPushButton>
-#include <QVBoxLayout>
-
-#include "dialogs/JoinRoom.h"
-
-#include "Config.h"
-#include "ui/TextField.h"
-
-using namespace dialogs;
-
-JoinRoom::JoinRoom(QWidget *parent)
- : QFrame(parent)
-{
- setAutoFillBackground(true);
- setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
- setWindowModality(Qt::WindowModal);
- setAttribute(Qt::WA_DeleteOnClose, true);
-
- setMinimumWidth(conf::modals::MIN_WIDGET_WIDTH);
- setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);
-
- auto layout = new QVBoxLayout(this);
- layout->setSpacing(conf::modals::WIDGET_SPACING);
- layout->setMargin(conf::modals::WIDGET_MARGIN);
-
- auto buttonLayout = new QHBoxLayout();
- buttonLayout->setSpacing(15);
-
- confirmBtn_ = new QPushButton(tr("Join"), this);
- confirmBtn_->setDefault(true);
- cancelBtn_ = new QPushButton(tr("Cancel"), this);
-
- buttonLayout->addStretch(1);
- buttonLayout->addWidget(cancelBtn_);
- buttonLayout->addWidget(confirmBtn_);
-
- roomInput_ = new TextField(this);
- roomInput_->setLabel(tr("Room ID or alias"));
-
- layout->addWidget(roomInput_);
- layout->addLayout(buttonLayout);
- layout->addStretch(1);
-
- connect(roomInput_, &QLineEdit::returnPressed, this, &JoinRoom::handleInput);
- connect(confirmBtn_, &QPushButton::clicked, this, &JoinRoom::handleInput);
- connect(cancelBtn_, &QPushButton::clicked, this, &JoinRoom::close);
-}
-
-void
-JoinRoom::handleInput()
-{
- if (roomInput_->text().isEmpty())
- return;
-
- // TODO: input validation with error messages.
- emit joinRoom(roomInput_->text());
- roomInput_->clear();
-
- emit close();
-}
-
-void
-JoinRoom::showEvent(QShowEvent *event)
-{
- roomInput_->setFocus();
-
- QFrame::showEvent(event);
-}
diff --git a/src/dialogs/JoinRoom.h b/src/dialogs/JoinRoom.h
deleted file mode 100644
index 11c54d7c..00000000
--- a/src/dialogs/JoinRoom.h
+++ /dev/null
@@ -1,36 +0,0 @@
-// SPDX-FileCopyrightText: 2021 Nheko Contributors
-//
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-#pragma once
-
-#include <QFrame>
-
-class QPushButton;
-class TextField;
-
-namespace dialogs {
-
-class JoinRoom : public QFrame
-{
- Q_OBJECT
-public:
- JoinRoom(QWidget *parent = nullptr);
-
-signals:
- void joinRoom(const QString &room);
-
-protected:
- void showEvent(QShowEvent *event) override;
-
-private slots:
- void handleInput();
-
-private:
- QPushButton *confirmBtn_;
- QPushButton *cancelBtn_;
-
- TextField *roomInput_;
-};
-
-} // dialogs
diff --git a/src/ui/NhekoGlobalObject.cpp b/src/ui/NhekoGlobalObject.cpp
index d687a308..11fc5681 100644
--- a/src/ui/NhekoGlobalObject.cpp
+++ b/src/ui/NhekoGlobalObject.cpp
@@ -21,6 +21,7 @@ Nheko::Nheko()
connect(
UserSettings::instance().get(), &UserSettings::themeChanged, this, &Nheko::colorsChanged);
connect(ChatPage::instance(), &ChatPage::contentLoaded, this, &Nheko::updateUserProfile);
+ connect(this, &Nheko::joinRoom, ChatPage::instance(), &ChatPage::joinRoom);
}
void
@@ -97,13 +98,6 @@ Nheko::openCreateRoomDialog() const
}
void
-Nheko::openJoinRoomDialog() const
-{
- MainWindow::instance()->openJoinRoomDialog(
- [](const QString &room_id) { ChatPage::instance()->joinRoom(room_id); });
-}
-
-void
Nheko::reparent(QWindow *win) const
{
win->setTransientParent(MainWindow::instance()->windowHandle());
diff --git a/src/ui/NhekoGlobalObject.h b/src/ui/NhekoGlobalObject.h
index 64aad941..c70813c5 100644
--- a/src/ui/NhekoGlobalObject.h
+++ b/src/ui/NhekoGlobalObject.h
@@ -50,7 +50,6 @@ public:
Q_INVOKABLE void showUserSettingsPage() const;
Q_INVOKABLE void logout() const;
Q_INVOKABLE void openCreateRoomDialog() const;
- Q_INVOKABLE void openJoinRoomDialog() const;
Q_INVOKABLE void reparent(QWindow *win) const;
public slots:
@@ -61,6 +60,8 @@ signals:
void profileChanged();
void openLogoutDialog();
+ void openJoinRoomDialog();
+ void joinRoom(QString roomId);
private:
QScopedPointer<UserProfile> currentUser_;
|