diff --git a/src/widgets/ruqolacentralwidget.cpp b/src/widgets/ruqolacentralwidget.cpp index 4efd677f..287f6d5a 100644 --- a/src/widgets/ruqolacentralwidget.cpp +++ b/src/widgets/ruqolacentralwidget.cpp @@ -1,113 +1,113 @@ /* Copyright (c) 2020 Laurent Montel This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License or ( at your option ) version 3 or, at the discretion of KDE e.V. ( which shall act as a proxy as in section 14 of the GPLv3 ), any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "ruqolacentralwidget.h" #include "ruqolaloginwidget.h" #include "ruqolamainwidget.h" #include "ruqola.h" #include "rocketchataccount.h" #include #include #include #include RuqolaCentralWidget::RuqolaCentralWidget(QWidget *parent) : QWidget(parent) { auto *mainLayout = new QHBoxLayout(this); mainLayout->setObjectName(QStringLiteral("mainlayout")); mStackedWidget = new QStackedWidget(this); mStackedWidget->setObjectName(QStringLiteral("mStackedWidget")); mainLayout->addWidget(mStackedWidget); mRuqolaMainWidget = new RuqolaMainWidget(this); mRuqolaMainWidget->setObjectName(QStringLiteral("mRuqolaMainWidget")); mStackedWidget->addWidget(mRuqolaMainWidget); mRuqolaLoginWidget = new RuqolaLoginWidget(this); mRuqolaLoginWidget->setObjectName(QStringLiteral("mRuqolaLoginWidget")); mStackedWidget->addWidget(mRuqolaLoginWidget); mStackedWidget->setCurrentWidget(mRuqolaLoginWidget); connect(mRuqolaMainWidget, &RuqolaMainWidget::channelSelected, this, &RuqolaCentralWidget::channelSelected); } RuqolaCentralWidget::~RuqolaCentralWidget() { } void RuqolaCentralWidget::slotJobFailedInfo(const QString &messageError) { //TODO fix i18n KMessageBox::error(this, messageError, i18n("Job Failed")); } void RuqolaCentralWidget::slotSocketError(QAbstractSocket::SocketError error, const QString &errorString) { Q_UNUSED(error); // ## let's hope this happens while the login widget is visible, but that's quite likely // Testcase: try to connect to a server that doesn't exist mRuqolaLoginWidget->showError(errorString); } RoomWrapper *RuqolaCentralWidget::roomWrapper() const { return mRuqolaMainWidget->roomWrapper(); } QString RuqolaCentralWidget::roomId() const { return mRuqolaMainWidget->roomId(); } QString RuqolaCentralWidget::roomType() const { return mRuqolaMainWidget->roomType(); } void RuqolaCentralWidget::setCurrentRocketChatAccount(RocketChatAccount *account) { if (mCurrentRocketChatAccount) { disconnect(mCurrentRocketChatAccount, nullptr, this, nullptr); } mCurrentRocketChatAccount = account; connect(mCurrentRocketChatAccount, &RocketChatAccount::loginStatusChanged, this, &RuqolaCentralWidget::slotLoginStatusChanged); connect(mCurrentRocketChatAccount, &RocketChatAccount::socketError, this, &RuqolaCentralWidget::slotSocketError); connect(mCurrentRocketChatAccount, &RocketChatAccount::jobFailed, this, &RuqolaCentralWidget::slotJobFailedInfo); - mRuqolaMainWidget->setCurrentRocketChatAccount(account); + mRuqolaMainWidget->setCurrentRocketChatAccount(mCurrentRocketChatAccount); //Check if account is connected or not. slotLoginStatusChanged(); } void RuqolaCentralWidget::slotLoginStatusChanged() { const auto loginStatus = mCurrentRocketChatAccount->loginStatus(); mRuqolaLoginWidget->setLoginStatus(loginStatus); bool loginPage = false; if (loginStatus == DDPAuthenticationManager::LoggedIn) { mStackedWidget->setCurrentWidget(mRuqolaMainWidget); } else { mStackedWidget->setCurrentWidget(mRuqolaLoginWidget); mRuqolaLoginWidget->initialize(); loginPage = true; } Q_EMIT loginPageActivated(loginPage); }