X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fcoreconnectdlg.cpp;h=4811e2e0ad2bbcf6e4e54887c03376e150d43053;hp=3f144a9677dd155843a083d21820c038b974e7b5;hb=f2e4609f070221a010eef8be98524c5ce88d228b;hpb=c90c9160da1123ce99460c9b3ceef58b1ad21bf2 diff --git a/src/qtui/coreconnectdlg.cpp b/src/qtui/coreconnectdlg.cpp index 3f144a96..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; @@ -57,10 +63,12 @@ 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(""); @@ -222,6 +231,7 @@ void CoreConnectDlg::connectToCore() { 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())); @@ -237,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(); @@ -447,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); }