summaryrefslogtreecommitdiff
path: root/chart2/source/controller/main/ChartDropTargetHelper.cxx
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@suse.cz>2011-03-18 15:33:40 +0100
committerJan Holesovsky <kendy@suse.cz>2011-03-18 15:33:40 +0100
commite6064484fae8aa2797f86c68e9a8d23d2e213367 (patch)
treedb2f4d140efca43ab01dee4fc053fff0829d106b /chart2/source/controller/main/ChartDropTargetHelper.cxx
parent9e0a09e89c38774dd1af902387a8b25de158b634 (diff)
parent378c75a798c8baa34cb26e7f07fe28cb5ee2a85f (diff)
Merge remote-tracking branch 'origin/integration/dev300_m101'
Conflicts: chart2/source/controller/main/UndoManager.cxx chart2/source/tools/RegressionCurveHelper.cxx sc/inc/address.hxx sc/inc/attrib.hxx sc/inc/bigrange.hxx sc/inc/callform.hxx sc/inc/cell.hxx sc/inc/chartarr.hxx sc/inc/chartlis.hxx sc/inc/chgtrack.hxx sc/inc/collect.hxx sc/inc/compiler.hxx sc/inc/detdata.hxx sc/inc/document.hxx sc/inc/fillinfo.hxx sc/inc/olinetab.hxx sc/inc/prnsave.hxx sc/inc/queryparam.hxx sc/inc/sc.hrc sc/inc/scabstdlg.hxx sc/inc/table.hxx sc/inc/validat.hxx sc/inc/zforauto.hxx sc/source/core/data/documen2.cxx sc/source/core/data/document.cxx sc/source/core/data/table1.cxx sc/source/core/tool/address.cxx sc/source/core/tool/token.cxx sc/source/filter/excel/frmbase.cxx sc/source/filter/excel/impop.cxx sc/source/filter/excel/xename.cxx sc/source/filter/inc/formel.hxx sc/source/filter/inc/xename.hxx sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlnexpi.cxx sc/source/filter/xml/xmlnexpi.hxx sc/source/ui/dbgui/filtdlg.cxx sc/source/ui/inc/docfunc.hxx sc/source/ui/inc/namedlg.hxx sc/source/ui/namedlg/namedlg.cxx sc/source/ui/src/namedlg.src
Diffstat (limited to 'chart2/source/controller/main/ChartDropTargetHelper.cxx')
-rw-r--r--chart2/source/controller/main/ChartDropTargetHelper.cxx77
1 files changed, 33 insertions, 44 deletions
diff --git a/chart2/source/controller/main/ChartDropTargetHelper.cxx b/chart2/source/controller/main/ChartDropTargetHelper.cxx
index 0e779b3833a1..7975aa12c90c 100644
--- a/chart2/source/controller/main/ChartDropTargetHelper.cxx
+++ b/chart2/source/controller/main/ChartDropTargetHelper.cxx
@@ -138,58 +138,47 @@ sal_Int8 ChartDropTargetHelper::ExecuteDrop( const ExecuteDropEvent& rEvt )
// parent)
if( bDataComesFromParent )
{
+ Reference< chart2::XDiagram > xDiagram( m_xChartDocument->getFirstDiagram() );
Reference< chart2::data::XDataProvider > xDataProvider( m_xChartDocument->getDataProvider());
- if( xDataProvider.is() &&
+ if( xDataProvider.is() && xDiagram.is() &&
DataSourceHelper::allArgumentsForRectRangeDetected( m_xChartDocument ))
{
- DiagramHelper::tTemplateWithServiceName aTempWithServ(
- DiagramHelper::getTemplateForDiagram(
- m_xChartDocument->getFirstDiagram(),
- Reference< lang::XMultiServiceFactory >(
- m_xChartDocument->getChartTypeManager(), uno::UNO_QUERY )));
- if( aTempWithServ.first.is())
+ Reference< chart2::data::XDataSource > xDataSource(
+ DataSourceHelper::pressUsedDataIntoRectangularFormat( m_xChartDocument ));
+ Sequence< beans::PropertyValue > aArguments(
+ xDataProvider->detectArguments( xDataSource ));
+
+ OUString aOldRange;
+ beans::PropertyValue * pCellRange = 0;
+ for( sal_Int32 i=0; i<aArguments.getLength(); ++i )
{
- Reference< chart2::data::XDataSource > xDataSource(
- DataSourceHelper::pressUsedDataIntoRectangularFormat( m_xChartDocument ));
- Sequence< beans::PropertyValue > aArguments(
- xDataProvider->detectArguments( xDataSource ));
-
- OUString aOldRange;
- beans::PropertyValue * pCellRange = 0;
- for( sal_Int32 i=0; i<aArguments.getLength(); ++i )
+ if( aArguments[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("CellRangeRepresentation")))
{
- if( aArguments[i].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("CellRangeRepresentation")))
- {
- pCellRange = (aArguments.getArray() + i);
- aArguments[i].Value >>= aOldRange;
- break;
- }
+ pCellRange = (aArguments.getArray() + i);
+ aArguments[i].Value >>= aOldRange;
+ break;
}
- if( pCellRange )
+ }
+ if( pCellRange )
+ {
+ // copy means add ranges, move means replace
+ if( rEvt.mnAction == DND_ACTION_COPY )
+ {
+ // @todo: using implcit knowledge that ranges can be
+ // merged with ";". This should be done more general
+ pCellRange->Value <<= (aOldRange + OUString( sal_Unicode(';')) + aRangeString );
+ }
+ // move means replace range
+ else
{
- // copy means add ranges, move means replace
- if( rEvt.mnAction == DND_ACTION_COPY )
- {
- // @todo: using implcit knowledge that ranges can be
- // merged with ";". This should be done more general
- pCellRange->Value <<= (aOldRange + OUString( sal_Unicode(';')) + aRangeString );
- }
- // move means replace range
- else
- {
- pCellRange->Value <<= aRangeString;
- }
-
- xDataSource.set( xDataProvider->createDataSource( aArguments ));
- aTempWithServ.first->changeDiagramData(
- m_xChartDocument->getFirstDiagram(),
- xDataSource,
- aArguments );
-
- // always return copy state to avoid deletion of the
- // dragged range
- nResult = DND_ACTION_COPY;
+ pCellRange->Value <<= aRangeString;
}
+
+ xDataSource.set( xDataProvider->createDataSource( aArguments ));
+ xDiagram->setDiagramData( xDataSource, aArguments );
+
+ // always return copy state to avoid deletion of the dragged range
+ nResult = DND_ACTION_COPY;
}
}
}