diff options
author | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-06-26 10:10:29 -0400 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@collabora.com> | 2014-06-26 11:26:15 -0400 |
commit | 60e94d8982e2b3d2e92a178a7179142fb7fcc631 (patch) | |
tree | aba045b53e9a86a8b8be5fe9b8f23a42a1cbc6d3 /chart2/source/controller/dialogs/DataBrowserModel.cxx | |
parent | 481a17b6a6fb332935c3e41c077cc5f60b751021 (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.cxx | 40 |
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 |