From d8035bcaca4d8d72f7e6a66f375220b857275775 Mon Sep 17 00:00:00 2001 From: kh1 <qt-info@nokia.com> Date: Tue, 11 Jan 2011 16:10:22 +0100 Subject: [PATCH] In case of network error print the error string. Task-number: QTCREATORBUG-3378 --- src/plugins/help/helpplugin.cpp | 2 +- src/plugins/help/helpviewer.h | 3 +++ src/plugins/help/helpviewer_qwv.cpp | 14 +++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index e77aba1690f..975358a3016 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -868,10 +868,10 @@ void HelpPlugin::activateContext() if (HelpViewer* viewer = viewerForContextMode()) { if (links.isEmpty()) { // No link found or no context object + viewer->setSource(QUrl(Help::Constants::AboutBlank)); viewer->setHtml(tr("<html><head><title>No Documentation</title>" "</head><body><br/><center><b>%1</b><br/>No documentation " "available.</center></body></html>").arg(m_idFromContext)); - viewer->setSource(QUrl()); } else { int version = 0; const QRegExp exp("(\\d+)"); diff --git a/src/plugins/help/helpviewer.h b/src/plugins/help/helpviewer.h index f4debacec95..5be60ae6a7d 100644 --- a/src/plugins/help/helpviewer.h +++ b/src/plugins/help/helpviewer.h @@ -129,6 +129,9 @@ private slots: void actionChanged(); void slotLoadStarted(); void slotLoadFinished(bool ok); +#if !defined(QT_NO_WEBKIT) + void slotNetworkReplyFinished(QNetworkReply *reply); +#endif private: bool eventFilter(QObject *obj, QEvent *event); diff --git a/src/plugins/help/helpviewer_qwv.cpp b/src/plugins/help/helpviewer_qwv.cpp index e8f5c91ae2e..da68a3c1ded 100644 --- a/src/plugins/help/helpviewer_qwv.cpp +++ b/src/plugins/help/helpviewer_qwv.cpp @@ -239,7 +239,10 @@ HelpViewer::HelpViewer(qreal zoom, QWidget *parent) settings()->setAttribute(QWebSettings::PluginsEnabled, false); setPage(new HelpPage(this)); - page()->setNetworkAccessManager(new HelpNetworkAccessManager(this)); + HelpNetworkAccessManager *manager = new HelpNetworkAccessManager(this); + page()->setNetworkAccessManager(manager); + connect(manager, SIGNAL(finished(QNetworkReply*)), this, + SLOT(slotNetworkReplyFinished(QNetworkReply*))); QAction* action = pageAction(QWebPage::OpenLinkInNewWindow); action->setText(tr("Open Link as New Page")); @@ -433,6 +436,15 @@ void HelpViewer::actionChanged() emit forwardAvailable(a->isEnabled()); } +void HelpViewer::slotNetworkReplyFinished(QNetworkReply *reply) +{ + if (reply && reply->error() != QNetworkReply::NoError) { + setSource(QUrl(Help::Constants::AboutBlank)); + setHtml(HelpViewer::PageNotFoundMessage.arg(reply->url().toString() + + QString::fromLatin1("<br><br>Error: %1").arg(reply->errorString()))); + } +} + // -- private bool HelpViewer::eventFilter(QObject *obj, QEvent *event) -- GitLab