1
mirror of https://invent.kde.org/network/falkon.git synced 2024-09-21 09:42:10 +02:00

[Fix:] Bad operations with certificate index which leads to removing bad

cert and sometimes to crash
This commit is contained in:
nowrep 2011-03-20 18:08:31 +01:00
parent 1ad4942e2f
commit 3cfe47cf82

View File

@ -26,13 +26,8 @@ SSLManager::SSLManager(QWidget* parent) :
{ {
setAttribute(Qt::WA_DeleteOnClose); setAttribute(Qt::WA_DeleteOnClose);
ui->setupUi(this); ui->setupUi(this);
m_certs = mApp->networkManager()->getCertExceptions();
foreach (QSslCertificate cert, m_certs) { refresh();
QListWidgetItem* item = new QListWidgetItem(ui->list);
item->setText( cert.subjectInfo(QSslCertificate::Organization) + " " + cert.subjectInfo(QSslCertificate::CommonName) );
item->setWhatsThis(QString::number(m_certs.indexOf(cert)));
ui->list->addItem(item);
}
connect(ui->list, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(showCertificateInfo())); connect(ui->list, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(showCertificateInfo()));
connect(ui->infoButton, SIGNAL(clicked()), this, SLOT(showCertificateInfo())); connect(ui->infoButton, SIGNAL(clicked()), this, SLOT(showCertificateInfo()));
@ -45,6 +40,21 @@ SSLManager::SSLManager(QWidget* parent) :
settings.endGroup(); settings.endGroup();
} }
void SSLManager::refresh()
{
ui->list->setUpdatesEnabled(false);
ui->list->clear();
m_certs = mApp->networkManager()->getCertExceptions();
foreach (QSslCertificate cert, m_certs) {
QListWidgetItem* item = new QListWidgetItem(ui->list);
item->setText( cert.subjectInfo(QSslCertificate::Organization) + " " + cert.subjectInfo(QSslCertificate::CommonName) );
item->setWhatsThis(QString::number(m_certs.indexOf(cert)));
ui->list->addItem(item);
}
ui->list->setCurrentRow(0);
ui->list->setUpdatesEnabled(true);
}
void SSLManager::showCertificateInfo() void SSLManager::showCertificateInfo()
{ {
QListWidgetItem* item = ui->list->currentItem(); QListWidgetItem* item = ui->list->currentItem();
@ -79,7 +89,7 @@ void SSLManager::deleteCertificate()
QSslCertificate cert = m_certs.at(item->whatsThis().toInt()); QSslCertificate cert = m_certs.at(item->whatsThis().toInt());
m_certs.removeOne(cert); m_certs.removeOne(cert);
mApp->networkManager()->setCertExceptions(m_certs); mApp->networkManager()->setCertExceptions(m_certs);
delete item; refresh();
} }
void SSLManager::ignoreAll(bool state) void SSLManager::ignoreAll(bool state)