diff --git a/src/MainWindow.cc b/src/MainWindow.cc
index 92388ae4..5c188903 100644
--- a/src/MainWindow.cc
+++ b/src/MainWindow.cc
@@ -31,6 +31,7 @@
#include "RegisterPage.h"
#include "SnackBar.h"
#include "TrayIcon.h"
+#include "UserSettingsPage.h"
#include "WelcomePage.h"
MainWindow *MainWindow::instance_ = nullptr;
@@ -54,13 +55,15 @@ MainWindow::MainWindow(QWidget *parent)
font.setStyleStrategy(QFont::PreferAntialias);
setFont(font);
- client_ = QSharedPointer<MatrixClient>(new MatrixClient("matrix.org"));
- trayIcon_ = new TrayIcon(":/logos/nheko-32.png", this);
+ client_ = QSharedPointer<MatrixClient>(new MatrixClient("matrix.org"));
+ userSettings_ = QSharedPointer<UserSettings>(new UserSettings);
+ trayIcon_ = new TrayIcon(":/logos/nheko-32.png", this);
- welcome_page_ = new WelcomePage(this);
- login_page_ = new LoginPage(client_, this);
- register_page_ = new RegisterPage(client_, this);
- chat_page_ = new ChatPage(client_, this);
+ welcome_page_ = new WelcomePage(this);
+ login_page_ = new LoginPage(client_, this);
+ register_page_ = new RegisterPage(client_, this);
+ chat_page_ = new ChatPage(client_, this);
+ userSettingsPage_ = new UserSettingsPage(userSettings_, this);
// Initialize sliding widget manager.
pageStack_ = new QStackedWidget(this);
@@ -68,6 +71,7 @@ MainWindow::MainWindow(QWidget *parent)
pageStack_->addWidget(login_page_);
pageStack_->addWidget(register_page_);
pageStack_->addWidget(chat_page_);
+ pageStack_->addWidget(userSettingsPage_);
setCentralWidget(pageStack_);
@@ -86,12 +90,18 @@ MainWindow::MainWindow(QWidget *parent)
showLoginPage();
});
+ connect(userSettingsPage_, &UserSettingsPage::moveBack, this, [=]() {
+ pageStack_->setCurrentWidget(chat_page_);
+ });
+
connect(trayIcon_,
SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
this,
SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
connect(chat_page_, SIGNAL(contentLoaded()), this, SLOT(removeOverlayProgressBar()));
+ connect(
+ chat_page_, &ChatPage::showUserSettingsPage, this, &MainWindow::showUserSettingsPage);
connect(client_.data(),
SIGNAL(loginSuccess(QString, QString, QString)),
@@ -235,6 +245,12 @@ MainWindow::showRegisterPage()
}
void
+MainWindow::showUserSettingsPage()
+{
+ pageStack_->setCurrentWidget(userSettingsPage_);
+}
+
+void
MainWindow::closeEvent(QCloseEvent *event)
{
if (isVisible()) {
|