summaryrefslogtreecommitdiff
path: root/svx/inc/sdr
AgeCommit message (Collapse)Author
2022-03-03Recheck modules sv* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I25779cbfb1aa93c31d6e12ac95e136b3bdbbc058 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130403 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-02-21speed up SvxShape::_setPropertyValueNoel Grandin
by using the Properties related code to create an SfxItemSet with the correct ranges, instead of creating an empty SfxItemSet and updating it. Shaves 2% off the load time of a large chart. Change-Id: Ia1f8527fa52ab5b8c70e13e1e2ab8c8f25739b2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130270 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-02-20Fix --disable-avmedia buildJan-Marek Glogowski
Regression from commit 6f938dce6eaa927cfde39491ef7a0bc1d07df66b ("update video pos and size after change if currently playing"). Change-Id: Ib618fcd7347255d0cae352b7fc90aa85a2c14d32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130215 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-02-19update video pos and size after change if currently playingCaolán McNamara
I'd prefer if it changed size during the resizing/repositioning, but at least make it immediately take the final size after the resize/reposition has happened. Change-Id: Ic3b4dd23921ad5cf6092f1514dd6538f9946998a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130178 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-02-17loplugin:unusedmethodsNoel Grandin
Change-Id: I58c60262ca543bafb4db4433dbb98b195f7571ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130063 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-02-17loplugin:unusedfieldsNoel Grandin
Change-Id: I07ec409ea3663e789b6505dbfc999666525ed97f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/130062 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-02-16speed up DefaultProperties::SetObjectItem when loading large chartNoel Grandin
The cost of creating a SfxItemSet to pass around changed item information is surprisingly high, so avoid that and just pass the vector of changed items down (which we are already building anyway). Change-Id: Ifa48e3ce07fb6c92ad05a119ae95ce002af76199 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/129976 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-11do not call broadcast SetStyleSheet from a non-broadcast oneLuboš Luňák
In the document from bsc#1183308, which contains a large number of custom shapes, I get a noticeable time spent in the callchain EnhancedCustomShapeEngine::render() -> SdrObject::NbcSetStyleSheet() -> sdr::properties::GroupProperties::SetStyleSheet() -> SdrObject::SetStyleSheet(), which means that a non-broadcast call ends up in a broadcast one, and the time is spent in SvxShape::Notify(). And it even seems that nobody actually cares about the broadcasts, possibly because the SfxStyleSheet* value is actually the same. I originally tried to make SdrObject::SetStyleSheet() return if the SfxStyleSheet* is the same, but that fails the test from 717dc8e3575a18e1e. I don't quite understand the reasoning for that, but solve it then by changing the code to call the Nbc variant if that's enough. Change-Id: I096a6799a0dc51c31ec3b0ba070c7f99ec96ac5d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128048 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-01-08reduce cost of Sdr properties for text-derived objectsNoel Grandin
when they have no text in them Change-Id: I70c18898abf21141f3b30b7dee9c931c9b27cffb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128124 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07make GroupProperties extend BasePropertiesNoel Grandin
it doesn't need any of the logic in DefaultProperties Change-Id: I75d56a29f1edf2819c22a1fd69df464948544aaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128093 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07move applyDefaultStyleSheetFromSdrModel from BaseProperties..Noel Grandin
to AttributeProperties, since it only applies to AttributeProperties and its sub-classes. Change-Id: I01527f75815659d1cf2a9859888ef04c561633a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128092 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07move some methods BaseProperties->DefaultPropertiesNoel Grandin
These methods are part of the implementation of DefaultProperties, so they do not belong in a superclass Change-Id: I553f5d5b771aa0a408a8ade25f009cc56f829c72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128091 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07split PageProperties from EmptyPropertiesNoel Grandin
to make it clearer - PageProperties just ignores stuff, but it is not a logic error to set props on it (or so it seems from its comments) Change-Id: Iba3dbcdffae6165a14e9a2d71e4111fbbd29febb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128090 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-24use comphelper::WeakComponentImplHelper in PrimitiveFactory2DNoel Grandin
Change-Id: Iead37062710d64705fca2d00404922b3ad3b6f17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127409 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-06skip some intermediate results in tryToGetChartContentAsPrimitive2DSequenceNoel Grandin
Change-Id: Idf3179c97fe40da1ff41100fc7e7a0b80ee1ca73 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126403 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-05use visitor in ViewObjectContact::createPrimitive2DSequenceNoel Grandin
to reduce intermediate object creation Change-Id: I03d34d15e88f82027f865868aca08503e38fd6ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126372 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-04ofz#41602 fix more build failure in ubsan buildCaolán McNamara
Step #30 - "compile-libfuzzer-undefined-x86_64": instdir/program/libsvxcorelo.a(viewobjectcontactofsdrmediaobj.o)(.data..L__unnamed_6+0x18): error: undefined reference to 'typeinfo for sdr::contact::SdrMediaWindow' Step #30 - "compile-libfuzzer-undefined-x86_64": clang-14: error: linker command failed with exit code 1 (use -v to see invocation) Step #30 - "compile-libfuzzer-undefined-x86_64": make[1]: *** [/src/libreoffice/vcl/Executable_pptfuzzer.mk:13: instdir/program/pptfuzzer] Error 1 Step #30 - "compile-libfuzzer-undefined-x86_64": make: *** [Makefile:170: Executable_pptfuzzer] Error 2 Change-Id: I5e19ad82e376a84e90dd9ebe90806903d995ccbf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126363 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-04use visitor in getViewIndependentPrimitive2DContainerNoel Grandin
to reduce intermediate temporary data creation Change-Id: I3f13b0e02c1fa374e8d70768ae47c7f6da254462 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126322 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-08loplugin:moveparam in svxNoel Grandin
Change-Id: I92fe2882c948e7297e5d54963647b4aa054f8f89 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123241 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-24reduce copying in drawinglayerNoel Grandin
by passing PrimitiveContainer&& around. There are lots of place where we were preparing a local variable of type PrimitiveContainer, and then copying it someplace else, then throwing it away. Change-Id: Iacfd983640c9e55da25800ccc01734dfc8b4d64a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-09tdf#144052 reduce Primitive2D copyingNoel Grandin
when creating charts, by using a Primitive2DContainer&& parameter in the GroupPrimitive2D constructor, which forces the call sites to pass a temporary, and at most call sites, we can std::move in an existing local variable. Change-Id: I531970918800c6832ab606b5a4ff5fd2d47ccf5b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121844 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-08reduce cost of creating large charts (tdf#144052)Noel Grandin
creating a temporary SfxItemSet for each geometry object adds up fast, so only create the temporary for those SdrTextObj subclasses that need it. Change-Id: I0c03a630057718f09c12a4a2d07ad23fca46fd2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121800 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-22no need to use unique_ptr for Sdr3DObjectAttributeNoel Grandin
it is already a COW type Change-Id: Icc4173c5a61f5d819ce908f8a38c3efb29ebb1c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120850 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-20use Primitive2DDecompositionVisitor in ViewObjectContact (tdf#105575)Noel Grandin
..to avoid container construction Change-Id: Iae7a8ea8c31b6c8bcf4d161273be7b32fe41a021 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120779 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-16do less copying when constructing 2d sequence (tdf#105575)Noel Grandin
instead of constructing a child sequence, and appending that a parent sequence, just pass the parent sequence down the call hierarchy, so we end up doing less copying. Change-Id: If39a0779e543c6aa01f5e2e3ae63d395e0c85f7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120521 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-25loplugin:finalclasses in svxNoel Grandin
Change-Id: I7dd8d1a900694687fbed3f3f29b0ea4bb11b7d72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117790 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-21drawinglayer: put BufferedDecompositionPrimitive2D in its own fileTomaž Vajngerl
And fix includes all over the place... Change-Id: I6e2696bbeeac6ab7467cac70545fa7209aa981a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117528 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-04-22remove caching in ViewObjectContactOfE3dNoel Grandin
we are re-creating it every time, so caching makes no sense Change-Id: I8a175c7ebd83c369c644d5936004167906539ad7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114517 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-20tdf#86321: Revert "Resolves: #i123539# some optimizations for 3D chart..."Xisco Fauli
This reverts commit db1d2af02861b49e4f53d726d59cd71c20cee9b1 The commit was already partically reverted in bca8d8985666d3fd22b91eb280f9baaeb933c2d0 < Resolves: tdf#90583 3D pie-chart missing guide handles >. This partial revert broke the optimization introduced in db1d2af02861b49e4f53d726d59cd71c20cee9b1 <Resolves: #i123539# some optimizations for 3D chart...> for 3D charts like https://bz.apache.org/ooo/attachment.cgi?id=81810 Later, 3D charts were optimized again in 55a7e836a2db662a53adc4f8b98d08b06790c758 < chart2: When creating objects prevent setting object rects dirty > so the remaining code originally introduced can go. Import time of https://bz.apache.org/ooo/attachment.cgi?id=81810 is the same with and without this patch Change-Id: I25338d0dfb4b41651dfe05e7bfbd74c86091dacb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114313 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2021-04-19svx properties: pass SfxItemSet around by valueNoel Grandin
so we avoid heap allocation costs when loading lots of shapes Change-Id: I0de5819acc7f845973a284e68ab709989f27d402 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114297 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-07ref-count SdrPageNoel
which simplifies ownership handling, particularly with regard to undo/redo Change-Id: Ie8f300ebfdae6db3c06f78a87e35a07497d6b825 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111991 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-11loplugin:refcounting generalise type checkingNoel
Change-Id: Ia013878ac9c2918d8eaf9aab16b291d8211e708f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110700 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-01-09remove sdrgrafprimitive2d.{cxx,hxx} from excludelistTomaž Vajngerl
Change-Id: I9533fe0bb082f6688d6f8030e5bc0d6960abf359 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108844 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-01-05svx: pragma once in sdrgrafprimitive2d.hxxTomaž Vajngerl
Change-Id: I1288582aa751cc887f3fd3dcbcdc22bf3f188215 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108653 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-12-02tdf#129961 svx: add rendering for table shadow as direct formatMiklos Vajna
There was already shadow support in ViewContactOfTableObj::createViewIndependentPrimitive2DSequence(), but the UNO API and UI could only set the shadow properties on a shape style, so shadow-as-direct-format is new. One difference between the PowerPoint shadow and our shadow is that we draw shadow for table text as well, while PowerPoint only does it for the borders / cell fill style. This means we're either backwards-compatible or compatible with PowerPoint. Solve this problem by leaving the style case unchanged, but render direct formatting like PowerPoint. Change-Id: I2bc64fea8062f9d8162b95d1eaccb49c3466b5c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107073 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-11-25tdf#42949 Fix new IWYU warnings in directory svxGabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: If578c5119b85f991825e91df37c42e28f16e9de5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100555 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-11-16tdf#123936 Formatting files in module svx with clang-formatPhilipp Hofer
Change-Id: I482a00c9f65fd08be03f101c0e18f044c9323137 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105716 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-07-19compact namespace: svxNoel Grandin
Change-Id: I15c64c6cc0ae2a0f1fb9a3e1651dda1d6ced7585 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99008 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-13tdf#42949 Fix IWYU warnings in include/[a-r]*/*hxxGabor Kelemen
Recheck after 7-0 branchoff Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I7f5c35474b671facbda85a9538462dd4291add91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97655 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-05-13tdf#49247: draw soft edgesMike Kaganski
This factors out the common code for blurring used both in glow and soft edges into ProcessAndBlurAlphaMask. Also this reverts commit a98bdbae459ad7341bf7f484c402e77e4062cd16, since its use was removed from VclPixelProcessor2D. Change-Id: Icd7fdb06bef3932ff3b9ce7e283b515b15d246a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94087 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-05-12Rename attributes to reflect that they represent different effectsMike Kaganski
... not only shadow. In preparation to add soft edge effect (tdf#49247). Change-Id: Ia5b17fff00e1c2d7f717179687dbd44410795a71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94007 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-05-11Limit utility function's visibilityMike Kaganski
Change-Id: I1d1a89a197d90dcb1e7de9b4090e1fe6baf53e1c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93972 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-05-11Related: tdf#129916 svx: clean up duplicated matrix decompose for shadow sizeMiklos Vajna
Pass the object's transform matrix to createEmbeddedShadowPrimitive(), this allows decomposing it only at a single place. Also, this will allow creating the shadow based on the object size. Change-Id: I8d8bf59934b00e13cda1da0398910aa9f1ce3c59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93950 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-05-10compact namespace in svxNoel Grandin
Change-Id: I9229775999aa70c2b37c0527ba1c332143f9f2cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93877 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-08Related: tdf#129916 svx: improve shadow size of custom shapesMiklos Vajna
There are multiple problems with this bug document, the first is that the shadow primitive got the default position (0) of the owning shape. Do it the same way as commit 6454b6336b8de9a4c5899adeab552af6f794cdc4 (tdf#130058 Import shadow size., 2020-04-14) did for graphic objects. This requires constructing a transform matrix in ViewContactOfSdrObjCustomShape::createViewIndependentPrimitive2DSequence(), include position and size in that as a start. Change-Id: Ia51df555c1984971afe7c52ba3f2658099a4e7b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93771 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-04-23tdf#130058 Import shadow size.Gülşah Köse
Change-Id: Ie1cee377a33567088fb76ea47f0e6fc51d47f0fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92188 Tested-by: Jenkins Reviewed-by: Gülşah Köse <gulsah.kose@collabora.com>
2020-03-23make more classes private in mergedlibs modeNoel Grandin
Change-Id: I486922d0652f26fa7ee56f5fe308e19fe5ff137e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90856 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-13Revert "loplugin:constfields in svx"Noel Grandin
This reverts commit 1a6397030381a45f27ab7a2a02e6e6d0f9987c84. Change-Id: Iaa706bb4ea3144ef57ab359b982400abc589b97e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90454 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-03tdf#101181 Implement glow effect on shapesTamas Bunth
Glow effect is a color-blurred outline outside of the shape. In ooxml document it is specified with the <a:glow> element. The commit contains the following: - Add support for importing and exporting <a:glow> from ooxml documents. - Assign new properties to XShape which stores glow-related attributes. - A new 2D primitive is introduced in module 'drawinglayer' which is responsible for representing the glow primitive which is to be rendered. + A glow primitive is a clone of the original shape which has been scaled up slightly and a new color has been assigned to it. The radius of the glow effect and the color is defined in the <a:glow> element being imported. - A blur algorithm is introduced in module 'vcl', which is called during rendering the primitive. + The blur algorithm works on a bitmap. + Since the algorithm is CPU-intensive, the result is cached in the processor and it is recalculated only if needed. - Add support for importing and exporting glow effect to ODF format. For that, new attributes of element <style:graphic-properties> has been added: + loext:glow, which can have the values "visible" or "hidden" + loext:glow-radius: which holds the radius of the glow effect in cm. + loext:glow-color: holds the color of the glow effect - Tests have been added to assert properties after pptx import and export. Change-Id: I836aeb5e0f24e2c8d5725834c8c0f98083bc82e7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89125 Tested-by: Jenkins Reviewed-by: Tamás Bunth <btomi96@gmail.com>
2020-02-12move some svx/ headers inside the moduleNoel Grandin
Change-Id: I8d9a50039a8139caebb2cfb83ca476d39432f255 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88238 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>