summaryrefslogtreecommitdiff
path: root/chart2/source/model
diff options
context:
space:
mode:
authorFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-11-16 14:12:33 +0100
committerFrank Schoenheit [fs] <frank.schoenheit@oracle.com>2010-11-16 14:12:33 +0100
commit5854c96421fe2a2320b36ae570c987392c235e9a (patch)
tree86b0cb653bb1d071e85ebe3cf9cba78013e736ed /chart2/source/model
parentfd3ece0777004f5438cf6a352fefb7270228f6d7 (diff)
undoapi: re-implemented the XModifyBroadcaster for chart's UndoManager, for this purpose, added support to the UndoManagerHelper
Diffstat (limited to 'chart2/source/model')
-rwxr-xr-xchart2/source/model/main/ChartModel.cxx3
-rwxr-xr-xchart2/source/model/main/UndoManager.cxx27
-rwxr-xr-xchart2/source/model/main/UndoManager.hxx10
3 files changed, 32 insertions, 8 deletions
diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx
index 481f968f9488..95da8c778ead 100755
--- a/chart2/source/model/main/ChartModel.cxx
+++ b/chart2/source/model/main/ChartModel.cxx
@@ -538,6 +538,9 @@ void SAL_CALL ChartModel::dispose() throw(uno::RuntimeException)
//--release all resources and references
//// @todo
+ if ( m_xDiagram.is() )
+ ModifyListenerHelper::removeListener( m_xDiagram, this );
+
m_xDataProvider.clear();
m_xInternalDataProvider.clear();
m_xNumberFormatsSupplier.clear();
diff --git a/chart2/source/model/main/UndoManager.cxx b/chart2/source/model/main/UndoManager.cxx
index 7260ac15987f..98b63012c737 100755
--- a/chart2/source/model/main/UndoManager.cxx
+++ b/chart2/source/model/main/UndoManager.cxx
@@ -63,6 +63,7 @@ namespace chart
using ::com::sun::star::document::XUndoManagerListener;
using ::com::sun::star::util::NotLockedException;
using ::com::sun::star::lang::NoSupportException;
+ using ::com::sun::star::util::XModifyListener;
/** === end UNO using === **/
namespace impl
@@ -108,13 +109,13 @@ namespace chart
void checkDisposed_lck();
private:
- UndoManager& m_rAntiImpl;
- ::cppu::OWeakObject& m_rParent;
- ::osl::Mutex& m_rMutex;
- bool m_bDisposed;
+ UndoManager& m_rAntiImpl;
+ ::cppu::OWeakObject& m_rParent;
+ ::osl::Mutex& m_rMutex;
+ bool m_bDisposed;
- SfxUndoManager m_aUndoManager;
- ::framework::UndoManagerHelper m_aUndoHelper;
+ SfxUndoManager m_aUndoManager;
+ ::framework::UndoManagerHelper m_aUndoHelper;
};
//--------------------------------------------------------------------------------------------------------------
@@ -397,6 +398,20 @@ namespace chart
throw NoSupportException( ::rtl::OUString(), m_pImpl->getThis() );
}
+ //------------------------------------------------------------------------------------------------------------------
+ void SAL_CALL UndoManager::addModifyListener( const Reference< XModifyListener >& i_listener ) throw (RuntimeException)
+ {
+ UndoManagerMethodGuard aGuard( *m_pImpl );
+ m_pImpl->getUndoHelper().addModifyListener( i_listener );
+ }
+
+ //------------------------------------------------------------------------------------------------------------------
+ void SAL_CALL UndoManager::removeModifyListener( const Reference< XModifyListener >& i_listener ) throw (RuntimeException)
+ {
+ UndoManagerMethodGuard aGuard( *m_pImpl );
+ m_pImpl->getUndoHelper().removeModifyListener( i_listener );
+ }
+
//......................................................................................................................
} // namespace chart
//......................................................................................................................
diff --git a/chart2/source/model/main/UndoManager.hxx b/chart2/source/model/main/UndoManager.hxx
index 9071a9010b47..07091207ebd0 100755
--- a/chart2/source/model/main/UndoManager.hxx
+++ b/chart2/source/model/main/UndoManager.hxx
@@ -29,10 +29,11 @@
/** === begin UNO includes === **/
#include <com/sun/star/document/XUndoManager.hpp>
+#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <com/sun/star/container/XChild.hpp>
/** === end UNO includes === **/
-#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/implbase2.hxx>
#include <boost/scoped_ptr.hpp>
@@ -44,7 +45,8 @@ namespace chart
namespace impl
{
class UndoManager_Impl;
- typedef ::cppu::ImplHelper1 < ::com::sun::star::document::XUndoManager
+ typedef ::cppu::ImplHelper2 < ::com::sun::star::document::XUndoManager
+ , ::com::sun::star::util::XModifyBroadcaster
> UndoManager_Base;
}
@@ -92,6 +94,10 @@ namespace chart
virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL getParent( ) throw (::com::sun::star::uno::RuntimeException);
virtual void SAL_CALL setParent( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& Parent ) throw (::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException);
+ // XModifyBroadcaster
+ virtual void SAL_CALL addModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeModifyListener( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener >& aListener ) throw (::com::sun::star::uno::RuntimeException);
+
private:
::boost::scoped_ptr< impl::UndoManager_Impl > m_pImpl;
};