vcl/unx/kde5/KDE5FilePicker.cxx | 11 +---------- vcl/unx/kde5/KDE5FilePicker.hxx | 6 ++++++ vcl/unx/kde5/KDE5FilePicker2.cxx | 39 ++++++++++++++++++++++++++++++++++----- 3 files changed, 41 insertions(+), 15 deletions(-)
New commits: commit 4e48c8ec4fe35e91a8a3c41576a0be9adf74291a Author: Katarina Behrens <katarina.behr...@cib.de> Date: Wed Jun 13 13:51:46 2018 +0200 Add 2 more file/dir methods, signal+slot Change-Id: I0152e4e0fa72e27a144ca96f83fe6a282b272cbe diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx index 5d87022e36fb..231e045f4ef5 100644 --- a/vcl/unx/kde5/KDE5FilePicker.cxx +++ b/vcl/unx/kde5/KDE5FilePicker.cxx @@ -46,11 +46,7 @@ KDE5FilePicker::~KDE5FilePicker() delete _dialog; } -/*void KDE5FilePicker::setDefaultName(const QString& name) { _dialog->selectUrl(QUrl(name)); } - -QString KDE5FilePicker::getDisplayDirectory() const { return _dialog->directoryUrl().url(); } - -bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const +/*bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const { bool ret = false; if (_customWidgets.contains(controlId)) diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx index f1bbcf7545df..8fbc24f73a63 100644 --- a/vcl/unx/kde5/KDE5FilePicker.hxx +++ b/vcl/unx/kde5/KDE5FilePicker.hxx @@ -173,7 +173,9 @@ protected: Q_SIGNALS: void setTitleSignal(const OUString& rTitle); + void setDefaultNameSignal(const OUString& rName); void setDisplayDirectorySignal(const OUString& rDir); + OUString getDisplayDirectorySignal(); void setValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any& rValue); void appendFilterSignal(const OUString& rTitle, const OUString& rFilter); @@ -186,7 +188,9 @@ Q_SIGNALS: private Q_SLOTS: void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); } + void setDefaultNameSlot(const OUString& rName) { return setDefaultName(rName); } void setDisplayDirectorySlot(const OUString& rDir) { return setDisplayDirectory(rDir); } + OUString getDisplayDirectorySlot() { return getDisplayDirectory(); } void setValueSlot(sal_Int16 nControlId, sal_Int16 nControlAction, const css::uno::Any& rValue) { return setValue(nControlAction, nControlAction, rValue); diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx index fd0fedd7c7ac..87119f9e6bc9 100644 --- a/vcl/unx/kde5/KDE5FilePicker2.cxx +++ b/vcl/unx/kde5/KDE5FilePicker2.cxx @@ -102,9 +102,13 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode) connect(_dialog, &QFileDialog::fileSelected, this, &KDE5FilePicker::selectionChanged); connect(this, &KDE5FilePicker::setTitleSignal /*(const OUString&)*/, this, &KDE5FilePicker::setTitleSlot /*(const OUString&)*/, Qt::BlockingQueuedConnection); + connect(this, &KDE5FilePicker::setDefaultNameSignal, this, &KDE5FilePicker::setDefaultNameSlot, + Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::setDisplayDirectorySignal /*(const OUString&)*/, this, &KDE5FilePicker::setDisplayDirectorySlot /*(const OUString&)*/, Qt::BlockingQueuedConnection); + connect(this, &KDE5FilePicker::getDisplayDirectorySignal, this, + &KDE5FilePicker::getDisplayDirectorySlot, Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::setMultiSelectionSignal, this, &KDE5FilePicker::setMultiSelectionSlot, Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::setValueSignal, this, &KDE5FilePicker::setValueSlot, @@ -170,7 +174,16 @@ void SAL_CALL KDE5FilePicker::setMultiSelectionMode(sal_Bool multiSelect) _dialog->setFileMode(multiSelect ? QFileDialog::ExistingFiles : QFileDialog::ExistingFile); } -void SAL_CALL KDE5FilePicker::setDefaultName(const OUString& name) {} +void SAL_CALL KDE5FilePicker::setDefaultName(const OUString& name) +{ + if (qApp->thread() != QThread::currentThread()) + { + SolarMutexReleaser aReleaser; + return Q_EMIT setDefaultNameSignal(name); + } + + _dialog->selectUrl(QUrl(toQString(name))); +} void SAL_CALL KDE5FilePicker::setDisplayDirectory(const OUString& dir) { @@ -185,7 +198,13 @@ void SAL_CALL KDE5FilePicker::setDisplayDirectory(const OUString& dir) OUString SAL_CALL KDE5FilePicker::getDisplayDirectory() { - OUString dir; + if (qApp->thread() != QThread::currentThread()) + { + SolarMutexReleaser aReleaser; + return Q_EMIT getDisplayDirectorySignal(); + } + + OUString dir = toOUString(_dialog->directoryUrl().url()); return dir; } commit 8172107173b63f4bfdd1add4d1ab7c4baacb79f4 Author: Katarina Behrens <katarina.behr...@cib.de> Date: Wed Jun 13 13:09:13 2018 +0200 Implement setMultiSelectionMode, signal+slot Change-Id: Idc411dc87a84b60a22fe7b6e7bba50b2c5302128 diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx index 2e9f3bd66752..5d87022e36fb 100644 --- a/vcl/unx/kde5/KDE5FilePicker.cxx +++ b/vcl/unx/kde5/KDE5FilePicker.cxx @@ -46,12 +46,7 @@ KDE5FilePicker::~KDE5FilePicker() delete _dialog; } -/*void KDE5FilePicker::setMultiSelectionMode(bool multiSelect) -{ - _dialog->setFileMode(multiSelect ? QFileDialog::ExistingFiles : QFileDialog::ExistingFile); -} - -void KDE5FilePicker::setDefaultName(const QString& name) { _dialog->selectUrl(QUrl(name)); } +/*void KDE5FilePicker::setDefaultName(const QString& name) { _dialog->selectUrl(QUrl(name)); } QString KDE5FilePicker::getDisplayDirectory() const { return _dialog->directoryUrl().url(); } diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx index 36cfb4263a11..f1bbcf7545df 100644 --- a/vcl/unx/kde5/KDE5FilePicker.hxx +++ b/vcl/unx/kde5/KDE5FilePicker.hxx @@ -182,6 +182,7 @@ Q_SIGNALS: void setCurrentFilterSignal(const OUString& rFilter); OUString getCurrentFilterSignal(); css::uno::Sequence<OUString> getSelectedFilesSignal(); + void setMultiSelectionSignal(bool bMulti); private Q_SLOTS: void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); } @@ -205,6 +206,7 @@ private Q_SLOTS: void setCurrentFilterSlot(const OUString& rFilter) { return setCurrentFilter(rFilter); } OUString getCurrentFilterSlot() { return getCurrentFilter(); } css::uno::Sequence<OUString> getSelectedFilesSlot() { return getFiles(); } + void setMultiSelectionSlot(bool bMulti) { return setMultiSelectionMode(bMulti); } }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx index da068240a502..fd0fedd7c7ac 100644 --- a/vcl/unx/kde5/KDE5FilePicker2.cxx +++ b/vcl/unx/kde5/KDE5FilePicker2.cxx @@ -105,6 +105,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode) connect(this, &KDE5FilePicker::setDisplayDirectorySignal /*(const OUString&)*/, this, &KDE5FilePicker::setDisplayDirectorySlot /*(const OUString&)*/, Qt::BlockingQueuedConnection); + connect(this, &KDE5FilePicker::setMultiSelectionSignal, this, + &KDE5FilePicker::setMultiSelectionSlot, Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::setValueSignal, this, &KDE5FilePicker::setValueSlot, Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::appendFilterSignal, this, &KDE5FilePicker::appendFilterSlot, @@ -119,7 +121,6 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode) &KDE5FilePicker::getSelectedFilesSlot, Qt::BlockingQueuedConnection); qApp->installEventFilter(this); - setMultiSelectionMode(false); } void SAL_CALL @@ -158,7 +159,16 @@ sal_Int16 SAL_CALL KDE5FilePicker::execute() return _dialog->exec() == QFileDialog::Accepted; } -void SAL_CALL KDE5FilePicker::setMultiSelectionMode(sal_Bool multiSelect) {} +void SAL_CALL KDE5FilePicker::setMultiSelectionMode(sal_Bool multiSelect) +{ + if (qApp->thread() != QThread::currentThread()) + { + SolarMutexReleaser aReleaser; + return Q_EMIT setMultiSelectionSignal(multiSelect); + } + + _dialog->setFileMode(multiSelect ? QFileDialog::ExistingFiles : QFileDialog::ExistingFile); +} void SAL_CALL KDE5FilePicker::setDefaultName(const OUString& name) {} @@ -170,7 +180,7 @@ void SAL_CALL KDE5FilePicker::setDisplayDirectory(const OUString& dir) return Q_EMIT setDisplayDirectorySignal(dir); } - _dialog->selectUrl(QUrl(toQString(dir))); + _dialog->setDirectory(toQString(dir)); } OUString SAL_CALL KDE5FilePicker::getDisplayDirectory() _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits