From 9f3181f0560fb87000c8c0f052418feb6a626a63 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 4 Feb 2012 08:28:30 +0100 Subject: Consider unknown network errors as errors :) --- src/webpage.cpp | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 89c52e8a..15d6cabf 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -454,14 +454,11 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) // ignore this.. return; - case QNetworkReply::ContentAccessDenied: // access to remote content denied (similar to HTTP error 401) + // WARNING: This is also typical adblocked element error: IGNORE THIS! + case QNetworkReply::ContentAccessDenied: // access to remote content denied break; case QNetworkReply::UnknownNetworkError: // unknown network-related error detected - // FIXME: DO WE REALLY NEED THIS??? - _protHandler.postHandling(reply->request(), frame); - return; - case QNetworkReply::ConnectionRefusedError: // remote server refused connection case QNetworkReply::HostNotFoundError: // invalid hostname case QNetworkReply::TimeoutError: // connection time out @@ -470,7 +467,7 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) case QNetworkReply::ContentNotFoundError: // remote content not found on server (similar to HTTP error 404) case QNetworkReply::ProtocolUnknownError: // Unknown protocol case QNetworkReply::ProtocolInvalidOperationError: // requested operation is invalid for this protocol - + default: kDebug() << "ERROR " << reply->error() << ": " << reply->errorString(); if (reply->url() == _loadingUrl) { @@ -489,10 +486,6 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) } break; - default: - // Nothing to do here.. - break; - } } -- cgit v1.2.1 From 76fb43ba76f23ace16af78089793be2bb9ab3be9 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sat, 4 Feb 2012 08:59:06 +0100 Subject: clean up filename content disposition retrieve --- src/webpage.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 15d6cabf..2fdf4d01 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -289,6 +289,10 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if (KParts::BrowserRun::isTextExecutable(_mimeType)) _mimeType = QL1S("text/plain"); + // Get suggested file name... + const KIO::MetaData& data = reply->attribute(static_cast(KIO::AccessManager::MetaData)).toMap(); + _suggestedFileName = data.value(QL1S("content-disposition-filename")); + kDebug() << "Detected MimeType = " << _mimeType; kDebug() << "Suggested File Name = " << _suggestedFileName; // ------------------------------------------------ @@ -316,8 +320,6 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) { KParts::BrowserOpenOrSaveQuestion dlg(rApp->mainWindow(), replyUrl, _mimeType); - // Get suggested file name... - DownloadManager::extractSuggestedFileName(reply, _suggestedFileName); if (!_suggestedFileName.isEmpty()) dlg.setSuggestedFileName(_suggestedFileName); @@ -418,10 +420,6 @@ void WebPage::manageNetworkErrors(QNetworkReply *reply) { Q_ASSERT(reply); - // check suggested file name - if (_suggestedFileName.isEmpty()) - DownloadManager::extractSuggestedFileName(reply, _suggestedFileName); - QWebFrame* frame = qobject_cast(reply->request().originatingObject()); const bool isMainFrameRequest = (frame == mainFrame()); const bool isLoadingUrlReply = (mainFrame()->url() == reply->url()); -- cgit v1.2.1 From df91591f4a692b42bb9e2ee5bfad309ce3e29957 Mon Sep 17 00:00:00 2001 From: Andrea Diamantini Date: Sun, 5 Feb 2012 07:34:56 +0100 Subject: clean up download management Remove one unuseful slot in webpage and better manage download dialog, following rekonq AND KDE settings. --- src/webpage.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/webpage.cpp') diff --git a/src/webpage.cpp b/src/webpage.cpp index 2fdf4d01..6a6f1bc9 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -306,7 +306,7 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) { isLocal ? KMessageBox::sorry(view(), i18n("No service can handle this file.")) - : downloadReply(reply, _suggestedFileName); + : downloadUrl(reply->url()); return; } @@ -323,10 +323,17 @@ void WebPage::handleUnsupportedContent(QNetworkReply *reply) if (!_suggestedFileName.isEmpty()) dlg.setSuggestedFileName(_suggestedFileName); + // read askEmbedOrSave preferences. If we don't have to show dialog and rekonq settings are + // to automatically choose download dir, we won't show local dir choose dialog + KConfigGroup cg = KConfigGroup(KSharedConfig::openConfig("filetypesrc", KConfig::NoGlobals), QL1S("Notification Messages")); + bool hideDialog = cg.readEntry(QL1S("askEmbedOrSave") + _mimeType, false); + + kDebug() << "Hide dialog for " << _mimeType << "? " << hideDialog; + switch (dlg.askEmbedOrSave()) { case KParts::BrowserOpenOrSaveQuestion::Save: - downloadReply(reply, _suggestedFileName); + rApp->downloadManager()->downloadResource(reply->url(), KIO::MetaData(), view(), !hideDialog, _suggestedFileName); return; case KParts::BrowserOpenOrSaveQuestion::Cancel: @@ -544,12 +551,6 @@ QString WebPage::errorPage(QNetworkReply *reply) } -void WebPage::downloadReply(const QNetworkReply *reply, const QString &suggestedFileName) -{ - rApp->downloadManager()->downloadResource(reply->url(), KIO::MetaData(), view(), suggestedFileName); -} - - void WebPage::downloadRequest(const QNetworkRequest &request) { rApp->downloadManager()->downloadResource(request.url(), -- cgit v1.2.1