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

Reply via email to