X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fidentitiessettingspage.cpp;h=7950d9870c240274933a5c1ad1fb3443fd9dff24;hb=9d919506679e00fcdf47ab3cbebad414d77bda7d;hp=fa7bba48c9368afd608a98ef3d072f206ed17180;hpb=061528786d1dac1d1bf4904c86b71d95270dfd37;p=quassel.git diff --git a/src/qtui/settingspages/identitiessettingspage.cpp b/src/qtui/settingspages/identitiessettingspage.cpp index fa7bba48..7950d987 100644 --- a/src/qtui/settingspages/identitiessettingspage.cpp +++ b/src/qtui/settingspages/identitiessettingspage.cpp @@ -46,7 +46,7 @@ IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent) ui.nickUp->setIcon(SmallIcon("go-up")); ui.nickDown->setIcon(SmallIcon("go-down")); - setEnabled(Client::isConnected()); // need a core connection! + coreConnectionStateChanged(Client::isConnected()); // need a core connection! setWidgetStates(); connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool))); connect(Client::instance(), SIGNAL(identityCreated(IdentityId)), this, SLOT(clientIdentityCreated(IdentityId))); @@ -80,10 +80,12 @@ IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent) //connect(ui.nicknameList, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(setWidgetStates())); //connect(ui.nicknameList->model(), SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(nicklistHasChanged())); +#ifdef HAVE_SSL ui.sslKeyGroupBox->setAcceptDrops(true); ui.sslKeyGroupBox->installEventFilter(this); ui.sslCertGroupBox->setAcceptDrops(true); ui.sslCertGroupBox->installEventFilter(this); +#endif } void IdentitiesSettingsPage::setWidgetStates() { @@ -103,10 +105,13 @@ void IdentitiesSettingsPage::coreConnectionStateChanged(bool connected) { setEnabled(connected); if(connected) { #ifdef HAVE_SSL - if(Client::signalProxy()->isSecure()) + if(Client::signalProxy()->isSecure()) { ui.keyAndCertSettings->setCurrentIndex(2); - else + _editSsl = true; + } else { ui.keyAndCertSettings->setCurrentIndex(1); + _editSsl = false; + } #else ui.keyAndCertSettings->setCurrentIndex(0); #endif @@ -210,9 +215,13 @@ bool IdentitiesSettingsPage::aboutToSave() { void IdentitiesSettingsPage::clientIdentityCreated(IdentityId id) { CertIdentity *identity = new CertIdentity(*Client::identity(id), this); +#ifdef HAVE_SSL identity->enableEditSsl(_editSsl); +#endif insertIdentity(identity); +#ifdef HAVE_SSL connect(identity, SIGNAL(sslSettingsUpdated()), this, SLOT(clientIdentityUpdated())); +#endif connect(Client::identity(id), SIGNAL(updatedRemotely()), this, SLOT(clientIdentityUpdated())); } @@ -232,7 +241,7 @@ void IdentitiesSettingsPage::clientIdentityUpdated() { if(identity->identityName() != clientIdentity->identityName()) renameIdentity(identity->id(), clientIdentity->identityName()); - identity->update(*clientIdentity); + identity->copyFrom(*clientIdentity); if(identity->id() == currentId) displayIdentity(identity, true); @@ -322,8 +331,10 @@ void IdentitiesSettingsPage::displayIdentity(CertIdentity *id, bool dontsave) { ui.kickReason->setText(id->kickReason()); ui.partReason->setText(id->partReason()); ui.quitReason->setText(id->quitReason()); +#ifdef HAVE_SSL showKeyState(id->sslKey()); showCertState(id->sslCert()); +#endif } } @@ -349,8 +360,10 @@ void IdentitiesSettingsPage::saveToIdentity(CertIdentity *id) { id->setKickReason(ui.kickReason->text()); id->setPartReason(ui.partReason->text()); id->setQuitReason(ui.quitReason->text()); +#ifdef HAVE_SSL id->setSslKey(QSslKey(ui.keyTypeLabel->property("sslKey").toByteArray(), (QSsl::KeyAlgorithm)(ui.keyTypeLabel->property("sslKeyType").toInt()))); id->setSslCert(QSslCertificate(ui.certOrgLabel->property("sslCert").toByteArray())); +#endif } void IdentitiesSettingsPage::on_addIdentity_clicked() { @@ -363,10 +376,12 @@ void IdentitiesSettingsPage::on_addIdentity_clicked() { } id = -id.toInt(); CertIdentity *newId = new CertIdentity(id, this); +#ifdef HAVE_SSL newId->enableEditSsl(_editSsl); +#endif if(dlg.duplicateId() != 0) { // duplicate - newId->update(*identities[dlg.duplicateId()]); + newId->copyFrom(*identities[dlg.duplicateId()]); newId->setId(id); } newId->setIdentityName(dlg.identityName()); @@ -456,6 +471,7 @@ void IdentitiesSettingsPage::on_nickDown_clicked() { } } +#ifdef HAVE_SSL void IdentitiesSettingsPage::on_continueUnsecured_clicked() { _editSsl = true; @@ -553,7 +569,7 @@ void IdentitiesSettingsPage::showKeyState(const QSslKey &key) { ui.keyTypeLabel->setText(tr("DSA")); break; default: - ui.keyTypeLabel->setText(tr("No Key Loaded")); + ui.keyTypeLabel->setText(tr("No Key loaded")); } ui.clearOrLoadKeyButton->setText(tr("Clear")); } @@ -598,6 +614,7 @@ void IdentitiesSettingsPage::showCertState(const QSslCertificate &cert) { } ui.certOrgLabel->setProperty("sslCert", cert.toPem()); } +#endif //HAVE_SSL /*****************************************************************************************/ @@ -656,7 +673,9 @@ SaveIdentitiesDlg::SaveIdentitiesDlg(const QList &toCreate, cons } connect(cid, SIGNAL(updatedRemotely()), this, SLOT(clientEvent())); Client::updateIdentity(id->id(), id->toVariantMap()); +#ifdef HAVE_SSL id->requestUpdateSslSettings(); +#endif } foreach(IdentityId id, toRemove) { Client::removeIdentity(id);