diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-12-01 03:04:39 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-12-01 03:04:39 +0000 |
commit | 407525b571b48cfd65e1ad7a02d250a927c967c9 (patch) | |
tree | 844bea44d85dc7218f54970af1c42cc9d55c3f1a /kde-frameworks/kio/files | |
parent | 89c6c06b8c42107dd231687a1012354e7d3039fc (diff) |
gentoo resync : 01.12.2017
Diffstat (limited to 'kde-frameworks/kio/files')
-rw-r--r-- | kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch | 80 | ||||
-rw-r--r-- | kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch | 65 |
2 files changed, 145 insertions, 0 deletions
diff --git a/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch b/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch new file mode 100644 index 000000000000..9645620d04d7 --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.40.0-knewfilemenu-mkpath-qt-5.9.3.patch @@ -0,0 +1,80 @@ +From 298c0e734efdd8a7b66a531959e3fb5357a6495d Mon Sep 17 00:00:00 2001 +From: Eike Hein <hein@kde.org> +Date: Tue, 28 Nov 2017 19:42:46 +0900 +Subject: Fix creating a directory via KNewFileMenu+KIO::mkpath on Qt 5.9.3+ + +Summary: +f62768d04652 in qtbase.git introduced a behavior change in QUrl +causing it to reject URLs with a path of "//foo" (note the double +slash) as invalid. + +Both KNewFileMenu and KIO::mkpath contained code following this +pattern: + + url.path() + '/' + name + +This is a bad mix with forwarding slaves like kio_desktop, which +translate a top-level path of / to some other URL: + + (desktop:)/ + / + foo = //foo + +This patch addresses the two instances of this by wrapping the +string building in QDir::cleanPath, which I think is the shortest +and most readable way to go. + +2353119aae8f in kio.git (D8836) was another commit fixing fallout +from this Qt change. Is unlikely this patch will be the last one. +I suspect many other variations of this problem lurk about the +codebase. + +BUG:387073 + +Reviewers: dfaure, thiago, elvisangelaccio + +Subscribers: #frameworks + +Tags: #frameworks + +Differential Revision: https://phabricator.kde.org/D9029 +--- + src/core/mkpathjob.cpp | 3 ++- + src/filewidgets/knewfilemenu.cpp | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/core/mkpathjob.cpp b/src/core/mkpathjob.cpp +index c77a9fe..f67a489 100644 +--- a/src/core/mkpathjob.cpp ++++ b/src/core/mkpathjob.cpp +@@ -25,6 +25,7 @@ + #include "mkdirjob.h" + #include <QTimer> + #include <QDebug> ++#include <QDir> + #include <QFileInfo> + + using namespace KIO; +@@ -123,7 +124,7 @@ void MkpathJobPrivate::slotStart() + } + + if (m_pathIterator != m_pathComponents.constEnd()) { +- m_url.setPath(m_url.path() + '/' + *m_pathIterator); ++ m_url.setPath(QDir::cleanPath(m_url.path() + '/' + *m_pathIterator)); + KIO::Job* job = KIO::mkdir(m_url); + q->addSubjob(job); + q->setProcessedAmount(KJob::Directories, q->processedAmount(KJob::Directories) + 1); +diff --git a/src/filewidgets/knewfilemenu.cpp b/src/filewidgets/knewfilemenu.cpp +index 023eebd..98c9852 100644 +--- a/src/filewidgets/knewfilemenu.cpp ++++ b/src/filewidgets/knewfilemenu.cpp +@@ -855,7 +855,7 @@ void KNewFileMenuPrivate::_k_slotCreateDirectory(bool writeHiddenDir) + } + } + url = baseUrl; +- url.setPath(url.path() + '/' + name); ++ url.setPath(QDir::cleanPath(url.path() + '/' + name)); + } + } + +-- +cgit v0.11.2 + diff --git a/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch b/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch new file mode 100644 index 000000000000..d9cf7402741d --- /dev/null +++ b/kde-frameworks/kio/files/kio-5.40.0-mkpath-qt-5.9.3.patch @@ -0,0 +1,65 @@ +From 2353119aae8f03565bc7779ed1d597d266f5afda Mon Sep 17 00:00:00 2001 +From: Elvis Angelaccio <elvis.angelaccio@kde.org> +Date: Thu, 16 Nov 2017 10:41:19 +0100 +Subject: Fix KIO::mkpath with qtbase 5.10 beta 4 + +Summary: +The latest Qt 5.10 beta includes [1] which breaks a bunch of unit tests, +since `url.setPath("//foo")` will now result in an invalid (empty) QUrl. + +This patch fixes the KIO::mkpath() case. + +[1]: http://code.qt.io/cgit/qt/qtbase.git/commit/?id=f62768d046528636789f901ac79e2cfa1843a7b7 + +Test Plan: + +* I can now create folders from dolphin and plasma. +* fileundomanagertest and mkpathjobtest no longer fail + +Reviewers: #frameworks, dfaure + +Tags: #frameworks + +Differential Revision: https://phabricator.kde.org/D8836 +--- + src/core/mkpathjob.cpp | 17 ++++++++++++++--- + 1 file changed, 14 insertions(+), 3 deletions(-) + +diff --git a/src/core/mkpathjob.cpp b/src/core/mkpathjob.cpp +index bff46ca..a177805 100644 +--- a/src/core/mkpathjob.cpp ++++ b/src/core/mkpathjob.cpp +@@ -43,8 +43,13 @@ public: + m_url.setPath(QStringLiteral("/")); + int i = 0; + for (; i < basePathComponents.count() && i < m_pathComponents.count(); ++i) { +- if (m_pathComponents.at(i) == basePathComponents.at(i)) { +- m_url.setPath(m_url.path() + '/' + m_pathComponents.at(i)); ++ const QString pathComponent = m_pathComponents.at(i); ++ if (pathComponent == basePathComponents.at(i)) { ++ if (m_url.path() == QLatin1Char('/')) { ++ m_url.setPath(m_url.path() + pathComponent); ++ } else { ++ m_url.setPath(m_url.path() + '/' + pathComponent); ++ } + } else { + break; + } +@@ -57,7 +62,13 @@ public: + if (m_url.isLocalFile()) { + i = 0; + for (; i < m_pathComponents.count(); ++i) { +- QString testDir = m_url.toLocalFile() + '/' + m_pathComponents.at(i); ++ const QString localFile = m_url.toLocalFile(); ++ QString testDir; ++ if (localFile == QLatin1Char('/')) { ++ testDir = localFile + m_pathComponents.at(i); ++ } else { ++ testDir = localFile + '/' + m_pathComponents.at(i); ++ } + if (QFileInfo(testDir).isDir()) { + m_url.setPath(testDir); + } else { +-- +cgit v0.11.2 + |