auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files
Change-Id: Ifa4a6643b41525c962cd6af5776e1bf10bddb71c
...which had been left out because "lots of our code uses this style, which I'm
loathe to bulk-fix as yet", but now in
<https://gerrit.libreoffice.org/#/c/45060/1/> "use std::unique_ptr" would have
caused an otherwise innocent-looking code change to trigger a
loplugin:unnecessaryparen warning for
pFormat = (pGrfObj)
? ...
(barring a change to ignoreAllImplicit in
compilerplugins/clang/unnecessaryparen.cxx similar to that in
<https://gerrit.libreoffice.org/#/c/45083/2> "Make not warning about !! in
loplugin:simplifybool consistent", which should also have caused the warning to
disappear for the modified code, IIUC).
Change-Id: I8bff0cc11bbb839ef06d07b8d9237f150804fec2
Reviewed-on: https://gerrit.libreoffice.org/45088
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
First steps to get a rotated FlyFrame and content
that only uses layouted sizes/positions and does not
change the model data (except rotation). This works
with persistence, after reload the rotation can be
resetted with going back to the original FrameSize.
Lot of stuff not yet working, experimental state.
Change-Id: Ie29d501fe2e618a1cb4457d600ce97575ed372d0
with fLeftStart == 1.0 (is allowed, see comment at mfCut) the whole
BezierSegment is needed and does not need to be cut at all so best would be to
add it to 'while' loop, after that the 'rest' will be added anyways so, add
'fLeftStart < 1.0' or 'fLeftStart != 1.0' (since limited to [0.0 .. 1.0]) to
the while in line 120 should do it
Change-Id: Ida87e06247d169482df26e665985753e634e149e
Reviewed-on: https://gerrit.libreoffice.org/43935
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
The FlyFrames containing a graphic now support an
interactive rotation mode. Added a rotation icon to the
Toolbar close to right/left 90degree rotation. When
activated, works as similar to draw object mode as
possible. Shear and move of the rotation center is
deactivated since not supported. It uses as much of the
existing interaction stuff as possible.
Change-Id: Ia1a4e5c064d8576b114c3fcf3a96ccb42c9372bb
The FlyFrame which may contain a Graphic needs working Crop,
interactive and in core. Adapted this to work with now possible
rotation, changed common code in svx which has to handle cases
for Draw/Impress/Calc and Writer differently. Tried to use as
much in common as possible. Additionally furter adaptions
to rotation itself.
Change-Id: Ia961e9490e2627c74220b186116f5aa4fcabca78
Reduce potential confusion with the global tools namespace. Will
hopefully make it possible to remove the annoying initial :: when
referring to the global tools namespace. Unless we have even more
tools subnamespaces somewhere.
Thorsten said it was OK.
Change-Id: Id088dfe8f4244cb79df9aa988995b31a1758c996
Reviewed-on: https://gerrit.libreoffice.org/42644
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Multiple cleanups, made svx::frame::Style a std::shared_ptr class,
preparing basing all border stuff on transformations, so it will
need a CellCoordinateSystem. Added stuff to get this Coordinate
System from the svx::frame::Cell using the Frame and knowledge
about ownerships
Change-Id: Ic2cb59cc92e648ac2fef72f22f8913479769d3e2
On a tinderbox, CppunitTest_chart2_export crashed in
basegfx::B3DHomMatrix::isEqual(), with other threads in other basegfx
code.
The UnsafeRefCountingPolicy on the global IdentityMatrix is likely the
problem.
Change-Id: Ib142c6f286453d61bd948fb0c184cd68fd313b0f
std::binary_function is deprecated since C++11 and removed in C++17
90% done with regexp magic.
removed obsolete <functional> includes.
The std::binary_function base class was used by deprecated
std::bind2nd, this was solved in individual commits.
The members first_argument_type and second_argument_type were used
in chart2/source/controller/dialogs/DataBrowserModel.cxx:
DataBrowserModel::implColumnLess and are inlined in this commit.
Change-Id: I60ded60a8d4afd59e15ac15a58e18d2498c9be5a
Reviewed-on: https://gerrit.libreoffice.org/39659
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
ASAN reports this about JunitTest_chart2_unoapi
==27381==ERROR: AddressSanitizer: heap-use-after-free on address 0x6060005bd218 at pc 0x7ff229755271 bp 0x7fffb52c6c30 sp 0x7fffb52c6c28
READ of size 8 at 0x6060005bd218 thread T0
#0 0x7ff229755270 in o3tl::UnsafeRefCountingPolicy::decrementCount(unsigned long&) include/o3tl/cow_wrapper.hxx:41:68
#1 0x7ff2297551bf in o3tl::cow_wrapper<basegfx::Impl2DHomMatrix, o3tl::UnsafeRefCountingPolicy>::release() include/o3tl/cow_wrapper.hxx:203:29
#2 0x7ff2297515f0 in o3tl::cow_wrapper<basegfx::Impl2DHomMatrix, o3tl::UnsafeRefCountingPolicy>::~cow_wrapper() include/o3tl/cow_wrapper.hxx:248:13
#3 0x7ff242ef440f in __run_exit_handlers (/lib64/libc.so.6+0x3a40f)
#4 0x7ff242ef4469 in __GI_exit (/lib64/libc.so.6+0x3a469)
The reason appears to be the UnsafeRefCountingPolicy on the global
IdentityMatrix, so every B2DHomMatrix that is created on any thread
will manipulate the refcount of that global without synchronisation.
Let's just remove the global and hope the extra allocations don't matter.
Change-Id: I4962ab2e622286f29b912a57448f3f1a53eeb592