summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Weghorn <m.weghorn@posteo.de>2019-02-07 16:58:29 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2019-05-22 10:18:06 +0200
commit54ca7549ff4c7d89a931fa190e3c974323b087ee (patch)
tree672b1b45f845fe138b819fafa535d4d815fb687e
parent698218f81f0f5ce2a9232af69e27bf1cbad5d283 (diff)
Make 'setDefaultName()' work again for kde5 fpicker
Add an option to Qt5FilePicker constructor to say whether the QFileDialog should be a native one or not, since 'QFileDialog::selectFile' does not preselect the correct name in the native dialog any more if the 'QFileDialog::DontUseNativeDialog' option has ever been set, i.e. QFileDialog fileDialog; fileDialog.setOption(QFileDialog::DontUseNativeDialog); fileDialog.setOption(QFileDialog::DontUseNativeDialog, false); fileDialog.selectFile("test.txt"); will not properly set the name in the native file dialog, which broke 'setDefaultName' for the KDE5FilePicker. This makes it work again, even though I think that the underlying issue is a Qt bug (s. https://bugreports.qt.io/browse/QTBUG-73682 ). Change-Id: I99a1e7c97d594925d600fa8eaf3303f9013551c2 Reviewed-on: https://gerrit.libreoffice.org/68058 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 1d01ebc84867af00825512a3a3cfd9d0fa15eea9) Reviewed-on: https://gerrit.libreoffice.org/72655
-rw-r--r--vcl/inc/qt5/Qt5FilePicker.hxx5
-rw-r--r--vcl/qt5/Qt5FilePicker.cxx7
-rw-r--r--vcl/unx/kde5/KDE5FilePicker2.cxx2
3 files changed, 10 insertions, 4 deletions
diff --git a/vcl/inc/qt5/Qt5FilePicker.hxx b/vcl/inc/qt5/Qt5FilePicker.hxx
index 8b8055efab9d..1bb6974ab83e 100644
--- a/vcl/inc/qt5/Qt5FilePicker.hxx
+++ b/vcl/inc/qt5/Qt5FilePicker.hxx
@@ -86,7 +86,10 @@ protected:
bool m_bIsFolderPicker;
public:
- explicit Qt5FilePicker(QFileDialog::FileMode, bool bShowFileExtensionInFilterTitle = false);
+ // use non-native file dialog by default; there's no easy way to add custom widgets
+ // in a generic way in the native one
+ explicit Qt5FilePicker(QFileDialog::FileMode, bool bShowFileExtensionInFilterTitle = false,
+ bool bUseNativeDialog = false);
virtual ~Qt5FilePicker() override;
// XFilePickerNotifier
diff --git a/vcl/qt5/Qt5FilePicker.cxx b/vcl/qt5/Qt5FilePicker.cxx
index 0d2025cec55b..dcfcc68f0888 100644
--- a/vcl/qt5/Qt5FilePicker.cxx
+++ b/vcl/qt5/Qt5FilePicker.cxx
@@ -76,13 +76,16 @@ uno::Sequence<OUString> FilePicker_getSupportedServiceNames()
}
}
-Qt5FilePicker::Qt5FilePicker(QFileDialog::FileMode eMode, bool bShowFileExtensionInFilterTitle)
+Qt5FilePicker::Qt5FilePicker(QFileDialog::FileMode eMode, bool bShowFileExtensionInFilterTitle,
+ bool bUseNativeDialog)
: Qt5FilePicker_Base(m_aHelperMutex)
, m_bShowFileExtensionInFilterTitle(bShowFileExtensionInFilterTitle)
, m_pFileDialog(new QFileDialog(nullptr, {}, QDir::homePath()))
, m_bIsFolderPicker(eMode == QFileDialog::Directory)
{
- m_pFileDialog->setOption(QFileDialog::DontUseNativeDialog);
+ if (!bUseNativeDialog)
+ m_pFileDialog->setOption(QFileDialog::DontUseNativeDialog);
+
m_pFileDialog->setFileMode(eMode);
m_pFileDialog->setWindowModality(Qt::ApplicationModal);
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index b074448c068e..7392c97269a5 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -81,7 +81,7 @@ uno::Sequence<OUString> FilePicker_getSupportedServiceNames()
KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
// Native kde5 filepicker does not add file extension automatically
- : Qt5FilePicker(eMode, true)
+ : Qt5FilePicker(eMode, true, true)
, _layout(new QGridLayout(m_pExtraControls))
, allowRemoteUrls(false)
{