X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=4811e2e0ad2bbcf6e4e54887c03376e150d43053;hp=a8dc4820fd8b216698dc86281edaadd1412523d1;hb=f2e4609f070221a010eef8be98524c5ce88d228b;hpb=0c9cd0eef379e1d3e10a75cc8506a7e65f95fd67 diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index a8dc4820..4811e2e0 100644 --- a/src/qtui/coreconnectdlg.cpp +++ b/src/qtui/coreconnectdlg.cpp @@ -20,6 +20,7 @@ #include #include +#include #include "coreconnectdlg.h" @@ -27,9 +28,14 @@ #include "clientsyncer.h" #include "coreconfigwizard.h" -CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool autoconnect) : QDialog(parent) { +CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool autoconnect) + : QDialog(parent) +{ ui.setupUi(this); + // make it look more native under Mac OS X: + setWindowFlags(Qt::Sheet); + clientSyncer = new ClientSyncer(this); wizard = 0; @@ -38,8 +44,6 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool autoconnect) : QDialog(pare doingAutoConnect = false; ui.stackedWidget->setCurrentWidget(ui.accountPage); - ui.accountButtonBox->setFocus(); - ui.accountButtonBox->button(QDialogButtonBox::Ok)->setDefault(true); CoreAccountSettings s; AccountId lastacc = s.lastAccount(); @@ -58,9 +62,13 @@ CoreConnectDlg::CoreConnectDlg(QWidget *parent, bool autoconnect) : QDialog(pare setAccountWidgetStates(); + ui.accountButtonBox->button(QDialogButtonBox::Ok)->setFocus(); + //ui.accountButtonBox->button(QDialogButtonBox::Ok)->setAutoDefault(true); + connect(clientSyncer, SIGNAL(socketStateChanged(QAbstractSocket::SocketState)),this, SLOT(initPhaseSocketState(QAbstractSocket::SocketState))); connect(clientSyncer, SIGNAL(connectionError(const QString &)), this, SLOT(initPhaseError(const QString &))); connect(clientSyncer, SIGNAL(connectionMsg(const QString &)), this, SLOT(initPhaseMsg(const QString &))); + connect(clientSyncer, SIGNAL(encrypted(bool)), this, SLOT(encrypted(bool))); connect(clientSyncer, SIGNAL(startLogin()), this, SLOT(startLogin())); connect(clientSyncer, SIGNAL(loginFailed(const QString &)), this, SLOT(loginFailed(const QString &))); connect(clientSyncer, SIGNAL(loginSuccess()), this, SLOT(startSync())); @@ -207,6 +215,7 @@ void CoreConnectDlg::on_accountButtonBox_accepted() { /*** Phase One: initializing the core connection ***/ void CoreConnectDlg::connectToCore() { + ui.secureConnection->hide(); ui.connectIcon->setPixmap(QPixmap::fromImage(QImage(":/22x22/actions/network-disconnect"))); ui.connectLabel->setText(tr("Connect to %1").arg(accountData["Host"].toString())); ui.coreInfoLabel->setText(""); @@ -217,19 +226,18 @@ void CoreConnectDlg::connectToCore() { disconnect(ui.loginButtonBox, 0, this, 0); connect(ui.loginButtonBox, SIGNAL(rejected()), this, SLOT(restartPhaseNull())); - - //connect(Client::instance(), SIGNAL(coreConnectionPhaseOne(const QVariantMap &)), this, SLOT(phaseOneFinished clientSyncer->connectToCore(accountData); } void CoreConnectDlg::initPhaseError(const QString &error) { doingAutoConnect = false; + ui.secureConnection->hide(); ui.connectIcon->setPixmap(QPixmap::fromImage(QImage(":/22x22/status/dialog-error"))); //ui.connectLabel->setBrush(QBrush("red")); ui.connectLabel->setText(tr("
Connection to %1 failed!
").arg(accountData["Host"].toString())); ui.coreInfoLabel->setText(error); ui.loginButtonBox->setStandardButtons(QDialogButtonBox::Retry|QDialogButtonBox::Cancel); - ui.loginButtonBox->button(QDialogButtonBox::Retry)->setDefault(true); + ui.loginButtonBox->button(QDialogButtonBox::Retry)->setFocus(); disconnect(ui.loginButtonBox, 0, this, 0); connect(ui.loginButtonBox, SIGNAL(accepted()), this, SLOT(restartPhaseNull())); connect(ui.loginButtonBox, SIGNAL(rejected()), this, SLOT(reject())); @@ -239,6 +247,13 @@ void CoreConnectDlg::initPhaseMsg(const QString &msg) { ui.coreInfoLabel->setText(msg); } +void CoreConnectDlg::encrypted(bool useSsl) { + if(useSsl) + ui.secureConnection->show(); + else + ui.secureConnection->hide(); +} + void CoreConnectDlg::initPhaseSocketState(QAbstractSocket::SocketState state) { QString s; QString host = accountData["Host"].toString(); @@ -265,15 +280,16 @@ void CoreConnectDlg::restartPhaseNull() { void CoreConnectDlg::startLogin() { ui.connectIcon->setPixmap(QPixmap::fromImage(QImage(":/22x22/actions/network-connect"))); ui.loginStack->setCurrentWidget(ui.loginCredentialsPage); - ui.loginStack->setMinimumSize(ui.loginStack->sizeHint()); ui.loginStack->updateGeometry(); + //ui.loginStack->setMinimumSize(ui.loginStack->sizeHint()); ui.loginStack->updateGeometry(); ui.loginButtonBox->setStandardButtons(QDialogButtonBox::Ok|QDialogButtonBox::Cancel); ui.loginButtonBox->button(QDialogButtonBox::Ok)->setDefault(true); + ui.loginButtonBox->button(QDialogButtonBox::Ok)->setFocus(); if(!accountData["User"].toString().isEmpty()) { ui.user->setText(accountData["User"].toString()); if(accountData["RememberPasswd"].toBool()) { ui.password->setText(accountData["Password"].toString()); ui.rememberPasswd->setChecked(true); - ui.loginButtonBox->setFocus(); + ui.loginButtonBox->button(QDialogButtonBox::Ok)->setFocus(); } else { ui.rememberPasswd->setChecked(false); ui.password->setFocus(); @@ -448,32 +464,55 @@ void CoreConnectDlg::syncFinished() { /***************************************************************************************** * CoreAccountEditDlg *****************************************************************************************/ - -CoreAccountEditDlg::CoreAccountEditDlg(AccountId id, const QVariantMap &acct, const QStringList &_existing, QWidget *parent) : QDialog(parent) { +CoreAccountEditDlg::CoreAccountEditDlg(AccountId id, const QVariantMap &acct, const QStringList &_existing, QWidget *parent) + : QDialog(parent) +{ ui.setupUi(this); existing = _existing; - account = acct; if(id.isValid()) { existing.removeAll(acct["AccountName"].toString()); ui.host->setText(acct["Host"].toString()); ui.port->setValue(acct["Port"].toUInt()); ui.useInternal->setChecked(acct["UseInternal"].toBool()); ui.accountName->setText(acct["AccountName"].toString()); +#ifndef QT_NO_OPENSSL + ui.useSsl->setChecked(acct["useSsl"].toBool()); +#else + ui.useSsl->setChecked(false); + ui.useSsl->setEnabled(false); +#endif + ui.useProxy->setChecked(acct["useProxy"].toBool()); + ui.proxyHost->setText(acct["proxyHost"].toString()); + ui.proxyPort->setValue(acct["proxyPort"].toUInt()); + ui.proxyType->setCurrentIndex(acct["proxyType"].toInt() == QNetworkProxy::Socks5Proxy ? 0 : 1); + ui.proxyUser->setText(acct["proxyUser"].toString()); + ui.proxyPassword->setText(acct["proxyPassword"].toString()); } else { setWindowTitle(tr("Add Core Account")); +#ifdef QT_NO_OPENSSL + ui.useSsl->setChecked(false); + ui.useSsl->setEnabled(false); +#endif } } QVariantMap CoreAccountEditDlg::accountData() { - account["AccountName"] = ui.accountName->text(); - account["Host"] = ui.host->text(); + account["AccountName"] = ui.accountName->text().trimmed(); + account["Host"] = ui.host->text().trimmed(); account["Port"] = ui.port->value(); account["UseInternal"] = ui.useInternal->isChecked(); + account["useSsl"] = ui.useSsl->isChecked(); + account["useProxy"] = ui.useProxy->isChecked(); + account["proxyHost"] = ui.proxyHost->text().trimmed(); + account["proxyPort"] = ui.proxyPort->value(); + account["proxyType"] = ui.proxyType->currentIndex() == 0 ? QNetworkProxy::Socks5Proxy : QNetworkProxy::HttpProxy; + account["proxyUser"] = ui.proxyUser->text().trimmed(); + account["proxyPassword"] = ui.proxyPassword->text().trimmed(); return account; } void CoreAccountEditDlg::setWidgetStates() { - bool ok = !ui.accountName->text().isEmpty() && !existing.contains(ui.accountName->text()) && (ui.useInternal->isChecked() || !ui.host->text().isEmpty()); + bool ok = !ui.accountName->text().trimmed().isEmpty() && !existing.contains(ui.accountName->text()) && (ui.useInternal->isChecked() || !ui.host->text().isEmpty()); ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(ok); }