X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;fp=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=d4fdca1f412778faf60b8e917eee67f282952c18;hp=0f67de29806d641e10073f0802001cec24458128;hb=c144bdee0d8ab0c195b3088f5c6e57e372e526f7;hpb=518cd2bc478ab3675a60ec46d3ef183cace0cae7 diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 0f67de29..d4fdca1f 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -590,12 +590,21 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) // this is only needed when the core supports SASL EXTERNAL if (Client::isCoreFeatureEnabled(Quassel::Feature::SaslExternal)) { if (_cid) { + // Clean up existing CertIdentity disconnect(_cid, &CertIdentity::sslSettingsUpdated, this, &NetworksSettingsPage::sslUpdated); delete _cid; + _cid = nullptr; + } + auto *identity = Client::identity(info.identity); + if (identity) { + // Connect new CertIdentity + _cid = new CertIdentity(*identity, this); + _cid->enableEditSsl(true); + connect(_cid, &CertIdentity::sslSettingsUpdated, this, &NetworksSettingsPage::sslUpdated); + } + else { + qWarning() << "NetworksSettingsPage::displayNetwork can't find Identity for IdentityId:" << info.identity; } - _cid = new CertIdentity(*Client::identity(info.identity), this); - _cid->enableEditSsl(true); - connect(_cid, &CertIdentity::sslSettingsUpdated, this, &NetworksSettingsPage::sslUpdated); } ui.identityList->setCurrentIndex(ui.identityList->findData(info.identity.toInt()));