summaryrefslogtreecommitdiff
path: root/vcl/unx/gtk3_kde5
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2019-04-24 11:31:06 +0200
committerMichael Weghorn <m.weghorn@posteo.de>2019-04-25 07:31:45 +0200
commit9fc0dbcd797f074ddb8ba379c876dd233cb5836e (patch)
treeb50073e4d68841c3e85a3004b6fdd7b6e15ea37c /vcl/unx/gtk3_kde5
parent4a88cba2eda6b9dac30c31f213c4e082b2d626bb (diff)
gtk3_kde5: Make folder selection more intuitive
When 'QFileDialog::Directory' is set, the native Plasma QFileDialog does not consider the clicked directory to be selected, but rather the base directory shown in the dialog, s. https://bugs.kde.org/show_bug.cgi?id=406464 . Therefore don't set the option when in a KDE Plasma desktop environment (which the kde5 VCL plugin also doesn't do). This works around the above issue in the Plasma desktop integration. Change-Id: Ib3d0978ab56b6e50ee45f7ad997ec051b35faf54 Reviewed-on: https://gerrit.libreoffice.org/71223 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Diffstat (limited to 'vcl/unx/gtk3_kde5')
-rw-r--r--vcl/unx/gtk3_kde5/kde5_filepicker.cxx11
1 files changed, 10 insertions, 1 deletions
diff --git a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
index 991486903c62..d31d6f0aa9ec 100644
--- a/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
+++ b/vcl/unx/gtk3_kde5/kde5_filepicker.cxx
@@ -65,7 +65,16 @@ KDE5FilePicker::KDE5FilePicker(QObject* parent)
void KDE5FilePicker::enableFolderMode()
{
_dialog->setOption(QFileDialog::ShowDirsOnly, true);
- _dialog->setFileMode(QFileDialog::Directory);
+ // Workaround for https://bugs.kde.org/show_bug.cgi?id=406464 :
+ // Don't set file mode to QFileDialog::Directory when native KDE Plasma 5
+ // file dialog is used, since clicking on directory "bar" inside directory "foo"
+ // and then confirming would return "foo" rather than "foo/bar";
+ // on the other hand, non-native file dialog needs 'QFileDialog::Directory'
+ // and doesn't allow folder selection otherwise
+ if (Application::GetDesktopEnvironment() != "KDE5")
+ {
+ _dialog->setFileMode(QFileDialog::Directory);
+ }
}
KDE5FilePicker::~KDE5FilePicker()