SHA256
1
0
forked from pool/kio

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:
Christophe Giboudeaux 2020-09-13 10:27:30 +00:00 committed by Git OBS Bridge
parent 9e45d359f6
commit 70f346d833
4 changed files with 100 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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>

View File

@ -37,6 +37,9 @@ Source2: frameworks.keyring
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
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: fdupes
BuildRequires: kf5-filesystem