[Libreoffice-commits] core.git: uui/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Mon Sep 9 15:27:41 UTC 2019


 uui/source/iahndl.hxx             |   11 ++++--
 uui/source/interactionhandler.cxx |   60 ++++++++++++++++++++++++++++++++++++--
 2 files changed, 64 insertions(+), 7 deletions(-)

New commits:
commit adb9b7c7cc37e768fc874a0dd584e6d76adbf62f
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Sep 9 11:06:55 2019 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Sep 9 16:25:06 2019 +0100

    enable route to get ParentWindow from an existing UUIInteractionHelper
    
    Change-Id: I550f99fa4a5db41cdad0b4d60ca02866835d7ae2

diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx
index 4feb98d3fa5d..f2c9461f6bbe 100644
--- a/uui/source/iahndl.hxx
+++ b/uui/source/iahndl.hxx
@@ -74,10 +74,10 @@ typedef std::unordered_map< OUString, OUString >    StringHashMap;
 class UUIInteractionHelper
 {
 private:
-            css::uno::Reference< css::uno::XComponentContext >      m_xContext;
-            css::uno::Reference< css::awt::XWindow >                m_xWindowParam;
-            const OUString                                          m_aContextParam;
-            StringHashMap                                           m_aTypedCustomHandlers;
+    css::uno::Reference< css::uno::XComponentContext >      m_xContext;
+    css::uno::Reference< css::awt::XWindow >                m_xWindowParam;
+    const OUString                                          m_aContextParam;
+    StringHashMap                                           m_aTypedCustomHandlers;
     UUIInteractionHelper(UUIInteractionHelper const &) = delete;
     UUIInteractionHelper& operator =(UUIInteractionHelper const &) = delete;
 
@@ -89,6 +89,9 @@ public:
     explicit UUIInteractionHelper(
         css::uno::Reference< css::uno::XComponentContext > const & rxContext);
 
+    css::uno::Reference<css::awt::XWindow> GetParentWindow() const { return m_xWindowParam; }
+    void SetParentWindow(css::uno::Reference<css::awt::XWindow>& rWindow) { m_xWindowParam = rWindow; }
+
     ~UUIInteractionHelper();
 
     bool handleRequest( css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
diff --git a/uui/source/interactionhandler.cxx b/uui/source/interactionhandler.cxx
index df06d4ea1d0e..1d587988478f 100644
--- a/uui/source/interactionhandler.cxx
+++ b/uui/source/interactionhandler.cxx
@@ -22,6 +22,7 @@
 #include <osl/diagnose.h>
 
 #include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
 #include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
 #include <com/sun/star/lang/XInitialization.hpp>
 #include <com/sun/star/lang/XServiceInfo.hpp>
@@ -38,9 +39,10 @@ using namespace com::sun::star;
 namespace {
 
 class UUIInteractionHandler:
-    public cppu::WeakImplHelper< css::lang::XServiceInfo,
-                                  css::lang::XInitialization,
-                                  css::task::XInteractionHandler2 >
+    public cppu::WeakImplHelper<css::lang::XServiceInfo,
+                                css::lang::XInitialization,
+                                css::task::XInteractionHandler2,
+                                css::beans::XPropertySet>
 {
 private:
     std::unique_ptr<UUIInteractionHelper> m_pImpl;
@@ -69,6 +71,58 @@ public:
         handleInteractionRequest(
             const css::uno::Reference< css::task::XInteractionRequest >& Request
         ) override;
+
+    virtual void SAL_CALL
+        addPropertyChangeListener( const OUString& /*aPropertyName*/, const css::uno::Reference< css::beans::XPropertyChangeListener >& /*xListener*/ ) override
+    {
+        assert(false);
+    }
+
+    virtual void SAL_CALL
+        removePropertyChangeListener( const OUString& /*aPropertyName*/, const css::uno::Reference< css::beans::XPropertyChangeListener >& /*xListener*/ ) override
+    {
+        assert(false);
+    }
+
+    virtual void SAL_CALL
+        addVetoableChangeListener( const OUString& /*aPropertyName*/, const css::uno::Reference< css::beans::XVetoableChangeListener >& /*xListener*/ ) override
+    {
+        assert(false);
+    }
+
+    virtual void SAL_CALL
+        removeVetoableChangeListener( const OUString& /*aPropertyName*/, const css::uno::Reference< css::beans::XVetoableChangeListener >& /*xListener*/ ) override
+    {
+        assert(false);
+    }
+
+    virtual css::uno::Reference< css::beans::XPropertySetInfo > SAL_CALL
+        getPropertySetInfo() override
+    {
+        assert(false);
+        return nullptr;
+    }
+
+    virtual void SAL_CALL setPropertyValue(const OUString& rPropertyName, const css::uno::Any& rValue) override
+    {
+        if (rPropertyName == "ParentWindow")
+        {
+            css::uno::Reference<css::awt::XWindow> xWindow;
+            rValue >>= xWindow;
+            m_pImpl->SetParentWindow(xWindow);
+            return;
+        }
+        throw css::beans::UnknownPropertyException();
+    }
+
+    virtual css::uno::Any SAL_CALL getPropertyValue(const OUString& rPropertyName) override
+    {
+        if (rPropertyName == "ParentWindow")
+        {
+            return uno::Any(m_pImpl->GetParentWindow());
+        }
+        throw css::beans::UnknownPropertyException();
+    }
 };
 
 UUIInteractionHandler::UUIInteractionHandler(


More information about the Libreoffice-commits mailing list