summaryrefslogtreecommitdiff
blob: a3c6d931e2b7b7752b2977c972e9c21b46687beb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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