diff options
-rw-r--r-- | chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx | 7 | ||||
-rw-r--r-- | chart2/source/inc/ChartModelHelper.hxx | 2 | ||||
-rw-r--r-- | chart2/source/inc/servicenames.hxx | 2 | ||||
-rw-r--r-- | chart2/source/model/main/ChartModel.cxx | 6 | ||||
-rw-r--r-- | chart2/source/model/main/ChartModel.hxx | 1 | ||||
-rw-r--r-- | chart2/source/model/main/ImplChartModel.cxx | 6 | ||||
-rw-r--r-- | chart2/source/model/main/ImplChartModel.hxx | 5 | ||||
-rw-r--r-- | chart2/source/tools/ChartModelHelper.cxx | 6 |
8 files changed, 15 insertions, 20 deletions
diff --git a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx index fcc17fefeebc..d848bf861268 100644 --- a/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx @@ -57,6 +57,7 @@ #include "WrappedAddInProperty.hxx" #include "WrappedIgnoreProperty.hxx" #include "ChartRenderer.hxx" +#include "UndoManager.hxx" #include <com/sun/star/chart2/XTitled.hpp> #include <com/sun/star/chart2/data/XDataReceiver.hpp> #include <com/sun/star/chart/ChartDataRowSource.hpp> @@ -1482,6 +1483,12 @@ uno::Reference< uno::XInterface > SAL_CALL ChartDocumentWrapper::createInstance( xResult.set( m_xChartView ); bServiceFound = true; } + else if ( aServiceSpecifier.equals( CHART_UNDOMANAGER_SERVICE_NAME ) ) + { + Reference< chart2::XUndoManager > xUndoManager( new UndoManager() ); + xResult.set( xUndoManager ); + bServiceFound = true; + } else { // try to create a shape diff --git a/chart2/source/inc/ChartModelHelper.hxx b/chart2/source/inc/ChartModelHelper.hxx index fa80d00413f7..60e180408df9 100644 --- a/chart2/source/inc/ChartModelHelper.hxx +++ b/chart2/source/inc/ChartModelHelper.hxx @@ -58,8 +58,6 @@ namespace chart class OOO_DLLPUBLIC_CHARTTOOLS ChartModelHelper { public: - static ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XUndoManager > createUndoManager(); - static ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XRangeHighlighter > createRangeHighlighter( const ::com::sun::star::uno::Reference< ::com::sun::star::view::XSelectionSupplier >& xSelectionSupplier ); diff --git a/chart2/source/inc/servicenames.hxx b/chart2/source/inc/servicenames.hxx index 79a2f4e2d050..e84744ed7e10 100644 --- a/chart2/source/inc/servicenames.hxx +++ b/chart2/source/inc/servicenames.hxx @@ -65,6 +65,8 @@ namespace chart #define CHART_RENDERER_SERVICE_IMPLEMENTATION_NAME ::rtl::OUString::createFromAscii("com.sun.star.comp.chart2.ChartRenderer") +#define CHART_UNDOMANAGER_SERVICE_NAME ::rtl::OUString::createFromAscii( "com.sun.star.chart2.UndoManager" ) + //............................................................................. } //namespace chart //............................................................................. diff --git a/chart2/source/model/main/ChartModel.cxx b/chart2/source/model/main/ChartModel.cxx index 4882ecef72de..96aec54f461e 100644 --- a/chart2/source/model/main/ChartModel.cxx +++ b/chart2/source/model/main/ChartModel.cxx @@ -108,6 +108,9 @@ ChartModel::ChartModel(uno::Reference<uno::XComponentContext > const & xContext) // attention: passing this as reference to ImplChartModel m_pImplChartModel.reset( new impl::ImplChartModel( xContext, this )); + + m_xUndoManager = Reference< chart2::XUndoManager >( + this->createInstance( CHART_UNDOMANAGER_SERVICE_NAME ), uno::UNO_QUERY ); } ChartModel::ChartModel( const ChartModel & rOther ) @@ -128,6 +131,7 @@ ChartModel::ChartModel( const ChartModel & rOther ) , m_xStorage( 0 ) //rOther.m_xStorage ) , m_aVisualAreaSize( rOther.m_aVisualAreaSize ) , m_aGraphicObjectVector( rOther.m_aGraphicObjectVector ) + , m_xUndoManager( rOther.m_xUndoManager ) { OSL_TRACE( "ChartModel: Copy-CTOR called" ); @@ -1215,7 +1219,7 @@ void SAL_CALL ChartModel::setParent( const Reference< uno::XInterface >& Parent Reference< chart2::XUndoManager > SAL_CALL ChartModel::getUndoManager() throw (uno::RuntimeException) { - return m_pImplChartModel->GetUndoManager(); + return m_xUndoManager; } // ____ XDataSource ____ diff --git a/chart2/source/model/main/ChartModel.hxx b/chart2/source/model/main/ChartModel.hxx index bee4332a857c..4c9169c3fafe 100644 --- a/chart2/source/model/main/ChartModel.hxx +++ b/chart2/source/model/main/ChartModel.hxx @@ -150,6 +150,7 @@ private: ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel > m_xParent; ::com::sun::star::uno::Reference< ::com::sun::star::chart2::data::XRangeHighlighter > m_xRangeHighlighter; ::std::vector< GraphicObject > m_aGraphicObjectVector; + ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XUndoManager > m_xUndoManager; private: //private methods diff --git a/chart2/source/model/main/ImplChartModel.cxx b/chart2/source/model/main/ImplChartModel.cxx index 87383dcf5817..cf13ea6fc8fc 100644 --- a/chart2/source/model/main/ImplChartModel.cxx +++ b/chart2/source/model/main/ImplChartModel.cxx @@ -112,7 +112,6 @@ ImplChartModel::ImplChartModel( m_spChartData( new ChartData( m_xContext )), m_bIsDisposed( false ), m_xPageBackground( new PageBackground( m_xContext )), - m_xUndoManager( ChartModelHelper::createUndoManager() ), m_xDashTable( createNameContainer( ::getCppuType( reinterpret_cast< const drawing::LineDash * >(0)), C2U( "com.sun.star.drawing.DashTable" ), C2U( "com.sun.star.comp.chart.DashTable" ) )), m_xGradientTable( createNameContainer( ::getCppuType( reinterpret_cast< const awt::Gradient * >(0)), @@ -462,11 +461,6 @@ Reference< beans::XPropertySet > ImplChartModel::GetPageBackground() return m_xPageBackground; } -Reference< chart2::XUndoManager > ImplChartModel::GetUndoManager() -{ - return m_xUndoManager; -} - void ImplChartModel::SetNewData( const Reference< chart2::data::XDataSource > & xDataSource, const Sequence< beans::PropertyValue > & rArgs ) { diff --git a/chart2/source/model/main/ImplChartModel.hxx b/chart2/source/model/main/ImplChartModel.hxx index 9a912feee246..ad96b0fd283f 100644 --- a/chart2/source/model/main/ImplChartModel.hxx +++ b/chart2/source/model/main/ImplChartModel.hxx @@ -157,9 +157,6 @@ public: ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > GetPageBackground(); - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XUndoManager > - GetUndoManager(); - void CreateDefaultChart(); ::com::sun::star::uno::Reference< @@ -232,8 +229,6 @@ private: bool m_bIsDisposed; ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xPageBackground; - ::com::sun::star::uno::Reference< ::com::sun::star::chart2::XUndoManager > - m_xUndoManager; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xDashTable; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xGradientTable; diff --git a/chart2/source/tools/ChartModelHelper.cxx b/chart2/source/tools/ChartModelHelper.cxx index 2d6ce7cbfd9d..12519770deb8 100644 --- a/chart2/source/tools/ChartModelHelper.cxx +++ b/chart2/source/tools/ChartModelHelper.cxx @@ -59,12 +59,6 @@ using namespace ::com::sun::star; using namespace ::com::sun::star::chart2; //static -uno::Reference< chart2::XUndoManager > ChartModelHelper::createUndoManager() -{ - return new UndoManager(); -} - -//static uno::Reference< chart2::data::XRangeHighlighter > ChartModelHelper::createRangeHighlighter( const uno::Reference< view::XSelectionSupplier > & xSelectionSupplier ) { |