diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2018-06-12 16:25:25 +0200 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2018-06-18 15:28:00 +0200 |
commit | feffef60794a49f5e93ad27996d704538b762324 (patch) | |
tree | a96e29a8aef13ab8bcb284ce1f565852b025a093 /vcl | |
parent | db62a779d7ae9a2a321b6756b72064631af6aa04 (diff) |
Implement getSelectedFiles, signal+slot
this finally makes fpicker usable
Change-Id: Iedf7ed8de04947ffbc0e88348c95f2a937a8e69e
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/unx/kde5/KDE5FilePicker.cxx | 2 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5FilePicker.hxx | 2 | ||||
-rw-r--r-- | vcl/unx/kde5/KDE5FilePicker2.cxx | 18 |
3 files changed, 19 insertions, 3 deletions
diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx index a8486bbcb6b2..2e9f3bd66752 100644 --- a/vcl/unx/kde5/KDE5FilePicker.cxx +++ b/vcl/unx/kde5/KDE5FilePicker.cxx @@ -55,8 +55,6 @@ void KDE5FilePicker::setDefaultName(const QString& name) { _dialog->selectUrl(QU QString KDE5FilePicker::getDisplayDirectory() const { return _dialog->directoryUrl().url(); } -QList<QUrl> KDE5FilePicker::getSelectedFiles() const { return _dialog->selectedUrls(); } - bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const { bool ret = false; diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx index d4d6cae229cc..36cfb4263a11 100644 --- a/vcl/unx/kde5/KDE5FilePicker.hxx +++ b/vcl/unx/kde5/KDE5FilePicker.hxx @@ -181,6 +181,7 @@ Q_SIGNALS: const css::uno::Sequence<css::beans::StringPair>& rFilters); void setCurrentFilterSignal(const OUString& rFilter); OUString getCurrentFilterSignal(); + css::uno::Sequence<OUString> getSelectedFilesSignal(); private Q_SLOTS: void setTitleSlot(const OUString& rTitle) { return setTitle(rTitle); } @@ -203,6 +204,7 @@ private Q_SLOTS: void setCurrentFilterSlot(const OUString& rFilter) { return setCurrentFilter(rFilter); } OUString getCurrentFilterSlot() { return getCurrentFilter(); } + css::uno::Sequence<OUString> getSelectedFilesSlot() { return getFiles(); } }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx index 05e9c61976e2..da068240a502 100644 --- a/vcl/unx/kde5/KDE5FilePicker2.cxx +++ b/vcl/unx/kde5/KDE5FilePicker2.cxx @@ -115,6 +115,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode) &KDE5FilePicker::setCurrentFilterSlot, Qt::BlockingQueuedConnection); connect(this, &KDE5FilePicker::getCurrentFilterSignal, this, &KDE5FilePicker::getCurrentFilterSlot, Qt::BlockingQueuedConnection); + connect(this, &KDE5FilePicker::getSelectedFilesSignal, this, + &KDE5FilePicker::getSelectedFilesSlot, Qt::BlockingQueuedConnection); qApp->installEventFilter(this); setMultiSelectionMode(false); @@ -187,7 +189,21 @@ uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getFiles() uno::Sequence<OUString> SAL_CALL KDE5FilePicker::getSelectedFiles() { - uno::Sequence<OUString> seq; + if (qApp->thread() != QThread::currentThread()) + { + SolarMutexReleaser aReleaser; + return Q_EMIT getSelectedFilesSignal(); + } + + QList<QUrl> aURLs = _dialog->selectedUrls(); + uno::Sequence<OUString> seq(aURLs.size()); + + size_t i = 0; + for (auto& aURL : aURLs) + { + seq[i++] = toOUString(aURL.toString()); + } + return seq; } |