summaryrefslogtreecommitdiffstats
path: root/chart2/source/controller/main/ChartController.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-06-11 13:58:28 +0000
committerOliver Bolte <obo@openoffice.org>2007-06-11 13:58:28 +0000
commitc6fd8e7f8b5a16d1c08475fd1512c2a04c491f97 (patch)
tree7a1a7c2a29dce76d852c44f528ef8734a15f3145 /chart2/source/controller/main/ChartController.cxx
parentINTEGRATION: CWS chart05 (1.6.2); FILE MERGED (diff)
downloadcore-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.cxx27
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();
// \--
}