kde-plasma/plasma-integration: Fix initial remote dir selection

Package-Manager: Portage-2.3.28, Repoman-2.3.9
This commit is contained in:
Andreas Sturmlechner
2018-04-08 12:44:11 +02:00
parent 28e175a6a1
commit 3f0b2caa2e
2 changed files with 107 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
From bfd41a95530f90ee8d44cbcfd1fa8c62978334a2 Mon Sep 17 00:00:00 2001
From: Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>
Date: Sun, 8 Apr 2018 11:06:32 +0100
Subject: KDEPlatformFileDialog: Fix initial directory selection for remote
files
Summary:
Previously KDEPlatformFileDialogHelper::selectFile() would change
options()->initialDirectory() unconditionally even if it was already
set by the QFileDialog code. Since Qt 5.7.1 it is no longer necessary
to derive initialDirectory from the selectFile() call. In fact it is
actuall harmful since it will now override the correct initial directory
that was set by Qt. Without this patch I got the following debug output:
```
KDEPlatformFileDialogHelper::setDirectory QUrl("sftp://server/home/alr48/cheri/build_sdk.sh")
KDEPlatformFileDialogHelper::setDirectory QUrl("sftp://server/home/alr48/cheri/build_sdk.sh")
KDEPlatformFileDialogHelper::selectFile QUrl("file:///home/alex/build_sdk.sh")
KDEPlatformFileDialogHelper::setDirectory QUrl("file:///home/alex/)
```
The final setDirectory() call is actually a call to
`setDirectory(options->initialDirectory())` which was set in `selectFile()`.
We now depend on Qt 5.9 so we can remove this code without a check for
version >= 5.7.1.
BUG: 374913
Test Plan: Remote directory is now opened correctly (tested with Qt 5.10.0)
Reviewers: #plasma, elvisangelaccio
Reviewed By: elvisangelaccio
Subscribers: ngraham, krzyc, anthonyfieroni, elvisangelaccio, graesslin, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4193
---
src/platformtheme/kdeplatformfiledialoghelper.cpp | 5 -----
1 file changed, 5 deletions(-)
diff --git a/src/platformtheme/kdeplatformfiledialoghelper.cpp b/src/platformtheme/kdeplatformfiledialoghelper.cpp
index 1a2b1b5..d4ea0cd 100644
--- a/src/platformtheme/kdeplatformfiledialoghelper.cpp
+++ b/src/platformtheme/kdeplatformfiledialoghelper.cpp
@@ -409,11 +409,6 @@ QUrl KDEPlatformFileDialogHelper::directory() const
void KDEPlatformFileDialogHelper::selectFile(const QUrl &filename)
{
m_dialog->selectFile(filename);
-
- // Qt 5 at least <= 5.8.0 does not derive the directory from the passed url
- // and set the initialDirectory option accordingly, also not for known schemes
- // like file://, so we have to do it ourselves
- options()->setInitialDirectory(m_dialog->directory());
}
void KDEPlatformFileDialogHelper::setDirectory(const QUrl &directory)
--
cgit v0.11.2

View File

@@ -0,0 +1,45 @@
# Copyright 1999-2018 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
VIRTUALX_REQUIRED="test"
inherit kde5
DESCRIPTION="Qt Platform Theme integration plugins for the Plasma workspaces"
LICENSE="LGPL-2+"
KEYWORDS="~amd64 ~arm ~arm64 ~x86"
IUSE=""
DEPEND="
$(add_frameworks_dep kcompletion)
$(add_frameworks_dep kconfig)
$(add_frameworks_dep kconfigwidgets)
$(add_frameworks_dep kcoreaddons)
$(add_frameworks_dep ki18n)
$(add_frameworks_dep kiconthemes)
$(add_frameworks_dep kio)
$(add_frameworks_dep kjobwidgets)
$(add_frameworks_dep knotifications)
$(add_frameworks_dep kwayland)
$(add_frameworks_dep kwidgetsaddons)
$(add_frameworks_dep kwindowsystem)
$(add_frameworks_dep kxmlgui)
$(add_plasma_dep breeze)
$(add_qt_dep qtdbus)
$(add_qt_dep qtgui 'dbus' '' '5=')
$(add_qt_dep qtquickcontrols2)
$(add_qt_dep qtwidgets)
$(add_qt_dep qtx11extras)
x11-libs/libXcursor
x11-libs/libxcb
"
RDEPEND="${DEPEND}
media-fonts/hack
media-fonts/noto
"
# requires running kde environment
RESTRICT+=" test"
PATCHES=( "${FILESDIR}/${P}-remote-dir-selection.patch" )