dbaccess/source/core/dataaccess/documenteventexecutor.cxx |   19 +++++---------
 dbaccess/source/core/dataaccess/documenteventexecutor.hxx |    8 +++--
 2 files changed, 13 insertions(+), 14 deletions(-)

New commits:
commit fff43a2e76dd6e6892a9c447edf60a44ba1a345e
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Fri Sep 20 15:30:38 2024 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Sep 24 12:13:47 2024 +0200

    use more concrete UNO types in dbaccess
    
    Change-Id: Ibcf54e3bbdad4888c5da1f52f636951356e0aa51
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173818
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/dbaccess/source/core/dataaccess/documenteventexecutor.cxx 
b/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
index dca584d5b054..aebaf385e64b 100644
--- a/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
+++ b/dbaccess/source/core/dataaccess/documenteventexecutor.cxx
@@ -18,6 +18,7 @@
  */
 
 #include "documenteventexecutor.hxx"
+#include "databasedocument.hxx"
 
 #include <com/sun/star/document/XDocumentEventBroadcaster.hpp>
 #include <com/sun/star/util/URLTransformer.hpp>
@@ -60,11 +61,11 @@ namespace dbaccess
     namespace
     {
         void lcl_dispatchScriptURL_throw(
-            css::uno::WeakReference< css::document::XEventsSupplier > const & 
xWeakDocument,
+            ::unotools::WeakReference< ODatabaseDocument > const & 
xWeakDocument,
             css::uno::Reference< css::util::XURLTransformer > const & 
xURLTransformer,
             const OUString& _rScriptURL, const DocumentEvent& _rTrigger )
         {
-            Reference< XModel > xDocument( xWeakDocument.get(), 
UNO_QUERY_THROW );
+            rtl::Reference< ODatabaseDocument > xDocument( xWeakDocument.get() 
);
 
             Reference< XController > xController( 
xDocument->getCurrentController() );
             Reference< XDispatchProvider > xDispProv;
@@ -102,14 +103,12 @@ namespace dbaccess
 
     // DocumentEventExecutor
     DocumentEventExecutor::DocumentEventExecutor( const 
Reference<XComponentContext> & _rContext,
-            const Reference< XEventsSupplier >& _rxDocument )
+            const rtl::Reference< ODatabaseDocument >& _rxDocument )
         :mxDocument( _rxDocument )
     {
-        Reference< XDocumentEventBroadcaster > xBroadcaster( _rxDocument, 
UNO_QUERY_THROW );
-
         osl_atomic_increment( &m_refCount );
         {
-            xBroadcaster->addDocumentEventListener( this );
+            _rxDocument->addDocumentEventListener( this );
         }
         osl_atomic_decrement( &m_refCount );
 
@@ -129,18 +128,16 @@ namespace dbaccess
 
     void SAL_CALL DocumentEventExecutor::documentEventOccured( const 
DocumentEvent& Event )
     {
-        Reference< XEventsSupplier > xEventsSupplier( mxDocument.get(), 
UNO_QUERY );
-        if ( !xEventsSupplier )
+        rtl::Reference< ODatabaseDocument > xDocument( mxDocument.get() );
+        if ( !xDocument )
         {
             OSL_FAIL( "DocumentEventExecutor::documentEventOccurred: no 
document anymore, but still being notified?" );
             return;
         }
 
-        Reference< XModel > xDocument( xEventsSupplier, UNO_QUERY_THROW );
-
         try
         {
-            Reference< XNameAccess > xDocEvents( xEventsSupplier->getEvents(), 
UNO_SET_THROW );
+            Reference< XNameAccess > xDocEvents( xDocument->getEvents(), 
UNO_SET_THROW );
             if ( !xDocEvents->hasByName( Event.EventName ) )
             {
                 // this is worth an assertion: We are listener at the very 
same document which we just asked
diff --git a/dbaccess/source/core/dataaccess/documenteventexecutor.hxx 
b/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
index 58aee4bcd590..e012846c83e9 100644
--- a/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
+++ b/dbaccess/source/core/dataaccess/documenteventexecutor.hxx
@@ -23,13 +23,15 @@
 #include <com/sun/star/document/XEventsSupplier.hpp>
 
 #include <cppuhelper/implbase.hxx>
-#include <cppuhelper/weakref.hxx>
+#include <unotools/weakref.hxx>
 
 namespace com::sun::star::uno { class XComponentContext; }
 namespace com::sun::star::util { class XURLTransformer; }
 
 namespace dbaccess
 {
+    class ODatabaseDocument;
+
     // DocumentEventExecutor
     typedef ::cppu::WeakImplHelper <   css::document::XDocumentEventListener
                                     >   DocumentEventExecutor_Base;
@@ -38,7 +40,7 @@ namespace dbaccess
     public:
         DocumentEventExecutor(
             const css::uno::Reference< css::uno::XComponentContext >& 
_rContext,
-            const css::uno::Reference< css::document::XEventsSupplier >& 
_rxDocument );
+            const rtl::Reference< ODatabaseDocument >& _rxDocument );
 
     protected:
         virtual ~DocumentEventExecutor() override;
@@ -49,7 +51,7 @@ namespace dbaccess
         virtual void SAL_CALL disposing( const css::lang::EventObject& Source 
) override;
 
     private:
-        css::uno::WeakReference< css::document::XEventsSupplier > mxDocument;
+        unotools::WeakReference< ODatabaseDocument > mxDocument;
         css::uno::Reference< css::util::XURLTransformer > mxURLTransformer;
     };
 

Reply via email to