X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=56eaa88fbe8e61af44126c9c2fd2708ba89271ef;hp=10ee20f979818b4421c4dde03a0f80b3d584d59f;hb=1f21c1f9613031ae263eeed0c4883bfcd5488343;hpb=bf86381e85cd97ef04a9dc45c2b1a063035391fa diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index 10ee20f9..56eaa88f 100644 --- a/src/qtui/coreconnectdlg.cpp +++ b/src/qtui/coreconnectdlg.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,48 +15,89 @@ * 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 #include -#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); }