summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorKatarina Behrens <Katarina.Behrens@cib.de>2018-06-13 13:09:13 +0200
committerKatarina Behrens <Katarina.Behrens@cib.de>2018-06-18 15:28:00 +0200
commit024f054e2d0473c3ae4e3679948396adba0c9037 (patch)
tree4594a534dd6602b9ceb35fe64f5fca4e29400cb8 /vcl
parentfeffef60794a49f5e93ad27996d704538b762324 (diff)
Implement setMultiSelectionMode, signal+slot
Change-Id: Idc411dc87a84b60a22fe7b6e7bba50b2c5302128
Diffstat (limited to 'vcl')
-rw-r--r--vcl/unx/kde5/KDE5FilePicker.cxx7
-rw-r--r--vcl/unx/kde5/KDE5FilePicker.hxx2
-rw-r--r--vcl/unx/kde5/KDE5FilePicker2.cxx16
3 files changed, 16 insertions, 9 deletions
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()