summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2021-12-06 10:05:27 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2021-12-06 13:19:33 +0100
commit8fe1a3c479d4aeaeb3a378aaceb77f72edcfb7c8 (patch)
tree832ed9ffac83119c040d5df7a695c1c4a4b7ced3 /svx/source
parent19eaf859670b6f22cb89f854316ed0673dacbaa9 (diff)
skip some intermediate results in tryToGetChartContentAsPrimitive2DSequence
Change-Id: Idf3179c97fe40da1ff41100fc7e7a0b80ee1ca73 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126403 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx/source')
-rw-r--r--svx/source/sdr/primitive2d/primitivefactory2d.cxx60
-rw-r--r--svx/source/svdraw/charthelper.cxx16
2 files changed, 24 insertions, 52 deletions
diff --git a/svx/source/sdr/primitive2d/primitivefactory2d.cxx b/svx/source/sdr/primitive2d/primitivefactory2d.cxx
index a03a7c0a7dde..9625c8bcd41e 100644
--- a/svx/source/sdr/primitive2d/primitivefactory2d.cxx
+++ b/svx/source/sdr/primitive2d/primitivefactory2d.cxx
@@ -17,49 +17,10 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <com/sun/star/graphic/XPrimitiveFactory2D.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/uno/XComponentContext.hpp>
-#include <cppuhelper/basemutex.hxx>
-#include <cppuhelper/compbase.hxx>
-#include <cppuhelper/supportsservice.hxx>
-#include <svx/svdobj.hxx>
-#include <svx/svdpage.hxx>
-#include <svx/unoapi.hxx>
-#include <svx/sdr/contact/viewcontact.hxx>
-#include <comphelper/sequence.hxx>
+#include <sdr/primitive2d/primitivefactory2d.hxx>
using namespace com::sun::star;
-namespace {
-
-typedef cppu::WeakComponentImplHelper< css::graphic::XPrimitiveFactory2D, css::lang::XServiceInfo > PrimitiveFactory2DImplBase;
-
-// base class for C++ implementation of css::graphic::XPrimitiveFactory2D
-class PrimitiveFactory2D
- : protected cppu::BaseMutex,
- public PrimitiveFactory2DImplBase
-{
-public:
- PrimitiveFactory2D(): PrimitiveFactory2DImplBase(m_aMutex) {}
-
- // Methods from XPrimitiveFactory2D
- virtual css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL createPrimitivesFromXShape( const css::uno::Reference< css::drawing::XShape >& xShape, const css::uno::Sequence< css::beans::PropertyValue >& aParms ) override;
- virtual css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL createPrimitivesFromXDrawPage( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage, const css::uno::Sequence< css::beans::PropertyValue >& aParms ) override;
-
- OUString SAL_CALL getImplementationName() override
- { return "com.sun.star.comp.graphic.PrimitiveFactory2D"; }
-
- sal_Bool SAL_CALL supportsService(OUString const & ServiceName) override
- { return cppu::supportsService(this, ServiceName); }
-
- css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override
- {
- return css::uno::Sequence<OUString>{
- "com.sun.star.graphic.PrimitiveFactory2D"};
- }
-};
-
css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL PrimitiveFactory2D::createPrimitivesFromXShape(
const uno::Reference< drawing::XShape >& xShape,
const uno::Sequence< beans::PropertyValue >& /*aParms*/ )
@@ -82,6 +43,23 @@ css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL
return aRetval;
}
+void PrimitiveFactory2D::createPrimitivesFromXShape(
+ const uno::Reference< drawing::XShape >& xShape,
+ const uno::Sequence< beans::PropertyValue >& /*aParms*/,
+ drawinglayer::primitive2d::Primitive2DDecompositionVisitor& rVisitor)
+{
+ if(xShape.is())
+ {
+ SdrObject* pSource = SdrObject::getSdrObjectFromXShape(xShape);
+
+ if(pSource)
+ {
+ const sdr::contact::ViewContact& rSource(pSource->GetViewContact());
+ rSource.getViewIndependentPrimitive2DContainer(rVisitor);
+ }
+ }
+}
+
css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL PrimitiveFactory2D::createPrimitivesFromXDrawPage(
const uno::Reference< drawing::XDrawPage >& xDrawPage,
const uno::Sequence< beans::PropertyValue >& /*aParms*/ )
@@ -104,8 +82,6 @@ css::uno::Sequence< css::uno::Reference< css::graphic::XPrimitive2D > > SAL_CALL
return aRetval;
}
-}
-
extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
com_sun_star_comp_graphic_PrimitiveFactory2D_get_implementation(
css::uno::XComponentContext *,
diff --git a/svx/source/svdraw/charthelper.cxx b/svx/source/svdraw/charthelper.cxx
index 764abf0d3ec9..737bf792e320 100644
--- a/svx/source/svdraw/charthelper.cxx
+++ b/svx/source/svdraw/charthelper.cxx
@@ -30,6 +30,8 @@
#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/drawing/FillStyle.hpp>
#include <com/sun/star/drawing/LineStyle.hpp>
+#include <rtl/ref.hxx>
+#include <sdr/primitive2d/primitivefactory2d.hxx>
using namespace ::com::sun::star;
@@ -71,10 +73,6 @@ drawinglayer::primitive2d::Primitive2DContainer ChartHelper::tryToGetChartConten
if(xShapeAccess->getCount())
{
const sal_Int32 nShapeCount(xShapeAccess->getCount());
- const uno::Reference< uno::XComponentContext > xContext(::comphelper::getProcessComponentContext());
- const uno::Reference< graphic::XPrimitiveFactory2D > xPrimitiveFactory =
- graphic::PrimitiveFactory2D::create( xContext );
-
const uno::Sequence< beans::PropertyValue > aParams;
uno::Reference< drawing::XShape > xShape;
@@ -84,12 +82,10 @@ drawinglayer::primitive2d::Primitive2DContainer ChartHelper::tryToGetChartConten
if(xShape.is())
{
- const drawinglayer::primitive2d::Primitive2DSequence aNew(
- xPrimitiveFactory->createPrimitivesFromXShape(
- xShape,
- aParams));
-
- aRetval.append(aNew);
+ PrimitiveFactory2D::createPrimitivesFromXShape(
+ xShape,
+ aParams,
+ aRetval);
}
}
}