[Libreoffice-commits] core.git: Branch 'feature/qt5+kde5' - 2 commits - vcl/unx

Katarina Behrens Katarina.Behrens at cib.de
Thu Jun 14 12:22:26 UTC 2018


 vcl/unx/kde5/KDE5FilePicker.cxx  |   25 +------------------------
 vcl/unx/kde5/KDE5FilePicker.hxx  |   12 ++++++++++++
 vcl/unx/kde5/KDE5FilePicker2.cxx |   32 +++++++++++++++++++++++++++++++-
 3 files changed, 44 insertions(+), 25 deletions(-)

New commits:
commit 7a3f11b994568e6d8706817f15cb28e217005d14
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Thu Jun 14 14:21:35 2018 +0200

    Implement enableControl, signal+slot
    
    Change-Id: I84f81f689167ec332772c706b0d0c6d7562b5ac8

diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx
index f69eb3435aa0..95eb6a5c3ba7 100644
--- a/vcl/unx/kde5/KDE5FilePicker.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker.cxx
@@ -46,15 +46,7 @@ KDE5FilePicker::~KDE5FilePicker()
     delete _dialog;
 }
 
-/*void KDE5FilePicker::enableControl(sal_Int16 controlId, bool enable)
-{
-    if (_customWidgets.contains(controlId))
-        _customWidgets.value(controlId)->setEnabled(enable);
-    else
-        qWarning() << "enable on unknown control" << controlId;
-}
-
-void KDE5FilePicker::setLabel(sal_Int16 controlId, const QString& label)
+/*void KDE5FilePicker::setLabel(sal_Int16 controlId, const QString& label)
 {
     if (_customWidgets.contains(controlId))
     {
diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx
index da2dd7a09d16..fd0ed95da27a 100644
--- a/vcl/unx/kde5/KDE5FilePicker.hxx
+++ b/vcl/unx/kde5/KDE5FilePicker.hxx
@@ -179,6 +179,7 @@ Q_SIGNALS:
     void setValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction,
                         const css::uno::Any& rValue);
     css::uno::Any getValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction);
+    void enableControlSignal(sal_Int16 nControlId, sal_Bool bEnable);
     void appendFilterSignal(const OUString& rTitle, const OUString& rFilter);
     void appendFilterGroupSignal(const OUString& rTitle,
                                  const css::uno::Sequence<css::beans::StringPair>& rFilters);
@@ -202,6 +203,11 @@ private Q_SLOTS:
         return getValue(nControlId, nControlAction);
     }
 
+    void enableControlSlot(sal_Int16 nControlId, sal_Bool bEnable)
+    {
+        return enableControl(nControlId, bEnable);
+    }
+
     void appendFilterSlot(const OUString& rTitle, const OUString& rFilter)
     {
         return appendFilter(rTitle, rFilter);
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index 75488e88041b..ad229c880001 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -115,6 +115,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
             Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::getValueSignal, this, &KDE5FilePicker::getValueSlot,
             Qt::BlockingQueuedConnection);
+    connect(this, &KDE5FilePicker::enableControlSignal, this, &KDE5FilePicker::enableControlSlot,
+            Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::appendFilterSignal, this, &KDE5FilePicker::appendFilterSlot,
             Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::appendFilterGroupSignal, this,
@@ -358,7 +360,19 @@ uno::Any SAL_CALL KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nContr
     return uno::Any(value);
 }
 
-void SAL_CALL KDE5FilePicker::enableControl(sal_Int16 controlId, sal_Bool enable) {}
+void SAL_CALL KDE5FilePicker::enableControl(sal_Int16 controlId, sal_Bool enable)
+{
+    if (qApp->thread() != QThread::currentThread())
+    {
+        SolarMutexReleaser aReleaser;
+        return Q_EMIT enableControlSignal(controlId, enable);
+    }
+
+    if (_customWidgets.contains(controlId))
+        _customWidgets.value(controlId)->setEnabled(enable);
+    else
+        SAL_WARN("vcl.kde5", "enable on unknown control" << controlId);
+}
 
 void SAL_CALL KDE5FilePicker::setLabel(sal_Int16 controlId, const OUString& label) {}
 
commit ff9e4f1f7ac84df15ecbf57f8ce56105e6985b05
Author: Katarina Behrens <Katarina.Behrens at cib.de>
Date:   Thu Jun 14 12:36:48 2018 +0200

    Implement getValue, signal+slot
    
    Change-Id: Ic009ea5dc3ca3bf791d3348fce8d007022598c49

diff --git a/vcl/unx/kde5/KDE5FilePicker.cxx b/vcl/unx/kde5/KDE5FilePicker.cxx
index 231e045f4ef5..f69eb3435aa0 100644
--- a/vcl/unx/kde5/KDE5FilePicker.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker.cxx
@@ -46,22 +46,7 @@ KDE5FilePicker::~KDE5FilePicker()
     delete _dialog;
 }
 
-/*bool KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction) const
-{
-    bool ret = false;
-    if (_customWidgets.contains(controlId))
-    {
-        QCheckBox* cb = dynamic_cast<QCheckBox*>(_customWidgets.value(controlId));
-        if (cb)
-            ret = cb->isChecked();
-    }
-    else
-        qWarning() << "get value on unknown control" << controlId;
-
-    return ret;
-}
-
-void KDE5FilePicker::enableControl(sal_Int16 controlId, bool enable)
+/*void KDE5FilePicker::enableControl(sal_Int16 controlId, bool enable)
 {
     if (_customWidgets.contains(controlId))
         _customWidgets.value(controlId)->setEnabled(enable);
diff --git a/vcl/unx/kde5/KDE5FilePicker.hxx b/vcl/unx/kde5/KDE5FilePicker.hxx
index 8fbc24f73a63..da2dd7a09d16 100644
--- a/vcl/unx/kde5/KDE5FilePicker.hxx
+++ b/vcl/unx/kde5/KDE5FilePicker.hxx
@@ -178,6 +178,7 @@ Q_SIGNALS:
     OUString getDisplayDirectorySignal();
     void setValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction,
                         const css::uno::Any& rValue);
+    css::uno::Any getValueSignal(sal_Int16 nControlId, sal_Int16 nControlAction);
     void appendFilterSignal(const OUString& rTitle, const OUString& rFilter);
     void appendFilterGroupSignal(const OUString& rTitle,
                                  const css::uno::Sequence<css::beans::StringPair>& rFilters);
@@ -196,6 +197,11 @@ private Q_SLOTS:
         return setValue(nControlAction, nControlAction, rValue);
     }
 
+    css::uno::Any getValueSlot(sal_Int16 nControlId, sal_Int16 nControlAction)
+    {
+        return getValue(nControlId, nControlAction);
+    }
+
     void appendFilterSlot(const OUString& rTitle, const OUString& rFilter)
     {
         return appendFilter(rTitle, rFilter);
diff --git a/vcl/unx/kde5/KDE5FilePicker2.cxx b/vcl/unx/kde5/KDE5FilePicker2.cxx
index 87119f9e6bc9..75488e88041b 100644
--- a/vcl/unx/kde5/KDE5FilePicker2.cxx
+++ b/vcl/unx/kde5/KDE5FilePicker2.cxx
@@ -113,6 +113,8 @@ KDE5FilePicker::KDE5FilePicker(QFileDialog::FileMode eMode)
             &KDE5FilePicker::setMultiSelectionSlot, Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::setValueSignal, this, &KDE5FilePicker::setValueSlot,
             Qt::BlockingQueuedConnection);
+    connect(this, &KDE5FilePicker::getValueSignal, this, &KDE5FilePicker::getValueSlot,
+            Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::appendFilterSignal, this, &KDE5FilePicker::appendFilterSlot,
             Qt::BlockingQueuedConnection);
     connect(this, &KDE5FilePicker::appendFilterGroupSignal, this,
@@ -329,6 +331,12 @@ void SAL_CALL KDE5FilePicker::setValue(sal_Int16 controlId, sal_Int16 nControlAc
 
 uno::Any SAL_CALL KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nControlAction)
 {
+    if (qApp->thread() != QThread::currentThread())
+    {
+        SolarMutexReleaser aReleaser;
+        return Q_EMIT getValueSignal(controlId, nControlAction);
+    }
+
     if (CHECKBOX_AUTOEXTENSION == controlId)
         // We ignore this one and rely on QFileDialog to provide the function.
         // Always return false, to pretend we do not support this, otherwise
@@ -338,6 +346,14 @@ uno::Any SAL_CALL KDE5FilePicker::getValue(sal_Int16 controlId, sal_Int16 nContr
         return uno::Any(false);
 
     bool value = false;
+    if (_customWidgets.contains(controlId))
+    {
+        QCheckBox* cb = dynamic_cast<QCheckBox*>(_customWidgets.value(controlId));
+        if (cb)
+            value = cb->isChecked();
+    }
+    else
+        SAL_WARN("vcl.kde5", "get value on unknown control" << controlId);
 
     return uno::Any(value);
 }


More information about the Libreoffice-commits mailing list