diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index e77aba1690f64642432cae707046ce11ba594f4f..975358a30164b94208dfab6381a882575c917f21 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 f4debacec9550abc39a9a096ef2b3e9186045ba6..5be60ae6a7dedaf6bda9bd85c78af0c36345c5ec 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 e8f5c91ae2ee206dbfff67b993056ecfd6e444bd..da68a3c1dede8bf91db3861e787e62cb187fa532 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)