summaryrefslogtreecommitdiff
path: root/libre/kdelibs-libre/fix-save-path.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libre/kdelibs-libre/fix-save-path.patch')
-rw-r--r--libre/kdelibs-libre/fix-save-path.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/libre/kdelibs-libre/fix-save-path.patch b/libre/kdelibs-libre/fix-save-path.patch
new file mode 100644
index 000000000..1a00221a7
--- /dev/null
+++ b/libre/kdelibs-libre/fix-save-path.patch
@@ -0,0 +1,27 @@
+commit 793e2a69f8aa193b60494b03d51c5fd44373c0e7
+Author: Jonathan Marten <jjm@keelhaul.me.uk>
+Date: Wed Nov 7 12:45:03 2012 +0000
+
+ Fix regression: specified or remembered save path is not used
+
+ As requested on review https://git.reviewboard.kde.org/r/106475/
+
+diff --git a/kfile/kfilewidget.cpp b/kfile/kfilewidget.cpp
+index 65deca2..e755aae 100644
+--- a/kfile/kfilewidget.cpp
++++ b/kfile/kfilewidget.cpp
+@@ -2593,8 +2593,12 @@ KUrl KFileWidget::getStartUrl( const KUrl& startDir,
+ }
+ else // not special "kfiledialog" URL
+ {
+- if (!startDir.isRelative()) // has directory, maybe with filename
+- {
++ // We can use startDir as the starting directory if either:
++ // (a) it has a directory part, or
++ // (b) there is a scheme (protocol), and it is not just "file".
++ if (!startDir.directory().isEmpty() ||
++ (!startDir.scheme().isEmpty() && !startDir.isLocalFile()))
++ { // can use start directory
+ ret = startDir; // will be checked by stat later
+ // If we won't be able to list it (e.g. http), then use default
+ if ( !KProtocolManager::supportsListing( ret ) ) {