summaryrefslogtreecommitdiff
path: root/svx/source/sdr/overlay/overlaymanager.cxx
AgeCommit message (Collapse)Author
2024-11-12loplugin:reftotemp in svxNoel Grandin
Change-Id: Ie5f9a7f0e6903476bd02391a71c1f3d75afaf09f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176483 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-16cid#1557618 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557535 COPY_INSTEAD_OF_MOVE cid#1557520 COPY_INSTEAD_OF_MOVE cid#1557513 COPY_INSTEAD_OF_MOVE cid#1557503 COPY_INSTEAD_OF_MOVE cid#1557487 COPY_INSTEAD_OF_MOVE cid#1557483 COPY_INSTEAD_OF_MOVE cid#1557479 COPY_INSTEAD_OF_MOVE cid#1557474 COPY_INSTEAD_OF_MOVE cid#1557461 COPY_INSTEAD_OF_MOVE cid#1557446 COPY_INSTEAD_OF_MOVE cid#1557445 COPY_INSTEAD_OF_MOVE cid#1557441 COPY_INSTEAD_OF_MOVE cid#1557435 COPY_INSTEAD_OF_MOVE cid#1557433 COPY_INSTEAD_OF_MOVE cid#1557429 COPY_INSTEAD_OF_MOVE cid#1557375 COPY_INSTEAD_OF_MOVE cid#1557372 COPY_INSTEAD_OF_MOVE cid#1557356 COPY_INSTEAD_OF_MOVE cid#1557350 COPY_INSTEAD_OF_MOVE cid#1557344 COPY_INSTEAD_OF_MOVE cid#1557339 COPY_INSTEAD_OF_MOVE cid#1557332 COPY_INSTEAD_OF_MOVE cid#1557330 COPY_INSTEAD_OF_MOVE cid#1557328 COPY_INSTEAD_OF_MOVE cid#1557323 COPY_INSTEAD_OF_MOVE cid#1557315 COPY_INSTEAD_OF_MOVE cid#1557313 COPY_INSTEAD_OF_MOVE cid#1557304 COPY_INSTEAD_OF_MOVE cid#1557297 COPY_INSTEAD_OF_MOVE cid#1557291 COPY_INSTEAD_OF_MOVE cid#1557290 COPY_INSTEAD_OF_MOVE cid#1557271 COPY_INSTEAD_OF_MOVE cid#1557266 COPY_INSTEAD_OF_MOVE cid#1557262 COPY_INSTEAD_OF_MOVE cid#1557259 COPY_INSTEAD_OF_MOVE cid#1557246 COPY_INSTEAD_OF_MOVE cid#1557242 COPY_INSTEAD_OF_MOVE cid#1557241 COPY_INSTEAD_OF_MOVE cid#1557236 COPY_INSTEAD_OF_MOVE cid#1557228 COPY_INSTEAD_OF_MOVE cid#1557225 COPY_INSTEAD_OF_MOVE cid#1557221 COPY_INSTEAD_OF_MOVE cid#1557217 COPY_INSTEAD_OF_MOVE cid#1557213 COPY_INSTEAD_OF_MOVE cid#1557211 COPY_INSTEAD_OF_MOVE cid#1557209 COPY_INSTEAD_OF_MOVE cid#1557205 COPY_INSTEAD_OF_MOVE cid#1557204 COPY_INSTEAD_OF_MOVE cid#1557193 COPY_INSTEAD_OF_MOVE cid#1556082 COPY_INSTEAD_OF_MOVE Change-Id: I07f195a79a69d4bac0d14317854efc88d6fe94d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171927 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-05-11loplugin:ostr in svxNoel Grandin
Change-Id: Ia765a03e033acb82e367873380d289587ea87d6c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167449 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2023-12-30tdf#146619 Recheck svx/ with IWYUGabor Kelemen
Change-Id: I99650b50587294c20b1e92270e541140d9ec9cae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161240 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2022-11-08Update handling of AntiAliasing settings and processor2dArmin Le Grand (allotropia)
Currently SvtOptionsDrawinglayer::IsAntiAliasing() is used in the constructor of the VCL based processor2Ds to decide if AA is to be used or not. Using this inside the constructors makes it currently impossible to use a primitive renderer independent from these settings, except when changing these settings temporarily what may influence other renderings and is a hack. The setting SvtOptionsDrawinglayer::IsAntiAliasing() is intended to decide if LO shall use AA mode from user's perspective, this means for the EditViews of the Apps and some other occasions (previews, exports, conversions to bitmap, ...). This works currently since all visualizations for these purposes use newly constructed primitive renderers. But there is no way to use primitive renderers independent from that setting. For future renderers which might be used for other purposes this is not sufficient, there has to be a method to create a renderer using e.g. AA independent of the global setting. To allow that, move the deciding flag to the already used geometry::ViewInformation2D. To not change anything initially, use the global flag for now to init that default value at ViewInformation2D. I took the opportunity to adapt ViewInformation2D to no longer being read-only and not changeable, it uses internally an impl class based on cow_wrapper already anyways. Extending this would lead to the constructors getting even bigger, when usually only 1-3 values need to be changed and many usages want to copy an existing instance and modify it. Adapted that usages to a much smaller footprint. Up to this point this does not change anything, but move the usage of the SvtOptionsDrawinglayer to the defaults (constructors) of the involved class ViewInformation2D. Using this then in the primitive rederers should be safe and will allow to use a primitive renderer with or without AntiAliasing independent of the user setting, so also for non- EditView usages. Also already added the PixelSnapHairline setting, this will also be needed independent of user settings to have full freedom of usage. Unfortunately I cannot use SvtOptionsDrawinglayer methods ::IsAntiAliasing() or ::IsSnapHorVerLinesToDiscrete inside ViewInformation2D where I would need it. It's now in drawinglayercore and thus not linked against svtools (svt) anymore. Thus I have to do some forwarding mechanisms to get the correct values available in ViewInformation2D. Not nice, caused by creating drawinglayercore... Change-Id: I9f572ce67e5d86a242188bdc6d4ba7c9a12f6a9b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142393 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2022-10-13tdf#150622 use high contrast selection fg/bg colors for text selectionCaolán McNamara
with SettingsForSelection SettingsText -> HighlightTextColor SettingsFill -> HighlightColor SettingsLine -> HighlightColor Change-Id: Iaac5834ce0f8b3f1b89376711b564773cfd0bfe3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141287 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-10-13tdf#150622 allow use of selection color for frame in HighContrast modeCaolán McNamara
Change-Id: I0a45051c9ba8bbfe785689103c6af6285a282345 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141261 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-12-15Recheck include/[a-d]* with IWYUGabor Kelemen
See tdf#42949 for motivation Change-Id: I42475b8e75951d5dcae2fe6b0ad0bca64441e7f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126837 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2021-10-31Prepare for removal of non-const operator[] from Sequence in svxMike Kaganski
Change-Id: Ib5fda9469f9a1987cf9071c0e228c582cfb3dfa1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124397 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
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-07-31drawinglayer: extract Prop. Value conversion from ViewInformation2DTomaž Vajngerl
ViewInformation2D doesn't need to know anything about the Sequence of PropertyValue that is used for parameters when constructing it through UNO API. This can be done outside of ViewInfromation2D and it doesn't need to be responsible for that internally inside the ViewInformation2D. With this we get ViewInformation2D, which is much simpler and isn't prone to YAGNI. Change-Id: I3836237a1d26e38145b52136c3204931ae7c6b79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119721 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-07-31drawinglayer: remove extendedInformation from ViewInformation2DTomaž Vajngerl
We actually never use extended information when normally using the ViewInformation2D. The exception here is when we construct it from property values, where the unknown property values are then stored into the extended information sequence and then later reconstructed when we convert it back to a sequence of property values. Just for that case we don't neeed to expose the extended information to the outside and create it, as that is then a implementation detail for the UNO use case. I am also not convinced we need it when creating ViewInformation2D with the sequence of property values - it certantly not expected that we need to preserve the property values at all, but that is something that needs to be checked. Change-Id: I3b8d533cd412aac8b89ca2921738d6487be5cf45 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119720 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-07-25use officecfg for drawing optionsNoel Grandin
Change-Id: Idba40d9816f29c0e4bc4a468b8c0a2cbb74d09d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119481 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-17split OutputDevice from WindowNoel Grandin
as part of a longer-term goal of doing our widget rendering only inside a top-level render- context. I moved all of the OutputDevice-related code that existed in vcl::Window into a new subclass of OutputDevice called WindowOutputDevice. Notes for further work (*) not sure why we are getting an 1x1 surface in SvpSalGraphics::releaseCairoContext, but to fix it I clamp the size there (*) might have to dump VCLXDevice, and move it's code down into VCLXWindow and VCLXVirtualDevice (*) can we remove use of VCLXDevice in other places, in favour of just talking to the VCL code? Change-Id: I105946377f5322677d6f7d0c1c23847178a720b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113204 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-28createPixelProcessor2DFromOutputDevice won't return nullCaolán McNamara
nor will createProcessor2DFromOutputDevice Change-Id: I1e0359ef2f94eeaf2da9a89d9e9dfb615587d3da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114814 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-10-26switching long to a 64-bit type on 64-bit windowsNoel
(*) create a rewriting plugin to do most of the work, heavily based on the fakebool plugin (*) but there are still a number of "long"s in the codebase that will need to be done by hand (*) the plugin needs lots of handholding, due to needing to add #include and update macros Change-Id: I8184d7000ca482c0469514bb73178c3a1123b1e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104203 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-10-08Don't needlessly convert to sal_Int32 instead of longStephan Bergmann
...(where the tools::Rectangle ctor takes arguments of type long), as that caused CppunitTest_sc_jumbosheets_test ScFiltersTest::testTdf134392 to fail now with UBSan with float-cast-overflow at > svx/source/sdr/overlay/overlaymanager.cxx:294:44: runtime error: 7.22475e+09 is outside the range of representable values of type 'int' > #0 in sdr::overlay::OverlayManager::RangeToInvalidateRectangle(basegfx::B2DRange const&) const at svx/source/sdr/overlay/overlaymanager.cxx:294:44 (instdir/program/libsvxcorelo.so +0x5477e54) > #1 in sdr::overlay::OverlayManager::invalidateRange(basegfx::B2DRange const&) at svx/source/sdr/overlay/overlaymanager.cxx:314:55 (instdir/program/libsvxcorelo.so +0x5478773) > #2 in sdr::overlay::OverlayManager::impApplyRemoveActions(sdr::overlay::OverlayObject&) at svx/source/sdr/overlay/overlaymanager.cxx:186:13 (instdir/program/libsvxcorelo.so +0x5475566) > #3 in sdr::overlay::OverlayManager::~OverlayManager() at svx/source/sdr/overlay/overlaymanager.cxx:224:21 (instdir/program/libsvxcorelo.so +0x547627c) > #4 in sdr::overlay::OverlayManagerBuffered::~OverlayManagerBuffered() at svx/source/sdr/overlay/overlaymanagerbuffered.cxx:377:9 (instdir/program/libsvxcorelo.so +0x5423e27) > #5 in sdr::overlay::OverlayManagerBuffered::~OverlayManagerBuffered() at svx/source/sdr/overlay/overlaymanagerbuffered.cxx:368:9 (instdir/program/libsvxcorelo.so +0x5423ebb) > #6 in salhelper::SimpleReferenceObject::release() at include/salhelper/simplereferenceobject.hxx:72:49 (instdir/program/libsvxcorelo.so +0x4b748a8) > #7 in rtl::Reference<sdr::overlay::OverlayManager>::clear() at include/rtl/ref.hxx:180:19 (instdir/program/libsvxcorelo.so +0x56c643e) > #8 in SdrPaintWindow::~SdrPaintWindow() at svx/source/svdraw/sdrpaintwindow.cxx:251:22 (instdir/program/libsvxcorelo.so +0x56c3419) > #9 in std::default_delete<SdrPaintWindow>::operator()(SdrPaintWindow*) const at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/unique_ptr.h:85:2 (instdir/program/libsvxcorelo.so +0x64932ff) > #10 in std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >::~unique_ptr() at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/unique_ptr.h:361:4 (instdir/program/libsvxcorelo.so +0x647f81f) > #11 in void std::destroy_at<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > >(std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/stl_construct.h:88:15 (instdir/program/libsvxcorelo.so +0x6487c73) > #12 in void std::allocator_traits<std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > >::destroy<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > >(std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > >&, std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >*) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/alloc_traits.h:533:4 (instdir/program/libsvxcorelo.so +0x648fb80) > #13 in std::__cxx1998::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > >::_M_erase(__gnu_cxx::__normal_iterator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >*, std::__cxx1998::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > > >) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/vector.tcc:177:7 (instdir/program/libsvxcorelo.so +0x648ea5f) > #14 in std::__cxx1998::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > >::erase(__gnu_cxx::__normal_iterator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > const*, std::__cxx1998::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > > >) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/bits/stl_vector.h:1431:16 (instdir/program/libsvxcorelo.so +0x648dea0) > #15 in std::__debug::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > >::erase(__gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > const*, std::__cxx1998::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > > >, std::__debug::vector<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> >, std::allocator<std::unique_ptr<SdrPaintWindow, std::default_delete<SdrPaintWindow> > > >, std::random_access_iterator_tag>) at ~/gcc/trunk/inst/lib/gcc/x86_64-pc-linux-gnu/11.0.0/../../../../include/c++/11.0.0/debug/vector:675:32 (instdir/program/libsvxcorelo.so +0x647dc34) > #16 in SdrPaintView::DeletePaintWindow(SdrPaintWindow&) at svx/source/svdraw/svdpntv.cxx:83:24 (instdir/program/libsvxcorelo.so +0x645cf57) > #17 in SdrPaintView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/svdraw/svdpntv.cxx:404:9 (instdir/program/libsvxcorelo.so +0x64682ca) > #18 in SdrObjEditView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/svdraw/svdedxv.cxx:2324:22 (instdir/program/libsvxcorelo.so +0x59aac14) > #19 in FmFormView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/form/fmview.cxx:196:14 (instdir/program/libsvxcorelo.so +0x7a55634) > #20 in ScTabView::~ScTabView() at sc/source/ui/view/tabview5.cxx:187:28 (instdir/program/libsclo.so +0x1429430f) > #21 in ScViewFunc::~ScViewFunc() at sc/source/ui/view/viewfunc.cxx:100:1 (instdir/program/libsclo.so +0x14657aeb) > #22 in ScDBFunc::~ScDBFunc() at sc/source/ui/view/dbfunc.cxx:49:1 (instdir/program/libsclo.so +0x13a72262) > #23 in ScTabViewShell::~ScTabViewShell() at sc/source/ui/view/tabvwsh4.cxx:1794:1 (instdir/program/libsclo.so +0x14314d5b) > #24 in ScTabViewShell::~ScTabViewShell() at sc/source/ui/view/tabvwsh4.cxx:1743:1 (instdir/program/libsclo.so +0x143150fb) > #25 in SfxViewFrame::ReleaseObjectShell_Impl() at sfx2/source/view/viewfrm.cxx:1113:9 (instdir/program/libsfxlo.so +0x5b8ee8c) > #26 in SfxViewFrame::~SfxViewFrame() at sfx2/source/view/viewfrm.cxx:1647:5 (instdir/program/libsfxlo.so +0x5ba8d5a) > #27 in SfxViewFrame::~SfxViewFrame() at sfx2/source/view/viewfrm.cxx:1641:1 (instdir/program/libsfxlo.so +0x5baa88b) > #28 in SfxViewFrame::Close() at sfx2/source/view/viewfrm.cxx:1165:5 (instdir/program/libsfxlo.so +0x5b9256d) > #29 in SfxFrame::DoClose_Impl() at sfx2/source/view/frame.cxx:142:35 (instdir/program/libsfxlo.so +0x5a190e1) > #30 in SfxBaseController::dispose() at sfx2/source/view/sfxbasecontroller.cxx:982:28 (instdir/program/libsfxlo.so +0x5b181ce) > #31 in (anonymous namespace)::XFrameImpl::setComponent(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) at framework/source/services/frame.cxx:1492:33 (instdir/program/libfwklo.so +0x2c4a8de) > #32 in (anonymous namespace)::XFrameImpl::close(unsigned char) at framework/source/services/frame.cxx:1699:12 (instdir/program/libfwklo.so +0x2c55b57) > #33 in SfxFrame::DoClose() at sfx2/source/view/frame.cxx:108:29 (instdir/program/libsfxlo.so +0x5a163b8) > #34 in SfxViewFrame::Notify(SfxBroadcaster&, SfxHint const&) at sfx2/source/view/viewfrm.cxx:1519:28 (instdir/program/libsfxlo.so +0x5ba0b74) > #35 in SfxBroadcaster::Broadcast(SfxHint const&) at svl/source/notify/SfxBroadcaster.cxx:49:24 (instdir/program/libsvllo.so +0x17ef9c4) > #36 in (anonymous namespace)::SfxModelListener_Impl::notifyClosing(com::sun::star::lang::EventObject const&) at sfx2/source/doc/objxtor.cxx:146:12 (instdir/program/libsfxlo.so +0x515538b) > #37 in SfxBaseModel::close(unsigned char) at sfx2/source/doc/sfxbasemodel.cxx:1439:76 (instdir/program/libsfxlo.so +0x5285e3c) > #38 in SfxBaseModel::dispose() at sfx2/source/doc/sfxbasemodel.cxx:716:13 (instdir/program/libsfxlo.so +0x5266b5f) > #39 in ScFiltersTest::tearDown() at sc/qa/unit/jumbosheets-test.cxx:141:74 (workdir/LinkTarget/CppunitTest/libtest_sc_jumbosheets_test.so +0x7bc6b) This appears to date back to 88879a0d12fba95825b7f99f348094039ba3e029 "INTEGRATION: CWS aw051 (1.3.188); FILE MERGED: 2007/05/29 14:12:36 aw 1.3.188.1: #i77674#" > --- a/svx/source/sdr/overlay/overlaymanager.cxx > +++ b/svx/source/sdr/overlay/overlaymanager.cxx > @@ -264,12 +264,11 @@ namespace sdr > { > if(OUTDEV_WINDOW == getOutputDevice().GetOutDevType()) > { > - // transform to rectangle > - const basegfx::B2DPoint aMinimum(rRange.getMinimum()); > - const basegfx::B2DPoint aMaximum(rRange.getMaximum()); > + // #i77674# transform to rectangle. Use floor/ceil to get all covered > + // discrete pixels, see #i75163# and OverlayManagerBuffered::invalidateRange > const Rectangle aInvalidateRectangle( > - FRound(aMinimum.getX()), FRound(aMinimum.getY()), > - FRound(aMaximum.getX()), FRound(aMaximum.getY())); > + (sal_Int32)floor(rRange.getMinX()), (sal_Int32)floor(rRange.getMinY()), > + (sal_Int32)ceil(rRange.getMaxX()), (sal_Int32)ceil(rRange.getMaxY())); > > // simply invalidate > ((Window&)getOutputDevice()).Invalidate(aInvalidateRectangle, INVALIDATE_NOERASE); but which probably used sal_Int32 instead of long for no particular reason. Change-Id: I29459ab6c5cd06cc7d786b239221343f8de5170c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104096 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-28rename for disentangling AA and B2D use in VCL drawingLuboš Luňák
This renames AntialiasingFlags::EnableB2dDraw to just Enable, and the AntiAliasB2DDraw names to just AntiAlias. This is in preparation for a second commit that will actually separate the AA and B2D functionality of these flags. Change-Id: I9cc215c5752dfabce41e00e19d9074fc8dc3d4de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103416 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2020-09-11Handle empty rRange in OverlayManager::RangeToInvalidateRectangleStephan Bergmann
Not sure why it started to happen just now, but my Linux UBSan build now failed CppunitTest_sd_tiledrendering with > svx/source/sdr/overlay/overlaymanager.cxx:290:44: runtime error: 1.79769e+308 is outside the range of representable values of type 'int' > #0 in sdr::overlay::OverlayManager::RangeToInvalidateRectangle(basegfx::B2DRange const&) const at svx/source/sdr/overlay/overlaymanager.cxx:290:44 > #1 in sdr::overlay::OverlayManager::invalidateRange(basegfx::B2DRange const&) at svx/source/sdr/overlay/overlaymanager.cxx:311:55 > #2 in sdr::overlay::OverlayManager::impApplyRemoveActions(sdr::overlay::OverlayObject&) at svx/source/sdr/overlay/overlaymanager.cxx:186:13 > #3 in sdr::overlay::OverlayManager::~OverlayManager() at svx/source/sdr/overlay/overlaymanager.cxx:224:21 > #4 in sdr::overlay::OverlayManagerBuffered::~OverlayManagerBuffered() at svx/source/sdr/overlay/overlaymanagerbuffered.cxx:377:9 > #5 in sdr::overlay::OverlayManagerBuffered::~OverlayManagerBuffered() at svx/source/sdr/overlay/overlaymanagerbuffered.cxx:368:9 > #6 in salhelper::SimpleReferenceObject::release() at include/salhelper/simplereferenceobject.hxx:72:49 > #7 in rtl::Reference<sdr::overlay::OverlayManager>::clear() at include/rtl/ref.hxx:180:19 > #8 in SdrPaintWindow::~SdrPaintWindow() at svx/source/svdraw/sdrpaintwindow.cxx:251:22 [...] > #16 in SdrPaintView::DeletePaintWindow(SdrPaintWindow&) at svx/source/svdraw/svdpntv.cxx:83:24 > #17 in SdrPaintView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/svdraw/svdpntv.cxx:417:9 > #18 in SdrObjEditView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/svdraw/svdedxv.cxx:2316:22 > #19 in FmFormView::DeleteWindowFromPaintView(OutputDevice*) at svx/source/form/fmview.cxx:196:14 > #20 in sd::View::~View() at sd/source/ui/view/sdview.cxx:148:9 > #21 in sd::DrawView::~DrawView() at sd/source/ui/view/drawview.cxx:75:1 > #22 in sd::DrawView::~DrawView() at sd/source/ui/view/drawview.cxx:74:1 [...] > #34 in sd::framework::BasicViewFactory::releaseResource(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResource> const&) at sd/source/ui/framework/factories/BasicViewFactory.cxx:229:1 > #35 in sd::framework::ConfigurationControllerResourceManager::DeactivateResource(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> const&, com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) at sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:201:48 > #36 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>, std::allocator<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> > > const&, com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&)::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> const&) const at sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:88:20 [...] > #38 in sd::framework::ConfigurationControllerResourceManager::DeactivateResources(std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>, std::allocator<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> > > const&, com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) at sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:84:5 > #39 in sd::framework::ConfigurationUpdater::UpdateCore(sd::framework::ConfigurationClassifier const&) at sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:249:28 > #40 in sd::framework::ConfigurationUpdater::UpdateConfiguration() at sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:160:21 > #41 in sd::framework::ConfigurationUpdater::RequestUpdate(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) at sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:107:13 > #42 in sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent() at sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:161:33 > #43 in sd::framework::ChangeRequestQueueProcessor::ProcessUntilEmpty() at sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:173:9 > #44 in sd::framework::ConfigurationController::disposing() at sd/source/ui/framework/configuration/ConfigurationController.cxx:126:41 > #45 in cppu::WeakComponentImplHelperBase::dispose() at cppuhelper/source/implbase.cxx:104:13 > #46 in cppu::PartialWeakComponentImplHelper<com::sun::star::drawing::framework::XConfigurationController, com::sun::star::lang::XInitialization>::dispose() at include/cppuhelper/compbase.hxx:90:36 > #47 in sd::DrawController::DisposeFrameworkControllers() at sd/source/ui/unoidl/DrawController.cxx:814:21 > #48 in sd::DrawController::dispose() at sd/source/ui/unoidl/DrawController.cxx:162:5 > #49 in (anonymous namespace)::XFrameImpl::setComponent(com::sun::star::uno::Reference<com::sun::star::awt::XWindow> const&, com::sun::star::uno::Reference<com::sun::star::frame::XController> const&) at framework/source/services/frame.cxx:1485:33 > #50 in (anonymous namespace)::XFrameImpl::close(unsigned char) at framework/source/services/frame.cxx:1692:12 > #51 in SfxFrame::DoClose() at sfx2/source/view/frame.cxx:109:29 > #52 in SfxViewFrame::Notify(SfxBroadcaster&, SfxHint const&) at sfx2/source/view/viewfrm.cxx:1534:28 > #53 in SfxBroadcaster::Broadcast(SfxHint const&) at svl/source/notify/SfxBroadcaster.cxx:49:24 > #54 in (anonymous namespace)::SfxModelListener_Impl::notifyClosing(com::sun::star::lang::EventObject const&) at sfx2/source/doc/objxtor.cxx:146:12 > #55 in SfxBaseModel::close(unsigned char) at sfx2/source/doc/sfxbasemodel.cxx:1439:76 > #56 in SfxBaseModel::dispose() at sfx2/source/doc/sfxbasemodel.cxx:716:13 > #57 in SdXImpressDocument::dispose() at sd/source/ui/unoidl/unomodel.cxx:2708:19 > #58 in LOKitSearchTest::tearDown() at sd/qa/unit/tiledrendering/LOKitSearchTest.cxx:113:22 [...] where the given rRange is apparently empty Change-Id: I7324f1660dc3b782a4e489884a319f4aeb690b44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102492 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-06loplugin:flatten in svx/sdrNoel Grandin
Change-Id: I553d01dc51515930fc7f96fe44d19ed14416e6f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100234 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-25tdf#42949 Fix IWYU warnings in svx/source/sdr/*/*cxxGabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I332729acbf2f5b5b24b6907dad09c5c5ded94f40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89290 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-01-31new loplugin:namespaceindentationNoel Grandin
check indentation of braces in namespace decls, and the comments that often appear with them. This is my penance for messing up the indentation with clang-tidy-modernize-namespaces. As such I have limited it to new-style namespaces for now, and the check is off by default. Change-Id: I4db7f10a81c79bc0eece8f8e3ee564da8bc7f168 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87723 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-15clang-tidy modernize-concat-nested-namespace in svxNoel Grandin
Change-Id: I8a00f2823aa956afb995ee68c9f995bf08ad5239 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86824 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-12Fix typosAndrea Gelmini
Change-Id: Ide33657e227cb165900685af08db40ddda3d8293 Reviewed-on: https://gerrit.libreoffice.org/77283 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-16split methods upCaolán McNamara
Change-Id: Ib6f27574b8a45b29d6887d268f2e291314c796bf Reviewed-on: https://gerrit.libreoffice.org/72382 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-08improve tools::Rectangle->basegfx::B2?Rectangle conversionNoel Grandin
Improve the conversion method to do something reasonable with empty Rectangle. Use the conversion method in more places. Change-Id: I48c13f3d6dae71f39f03f7939101e545c8125503 Reviewed-on: https://gerrit.libreoffice.org/71853 Tested-by: Jenkins Reviewed-by: Regina Henschel <rb.henschel@t-online.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-03-20tdf#42949 Fix IWYU warnings in include/drawinglayer/Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I8daf57df5b8f9c609d4f3ca44bae7366addceb6c Reviewed-on: https://gerrit.libreoffice.org/69151 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-03-08new loplugin constvarsNoel Grandin
detect static variables that can be made const. Thanks to mike kaganski for suggesting this. Here I introduce a new plugin feature - using markers in nearby comments to disable the plugin for specific vars. Some of this stuff was old debugging code. I removed the stuff that was older than 5 years. Change-Id: I6ec7742a7fdadf28fd128b592fcdf6da8257585c Reviewed-on: https://gerrit.libreoffice.org/68807 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-18Simplify containers iterations in svx/source/[s-u]*Arkadiy Illarionov
Use range-based loop or replace with STL functions Change-Id: I2ec3e58cc46c9286ef863c732912ca7a729bab62 Reviewed-on: https://gerrit.libreoffice.org/63522 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-19clang-tidy readability-container-size-emptyNoel Grandin
Change-Id: I1df70b7dff5ebb6048f7fc618789faa15ca5d422 Reviewed-on: https://gerrit.libreoffice.org/61967 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-27loplugin:methodcycles more graph theory for the winNoel Grandin
implemeent a reduction approach, which is good at finding virtual methods that only themselves or their virtual partners. The accessibility GetVisArea stuff is dead since commit 891e41fac81fbd8d5cdb277b26639abfd25a7143 Date: Wed Apr 4 11:23:22 2018 +0200 dead code in AccessibleTextHelper_Impl::UpdateVisibleChildren Change-Id: I78d9d8bca585ecec8394f2c3fe2baa93db0e58f5 Reviewed-on: https://gerrit.libreoffice.org/60912 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-27replace Color(COL_*) with COL_*Noel Grandin
using git grep -lwP "Color\s*\(\s*(COL_\w+)\s*\)" | xargs perl -pi -e "s/Color\s*\(\s*(COL_\w+)\s*\)//g" and then some manual fixup where the resulting expression no longer compiled Change-Id: I0e268d78611c3be40bba9f60ecfdc087a36c0df4 Reviewed-on: https://gerrit.libreoffice.org/50372 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-12More loplugin:cstylecast: svxStephan Bergmann
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: I100e6c14cbf1d780f0e5ebca6b0c9e71ce1caaf7
2017-11-22Make loplugin:unnecessaryparen warn about (x) ? ... : ... after allStephan Bergmann
...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>
2017-03-31tdf#82580 tools: rename Rectangle to tools::RectangleMiklos Vajna
Mostly generated using make check COMPILER_EXTERNAL_TOOL=1 CCACHE_PREFIX=clang-rename-wrapper RENAME_ARGS="-qualified-name=Rectangle -new-name=tools::Rectangle" Except some modules have their own foo::tools namespace, so there have to use ::tools::Rectangle. This commit just moves the class from the global namespace, it does not update pre/postwin.h yet. Change-Id: I42b2de3c6f769fcf28cfe086f98eb31e42a305f2 Reviewed-on: https://gerrit.libreoffice.org/35923 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2016-07-27improve passstuffbyref return analysisNoel Grandin
Change-Id: I4258bcc97273d8bb7a8c4879fac02a427f76e18c Reviewed-on: https://gerrit.libreoffice.org/27317 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-04-18Use const_iterator when possible (svx/gallery2,items,sdr,stbctrls)Julien Nabet
Change-Id: Idd8992fcb76c25120202b24a23820d85ca09e434 Reviewed-on: https://gerrit.libreoffice.org/24174 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2016-02-22loplugin:write only fieldsNoel Grandin
Change-Id: I45895e9845a9037da207f001fece427452ed499f
2016-02-09Remove excess newlinesChris Sherlock
A ridiculously fast way of doing this is: for i in $(pcregrep -l -M -r --include='.*[hc]xx$' \ --exclude-dir=workdir --exclude-dir=instdir '^ {3,}' .) do perl -0777 -i -pe 's/^ {3,}/ /gm' $i done Change-Id: Iebb93eccbee9e4fc5c4380474ba595858a27ac2c Reviewed-on: https://gerrit.libreoffice.org/22224 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2015-12-11tdf#69977: uno::Sequence is expensiveNoel Grandin
when used as a mutable data-structure. Plain std::vector halves the time taken to display the chart dialog Create a class to represent the std::vector we are going to be passing around, and move some of the utility methods into it to make the code prettier. Also create an optimised append(&&) method for the common case of appending small temporaries. Change-Id: I7f5b43fb4a8a84e40e6a52fcb7e9f974091b4485
2015-11-10loplugin:nullptr (automatic rewrite)Stephan Bergmann
Change-Id: I71682f28c6a54d33da6b0c971f34d0a705ff04f5
2015-09-16boost->stdCaolán McNamara
Change-Id: Ic18be8b86727dd1179a7e39c70493d088ed00557
2015-07-16loplugin:unusedmethods svxNoel Grandin
Change-Id: I92158457b3ffaaf7c84c6f4c87708d766c8c9f61 Reviewed-on: https://gerrit.libreoffice.org/17117 Reviewed-by: Noel Grandin <noelgrandin@gmail.com> Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-05-26convert INVALIDATE constants to scoped enumNoel Grandin
fixing a bug in Window::ImplMoveAllInvalidateRegions, and improving the IDL docs for XWindowPeer Change-Id: Idb774ac913945db2ac7c492c11cf86c370624c3d
2015-05-20convert ANTIALIASING constants to scoped enumNoel Grandin
Change-Id: I175b8ea4e8bc01c3cdd3dd90506eba01b35e0085
2015-03-09Add sdr::overlay::OverlayManager::getModel()Miklos Vajna
Can't access the SdrModel from sdr::overlay::OverlayObjectList otherwise. Change-Id: I0530985fb79659bd9de95d944b06edfb883f4403
2015-03-07sdr::overlay::OverlayManager: rmOutputDevice -> mrOutputDeviceMiklos Vajna
Change-Id: I8fa5cc15e2d69b572f59f254eeeae051865a5b5f Reviewed-on: https://gerrit.libreoffice.org/14785 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org>
2014-10-15loplugin: cstylecastNoel Grandin
Change-Id: I0ccdd2ce18336afea67a3f296b26b2de50f14808
2014-09-30fdo#82577: Handle RegionNoel Grandin
Put the VCL Region class in the vcl namespace. Avoids clash with the X11 Region typedef. Change-Id: I6e008111df7cf37121fbc3eaabd44a8306338291
2014-09-23fdo#82577: Handle WindowNoel Grandin
Put the VCL Window class in the vcl namespace. Avoids clash with the X11 Window typedef. Change-Id: Ib1beb7ab4ad75562a42aeb252732a073d25eff1a