use more SvxShape in chart2
Change-Id: I4a445ca3501d32cd8ff04f12239cce52457b9228
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127889
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/chart2/source/inc/chartview/DrawModelWrapper.hxx b/chart2/source/inc/chartview/DrawModelWrapper.hxx
index fcf684e..acd8293 100644
--- a/chart2/source/inc/chartview/DrawModelWrapper.hxx
+++ b/chart2/source/inc/chartview/DrawModelWrapper.hxx
@@ -20,6 +20,7 @@
#include <svx/svdmodel.hxx>
#include <svx/unopage.hxx>
#include <svx/unoshape.hxx>
#include <chartview/chartviewdllapi.hxx>
namespace com::sun::star::lang { class XMultiServiceFactory; }
@@ -55,7 +56,7 @@ public:
// the extra page is not visible, but contains some extras like the symbols for data points
const rtl::Reference<SvxDrawPage> & getHiddenDrawPage();
static css::uno::Reference< css::drawing::XShapes >
static rtl::Reference<SvxShapeGroupAnyD>
getChartRootShape( const rtl::Reference<SvxDrawPage>& xPage );
SAL_DLLPRIVATE void lockControllers();
@@ -82,8 +83,7 @@ public:
SdrObject* getNamedSdrObject( const OUString& rName );
static SdrObject* getNamedSdrObject( const OUString& rName, SdrObjList const * pObjList );
static bool removeShape( const css::uno::Reference< css::drawing::XShape >& xShape );
static bool removeShape( SvxShape& rShape );
static bool removeShape( const rtl::Reference<SvxShape>& xShape );
void dumpAsXml(xmlTextWriterPtr pWriter) const override;
};
diff --git a/chart2/source/view/axes/VCartesianAxis.cxx b/chart2/source/view/axes/VCartesianAxis.cxx
index be2b09a..758369f 100644
--- a/chart2/source/view/axes/VCartesianAxis.cxx
+++ b/chart2/source/view/axes/VCartesianAxis.cxx
@@ -1762,7 +1762,7 @@ void VCartesianAxis::updatePositions()
{
for (auto const& tickInfo : tickInfos)
{
Reference< drawing::XShape > xShape2DText(tickInfo.xTextShape);
const rtl::Reference<SvxShapeText> & xShape2DText(tickInfo.xTextShape);
if( xShape2DText.is() )
{
B2DVector aTextToTickDistance( pTickFactory2D->getDistanceAxisTickToText( m_aAxisProperties, true ) );
@@ -1787,17 +1787,13 @@ void VCartesianAxis::updatePositions()
uno::Any aATransformation = ShapeFactory::makeTransformation(aAnchorScreenPosition2D, fRotationAnglePi);
//set new position
uno::Reference< beans::XPropertySet > xProp( xShape2DText, uno::UNO_QUERY );
if( xProp.is() )
try
{
try
{
xProp->setPropertyValue( "Transformation", aATransformation );
}
catch( const uno::Exception& )
{
TOOLS_WARN_EXCEPTION("chart2", "" );
}
xShape2DText->SvxShape::setPropertyValue( "Transformation", aATransformation );
}
catch( const uno::Exception& )
{
TOOLS_WARN_EXCEPTION("chart2", "" );
}
//correctPositionForRotation
diff --git a/chart2/source/view/inc/LabelPositionHelper.hxx b/chart2/source/view/inc/LabelPositionHelper.hxx
index ee1c7c8..63125d6 100644
--- a/chart2/source/view/inc/LabelPositionHelper.hxx
+++ b/chart2/source/view/inc/LabelPositionHelper.hxx
@@ -50,7 +50,7 @@ public:
, const css::uno::Reference< css::beans::XPropertySet >& xAxisModelProps
, const css::awt::Size& rNewReferenceSize );
static void correctPositionForRotation( const css::uno::Reference< css::drawing::XShape >& xShape2DText
static void correctPositionForRotation( const rtl::Reference<SvxShapeText>& xShape2DText
, LabelAlignment eLabelAlignment, const double fRotationAngle, bool bRotateAroundCenter );
protected:
diff --git a/chart2/source/view/main/DrawModelWrapper.cxx b/chart2/source/view/main/DrawModelWrapper.cxx
index 5bc5c9e..f5d7e7e 100644
--- a/chart2/source/view/main/DrawModelWrapper.cxx
+++ b/chart2/source/view/main/DrawModelWrapper.cxx
@@ -191,7 +191,7 @@ const rtl::Reference<SvxDrawPage> & DrawModelWrapper::getHiddenDrawPage()
void DrawModelWrapper::clearMainDrawPage()
{
//uno::Reference<drawing::XShapes> xChartRoot( m_xMainDrawPage, uno::UNO_QUERY );
uno::Reference<drawing::XShapes> xChartRoot( ShapeFactory::getChartRootShape( m_xMainDrawPage ) );
rtl::Reference<SvxShapeGroupAnyD> xChartRoot( ShapeFactory::getChartRootShape( m_xMainDrawPage ) );
if( xChartRoot.is() )
{
sal_Int32 nSubCount = xChartRoot->getCount();
@@ -204,7 +204,7 @@ void DrawModelWrapper::clearMainDrawPage()
}
}
uno::Reference< drawing::XShapes > DrawModelWrapper::getChartRootShape( const rtl::Reference<SvxDrawPage>& xDrawPage )
rtl::Reference<SvxShapeGroupAnyD> DrawModelWrapper::getChartRootShape( const rtl::Reference<SvxDrawPage>& xDrawPage )
{
return ShapeFactory::getChartRootShape( xDrawPage );
}
@@ -287,27 +287,12 @@ SdrObject* DrawModelWrapper::getNamedSdrObject( const OUString& rObjectCID, SdrO
return nullptr;
}
bool DrawModelWrapper::removeShape( const uno::Reference< drawing::XShape >& xShape )
bool DrawModelWrapper::removeShape( const rtl::Reference<SvxShape>& xShape )
{
uno::Reference< container::XChild > xChild( xShape, uno::UNO_QUERY );
if( xChild.is() )
{
uno::Reference<drawing::XShapes> xShapes( xChild->getParent(), uno::UNO_QUERY );
if( xShapes.is() )
{
xShapes->remove(xShape);
return true;
}
}
return false;
}
bool DrawModelWrapper::removeShape( SvxShape& rShape )
{
uno::Reference<drawing::XShapes> xShapes( rShape.getParent(), uno::UNO_QUERY );
uno::Reference<drawing::XShapes> xShapes( xShape->getParent(), uno::UNO_QUERY );
if( xShapes.is() )
{
xShapes->remove(&rShape);
xShapes->remove(xShape);
return true;
}
return false;
diff --git a/chart2/source/view/main/LabelPositionHelper.cxx b/chart2/source/view/main/LabelPositionHelper.cxx
index a632947..ec169ce 100644
--- a/chart2/source/view/main/LabelPositionHelper.cxx
+++ b/chart2/source/view/main/LabelPositionHelper.cxx
@@ -412,7 +412,7 @@ void lcl_correctRotation_Right_Bottom( double& rfXCorrection, double& rfYCorrect
}//end anonymous namespace
void LabelPositionHelper::correctPositionForRotation( const uno::Reference< drawing::XShape >& xShape2DText
void LabelPositionHelper::correctPositionForRotation( const rtl::Reference<SvxShapeText>& xShape2DText
, LabelAlignment eLabelAlignment, const double fRotationAngle, bool bRotateAroundCenter )
{
if( !xShape2DText.is() )
diff --git a/chart2/source/view/main/VLegend.cxx b/chart2/source/view/main/VLegend.cxx
index 4b81cbd..6acfbb1 100644
--- a/chart2/source/view/main/VLegend.cxx
+++ b/chart2/source/view/main/VLegend.cxx
@@ -407,7 +407,7 @@ awt::Size lcl_placeLegendEntries(
}
if( nEntry < nNumberOfEntries && ( nEntry != 0 || nNumberOfColumns != 1 ) )
{
DrawModelWrapper::removeShape( *rEntries[ nEntry ].xSymbol );
DrawModelWrapper::removeShape( rEntries[ nEntry ].xSymbol );
rEntries.pop_back();
nNumberOfEntries--;
}
@@ -441,7 +441,7 @@ awt::Size lcl_placeLegendEntries(
}
if (aTextShapes.size() == 0)
{
DrawModelWrapper::removeShape(*rEntries[0].xSymbol);
DrawModelWrapper::removeShape(rEntries[0].xSymbol);
rEntries.pop_back();
nNumberOfEntries--;
aRowHeights.pop_back();