summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'kde-apps/konqueror/files/konqueror-21.04.3-kf-5.86-compat.patch')
-rw-r--r--kde-apps/konqueror/files/konqueror-21.04.3-kf-5.86-compat.patch250
1 files changed, 0 insertions, 250 deletions
diff --git a/kde-apps/konqueror/files/konqueror-21.04.3-kf-5.86-compat.patch b/kde-apps/konqueror/files/konqueror-21.04.3-kf-5.86-compat.patch
deleted file mode 100644
index 0814c335a734..000000000000
--- a/kde-apps/konqueror/files/konqueror-21.04.3-kf-5.86-compat.patch
+++ /dev/null
@@ -1,250 +0,0 @@
-From 6a46c0c8701fbde143a33e4be61f198e98f53c10 Mon Sep 17 00:00:00 2001
-From: David Faure <faure@kde.org>
-Date: Sun, 19 Sep 2021 12:03:46 +0200
-Subject: [PATCH 1/5] Don't open HTTP URLs in another browser than Konqueror,
- from Konqueror
-
-From 8506c585594d9d0cfc0ebe8b869ca05ff7610fa7 Mon Sep 17 00:00:00 2001
-From: Stefano Crocco <stefano.crocco@alice.it>
-Date: Sun, 19 Sep 2021 20:56:38 +0200
-Subject: [PATCH 2/5] Make Konqueror compatible with KIO 5.86.0
-
-Due to a change in KIO::DesktopExecParser::hasSchemeHandler (commit
-5fa55a2395cbfb6504e56bf71c869c8e49902e13Q) URLs entered in the
-navigation bar either were always opened in a new tab or they were
-opened in another program altogether (for example, man and info URLs).
-
-To fix this issue, it has been necessary to copy the implementation of
-KRun::init and KParts::BrowserRun::init in KonqRun::init, making the
-necessary changes to restore the old behaviour.
-
-(cherry picked from commit ba1ea2b74f77832d2a26bb74fed18970eeadf301)
-
-From ec995b8091e97750c12e8e543d298a7a56045d41 Mon Sep 17 00:00:00 2001
-From: Stefano Crocco <stefano.crocco@alice.it>
-Date: Sun, 19 Sep 2021 22:01:30 +0200
-Subject: [PATCH 3/5] Fix signature and avoid calling url() repeatedly
-
-(cherry picked from commit 0326d9b8553a7c33d0c1498ca4c0199cc2344e15)
-
-From d368615b28a97993ce53691731f5152f044f98a2 Mon Sep 17 00:00:00 2001
-From: Stefano Crocco <stefano.crocco@alice.it>
-Date: Sun, 19 Sep 2021 22:47:03 +0200
-Subject: [PATCH 4/5] Add a comment explaining the interaction with
- WebEnginePart
-
-(cherry picked from commit 5c4b0456af2a534c65c60b16add4012566309fb9)
-
-From 036fdfe1666294e5388803eb8877971362347428 Mon Sep 17 00:00:00 2001
-From: Andreas Sturmlechner <asturm@gentoo.org>
-Date: Thu, 30 Sep 2021 13:58:28 +0200
-Subject: [PATCH 5/5] Replace handleInitError with KParts::BrowserRun::init
-
-Avoids breaking string freeze.
-
-Thanks-to: Stefano Crocco <stefano.crocco@alice.it>
-Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
-
-BUG: 442636
----
-
-diff --git a/src/konqrun.cpp b/src/konqrun.cpp
-index 8bfc22285..4415c67c4 100644
---- a/src/konqrun.cpp
-+++ b/src/konqrun.cpp
-@@ -27,8 +27,17 @@
- #include <kio/job.h>
- #include <QMimeDatabase>
- #include <QMimeType>
-+#include <QHostInfo>
-+#include <QFileInfo>
-+
- #include <KIO/ApplicationLauncherJob>
- #include <KIO/JobUiDelegate>
-+#include <KUrlAuthorized>
-+#include <KIO/DesktopExecParser>
-+#include <KProtocolInfo>
-+#include <KProtocolManager>
-+#include <KApplicationTrader>
-+#include <KJobWidgets>
-
- #include <KService>
- #include <KMimeTypeTrader>
-@@ -48,8 +57,9 @@ KonqRun::KonqRun(KonqMainWindow *mainWindow, KonqView *_childView,
- // Don't use inline errors on reloading due to auto-refresh sites, but use them in all other cases
- // (no reload or user-requested reload)
- !req.args.reload() || req.userRequestedReload),
-- m_pMainWindow(mainWindow), m_pView(_childView), m_bFoundMimeType(false), m_req(req)
-+ m_pMainWindow(mainWindow), m_pView(_childView), m_bFoundMimeType(false), m_req(req), m_inlineErrors(!req.args.reload() || req.userRequestedReload)
- {
-+ setEnableExternalBrowser(false);
- //qCDebug(KONQUEROR_LOG) << "KonqRun::KonqRun() " << this;
- Q_ASSERT(!m_pMainWindow.isNull());
- if (m_pView) {
-@@ -188,15 +198,124 @@ void KonqRun::handleError(KJob *job)
- KParts::BrowserRun::handleError(job);
- }
-
-+//Code copied from browserrun.cpp
-+void KonqRun::switchToErrorUrl(KIO::Error error, const QString &stringUrl)
-+{
-+ KRun::setUrl(makeErrorUrl(error, stringUrl, url()));
-+ setJob(nullptr);
-+ mimeTypeDetermined(QStringLiteral("text/html"));
-+}
-+
-+//Most of the code in this function has been copied from krun.cpp and browserrun.cpp
- void KonqRun::init()
- {
-- KParts::BrowserRun::init();
-- // Maybe init went to the "let's try stat'ing" part. Then connect to info messages.
-- // (in case it goes to scanFile, this will be done below)
-- KIO::StatJob *job = dynamic_cast<KIO::StatJob *>(KRun::job());
-+ QUrl url = KRun::url();
-+ if (!url.isValid() || url.scheme().isEmpty()) {
-+ if (m_inlineErrors && !url.isValid()) {
-+ switchToErrorUrl(KIO::ERR_MALFORMED_URL, url.toString());
-+ return;
-+ }
-+ const QString error = !url.isValid() ? url.errorString() : url.toString();
-+ KParts::BrowserRun::init();
-+ qCWarning(KONQUEROR_LOG) << "Malformed URL:" << error;
-+ setError(true);
-+ setFinished(true);
-+ return;
-+ }
-+
-+ if (!KUrlAuthorized::authorizeUrlAction(QStringLiteral("open"), QUrl(), url)) {
-+ QString msg = KIO::buildErrorString(KIO::ERR_ACCESS_DENIED, url.toDisplayString());
-+ KParts::BrowserRun::init();
-+ setError(true);
-+ setFinished(true);
-+ return;
-+ }
-+
-+ if (url.scheme().startsWith(QLatin1String("http")) && usingWebEngine()) {
-+ //This is a fake mimetype, needed only to ensure that the URL will be handled
-+ //by WebEnginePart which will then determine the real mimetype. If it's
-+ //a mimetype it can't handle, it'll emit the KParts::BrowserExtension::openUrlRequest
-+ //passing the real mimetype. Knowing the mimetype, KonqMainWindow::openUrl will handle
-+ //it correctly without needing to use KonqRun again.
-+ mimeTypeDetermined(QStringLiteral("text/html"));
-+ } else if (url.isLocalFile()
-+ && (url.host().isEmpty() || (url.host() == QLatin1String("localhost"))
-+ || (url.host().compare(QHostInfo::localHostName(), Qt::CaseInsensitive) == 0))) {
-+ const QString localPath = url.toLocalFile();
-+ if (!QFile::exists(localPath)) {
-+ if (m_inlineErrors) {
-+ switchToErrorUrl(KIO::ERR_DOES_NOT_EXIST, localPath);
-+ } else {
-+ KParts::BrowserRun::init();
-+ setError(true);
-+ setFinished(true);
-+ }
-+ return;
-+ }
-+
-+ QMimeDatabase db;
-+ QMimeType mime = db.mimeTypeForUrl(url);
-+ if (mime.isDefault() && !QFileInfo(localPath).isReadable()) {
-+ // Unknown MIME type because the file is unreadable, no point in showing an open-with dialog (#261002)
-+ const QString msg = KIO::buildErrorString(KIO::ERR_ACCESS_DENIED, localPath);
-+ KParts::BrowserRun::init();
-+ setError(true);
-+ setFinished(true);
-+ return;
-+ } else {
-+ mimeTypeDetermined(mime.name());
-+ return;
-+ }
-+ } else if (KIO::DesktopExecParser::hasSchemeHandler(url) && !KProtocolInfo::isKnownProtocol(url)) {
-+ // looks for an application associated with x-scheme-handler/<protocol>
-+ KService::Ptr service = KApplicationTrader::preferredService(QLatin1String("x-scheme-handler/") + url.scheme());
-+ if (service) {
-+ // if there's one...
-+ if (runApplication(*service, QList<QUrl>() << url, window(), RunFlags{}, QString(), QByteArray())) {
-+ setFinished(true);
-+ return;
-+ }
-+ } else {
-+ // fallback, look for associated helper protocol
-+ Q_ASSERT(KProtocolInfo::isHelperProtocol(url.scheme()));
-+ const auto exec = KProtocolInfo::exec(url.scheme());
-+ if (exec.isEmpty()) {
-+ // use default MIME type opener for file
-+ mimeTypeDetermined(KProtocolManager::defaultMimetype(url));
-+ return;
-+ } else {
-+ if (run(exec, QList<QUrl>() << url, window(), QString(), QString(), QByteArray())) {
-+ setFinished(true);
-+ return;
-+ }
-+ }
-+ }
-+ }
-+
-+ // Let's see whether it is a directory
-+
-+ if (!KProtocolManager::supportsListing(url)) {
-+ // No support for listing => it can't be a directory (example: http)
-+
-+ if (!KProtocolManager::supportsReading(url)) {
-+ // No support for reading files either => we can't do anything (example: mailto URL, with no associated app)
-+ KParts::BrowserRun::init();
-+ setError(true);
-+ setFinished(true);
-+ return;
-+ }
-+ scanFile();
-+ return;
-+ }
-+
-+ // It may be a directory or a file, let's stat
-+ KIO::JobFlags flags = progressInfo() ? KIO::DefaultFlags : KIO::HideProgressInfo;
-+ KIO::StatJob *job = KIO::statDetails(url, KIO::StatJob::SourceSide, KIO::StatBasic, flags);
-+ KJobWidgets::setWindow(job, window());
-+ connect(job, &KJob::result, this, &KonqRun::slotStatResult);
-+ setJob(job);
- if (job && !job->error() && m_pView) {
-- connect(job, SIGNAL(infoMessage(KJob*,QString,QString)),
-- m_pView, SLOT(slotInfoMessage(KJob*,QString)));
-+ connect(job, &KIO::StatJob::infoMessage, m_pView, &KonqView::slotInfoMessage);
- }
- }
-
-diff --git a/src/konqrun.h b/src/konqrun.h
-index 591b91d19..88782ea03 100644
---- a/src/konqrun.h
-+++ b/src/konqrun.h
-@@ -26,6 +26,8 @@
- #include "konqopenurlrequest.h"
- #include <QUrl>
-
-+#include <KIO/Global>
-+
- class KonqMainWindow;
- class KonqView;
-
-@@ -69,6 +71,14 @@ protected:
- void init() override;
- void scanFile() override;
-
-+ /**
-+ * Displays an error page appropriate to the given error code
-+ *
-+ * @param error the error code
-+ * @param stringUrl the string representation of the URL which caused the error
-+ */
-+ void switchToErrorUrl(KIO::Error error, const QString &stringUrl);
-+
- protected Q_SLOTS:
- void slotRedirection(KIO::Job *, const QUrl &);
-
-@@ -81,6 +91,7 @@ private:
- bool m_bFoundMimeType;
- KonqOpenURLRequest m_req;
- QUrl m_mailto;
-+ bool m_inlineErrors;
- };
-
- #endif // KONQRUN_H