summaryrefslogtreecommitdiff
path: root/svx/source/engine3d
AgeCommit message (Collapse)Author
2023-10-18use more SdrObjList::begin/end in svxNoel Grandin
Change-Id: I362a2e12492391338b63708e4b329fc77ac363c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158113 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-10-02tdf#146619 Recheck include/s* with IWYUGabor Kelemen
Change-Id: Ia0a6330278b044f448c9928362308aadc8fc9a20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156989 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-05-25svx: change NamedColor be a struct instead of std::pairTomaž Vajngerl
Change-Id: Ice1625e8cae8da859ea8a940b3f8e40f6f9d7037 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152235 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-02-08Simplify a bitMike Kaganski
Change-Id: I77482a2e1d382663ca31991130526feb7ce85504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146647 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-02-08svx: don't access m_aOutRect directly - go through methodsTomaž Vajngerl
Change-Id: If37d6fd7108d1289f838bd3f81ae9b500c8ddb5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146601 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2023-01-31svx: Refactor (sdr) views to access the SdrModel by referenceTomaž Vajngerl
In SdrPaintView (and subclasses) the mpModel variable is always the same as the input (reference) model, so there is no need for that extra variable. Change the strange and confusing var. name mrSdrModelFromSdrView (the input reference to SdrModel) to just mrModel and use that in GetModel(). Change the GetModel() to return a reference instead of a pointer and reactor the code to accomodate the change. This gets rid of many nullptr checks for the pointer that the GetModel() returns and makes the code more simple is some cases. Change-Id: I18351a417fd82f49262a83de036ec1420a65399c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146373 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-12-16svx: check SfxViewFrame::Current()Caolán McNamara
SfxViewFrame::Current() is a festering wound, these ones look like they were safe anyway, so no need to backport. But with enough checked static analysis will kick in to flag new unchecked ones. Change-Id: I846a67ca7392182fee6afead8d066fc061ce00be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144253 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-11-26tdf#147906 used std::hypot for Pythagorean additionBogdan B
Change-Id: I28f3996b777c99b771f1cbcde236b5a1a1c0f18f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143168 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-11-19tdf#147906 Use std::hypot for Pythagorean additionOmkarAcharekar
Change-Id: I19ecfe80e9a927c14db2680188baa54cb4911d4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142535 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-11-02tdf#54857 elide more dynamic_castNoel Grandin
Change-Id: I42bef355eeef15e3733a5ee57b0569887cfa5e84 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142183 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-11-02tdf#54857 elide more dynamic_castNoel Grandin
Change-Id: I0cbdb2ee46600559d9a37f09b574d484e72a0e0d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142133 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-11-01tdf#54857 elide more dynamic_castNoel Grandin
add a helper, following the same style as the ones in sw/ Change-Id: I13c673bba5ff47df6beef9d90c200e5801030cf0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142119 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-11-01tdf#54857 elide dynamic_castNoel Grandin
shaves 2% off load time of this ppt Change-Id: I025bae9dbc6a01cd193e2a4721f50cf60ac08dc5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142112 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-29ref-count SdrObjectNoel Grandin
Which means we can get rid of the majestic hack of ScCaptionPtr Previously, SdrObject was manually managed, and the ownership passed around in very complicated fashion. Notes: (*) SvxShape has a strong reference to SdrObject, where previously it had a weak reference. It is now strong since otherwise the SdrObject will go away very eagerly. (*) SdrObject still has a weak reference to SvxShape (*) In the existing places that an SdrObject is being deleted, we now just clear the reference (*) instead of SwVirtFlyDrawObj removing itself from the page that contains inside it's destructor, make the call site do the removing from the page. (*) Needed to take the SolarMutex in UndoManagerHelper_Impl::impl_clear because this can be called from UNO (e.g. sfx2_complex JUnit test) and the SdrObjects need the SolarMutex when destructing. (*) handle a tricky situation with SwDrawVirtObj in the SwDrawModel destructor because the existing code wants mpDrawObj in SwAnchoredObject to be sometimes owning, sometimes not, which results in a cycle with the new code. Change-Id: I4d79df1660e386388e5d51030653755bca02a163 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-24tools: rename Rectangle::Justify() to Rectangle::Normalize()Chris Sherlock
Jusify() normalizes the rectangle so both the Width and Height are positive, without changing the location of the rectangle. It ensures that the x and y coordinates will be moved to the top left of the rectangle. The name is strange, so renaming Justify() to Normalize(). Change-Id: Idbf163e65e52a798e38f785b8961b8042cf0cf2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137379 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-08-14ofz#49750 TimeoutCaolán McNamara
skip slow path on fuzzing Change-Id: Idc27574ed7607011491248e726c1ba4bce9d483b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138253 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-07-25loplugin:moveitNoel Grandin
make the plugin more conservative, so we see less false+ (although we also miss some possibilities in the process) Change-Id: I91b1806271e7f802d7459834ab7bcc569047da3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137342 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-21clang-tidy modernize-pass-by-value in svxNoel Grandin
Change-Id: Iedd87d321f4d161574df87629fdd6c7714ff31c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137248 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-28use the new SfxWhichIter::GetItemState featureNoel Grandin
to speed up other places that are iterating over SfxItemSets Change-Id: I646bae12420d15e67effdd279e071cdf8a8afffd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135075 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-28tdf#147906 change all sqrt(a * a + b * b) occurences to std::hypot(a, b)offtkp
Other changes: In Splines.cxx, no longer divides dx, dy with fDiffMax because we switched to std::hypot, and hypot avoids intermediate overflows. Change-Id: I8c459a0e56deb86606fc9b1bf3e68b132a60705d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132073 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-03-11new loplugin:trivialdestructorNoel Grandin
look for potentially trivial destructors that can then be elided Change-Id: I435c251bd4291b5864c20d68f88676faac7c43fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131318 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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-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>
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-11-19Use M_PI* instead of F_PI*Mike Kaganski
Change-Id: Ie2b7a1c74fc516781a17a20157b8217bc41e383d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125504 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-16Use basegfx::deg2rad instead of *0.01745329251994Hossein
* Replaced multiplying by magic number 0.01745329251994 with basegfx::deg2rad() which is equal to M_PI/180.0 * Instances of this could be found using: git grep 0.01745329251994 *.cxx *.hxx Change-Id: Ib813251f6223e4218fe977c0211732c22199295d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125294 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-10-06use SfxItemSetFixed in svxNoel Grandin
Change-Id: I2b31d586ace6720b9bfc223f78874bf347d64521 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123143 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-04loplugin:constmethodNoel Grandin
Change-Id: I56af10be5f1155db4c7f2190495fe036a9b4236a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123054 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-01loplugin:constmethodNoel Grandin
Change-Id: I3ed657c5c5e6840e38e3c8505505b4b372125df0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122910 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-25use SfxItemSetFixed in svxNoel Grandin
Change-Id: I8123b34c73a16579b59989ae31329dec378d8b98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122584 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-17tdf#143550 - use the term "gluepoints" consistentlyrocso
Change-Id: Id10dc2ef13f54a148a800003cc4bd88ca1a0056f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122233 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
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-03clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: I47cc5416e853260d92b8b2c57b1c223d1f21df0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121544 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-22no need to use unique_ptr for ViewInformation3DNoel Grandin
it is already a COW type Change-Id: Ie098bd293115650128ebb18d5c16747b519717c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120825 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-17rename SetRectsDirty->SetBoundAndSnapRectsDirtyNoel Grandin
because there are lots of things being marked dirty, and I like to be sure I know what the code is doing Change-Id: Ifd0380c5560adc4a054495551885fe33af4f3e5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120460 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-27cid#1489549 Uncaught exceptionCaolán McNamara
no need to check if mpPolygons is in use before deleting it Change-Id: Ie4fdc35ca70fcef6985268dd317e34dde1ccc950 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119559 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-19Move svl::Items to include/svl/whichranges.hxx, and unify its usageMike Kaganski
... in WhichRangesContainer and SfxItemSet ctors. Now it's not needed to explicitly use 'value' in WhichRangesContainer's ctor, or create an instance for use in SfxItemSet ctor (svl::Items is already defined as a template value of corresponding type). Instead of WhichRangesContainer Foo(svl::Items<1, 2>::value); SfxItemSet Bar(rItemPool, svl::Items<1, 2>{}); now use: WhichRangesContainer Foo(svl::Items<1, 2>); SfxItemSet Bar(rItemPool, svl::Items<1, 2>); Change-Id: I4681d952b6442732025e5a26768098878907a238 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119157 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-18tdf#130428 remove unnecessary usage of SfxItemState::UNKNOWNArmin Le Grand (Allotropia)
Rename ::StateChanged methods using SfxItemState to allow better analysis of SfxItemState/SfxPoolItem usage(s), discussion see tdf#130428 comment 30 Change-Id: I736be0160ad7a9b7882c1c8a4cc05d9396ee3305 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117366 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2021-05-21add Toggleable as a separate thing to a ButtonCaolán McNamara
and inherit ToggleButton from both it and Button Change-Id: If0e500aca8d0ffa087cb5e2bfc1786372fbff4eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115921 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-29loplugin:stringadd simplify some *StringBuffer operationsNoel Grandin
pulled from a larger patch which I created with a more permissive variant of this plugin Change-Id: I7abf1f3f09e84703b6e0e52fe9587dff691b2187 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114875 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-12svx: prefix members of SdrObjectMiklos Vajna
So that nOrdNum doesn't cause -Wshadow in SwDrawVirtObj::AddToDrawingPage(). Change-Id: Ie7b1401f5c3cb07bfa653c4268dbdce7ba7abea5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113966 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-04-11ofz#30962 Timeout: skip slow path for fuzzingCaolán McNamara
Change-Id: I49c3b06e9b54d9d6657b64b153907f995e572a19 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113951 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-09defer getting toplevel for color picker until we need itCaolán McNamara
Change-Id: I60f4ded47f7d80b397647ea3344e83a5dfd1b11e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112183 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-03-08clean up some more dynamic/static castingNoel
using a hacked version of the staticdynamic plugin and some judgement Change-Id: I5e6668b19320025e419f84bebceade4239577729 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112137 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-03-07loplugin:staticdynamic now with extra saltNoel
because it wasn't quite there yet - now checks for casts with and without const, because const doesn't really matter here. Change-Id: I319025b2095a803fcaad2a7a696d2730b7fd2f81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112098 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-26drop unneeded includeCaolán McNamara
Change-Id: I07a359887beeee5d06e340b443cfac755d27e94e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111629 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-26don't need to check if IsFloatingMode is trueCaolán McNamara
seeing as... commit a5dbc997bff8f7fe61ddc848f48c880a6e67e448 Date: Thu Feb 25 11:38:02 2021 +0000 drop archaic rollable support assumes !IsRollUp is always true Change-Id: I707a8d93e3c74b049ab9b96b27ed17fb0d896098 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111628 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-25drop archaic rollable supportCaolán McNamara
Change-Id: I69f94cd8013a31f8f6bcf62d703b99f659a1ebb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111555 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-02-25dockwin.hxx doesn't need to include floatwin.hxxCaolán McNamara
Change-Id: Ib0408f715c9a12f32ce2f8049d2c9c7272201d76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111504 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>