X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=220e28f3c89fe9949018f6994c970fbf639d6c49;hp=10ee20f979818b4421c4dde03a0f80b3d584d59f;hb=fcacaaf16551524c7ebb6114254d005274cc3d63;hpb=bf86381e85cd97ef04a9dc45c2b1a063035391fa diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index 10ee20f9..220e28f3 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-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,48 +15,93 @@ * 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(); + + CoreAccountSettings s; + AccountId lastAccount = s.lastAccount(); + if (lastAccount.isValid()) + _settingsPage->setSelectedAccount(lastAccount); + + setWindowTitle(tr("Connect to Core")); + setWindowIcon(icon::get("network-disconnect")); + + auto *layout = new QVBoxLayout(this); + layout->addWidget(_settingsPage); + + auto *buttonBox = new QDialogButtonBox(this); + buttonBox->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); + layout->addWidget(buttonBox); + + connect(_settingsPage, SIGNAL(connectToCore(AccountId)), SLOT(accept())); + connect(buttonBox, SIGNAL(accepted()), SLOT(accept())); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); +} + + +AccountId CoreConnectDlg::selectedAccount() const +{ + return _settingsPage->selectedAccount(); +} + + +void CoreConnectDlg::accept() +{ + _settingsPage->save(); + QDialog::accept(); +} -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); +/******** CoreConnectAuthDlg ****************************************************************/ - setWindowTitle(tr("Connect to Core")); - setWindowIcon(SmallIcon("network-disconnect")); +CoreConnectAuthDlg::CoreConnectAuthDlg(CoreAccount *account, QWidget *parent) + : QDialog(parent), + _account(account) +{ + ui.setupUi(this); - QVBoxLayout *layout = new QVBoxLayout(this); - layout->addWidget(_settingsPage); + connect(ui.user, &QLineEdit::textChanged, this, &CoreConnectAuthDlg::setButtonStates); + connect(ui.password, &QLineEdit::textChanged, this, &CoreConnectAuthDlg::setButtonStates); - QDialogButtonBox *buttonBox = new QDialogButtonBox(this); - buttonBox->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); - layout->addWidget(buttonBox); + 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()); - connect(_settingsPage, SIGNAL(connectToCore(AccountId)), SLOT(accept())); - connect(buttonBox, SIGNAL(accepted()), SLOT(accept())); - connect(buttonBox, SIGNAL(rejected()), SLOT(reject())); + if (ui.user->text().isEmpty()) + ui.user->setFocus(); + else + ui.password->setFocus(); } -AccountId CoreConnectDlg::selectedAccount() const { - return _settingsPage->selectedAccount(); + +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); }