Accepting request 834106 from home:Vogtinator:branches:KDE:Frameworks5
- Add patches to fix browsing kdeconnect://: * 0001-Remove-old-kio_fonts-hack-in-KCoreDirLister-hostname.patch * 0002-KUrlCompletion-accommodate-local-protocols-that-use-.patch OBS-URL: https://build.opensuse.org/request/show/834106 OBS-URL: https://build.opensuse.org/package/show/KDE:Frameworks5/kio?expand=0&rev=307
This commit is contained in:
parent
9e45d359f6
commit
70f346d833
@ -0,0 +1,41 @@
|
|||||||
|
From bd04dfb4d9dbf2d29c5a5c18bfce15f926996e5e Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Faure <faure@kde.org>
|
||||||
|
Date: Fri, 11 Sep 2020 18:26:47 +0200
|
||||||
|
Subject: [PATCH 1/2] Remove old kio_fonts hack in KCoreDirLister, hostname was
|
||||||
|
stripped incorrectly
|
||||||
|
|
||||||
|
https://bugs.kde.org/show_bug.cgi?id=160057 worked around the fact that
|
||||||
|
kio_fonts was creating URLs like fonts://System/, and yet there's no
|
||||||
|
hostname during directory listing afterwards.
|
||||||
|
|
||||||
|
Nowadays:
|
||||||
|
1) this hack isn't needed anymore, kio_fonts does fonts:/System/
|
||||||
|
2) removing it actually fixes navigating from `dolphin fonts:/`
|
||||||
|
---
|
||||||
|
src/core/kcoredirlister.cpp | 10 ----------
|
||||||
|
1 file changed, 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/core/kcoredirlister.cpp b/src/core/kcoredirlister.cpp
|
||||||
|
index e9a756a4..8a548949 100644
|
||||||
|
--- a/src/core/kcoredirlister.cpp
|
||||||
|
+++ b/src/core/kcoredirlister.cpp
|
||||||
|
@@ -90,16 +90,6 @@ bool KCoreDirListerCache::listDir(KCoreDirLister *lister, const QUrl &_u,
|
||||||
|
QUrl _url(_u);
|
||||||
|
_url.setPath(QDir::cleanPath(_url.path())); // kill consecutive slashes
|
||||||
|
|
||||||
|
- if (!_url.host().isEmpty() && KProtocolInfo::protocolClass(_url.scheme()) == QLatin1String(":local")
|
||||||
|
- && _url.scheme() != QLatin1String("file")) {
|
||||||
|
- // ":local" protocols ignore the hostname, so strip it out preventively - #160057
|
||||||
|
- // kio_file is special cased since it does honor the hostname (by redirecting to e.g. smb)
|
||||||
|
- _url.setHost(QString());
|
||||||
|
- if (_keep == false) {
|
||||||
|
- emit lister->redirection(_url);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
// like this we don't have to worry about trailing slashes any further
|
||||||
|
_url = _url.adjusted(QUrl::StripTrailingSlash);
|
||||||
|
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
@ -0,0 +1,49 @@
|
|||||||
|
From 37440b39539d32e6e2d8ba840ae670348554d0d8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ahmad Samir <a.samirh78@gmail.com>
|
||||||
|
Date: Sat, 12 Sep 2020 20:45:44 +0200
|
||||||
|
Subject: [PATCH 2/2] KUrlCompletion: accommodate ":local" protocols that use
|
||||||
|
hostname in url
|
||||||
|
|
||||||
|
An example of that is kdeconnect://, offering completions for it is
|
||||||
|
redundant since it uses the hostname part of the url as the deviceId (a
|
||||||
|
sequence of letters and numbers that's not easy to remember), so can't use
|
||||||
|
that, and the UDS_NAME is the pretty name (e.g. SM-J500H) users see listed in
|
||||||
|
kdeconnect:// but kdeconnect://SM-J500H doesn't work. Also because the code in
|
||||||
|
KUrlCompletion::_k_slotEntries() is expecting a list of files/dirs to offer
|
||||||
|
as completions, and not hostnames (_k_slotEntries uses addPathtoUrl helper
|
||||||
|
method), no useful completions are feasible.
|
||||||
|
|
||||||
|
Instead if the "filename" part of the url is empty we just skip it.
|
||||||
|
|
||||||
|
Note that this prevents the code from hitting an assert in addPathToUrl
|
||||||
|
(after applying https://invent.kde.org/frameworks/kio/-/merge_requests/127
|
||||||
|
which is needed to make accessing devices using the kdeconnect ioslave
|
||||||
|
actually work at all).
|
||||||
|
---
|
||||||
|
src/widgets/kurlcompletion.cpp | 9 +++++++--
|
||||||
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/widgets/kurlcompletion.cpp b/src/widgets/kurlcompletion.cpp
|
||||||
|
index 88bbaace..849a0f38 100644
|
||||||
|
--- a/src/widgets/kurlcompletion.cpp
|
||||||
|
+++ b/src/widgets/kurlcompletion.cpp
|
||||||
|
@@ -1213,9 +1213,14 @@ void KUrlCompletionPrivate::_k_slotEntries(KIO::Job *, const KIO::UDSEntryList &
|
||||||
|
entry_name = entry.stringValue(KIO::UDSEntry::UDS_NAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
- //qDebug() << "name:" << name;
|
||||||
|
+ // This can happen with kdeconnect://deviceId as a completion for kdeconnect:/,
|
||||||
|
+ // there's no fileName [and the UDS_NAME is unrelated, can't use that].
|
||||||
|
+ // This code doesn't support completing hostnames anyway (see addPathToUrl below).
|
||||||
|
+ if (entry_name.isEmpty()) {
|
||||||
|
+ continue;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- if ((!entry_name.isEmpty() && entry_name.at(0) == QLatin1Char('.')) &&
|
||||||
|
+ if (entry_name.at(0) == QLatin1Char('.') &&
|
||||||
|
(list_urls_no_hidden ||
|
||||||
|
entry_name.length() == 1 ||
|
||||||
|
(entry_name.length() == 2 && entry_name.at(1) == QLatin1Char('.')))) {
|
||||||
|
--
|
||||||
|
2.25.1
|
||||||
|
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Sep 13 09:41:06 UTC 2020 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Add patches to fix browsing kdeconnect://:
|
||||||
|
* 0001-Remove-old-kio_fonts-hack-in-KCoreDirLister-hostname.patch
|
||||||
|
* 0002-KUrlCompletion-accommodate-local-protocols-that-use-.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Sep 6 12:49:33 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
Sun Sep 6 12:49:33 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
3
kio.spec
3
kio.spec
@ -37,6 +37,9 @@ Source2: frameworks.keyring
|
|||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# PATCH-FIX-OPENSUSE kio_help-fallback-to-kde4-docs.patch -- allow kio_help to see into kde4 documentation, needed especially for khelpcenter5
|
# PATCH-FIX-OPENSUSE kio_help-fallback-to-kde4-docs.patch -- allow kio_help to see into kde4 documentation, needed especially for khelpcenter5
|
||||||
Patch0: kio_help-fallback-to-kde4-docs.patch
|
Patch0: kio_help-fallback-to-kde4-docs.patch
|
||||||
|
# PATCH-FIX-UPSTREAM
|
||||||
|
Patch1: 0001-Remove-old-kio_fonts-hack-in-KCoreDirLister-hostname.patch
|
||||||
|
Patch2: 0002-KUrlCompletion-accommodate-local-protocols-that-use-.patch
|
||||||
BuildRequires: extra-cmake-modules >= %{_kf5_bugfix_version}
|
BuildRequires: extra-cmake-modules >= %{_kf5_bugfix_version}
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: kf5-filesystem
|
BuildRequires: kf5-filesystem
|
||||||
|
Loading…
Reference in New Issue
Block a user