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