summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-08-09 22:00:20 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-08-09 22:01:18 +0100
commit10c0e027b8940e6cead7282fb69796cb28d2aeb9 (patch)
tree690cc9d566a9cf9a53cbe29c2822b1d99e43d68b /sfx2
parent9b981cafaac2d0ad265ad6105fd3715bfc041051 (diff)
Resolves: fdo#32177 add a modification listener on new XDocumentProperties
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/inc/sfx2/sfxbasemodel.hxx2
-rw-r--r--sfx2/source/doc/sfxbasemodel.cxx18
2 files changed, 15 insertions, 5 deletions
diff --git a/sfx2/inc/sfx2/sfxbasemodel.hxx b/sfx2/inc/sfx2/sfxbasemodel.hxx
index e3c773a5829c..7855708e8e81 100644
--- a/sfx2/inc/sfx2/sfxbasemodel.hxx
+++ b/sfx2/inc/sfx2/sfxbasemodel.hxx
@@ -1503,6 +1503,8 @@ public:
/** returns true if someone added a XEventListener to this XEventBroadcaster */
sal_Bool hasEventListeners() const;
+ void impl_setDocumentProperties( const ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentProperties >& );
+
protected:
/* returns a unique id for the model that is valid as long as the document
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index 4006ec7a7d50..777929dfc806 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -894,6 +894,15 @@ uno::Reference< document::XDocumentInfo > SAL_CALL SfxBaseModel::getDocumentInfo
return m_pData->m_xDocumentInfo;
}
+
+void
+SfxBaseModel::impl_setDocumentProperties( const uno::Reference< document::XDocumentProperties >& rxNewDocProps )
+{
+ m_pData->m_xDocumentProperties.set(rxNewDocProps, uno::UNO_QUERY_THROW);
+ uno::Reference<util::XModifyBroadcaster> xMB(m_pData->m_xDocumentProperties, uno::UNO_QUERY_THROW);
+ xMB->addModifyListener(new SfxDocInfoListener_Impl(*m_pData->m_pObjectShell));
+}
+
void
SfxBaseModel::setDocumentProperties( const uno::Reference< document::XDocumentProperties >& rxNewDocProps )
{
@@ -901,8 +910,9 @@ SfxBaseModel::setDocumentProperties( const uno::Reference< document::XDocumentPr
::SolarMutexGuard aGuard;
if ( impl_isDisposed() )
throw lang::DisposedException();
- m_pData->m_xDocumentProperties.set(rxNewDocProps, uno::UNO_QUERY_THROW);
+ impl_setDocumentProperties(rxNewDocProps);
}
+
// document::XDocumentPropertiesSupplier:
uno::Reference< document::XDocumentProperties > SAL_CALL
SfxBaseModel::getDocumentProperties()
@@ -911,13 +921,11 @@ SfxBaseModel::getDocumentProperties()
SfxModelGuard aGuard( *this, SfxModelGuard::E_INITIALIZING );
if ( !m_pData->m_xDocumentProperties.is() )
{
- uno::Reference< lang::XInitialization > xDocProps(
+ uno::Reference< document::XDocumentProperties > xDocProps(
::comphelper::getProcessServiceFactory()->createInstance(
DEFINE_CONST_UNICODE("com.sun.star.document.DocumentProperties") ),
uno::UNO_QUERY_THROW);
- m_pData->m_xDocumentProperties.set(xDocProps, uno::UNO_QUERY_THROW);
- uno::Reference<util::XModifyBroadcaster> xMB(m_pData->m_xDocumentProperties, uno::UNO_QUERY_THROW);
- xMB->addModifyListener(new SfxDocInfoListener_Impl(*m_pData->m_pObjectShell));
+ impl_setDocumentProperties(xDocProps);
}
return m_pData->m_xDocumentProperties;