diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-06-11 13:58:28 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-06-11 13:58:28 +0000 |
commit | c6fd8e7f8b5a16d1c08475fd1512c2a04c491f97 (patch) | |
tree | 7a1a7c2a29dce76d852c44f528ef8734a15f3145 /chart2/source/controller/main/ChartController.cxx | |
parent | INTEGRATION: CWS chart05 (1.6.2); FILE MERGED (diff) | |
download | core-c6fd8e7f8b5a16d1c08475fd1512c2a04c491f97.tar.gz core-c6fd8e7f8b5a16d1c08475fd1512c2a04c491f97.zip |
INTEGRATION: CWS chart05 (1.21.2); FILE MERGED
2007/05/31 14:57:20 bm 1.21.2.2: #i77997# release view in dispose()
2007/05/25 15:59:10 iha 1.21.2.1: #i71557# Highlight used cell ranges automatically
Diffstat (limited to 'chart2/source/controller/main/ChartController.cxx')
-rw-r--r-- | chart2/source/controller/main/ChartController.cxx | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx index 8b2eb6dcf090..a0b236c4c228 100644 --- a/chart2/source/controller/main/ChartController.cxx +++ b/chart2/source/controller/main/ChartController.cxx @@ -4,9 +4,9 @@ * * $RCSfile: ChartController.cxx,v $ * - * $Revision: 1.21 $ + * $Revision: 1.22 $ * - * last change: $Author: vg $ $Date: 2007-05-22 18:02:54 $ + * last change: $Author: obo $ $Date: 2007-06-11 14:58:28 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -67,6 +67,9 @@ #ifndef _COM_SUN_STAR_CHART2_XCHARTDOCUMENT_HPP_ #include <com/sun/star/chart2/XChartDocument.hpp> #endif +#ifndef _COM_SUN_STAR_CHART2_DATA_XDATARECEIVER_HPP_ +#include <com/sun/star/chart2/data/XDataReceiver.hpp> +#endif #ifndef _COM_SUN_STAR_FRAME_XLOADABLE_HPP_ #include <com/sun/star/frame/XLoadable.hpp> #endif @@ -540,6 +543,8 @@ void SAL_CALL ChartController::modeChanged( const util::ModeChangeEvent& rEvent //reselect object if( m_aSelection.hasSelection() ) this->impl_selectObjectAndNotiy(); + else + ChartModelHelper::triggerRangeHighlighting( m_aModel->getModel() ); impl_initializeAccessible(); @@ -778,8 +783,21 @@ void ChartController::impl_deleteDrawViewController() this->stopDoubleClickWaiting(); - // clear selection (and therefore range highlighting) - this->select( uno::Any()); + //end range highlighting + { + uno::Reference< view::XSelectionChangeListener > xSelectionChangeListener; + uno::Reference< chart2::data::XDataReceiver > xDataReceiver( m_aModel->getModel(), uno::UNO_QUERY ); + if( xDataReceiver.is() ) + xSelectionChangeListener = uno::Reference< view::XSelectionChangeListener >( xDataReceiver->getRangeHighlighter(), uno::UNO_QUERY ); + if( xSelectionChangeListener.is() ) + { + uno::Reference< frame::XController > xController( this ); + uno::Reference< lang::XComponent > xComp( xController, uno::UNO_QUERY ); + //lang::EventObject aEvent( static_cast< lang::XComponent* >( this ) ); + lang::EventObject aEvent( xComp ); + xSelectionChangeListener->disposing( aEvent ); + } + } //--release all resources and references { @@ -798,6 +816,7 @@ void ChartController::impl_deleteDrawViewController() m_pChartWindow->clear(); m_pChartWindow = NULL;//m_pChartWindow is deleted via UNO due to dispose of m_xViewWindow (trigerred by Framework (Controller pretends to be XWindow also)) m_xViewWindow->dispose(); + m_xChartView.clear(); // \-- } |