From 9fc1c2bf47f3cf5496e6ec9c99daabce5a9696c2 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Thu, 13 Aug 2009 16:04:36 +0200 Subject: Some work on WebPage class.. --- src/webpage.cpp | 57 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index b289c97f..33711f7d 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -91,13 +91,13 @@ WebPage::~WebPage() bool WebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type) { - m_requestedUrl = request.url(); - if (m_requestedUrl.scheme() == QLatin1String("mailto")) { KToolInvocation::invokeMailer(m_requestedUrl); return false; } + + m_requestedUrl = request.url(); if (m_keyboardModifiers & Qt::ControlModifier || m_pressedButtons == Qt::MidButton) { @@ -132,7 +132,6 @@ WebPage *WebPage::newWindow(WebWindowType type) } -// FIXME: dear slot, you need to handle unsupported content a bit better.. void WebPage::slotHandleUnsupportedContent(QNetworkReply *reply) { if (reply->error() == QNetworkReply::NoError) @@ -170,40 +169,39 @@ void WebPage::slotHandleUnsupportedContent(QNetworkReply *reply) void WebPage::manageNetworkErrors(QNetworkReply* reply) { - if (reply->url() != m_requestedUrl) //prevent favicon loading + if( reply->error() == QNetworkReply::NoError ) return; - - switch (reply->error()) + + if( reply->url() != m_requestedUrl ) // prevent favicon loading + return; + + if( reply->error() == QNetworkReply::ContentNotFoundError ) { - case QNetworkReply::NoError: - return; - case QNetworkReply::ContentNotFoundError: + QList frames; + frames.append(mainFrame()); + while (!frames.isEmpty()) { - QList frames; - frames.append(mainFrame()); - while (!frames.isEmpty()) - { - QWebFrame *firstFrame = frames.takeFirst(); + QWebFrame *firstFrame = frames.takeFirst(); - if (firstFrame->url() == reply->url()) - { - firstFrame->setHtml(errorPage(reply), reply->url()); - return; - } - QList children = firstFrame->childFrames(); - foreach(QWebFrame *frame, children) - { - frames.append(frame); - } + if (firstFrame->url() == reply->url()) + { + firstFrame->setHtml(errorPage(reply), reply->url()); + return; + } + QList children = firstFrame->childFrames(); + foreach(QWebFrame *frame, children) + { + frames.append(frame); } } - break; - default: - mainFrame()->setHtml(errorPage(reply), reply->url()); - break; + } + else + { + mainFrame()->setHtml(errorPage(reply), reply->url()); } } + QString WebPage::errorPage(QNetworkReply *reply) { // display "not found" page @@ -227,6 +225,7 @@ QString WebPage::errorPage(QNetworkReply *reply) return html; } + void WebPage::javaScriptAlert(QWebFrame *frame, const QString &msg) { KMessageBox::error(frame->page()->view(), msg, i18n("JavaScript")); @@ -260,7 +259,7 @@ QObject *WebPage::createPlugin(const QString &classId, const QUrl &url, const QS } -// FIXME: sometimes url.fileName() fails to retrieve url file name +// TODO FIXME: sometimes url.fileName() fails to retrieve url file name void WebPage::slotDownloadRequested(const QNetworkRequest &request) { const KUrl url(request.url()); -- cgit v1.2.1