summaryrefslogtreecommitdiff
path: root/chart2/source/controller/dialogs/DataBrowserModel.cxx
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@collabora.com>2014-06-26 10:10:29 -0400
committerKohei Yoshida <kohei.yoshida@collabora.com>2014-06-26 11:26:15 -0400
commit60e94d8982e2b3d2e92a178a7179142fb7fcc631 (patch)
treeaba045b53e9a86a8b8be5fe9b8f23a42a1cbc6d3 /chart2/source/controller/dialogs/DataBrowserModel.cxx
parent481a17b6a6fb332935c3e41c077cc5f60b751021 (diff)
Move the category level removal code into its own method.
Change-Id: I4f0cfb4b15bc145b7a5c3491a7acbff13999bf5d
Diffstat (limited to 'chart2/source/controller/dialogs/DataBrowserModel.cxx')
-rw-r--r--chart2/source/controller/dialogs/DataBrowserModel.cxx40
1 files changed, 23 insertions, 17 deletions
diff --git a/chart2/source/controller/dialogs/DataBrowserModel.cxx b/chart2/source/controller/dialogs/DataBrowserModel.cxx
index 56d6b41f76ac..49dfec30d64f 100644
--- a/chart2/source/controller/dialogs/DataBrowserModel.cxx
+++ b/chart2/source/controller/dialogs/DataBrowserModel.cxx
@@ -440,32 +440,38 @@ void DataBrowserModel::insertComplexCategoryLevel( sal_Int32 nAfterColumnIndex )
updateFromModel();
}
-void DataBrowserModel::removeDataSeriesOrComplexCategoryLevel( sal_Int32 nAtColumnIndex )
+void DataBrowserModel::removeComplexCategoryLevel( sal_Int32 nAtColumnIndex )
{
- OSL_ASSERT( m_apDialogModel.get());
- if (static_cast<size_t>(nAtColumnIndex) >= m_aColumns.size())
+ //delete a category column if there is more than one level (in case of a single column we do not get here)
+ OSL_ENSURE(nAtColumnIndex>0, "wrong index for categories deletion" );
+
+ Reference< chart2::XInternalDataProvider > xDataProvider( m_apDialogModel->getDataProvider(), uno::UNO_QUERY );
+ if (!xDataProvider.is())
return;
- Reference< chart2::XDataSeries > xSeries( m_aColumns[nAtColumnIndex].m_xDataSeries );
- if (!xSeries.is())
- {
- //delete a category column if there is more than one level (in case of a single column we do not get here)
- OSL_ENSURE(nAtColumnIndex>0, "wrong index for categories deletion" );
+ m_apDialogModel->startControllerLockTimer();
+ ControllerLockGuardUNO aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) );
+ xDataProvider->deleteComplexCategoryLevel( nAtColumnIndex );
- Reference< chart2::XInternalDataProvider > xDataProvider( m_apDialogModel->getDataProvider(), uno::UNO_QUERY );
- if (!xDataProvider.is())
- return;
+ updateFromModel();
+}
- m_apDialogModel->startControllerLockTimer();
- ControllerLockGuardUNO aLockedControllers( Reference< frame::XModel >( m_xChartDocument, uno::UNO_QUERY ) );
- xDataProvider->deleteComplexCategoryLevel( nAtColumnIndex );
- updateFromModel();
+void DataBrowserModel::removeDataSeriesOrComplexCategoryLevel( sal_Int32 nAtColumnIndex )
+{
+ OSL_ASSERT( m_apDialogModel.get());
+ if (nAtColumnIndex < 0 || static_cast<size_t>(nAtColumnIndex) >= m_aColumns.size())
+ // Out of bound.
+ return;
+ if (isCategoriesColumn(nAtColumnIndex))
+ {
+ removeComplexCategoryLevel(nAtColumnIndex);
return;
}
- m_apDialogModel->deleteSeries(
- xSeries, getHeaderForSeries( xSeries ).m_xChartType );
+ const Reference<chart2::XDataSeries>& xSeries = m_aColumns[nAtColumnIndex].m_xDataSeries;
+
+ m_apDialogModel->deleteSeries(xSeries, getHeaderForSeries(xSeries).m_xChartType);
//delete sequences from internal data provider that are not used anymore
//but do not delete sequences that are still in use by the remaining series