diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2022-01-29 20:22:07 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2022-01-30 07:10:06 +0100 |
commit | 56c3cc776a7b0a487a794029f68a30244d65857b (patch) | |
tree | 06c6d4f9016fd608704fa6ef05a63e327bce8365 /chart2/source | |
parent | 7055ad90927d0d2e0dc5eab3774322e386fe2b15 (diff) |
use more getChartModel in ChartController
avoids some unnecessary dynamic_cast
Change-Id: I7389fd793c295d52cb6eb1b946199a2887544512
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129154
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'chart2/source')
9 files changed, 41 insertions, 57 deletions
diff --git a/chart2/source/controller/main/ChartController.cxx b/chart2/source/controller/main/ChartController.cxx index 544064064573..c1f8d1c774e2 100644 --- a/chart2/source/controller/main/ChartController.cxx +++ b/chart2/source/controller/main/ChartController.cxx @@ -365,13 +365,13 @@ void SAL_CALL ChartController::attachFrame( mpSelectionChangeHandler->Connect(); - uno::Reference<ui::XSidebar> xSidebar = getSidebarFromModel(getModel()); + uno::Reference<ui::XSidebar> xSidebar = getSidebarFromModel(getChartModel()); if (xSidebar.is()) { auto pSidebar = dynamic_cast<sfx2::sidebar::SidebarController*>(xSidebar.get()); assert(pSidebar); sfx2::sidebar::SidebarController::registerSidebarForFrame(pSidebar, this); - pSidebar->updateModel(getModel()); + pSidebar->updateModel(getChartModel()); css::lang::EventObject aEvent; mpSelectionChangeHandler->selectionChanged(aEvent); } @@ -588,7 +588,7 @@ sal_Bool SAL_CALL ChartController::attachModel( const uno::Reference< frame::XMo // select chart area per default: // select( uno::Any( ObjectIdentifier::createClassifiedIdentifier( OBJECTTYPE_PAGE, OUString() ) ) ); - uno::Reference< lang::XMultiServiceFactory > xFact( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xFact = getChartModel(); if( xFact.is()) { m_xChartView = xFact->createInstance( CHART_VIEW_SERVICE_NAME ); @@ -606,8 +606,7 @@ sal_Bool SAL_CALL ChartController::attachModel( const uno::Reference< frame::XMo pChartWindow->Invalidate(); } - uno::Reference< document::XUndoManagerSupplier > xSuppUndo( getModel(), uno::UNO_QUERY_THROW ); - m_xUndoManager.set( xSuppUndo->getUndoManager(), uno::UNO_SET_THROW ); + m_xUndoManager.set( getChartModel()->getUndoManager(), uno::UNO_SET_THROW ); return true; } @@ -704,7 +703,7 @@ void ChartController::impl_createDrawViewController() if( m_pDrawModelWrapper ) { m_pDrawViewWrapper.reset( new DrawViewWrapper(m_pDrawModelWrapper->getSdrModel(),GetChartWindow()->GetOutDev()) ); - m_pDrawViewWrapper->attachParentReferenceDevice( getModel() ); + m_pDrawViewWrapper->attachParentReferenceDevice( getChartModel() ); } } } @@ -731,7 +730,7 @@ void SAL_CALL ChartController::dispose() if (getModel().is()) { - uno::Reference<ui::XSidebar> xSidebar = getSidebarFromModel(getModel()); + uno::Reference<ui::XSidebar> xSidebar = getSidebarFromModel(getChartModel()); if (sfx2::sidebar::SidebarController* pSidebar = dynamic_cast<sfx2::sidebar::SidebarController*>(xSidebar.get())) { sfx2::sidebar::SidebarController::unregisterSidebarForFrame(pSidebar, this); @@ -757,7 +756,7 @@ void SAL_CALL ChartController::dispose() if( m_aModel.is()) { uno::Reference< view::XSelectionChangeListener > xSelectionChangeListener; - uno::Reference< chart2::data::XDataReceiver > xDataReceiver( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xDataReceiver = getChartModel(); if( xDataReceiver.is() ) xSelectionChangeListener.set( xDataReceiver->getRangeHighlighter(), uno::UNO_QUERY ); if( xSelectionChangeListener.is() ) @@ -1125,7 +1124,7 @@ void SAL_CALL ChartController::dispatch( this->executeDispatch_SourceData(); else if(aCommand == "Update" ) //Update Chart { - ChartViewHelper::setViewToDirtyState( getModel() ); + ChartViewHelper::setViewToDirtyState( getChartModel() ); SolarMutexGuard aGuard; auto pChartWindow(GetChartWindow()); if( pChartWindow ) @@ -1463,7 +1462,7 @@ void ChartController::NotifyUndoActionHdl( std::unique_ptr<SdrUndoAction> pUndoA try { - const Reference< document::XUndoManagerSupplier > xSuppUndo( getModel(), uno::UNO_QUERY_THROW ); + rtl::Reference< ChartModel > xSuppUndo = getChartModel(); const Reference< document::XUndoManager > xUndoManager( xSuppUndo->getUndoManager(), uno::UNO_SET_THROW ); const Reference< document::XUndoAction > xAction( new impl::ShapeUndoElement( std::move(pUndoAction) ) ); xUndoManager->addUndoAction( xAction ); diff --git a/chart2/source/controller/main/ChartController_Insert.cxx b/chart2/source/controller/main/ChartController_Insert.cxx index 0298b1bed9da..1928aec09b2a 100644 --- a/chart2/source/controller/main/ChartController_Insert.cxx +++ b/chart2/source/controller/main/ChartController_Insert.cxx @@ -197,8 +197,7 @@ void ChartController::executeDispatch_DeleteLegend() ActionDescriptionProvider::ActionType::Delete, SchResId( STR_OBJECT_LEGEND )), m_xUndoManager ); - ChartModel& rModel = dynamic_cast<ChartModel&>(*getModel()); - LegendHelper::hideLegend(rModel); + LegendHelper::hideLegend(*getChartModel()); aUndoGuard.commit(); } @@ -209,8 +208,7 @@ void ChartController::executeDispatch_InsertLegend() ActionDescriptionProvider::ActionType::Insert, SchResId( STR_OBJECT_LEGEND )), m_xUndoManager ); - ChartModel& rModel = dynamic_cast<ChartModel&>(*getModel()); - LegendHelper::showLegend(rModel, m_xCC); + LegendHelper::showLegend(*getChartModel(), m_xCC); aUndoGuard.commit(); } @@ -272,7 +270,7 @@ void ChartController::executeDispatch_InsertMenu_DataLabels() getChartModel(), m_pDrawModelWrapper->GetItemPool(), m_pDrawModelWrapper->getSdrModel(), - uno::Reference< lang::XMultiServiceFactory >( getModel(), uno::UNO_QUERY )); + getChartModel() ); SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet(); aItemConverter.FillItemSet( aItemSet ); @@ -280,8 +278,7 @@ void ChartController::executeDispatch_InsertMenu_DataLabels() SolarMutexGuard aGuard; //get number formatter - uno::Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( getModel(), uno::UNO_QUERY ); - NumberFormatterWrapper aNumberFormatterWrapper( xNumberFormatsSupplier ); + NumberFormatterWrapper aNumberFormatterWrapper( getChartModel() ); SvNumberFormatter* pNumberFormatter = aNumberFormatterWrapper.getSvNumberFormatter(); DataLabelsDialog aDlg(GetChartFrame(), aItemSet, pNumberFormatter); @@ -378,7 +375,7 @@ void ChartController::executeDispatch_InsertTrendline() wrapper::RegressionCurveItemConverter aItemConverter( xProperties, xRegressionCurveContainer, m_pDrawModelWrapper->getSdrModel().GetItemPool(), m_pDrawModelWrapper->getSdrModel(), - uno::Reference< lang::XMultiServiceFactory >( getModel(), uno::UNO_QUERY )); + getChartModel() ); // open dialog SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet(); @@ -393,8 +390,7 @@ void ChartController::executeDispatch_InsertTrendline() SchAttribTabDlg aDialog( GetChartFrame(), &aItemSet, &aDialogParameter, &aViewElementListProvider, - uno::Reference< util::XNumberFormatsSupplier >( - getModel(), uno::UNO_QUERY ) ); + getChartModel() ); // note: when a user pressed "OK" but didn't change any settings in the // dialog, the SfxTabDialog returns "Cancel" @@ -434,9 +430,9 @@ void ChartController::executeDispatch_InsertErrorBars( bool bYError ) // get an appropriate item converter wrapper::ErrorBarItemConverter aItemConverter( - getModel(), xErrorBarProp, m_pDrawModelWrapper->getSdrModel().GetItemPool(), + getChartModel(), xErrorBarProp, m_pDrawModelWrapper->getSdrModel().GetItemPool(), m_pDrawModelWrapper->getSdrModel(), - uno::Reference< lang::XMultiServiceFactory >( getModel(), uno::UNO_QUERY )); + getChartModel() ); // open dialog SfxItemSet aItemSet = aItemConverter.CreateEmptyItemSet(); @@ -451,8 +447,7 @@ void ChartController::executeDispatch_InsertErrorBars( bool bYError ) SchAttribTabDlg aDlg( GetChartFrame(), &aItemSet, &aDialogParameter, &aViewElementListProvider, - uno::Reference< util::XNumberFormatsSupplier >( - getModel(), uno::UNO_QUERY ) ); + getChartModel() ); aDlg.SetAxisMinorStepWidthForErrorBarDecimals( InsertErrorBarsDialog::getAxisMinorStepWidthForErrorBarDecimals( getChartModel(), m_xChartView, m_aSelection.getSelectedCID())); diff --git a/chart2/source/controller/main/ChartController_Position.cxx b/chart2/source/controller/main/ChartController_Position.cxx index 3482196b1616..fe746c29e8ff 100644 --- a/chart2/source/controller/main/ChartController_Position.cxx +++ b/chart2/source/controller/main/ChartController_Position.cxx @@ -184,8 +184,7 @@ void ChartController::executeDispatch_PositionAndSize(const ::css::uno::Sequence bool bChanged = false; if ( eObjectType == OBJECTTYPE_LEGEND ) { - ChartModel& rModel = dynamic_cast<ChartModel&>(*getModel()); - bChanged = DiagramHelper::switchDiagramPositioningToExcludingPositioning(rModel, false , true); + bChanged = DiagramHelper::switchDiagramPositioningToExcludingPositioning(*getChartModel(), false , true); } bool bMoved = PositionAndSizeHelper::moveObject( m_aSelection.getSelectedCID(), getChartModel() diff --git a/chart2/source/controller/main/ChartController_Properties.cxx b/chart2/source/controller/main/ChartController_Properties.cxx index b66a248c7fe4..95c21c1ac80c 100644 --- a/chart2/source/controller/main/ChartController_Properties.cxx +++ b/chart2/source/controller/main/ChartController_Properties.cxx @@ -755,8 +755,7 @@ bool ChartController::executeDlg_ObjectProperties_withoutUndoGuard( SchAttribTabDlg aDlg( GetChartFrame(), &aItemSet, &aDialogParameter, &aViewElementListProvider, - uno::Reference< util::XNumberFormatsSupplier >( - getModel(), uno::UNO_QUERY ) ); + getChartModel() ); if(aDialogParameter.HasSymbolProperties()) { diff --git a/chart2/source/controller/main/ChartController_Tools.cxx b/chart2/source/controller/main/ChartController_Tools.cxx index c44e9c32f62f..bf8caa1b20bb 100644 --- a/chart2/source/controller/main/ChartController_Tools.cxx +++ b/chart2/source/controller/main/ChartController_Tools.cxx @@ -345,9 +345,9 @@ void ChartController::impl_PasteGraphic( DBG_TESTSOLARMUTEX(); // note: the XPropertySet of the model is the old API. Also the property // "AdditionalShapes" that is used there. - uno::Reference< beans::XPropertySet > xModelProp( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xModel = getChartModel(); DrawModelWrapper * pDrawModelWrapper( GetDrawModelWrapper()); - if( ! (xGraphic.is() && xModelProp.is())) + if( ! (xGraphic.is() && xModel.is())) return; rtl::Reference<SvxGraphicObject> xGraphicShape = new SvxGraphicObject(nullptr); xGraphicShape->setShapeKind(SdrObjKind::Graphic); @@ -357,11 +357,7 @@ void ChartController::impl_PasteGraphic( { xPage->add( xGraphicShape ); //need to change the model state manually - { - uno::Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY ); - if( xModifiable.is() ) - xModifiable->setModified( true ); - } + xModel->setModified( true ); //select new shape m_aSelection.setSelection( xGraphicShape ); m_aSelection.applySelection( m_pDrawViewWrapper.get() ); @@ -422,7 +418,7 @@ void ChartController::impl_PasteShapes( SdrModel* pModel ) } } - Reference< util::XModifiable > xModifiable( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xModifiable = getChartModel(); if ( xModifiable.is() ) { xModifiable->setModified( true ); @@ -593,7 +589,7 @@ bool ChartController::executeDispatch_Delete() return false; //remove chart object - uno::Reference< chart2::XChartDocument > xChartDoc( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xChartDoc = getChartModel(); if( !xChartDoc.is() ) return false; @@ -821,11 +817,10 @@ bool ChartController::executeDispatch_Delete() void ChartController::executeDispatch_ToggleLegend() { - Reference< frame::XModel > xModel( getModel() ); + rtl::Reference< ChartModel > xModel = getChartModel(); UndoGuard aUndoGuard( SchResId( STR_ACTION_TOGGLE_LEGEND ), m_xUndoManager ); - ChartModel& rModel = dynamic_cast<ChartModel&>(*xModel); - rtl::Reference< Legend > xLegendProp = LegendHelper::getLegend(rModel); + rtl::Reference< Legend > xLegendProp = LegendHelper::getLegend(*xModel); bool bChanged = false; if( xLegendProp.is()) { @@ -845,7 +840,7 @@ void ChartController::executeDispatch_ToggleLegend() } else { - xLegendProp = LegendHelper::getLegend(rModel, m_xCC, true); + xLegendProp = LegendHelper::getLegend(*xModel, m_xCC, true); if( xLegendProp.is()) bChanged = true; } @@ -1101,8 +1096,7 @@ void ChartController::impl_switchDiagramPositioningToExcludingPositioning() ActionDescriptionProvider::ActionType::PosSize, ObjectNameProvider::getName( OBJECTTYPE_DIAGRAM)), m_xUndoManager ); - ChartModel& rModel = dynamic_cast<ChartModel&>(*m_aModel->getModel()); - if (DiagramHelper::switchDiagramPositioningToExcludingPositioning(rModel, true, true)) + if (DiagramHelper::switchDiagramPositioningToExcludingPositioning(*getChartModel(), true, true)) aUndoGuard.commit(); } diff --git a/chart2/source/controller/main/ChartController_Window.cxx b/chart2/source/controller/main/ChartController_Window.cxx index c63a01b337fc..e69adac2b741 100644 --- a/chart2/source/controller/main/ChartController_Window.cxx +++ b/chart2/source/controller/main/ChartController_Window.cxx @@ -464,7 +464,7 @@ void ChartController::execute_Paint(vcl::RenderContext& rRenderContext, const to { try { - uno::Reference<frame::XModel> xModel(getModel()); + rtl::Reference<ChartModel> xModel(getChartModel()); //OSL_ENSURE( xModel.is(), "ChartController::execute_Paint: have no model to paint"); if (!xModel.is()) return; @@ -867,14 +867,12 @@ void ChartController::execute_MouseButtonUp( const MouseEvent& rMEvt ) m_xUndoManager ); bool bChanged = false; - css::uno::Reference< css::frame::XModel > xModel = getModel(); - ChartModel* pModel = dynamic_cast<ChartModel*>(xModel.get()); - assert(pModel); + rtl::Reference< ChartModel > xModel = getChartModel(); if ( eObjectType == OBJECTTYPE_LEGEND ) - bChanged = DiagramHelper::switchDiagramPositioningToExcludingPositioning( *pModel, false , true ); + bChanged = DiagramHelper::switchDiagramPositioningToExcludingPositioning( *xModel, false , true ); bool bMoved = PositionAndSizeHelper::moveObject( m_aSelection.getSelectedCID() - , getChartModel() + , xModel , awt::Rectangle(aObjectRect.Left(),aObjectRect.Top(),aObjectRect.getWidth(),aObjectRect.getHeight()) , awt::Rectangle(aOldObjectRect.Left(), aOldObjectRect.Top(), 0, 0) , awt::Rectangle(aPageRect.Left(),aPageRect.Top(),aPageRect.getWidth(),aPageRect.getHeight()) ); @@ -1570,7 +1568,7 @@ bool ChartController::execute_KeyInput( const KeyEvent& rKEvt ) // dumping the shape if( !bReturn && bCtrl && nCode == KEY_F12) { - uno::Reference< qa::XDumper > xChartModel( getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xChartModel = getChartModel(); if(xChartModel.is()) { OUString aDump = xChartModel->dump(); diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx b/chart2/source/controller/main/ControllerCommandDispatch.cxx index e1e2c946cf0f..dd4e5022586a 100644 --- a/chart2/source/controller/main/ControllerCommandDispatch.cxx +++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx @@ -548,12 +548,11 @@ void ControllerCommandDispatch::updateCommandAvailability() } } - Reference< chart2::XChartDocument > xChartDoc(m_xChartController->getModel(), uno::UNO_QUERY); - OSL_ENSURE(xChartDoc.is(), "Invalid XChartDocument"); - if ( xChartDoc.is() ) + rtl::Reference< ChartModel > xChartModel = m_xChartController->getChartModel(); + OSL_ENSURE(xChartModel.is(), "Invalid XChartDocument"); + if ( xChartModel.is() ) { - ChartModel& rModel = dynamic_cast<ChartModel&>(*xChartDoc); - css::uno::Reference< com::sun::star::chart2::XDataProviderAccess > xCreatorDoc(rModel.getParent(), uno::UNO_QUERY); + css::uno::Reference< com::sun::star::chart2::XDataProviderAccess > xCreatorDoc(xChartModel->getParent(), uno::UNO_QUERY); bCanCreateDataProvider = xCreatorDoc.is(); } } diff --git a/chart2/source/controller/main/ElementSelector.cxx b/chart2/source/controller/main/ElementSelector.cxx index b4488295ebd9..7f7f3cff3aa6 100644 --- a/chart2/source/controller/main/ElementSelector.cxx +++ b/chart2/source/controller/main/ElementSelector.cxx @@ -120,7 +120,7 @@ void SelectorListBox::UpdateChartElementsListAndSelection() bAddSelectionToList = true; Reference< uno::XInterface > xChartView; - Reference< lang::XMultiServiceFactory > xFact( xChartController->getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xFact = xChartController->getChartModel(); if( xFact.is() ) xChartView = xFact->createInstance( CHART_VIEW_SERVICE_NAME ); ExplicitValueProvider* pExplicitValueProvider = nullptr; //ExplicitValueProvider::getExplicitValueProvider(xChartView); this creates all visible data points, that's too much diff --git a/chart2/source/controller/main/ShapeController.cxx b/chart2/source/controller/main/ShapeController.cxx index acdcb78ce045..9a00d7b8ad22 100644 --- a/chart2/source/controller/main/ShapeController.cxx +++ b/chart2/source/controller/main/ShapeController.cxx @@ -23,6 +23,7 @@ #include <ViewElementListProvider.hxx> #include <dlg_ShapeFont.hxx> #include <dlg_ShapeParagraph.hxx> +#include <ChartModel.hxx> #include <chartview/DrawModelWrapper.hxx> #include <com/sun/star/drawing/XShapes.hpp> #include <com/sun/star/frame/CommandGroup.hpp> @@ -78,7 +79,7 @@ FeatureState ShapeController::getState( const OUString& rCommand ) bool bWritable = false; if ( m_pChartController ) { - Reference< frame::XStorable > xStorable( m_pChartController->getModel(), uno::UNO_QUERY ); + rtl::Reference< ChartModel > xStorable = m_pChartController->getChartModel(); if ( xStorable.is() ) { bWritable = !xStorable->isReadonly(); |