use QMessageBox::setDetails() to show SSL errors

This commit is contained in:
Martchus 2016-04-09 00:52:21 +02:00
parent 556adff727
commit 0817010dbf
1 changed files with 12 additions and 14 deletions

View File

@ -203,26 +203,24 @@ void DownloadInteraction::downloadRequiresAuthentication(Download *download, siz
void DownloadInteraction::downloadHasSslErrors(Download *download, size_t optionIndex, const QList<QSslError> &sslErrors) void DownloadInteraction::downloadHasSslErrors(Download *download, size_t optionIndex, const QList<QSslError> &sslErrors)
{ {
QString downloadName = download->downloadUrl().isEmpty() ? download->id() : download->downloadUrl().toString(); QString downloadName = download->downloadUrl().isEmpty() ? download->id() : download->downloadUrl().toString();
QString message(QStringLiteral("<p style=\"font-weight: bold;\">")); QString details;
message.append(tr("The download <i>%1</i> has SSL errors:").arg(downloadName));
message.append(QStringLiteral("</p><ul>"));
foreach(const QSslError &error, sslErrors) { foreach(const QSslError &error, sslErrors) {
message.append(QStringLiteral("<li><span style=\"font-style: italic;\">")); if(!details.isEmpty()) {
message.append(error.errorString()); details.append(QStringLiteral("\n\n"));
message.append(QStringLiteral("</span>")); }
if(!error.certificate().isNull()) { details.append(error.errorString());
message.append(QStringLiteral("<br>")); if(!error.certificate().isNull()) {
message.append(error.certificate().toText()); details.append(QChar('\n'));
details.append(error.certificate().toText());
} }
message.append(QStringLiteral("</li>"));
} }
message.append(QStringLiteral("</ul><p>"));
message.append(tr("Do you want to ignore the SSL errors for this download?"));
message.append(QStringLiteral("</p>"));
QMessageBox *dlg = new QMessageBox(m_parentWidget); QMessageBox *dlg = new QMessageBox(m_parentWidget);
dlg->setModal(false); dlg->setModal(false);
dlg->setWindowTitle(tr("SSL errors occured") % QStringLiteral(" - ") % QCoreApplication::applicationName());
dlg->setTextFormat(Qt::RichText); dlg->setTextFormat(Qt::RichText);
dlg->setText(message); dlg->setText(tr("The download <i>%1</i> has SSL errors.").arg(downloadName));
dlg->setInformativeText(tr("Do you want to ignore the SSL errors for this download?"));
dlg->setDetailedText(details);
dlg->setIcon(QMessageBox::Warning); dlg->setIcon(QMessageBox::Warning);
dlg->setStandardButtons(QMessageBox::Yes | QMessageBox::No); dlg->setStandardButtons(QMessageBox::Yes | QMessageBox::No);
connect(dlg, &QMessageBox::finished, [download, optionIndex, dlg] (int result) { connect(dlg, &QMessageBox::finished, [download, optionIndex, dlg] (int result) {