summaryrefslogtreecommitdiff
path: root/include/svx
AgeCommit message (Collapse)Author
2022-01-20Fix typoAndrea Gelmini
Thanks a lot to Valter Mura: https://listarchives.libreoffice.org/global/l10n/2022/msg00005.html Change-Id: I37467e1b9ba7cba2553be5df0d8324da8fe6c13b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128303 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-01-12used cache value in ViewObjectContact::getPrimitive2DSequence (2nd attempt)Noel Grandin
Rely on the cached primitives in VOC. But only enable it for calc and draw right now, by adding a flag at the SdrModel level. This way we can leave it disabled for writer, where it definitely doesn't work. Change-Id: I11ca4836eb773c0f078cdb82056c6e0309d15a8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128319 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-11cid#1497094 silence Uninitialized scalar fieldCaolán McNamara
and cid#1497093 Uninitialized scalar field Change-Id: Ie6a7f5032a6a3eda8480c1f3a3a0d0f2e831a53a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128295 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
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-10document GenericCheckDialog, GraphicSizeCheck and related classesTomaž Vajngerl
Change-Id: If3f8c33601f7823c87b75d601e0b8620d4bfe197 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128205 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-01-09implement anyToHash() and use it for SdrCustomShapeGeometryItemLuboš Luňák
Using anyLess() still has quite some cost with bsc#1183308, this makes the cost almost unnoticeable. Since some values of Any are not handled, return empty std::optional for those cases. Change-Id: Ib45a81441e8bb456c4749f9bc53a981f09bbb1a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128109 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-01-09make SdrCustomShapeGeometryItem sortable and fast (bsc#1183308)Luboš Luňák
The document contains a complex graphic consisting of many shapes, and SfxItemPool tries to avoid duplicates by checking for equality. And SdrCustomShapeGeometryItem contains a UNO sequence as data, and comparing those is non-trivial. Make the item sortable, which should make things faster, and use anyLess() for the ordering. Additionally first check the size of the list of property names the class keeps for an easy fast return. Change-Id: I49220e589b6510c6f1f40d584301be83367fb5a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128047 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-01-09make SdrCustomShapeGeometryItem internal data consistentLuboš Luňák
The PutValue() function didn't update the property map properly the same way the constructor and other functions do. Change-Id: I107f7095077d888cd9701d87a6e536339b0257b1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128104 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-01-07fix hierarchy in commentNoel Grandin
Change-Id: Ieaf94ce6ce524c4c017cbe1bb82fa75bd5f7e801 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128094 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-07remove E3D_INVENTOR_FLAG and convert SdrObjKind to scoped enumNoel Grandin
We don't need E3D_INVENTOR_FLAG, we can just check if the SdrObjKind is in the right range. Which exposes some dodgy code in DrawViewShell::GetMenuStateSel SfxItemState::DEFAULT == rSet.GetItemState( OBJ_TITLETEXT ) || SfxItemState::DEFAULT == rSet.GetItemState( OBJ_OUTLINETEXT ) || which has been there ever since commit f47a9d9db3d06927380bb79b04bb6d4721a92d2b Date: Mon Sep 18 16:07:07 2000 +0000 initial import just remove that. In SwFEShell::ImpEndCreate() move some logic around to avoid using an out-of-range SdrObjKind value Change-Id: I4620bfe61aca8f7415503debe3c84bfe5f4368a0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127763 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-06bypass SvxShape when creating rectangles in chart2Noel Grandin
Change-Id: I461449959fffa8948bf4321a6c3114505d87a149 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127997 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-05Missing RTTI for UBSanStephan Bergmann
...which caused e.g. CppunitTest_chart2_export to emit lots of > warn:sal.osl:3446618:3446618:sal/osl/unx/module.cxx:155: dlopen(.../instdir/program/libchartcorelo.so, 257): .../instdir/program/libchartcorelo.so: undefined symbol: _ZTI12SvxShapeRect Change-Id: I26b0ad58ad6fa577e0e8299dde80bcac444f9504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128012 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-01-05svx: mark RTTI symbols of Svx3DSceneObject as publicMiklos Vajna
online.git's unit-calc under sanitizers fails without this, but also seen at <https://ci.libreoffice.org/job/lo_ubsan/2254/console>: > warn:sal.osl:30805:30805:sal/osl/unx/module.cxx:155: dlopen(/home/tdf/lode/jenkins/workspace/lo_ubsan/instdir/program/libchartcorelo.so, 257): /home/tdf/lode/jenkins/workspace/lo_ubsan/instdir/program/libchartcorelo.so: undefined symbol: _ZTI16Svx3DSceneObject Change-Id: Ibebb839751c1048ab44110dd70e2140f8d5dc6b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127996 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-01-04sc export chart as graphic: handle PDFMiklos Vajna
The context menu for Calc charts would call into GraphicFilter::ExportGraphic(), which has explicit code for e.g. SVG, but not for PDF. The graphic exporter to PDF is only meant to work with images backed with PDF data, not with all shapes. Fix the problem by explicitly handling PDF in GraphicHelper::SaveShapeAsGraphic() in svx/, and invoking the normal PDF export in that case. Continue to fall back to XGraphicExportFilter for other formats. This requires passing down the current document from sc/. Change-Id: Ia5f78bffa1d26989bb0ad3ed265b922e609f076f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127969 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-01-04use deque in SdrObjListNoel Grandin
which has much better performance for (a) inserting stuff at the front (b) appending large numbers of items something that happens when constructing large charts - shaves 5% off the load time for large sample bar chart Change-Id: I3ebccbfdc75e4df3ec88eb2dde46acfe0ab0ae7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127940 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-03add new SvxShape hierarchy classNoel Grandin
to serve as a shared/common base class, so I can plumb SvxShape types through chart2. Change-Id: I8758fff1599c92a214b334ee44cf7b4e582c1915 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127873 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-01use concrete types in chart2, createCircleNoel Grandin
Change-Id: I42810d2a77e860e8a911288db8556043f7ed1d3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127836 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, SvxGraphicObjectNoel Grandin
Change-Id: Ia01be1d6cdb1b9a1c2af32a8873575227fe32b03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127731 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30tdf#126269 Add clipping to diagonal border linesArmin Le Grand (Allotropia)
See task for in-deep discussion. Needed to do some re-arrangements to add clipping to diagonal border lines. It is necessary to only clip visible geometry but not touch vectors that get added to be able to solve all that dynamic border line style start/end overlapping. Change-Id: I656a5cd63a011140ee1281873e44ab5e60606b67 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127713 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-12-30use concrete types in chart2, StripeNoel Grandin
Change-Id: I8814616024345206a69b7e33ade42c74656e9213 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127730 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, Svx3DLatheObjectNoel Grandin
Change-Id: I3c007cc5b70e6a7b854438b9b2558229f5a5c73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127728 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, Svx3DSceneObjectNoel Grandin
Change-Id: Ic1cdc8a4efbb91bfabe84c32b703cb4868cd31a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127727 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, Svx3DExtrudeObjectNoel Grandin
Change-Id: I8b9dc0568cabf5c5e3f35c2330803f96c7623e6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127726 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, SvxShapeRectNoel Grandin
Change-Id: Ibd537ed709be237e00715057c162dd9197759373 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127722 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-30use concrete types in chart2, SvxGroupShape and SvxShapePolyPolygonNoel Grandin
Change-Id: I2b86c39610f31260fe8fb5abdbb94e853ec31cec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127700 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-29use comphelper::WeakComponentImplHelper in svx::sidebar::SelectionChangeHandlerNoel Grandin
Change-Id: I7f60374710f5768efef07ee993757558a225c111 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127698 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-26use comphelper::WeakComponentImplHelper in SvXMLEmbeddedObjectHelperNoel Grandin
Change-Id: Id574f7a1ff54fae4a76bcafb011b9a80b5f35232 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127407 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-24use comphelper::WeakComponentImplHelper in SvXMLGraphicHelperNoel Grandin
and remove unused disposing() override Change-Id: I6423d9c3c418bb07f84e1622c8df6eac8ad762c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127406 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-24tdf#146132 tdf#146327 tdf#146330Noel Grandin
regression from commit fe6a140a537eda1b6703c44ff5ee49d2ba875b81 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Tue Dec 7 14:55:13 2021 +0200 used cache value in ViewObjectContact::getPrimitive2DSequence Unfortunately various things like scrolling/zooming/moving item to new page do not seem to invalidate the VOC, and I can't track down the right place to do that, so just revert. Change-Id: I8009c99417f634b26adc770b6d6d2eb6969d9629 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127389 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-24Recheck include/[s-x]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: Iaebddd648c52c175da17d2a55a1e8de82c213f4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127330 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2021-12-22sd theme: allow setting color effects in the sidebarMiklos Vajna
Which requires adding slot ids for the theme index / luminance modulation / luminance offset. Also merge them on the sd/ side, similar to what the character dialog does already. Change-Id: I0ae1b4d315b2bd53c17522dbccab160e6208716b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127304 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-12-21sd theme: allow setting color effects in the chardlgMiklos Vajna
Which means not only the 12 colors from the theme are offered (which comes from the current master page), but also lighter/darker variants. And once these are selected, their theme index and luminance modulation / offset is also remembered. This means if you pick light blue and later change accent1 from blue to orange, you get light orange out of the box. Change-Id: Ia83b8971ad894d02ed4ec5ca914684fc9cf9a677 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127211 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-12-20sd theme: allow setting the color's theme index in the chardlgMiklos Vajna
This routes not only the rgb color and a name, but also a theme index from the color picker to the chardlg (only there as a start). That way the picked color will be updated if the master page theme changes. Change-Id: I7a45d7cf63c7c36013e4656c66d9b2dbc3aa0b88 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127135 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-12-20use cppu::BaseMutex in SvXMLEmbeddedObjectHelperNoel Grandin
because passing a ref of a local member to a parent class means passing uninitialised data Change-Id: I8ebfce789da19538379cfa0888a63a9b31d35a0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127118 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-20use cppu::BaseMutex in SvXMLGraphicHelperNoel Grandin
because passing a ref of a local member to a parent class means passing uninitialised data Change-Id: I1171c3e5f5df148c7e63dad451bf54dff23fe2aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127119 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-20Set the original size in crop dialog to preferred DPI calc. sizeTomaž Vajngerl
If we have the document setting preferred image size set, then use that as the default DPI and recalcualte the logical image size using the DPI and the size in pixels. This is useful so we have the preferred DPI size as 100% in the crop dialog, so we can adjust the size in relation to that value. Change-Id: I50806f194032e228ee2cf56a39e5735a57358d46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127096 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-12-20Add graphic size checker for the preferred document DPITomaž Vajngerl
This change adds a graphic size checker, which checks all the images in the document, if they largely differ (outside of 50% and 110% of the image size) from the set preferred image DPI document setting. For all images that don't fall under this bounds, list them in the dialog and offer the posibility to select/goto the image and pop-up the properties dialog for the image to change its size. Change-Id: I06efce77c291fdb6ec3864d72c2f4d15dba9c42b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127094 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-12-18use more cppu::BaseMutexNoel Grandin
Change-Id: I00b63f8ce201d2f83b89b493b4ae086368ed54d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127082 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-17Fix typosAndrea Gelmini
Change-Id: I7f1636226c4fbe29d9d2ef850318a9d57f1b5450 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127009 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-12-17sd theme: add a "theme" palette to the color pickerMiklos Vajna
This implements listing the current theme colors (which depend on what is the master page of the current slide) in the color picker and also allows picking those colors. The colors are picked as-is for now, not yet setting the color theme index in the document model. Change-Id: I2553725c29c2a9f9de80f86b38d22a06bf9c0364 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126994 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-12-17fix for crash converting ooo31011-1.sxw and tdf#146132Noel Grandin
./instdir/program/soffice.bin --headless --convert-to odt ./ooo31011-1.sxw regression from commit 681e10eecf67a1a01bdec2cc9b834e0345e25206 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Thu Dec 9 11:12:49 2021 +0200 tdf#146137 tdf#146132 image redrawing It is because we cache high-level primitives, and then during paint, we decompose those high-level primitives, and that triggers layout, which triggers an invalidate i.e. an ActionChanged(), which blows away the cached data we are iterating over. Change-Id: Id18e47b6c2b71a5404f24b075a43d2040a5e3509 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126995 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-14sd: add initial theme UI for master slidesMiklos Vajna
Click Sidebar -> properties -> slide -> master view, then launch the Slide -> Slide properties menu item, this adds a new Theme tab page there. This is just an initial UI, only the theme name can be edited as a start. Change-Id: Ia2faa828c57a0e858881fb8640431f046b5739a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126798 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-12-10merge setUnoShape and impl_setUnoShapeNoel Grandin
since the one purely forwards to the other Change-Id: I5f614cc1eb819572a55da57d9d6c9ae56b9139c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126608 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-09meRememberedAnimationKind is deadNoel Grandin
and removing it actually makes chart loading faster, because we now avoid always instantiaing the ObjectItemSet Change-Id: I48420bcc38c61e4f6b211724271bc61db0e1f0d0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126572 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-08tdf#146108 Calc slow to change cell focus..Noel Grandin
in a document with a big background image Revert "tdf#136058: remove some caching" This reverts commit 57c40329a2b469813a1f357de355a37c8e3077ae. And add some comments for future would-be optimisers. Change-Id: Ie8686edc38dcdbe7d9e78599c1a259aab68278a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-07loplugin:unnecessaryvirtualNoel Grandin
Change-Id: I231195c36d620254cbcd2f4d7bbb9044f7887fe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126413 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-06Revert "lose the caching in ViewObjectContact" because it breaks...Noel Grandin
bitmap caching. Added some notes for future would-be optimizers. This reverts commit 7f02cb80ac2075b65ee1adee4e29d1d5c4819424. Change-Id: I39c41ea95d23d4a65edd3cef46a5d86fab48a044 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126425 Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
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>