]> ToastFreeware Gitweb - toast/confclerk.git/blobdiff - src/gui/mainwindow.cpp
Handle SSL errors.
[toast/confclerk.git] / src / gui / mainwindow.cpp
index a2e28d12ff2b059830f329b723b4eb8852215d1b..9f04963af909687cbc048465ba95a989bc20c58d 100644 (file)
@@ -131,6 +131,7 @@ MainWindow::MainWindow(QWidget* parent): QMainWindow(parent) {
         clearTabs();
     }
 
+    connect(mNetworkAccessManager, SIGNAL(sslErrors(QNetworkReply*, QList<QSslError>)), SLOT(sslErrors(QNetworkReply*, QList<QSslError>)));
     connect(mNetworkAccessManager, SIGNAL(finished(QNetworkReply*)), SLOT(networkQueryFinished(QNetworkReply*)));
     connect(mXmlParser, SIGNAL(parsingScheduleBegin()), conferenceModel, SLOT(newConferenceBegin()));
     connect(mXmlParser, SIGNAL(parsingScheduleEnd(int)), conferenceModel, SLOT(newConferenceEnd(int)));
@@ -409,6 +410,26 @@ void MainWindow::on_conferencesAction_triggered()
     }
 }
 
+void MainWindow::sslErrors(QNetworkReply *aReply, const QList<QSslError> &errors) {
+    QString errorString;
+    foreach (const QSslError &error, errors) {
+        if (!errorString.isEmpty()) {
+            errorString += ", ";
+        }
+        errorString += error.errorString();
+    }
+
+    if (QMessageBox::warning(
+                this,
+                QString("SSL errors"),
+                QString("One or more SSL errors have occurred: ") + errorString,
+                QMessageBox::Ignore | QMessageBox::Cancel) == QMessageBox::Ignore) {
+        aReply->ignoreSslErrors();
+    } else {
+        aReply->abort();
+    }
+}
+
 void MainWindow::networkQueryFinished(QNetworkReply *aReply) {
     if (aReply->error() != QNetworkReply::NoError) {
         error_message(QString("Error occurred during download: ") + aReply->errorString());