[Libreoffice-commits] core.git: include/sfx2 sfx2/source

Caolán McNamara caolanm at redhat.com
Thu Aug 11 14:40:13 UTC 2016


 include/sfx2/unoctitm.hxx        |    2 ++
 sfx2/source/control/unoctitm.cxx |   35 ++++++++++++++++++++---------------
 2 files changed, 22 insertions(+), 15 deletions(-)

New commits:
commit f2a60c783a8099f07b05f25301833f405c161d59
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Aug 11 14:47:56 2016 +0100

    factor this status change code out
    
    no logic change intended
    
    Change-Id: I74e58f61fdb5d9684384dac5ba9803fc2d411ca7

diff --git a/include/sfx2/unoctitm.hxx b/include/sfx2/unoctitm.hxx
index c2e060e..496c5cf 100644
--- a/include/sfx2/unoctitm.hxx
+++ b/include/sfx2/unoctitm.hxx
@@ -126,6 +126,8 @@ class SfxDispatchController_Impl : public SfxControllerItem
                                              css::uno::Sequence< css::beans::PropertyValue >& rArgs );
     static SfxMapUnit   GetCoreMetric( SfxItemPool& rPool, sal_uInt16 nSlot );
 
+    void                sendStatusChanged(const OUString& rURL, const css::frame::FeatureStateEvent& rEvent);
+
 public:
                         SfxDispatchController_Impl( SfxOfficeDispatch*                 pDisp,
                                                     SfxBindings*                       pBind,
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index b799330..33e611e 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -835,6 +835,25 @@ void SAL_CALL SfxDispatchController_Impl::addStatusListener(const css::uno::Refe
     aListener->statusChanged( aEvent );
 }
 
+void SfxDispatchController_Impl::sendStatusChanged(const OUString& rURL, const css::frame::FeatureStateEvent& rEvent)
+{
+    ::cppu::OInterfaceContainerHelper* pContnr = pDispatch->GetListeners().getContainer(rURL);
+    if (!pContnr)
+        return;
+    ::cppu::OInterfaceIteratorHelper aIt(*pContnr);
+    while (aIt.hasMoreElements())
+    {
+        try
+        {
+            static_cast<css::frame::XStatusListener*>(aIt.next())->statusChanged(rEvent);
+        }
+        catch (const css::uno::RuntimeException&)
+        {
+            aIt.remove();
+        }
+    }
+}
+
 void SfxDispatchController_Impl::StateChanged( sal_uInt16 nSID, SfxItemState eState, const SfxPoolItem* pState, SfxSlotServer* pSlotServ )
 {
     if ( !pDispatch )
@@ -912,21 +931,7 @@ void SfxDispatchController_Impl::StateChanged( sal_uInt16 nSID, SfxItemState eSt
             InterceptLOKStateChangeEvent(pDispatcher->GetFrame(), aEvent);
         }
 
-        ::cppu::OInterfaceContainerHelper* pContnr = pDispatch->GetListeners().getContainer ( aDispatchURL.Complete );
-        if (pContnr) {
-            ::cppu::OInterfaceIteratorHelper aIt( *pContnr );
-            while( aIt.hasMoreElements() )
-            {
-                try
-                {
-                    static_cast< css::frame::XStatusListener *>(aIt.next())->statusChanged( aEvent );
-                }
-                catch (const css::uno::RuntimeException&)
-                {
-                    aIt.remove();
-                }
-            }
-        }
+        sendStatusChanged(aDispatchURL.Complete, aEvent);
     }
 }
 


More information about the Libreoffice-commits mailing list