/***************************************************************************
- * Copyright (C) 2009 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
+#include "coreconnectdlg.h"
+
#include <QDialogButtonBox>
#include <QVBoxLayout>
-#include "coreconnectdlg.h"
-
-#include "iconloader.h"
#include "clientsettings.h"
#include "coreaccountsettingspage.h"
+#include "icon.h"
-CoreConnectDlg::CoreConnectDlg(QWidget *parent) : QDialog(parent) {
- _settingsPage = new CoreAccountSettingsPage(this);
- _settingsPage->setStandAlone(true);
- _settingsPage->load();
+CoreConnectDlg::CoreConnectDlg(QWidget* parent)
+ : QDialog(parent)
+{
+ _settingsPage = new CoreAccountSettingsPage(this);
+ _settingsPage->setStandAlone(true);
+ _settingsPage->load();
- CoreAccountSettings s;
- AccountId lastAccount = s.lastAccount();
- if(lastAccount.isValid())
- _settingsPage->setSelectedAccount(lastAccount);
+ CoreAccountSettings s;
+ AccountId lastAccount = s.lastAccount();
+ if (lastAccount.isValid())
+ _settingsPage->setSelectedAccount(lastAccount);
- setWindowTitle(tr("Connect to Core"));
- setWindowIcon(SmallIcon("network-disconnect"));
+ setWindowTitle(tr("Connect to Core"));
+ setWindowIcon(icon::get("network-disconnect"));
- QVBoxLayout *layout = new QVBoxLayout(this);
- layout->addWidget(_settingsPage);
+ auto* layout = new QVBoxLayout(this);
+ layout->addWidget(_settingsPage);
- QDialogButtonBox *buttonBox = new QDialogButtonBox(this);
- buttonBox->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel);
- layout->addWidget(buttonBox);
+ auto* buttonBox = new QDialogButtonBox(this);
+ buttonBox->setStandardButtons(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ layout->addWidget(buttonBox);
+
+ connect(_settingsPage, &CoreAccountSettingsPage::connectToCore, this, &QDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
+ connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
+}
+
+AccountId CoreConnectDlg::selectedAccount() const
+{
+ return _settingsPage->selectedAccount();
+}
- connect(_settingsPage, SIGNAL(connectToCore(AccountId)), SLOT(accept()));
- connect(buttonBox, SIGNAL(accepted()), SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), SLOT(reject()));
+void CoreConnectDlg::accept()
+{
+ _settingsPage->save();
+ QDialog::accept();
}
-AccountId CoreConnectDlg::selectedAccount() const {
- return _settingsPage->selectedAccount();
+/******** CoreConnectAuthDlg ****************************************************************/
+
+CoreConnectAuthDlg::CoreConnectAuthDlg(CoreAccount* account, QWidget* parent)
+ : QDialog(parent)
+ , _account(account)
+{
+ ui.setupUi(this);
+
+ connect(ui.user, &QLineEdit::textChanged, this, &CoreConnectAuthDlg::setButtonStates);
+ connect(ui.password, &QLineEdit::textChanged, this, &CoreConnectAuthDlg::setButtonStates);
+
+ ui.label->setText(tr("Please enter your credentials for %1:").arg(account->accountName()));
+ ui.user->setText(account->user());
+ ui.password->setText(account->password());
+ ui.rememberPasswd->setChecked(account->storePassword());
+
+ if (ui.user->text().isEmpty())
+ ui.user->setFocus();
+ else
+ ui.password->setFocus();
+}
+
+void CoreConnectAuthDlg::accept()
+{
+ _account->setUser(ui.user->text());
+ _account->setPassword(ui.password->text());
+ _account->setStorePassword(ui.rememberPasswd->isChecked());
+
+ QDialog::accept();
}
-void CoreConnectDlg::accept() {
- _settingsPage->save();
- QDialog::accept();
+void CoreConnectAuthDlg::setButtonStates()
+{
+ bool valid = !(ui.user->text().isEmpty() || ui.password->text().isEmpty());
+ ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(valid);
}