summaryrefslogtreecommitdiff
path: root/canvas/source
AgeCommit message (Collapse)Author
2020-01-24loplugin:makeshared in basctl..canvasNoel Grandin
Change-Id: I1461da594db222abbaeccfb636194b9790f5dbe8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87271 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-14clang-tidy modernize-concat-nested-namespace in basic..canvasNoel Grandin
Change-Id: I74a575e6ca7829ee252c0e315fc337ea223c944f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86758 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-10use more std::make_sharedNoel Grandin
found using 'git grep', I tried using clang-tidy, but it only successfully found a tiny fraction of these Change-Id: I61c7d85105ff7a911722750e759d6641d578da33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86526 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-19Fix typoAndrea Gelmini
Change-Id: Ib72a83e595b80d6084be65b10a9ff20458175939 Reviewed-on: https://gerrit.libreoffice.org/85488 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-19Fix typoAndrea Gelmini
Change-Id: I05a1d6f745e0df1385932585947aba66981209f2 Reviewed-on: https://gerrit.libreoffice.org/85490 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-18sal_Char->char in canvas..codemakerNoel Grandin
Change-Id: Iaf46b42a17bc00da0f86daeafea7b5346c4a6360 Reviewed-on: https://gerrit.libreoffice.org/85372 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-10force vclcanvas use with Skia, like it's with OpenGL (tdf#129076)Luboš Luňák
Related to tdf#93870. Change-Id: Ie0cb64c05c0fde6a774ce8558d06943870e775fe Reviewed-on: https://gerrit.libreoffice.org/84758 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-12-05loplugin:external (clang-cl)Stephan Bergmann
...plus loplugin:consttobool and loplugin:fakebool fallout Change-Id: Ie3d8121815c080b13bea6d9deca1eb138ca56138 Reviewed-on: https://gerrit.libreoffice.org/84515 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-01Introduce o3tl::optional as an alias for std::optionalStephan Bergmann
...with a boost::optional fallback for Xcode < 10 (as std::optional is only available starting with Xcode 10 according to <https://en.cppreference.com/w/cpp/compiler_support>, and our baseline for iOS and macOS is still Xcode 9.3 according to README.md). And mechanically rewrite all code to use o3tl::optional instead of boost::optional. One immediate benefit is that disabling -Wmaybe-uninitialized for GCC as per fed7c3deb3f4ec81f78967c2d7f3c4554398cb9d "Slience bogus -Werror=maybe-uninitialized" should no longer be necessary (and whose check happened to no longer trigger for GCC 10 trunk, even though that compiler would still emit bogus -Wmaybe-uninitialized for uses of boost::optional under --enable-optimized, which made me ponder whether this switch from boost::optional to std::optional would be a useful thing to do; I keep that configure.ac check for now, though, and will only remove it in a follow up commit). Another longer-term benefit is that the code is now already in good shape for an eventual switch to std::optional (a switch we would have done anyway once we no longer need to support Xcode < 10). Only desktop/qa/desktop_lib/test_desktop_lib.cxx heavily uses boost::property_tree::ptree::get_child_optional returning boost::optional, so let it keep using boost::optional for now. After a number of preceding commits have paved the way for this change, this commit is completely mechanical, done with > git ls-files -z | grep -vz -e '^bin/find-unneeded-includes$' -e '^configure.ac$' -e '^desktop/qa/desktop_lib/test_desktop_lib.cxx$' -e '^dictionaries$' -e '^external/' -e '^helpcontent2$' -e '^include/IwyuFilter_include.yaml$' -e '^sc/IwyuFilter_sc.yaml$' -e '^solenv/gdb/boost/optional.py$' -e '^solenv/vs/LibreOffice.natvis$' -e '^translations$' -e '\.svg$' | xargs -0 sed -i -E -e 's|\<boost(/optional)?/optional\.hpp\>|o3tl/optional.hxx|g' -e 's/\<boost(\s*)::(\s*)(make_)?optional\>/o3tl\1::\2\3optional/g' -e 's/\<boost(\s*)::(\s*)none\>/o3tl\1::\2nullopt/g' (before committing include/o3tl/optional.hxx, and relying on some GNU features). It excludes some files where mention of boost::optional et al should apparently not be changed (and the sub-repo directory stubs). It turned out that all uses of boost::none across the code base were in combination with boost::optional, so had all to be rewritten as o3tl::nullopt. Change-Id: Ibfd9f4b3d5a8aee6e6eed310b988c4e5ffd8b11b Reviewed-on: https://gerrit.libreoffice.org/84128 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-01Rewrite uses of boost::optional, Windows reduxStephan Bergmann
...like 47dd2c63f649828a833543e21d4eca5866ec9ebe "Rewrite uses of boost::optional" Change-Id: I95373e151201563dcc9eb796f15121bc81341bfd Reviewed-on: https://gerrit.libreoffice.org/84138 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-26Fix typoAndrea Gelmini
Change-Id: Ib0c7988306a55740281daa75f24e0d393be9bb02 Reviewed-on: https://gerrit.libreoffice.org/83823 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-11-26loplugin:consttobool (clang-cl)Stephan Bergmann
Change-Id: I81fea38cd737a8be74e6ece333ca37cc434a1c33 Reviewed-on: https://gerrit.libreoffice.org/83765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22Extend loplugin:external to warn about classesStephan Bergmann
...following up on 314f15bff08b76bf96acf99141776ef64d2f1355 "Extend loplugin:external to warn about enums". Cases where free functions were moved into an unnamed namespace along with a class, to not break ADL, are in: filter/source/svg/svgexport.cxx sc/source/filter/excel/xelink.cxx sc/source/filter/excel/xilink.cxx svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx All other free functions mentioning moved classes appear to be harmless and not give rise to (silent, even) ADL breakage. (One remaining TODO in compilerplugins/clang/external.cxx is that derived classes are not covered by computeAffectedTypes, even though they could also be affected by ADL-breakage--- but don't seem to be in any acutal case across the code base.) For friend declarations using elaborate type specifiers, like class C1 {}; class C2 { friend class C1; }; * If C2 (but not C1) is moved into an unnamed namespace, the friend declaration must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither qualified nor a template-id and the declaration is a function or an elaborated-type-specifier, the lookup to determine whether the entity has been previously declared shall not consider any scopes outside the innermost enclosing namespace.") * If C1 (but not C2) is moved into an unnamed namespace, the friend declaration must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882> "elaborated-type-specifier friend not looked up in unnamed namespace". Apart from that, to keep changes simple and mostly mechanical (which should help avoid regressions), out-of-line definitions of class members have been left in the enclosing (named) namespace. But explicit specializations of class templates had to be moved into the unnamed namespace to appease <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of template from unnamed namespace using unqualified-id in enclosing namespace". Also, accompanying declarations (of e.g. typedefs or static variables) that could arguably be moved into the unnamed namespace too have been left alone. And in some cases, mention of affected types in blacklists in other loplugins needed to be adapted. And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is not moved into an unnamed namespace (because it is declared in sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is. GCC warns about such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler doesn’t give this warning for types defined in the main .C file, as those are unlikely to have multiple definitions." (<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>) The warned-about classes also don't have multiple definitions in the given test, so disable the warning when including the .cxx. Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4 Reviewed-on: https://gerrit.libreoffice.org/83239 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-06tdf#42949 Fix IWYU warnings in canvas/*/*cxxGabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: Ie1f6fe98f4e8bc792f5eae1ccdd697c997707004 Reviewed-on: https://gerrit.libreoffice.org/81930 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-30tdf#42949 Fix IWYU warnings in canvas/source/*/*hxxGabor Kelemen
Except directx/ Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I4504e087edfd837a3a91df49e296bbf40778b030 Reviewed-on: https://gerrit.libreoffice.org/81586 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-11tdf#40534 correctly match page with memory slabJan-Marek Glogowski
LO has a page manager to match system memory backbuffers with graphics memory on DX accelerated Windows. Internally this uses an other rectangle implementation, the SurfaceRect, which had some great comments like: // a size of [0,0] therefore denotes a one-by-one rectangle. In commit 230dbe2e43f3ee2cd285f9cdfe0d57e1ca08b8fe ("#144866# Add one pixel border around textures, a bunch of drivers clobber those with dirt), the allocation was increased by a pixel border, but this doesn't work correctly, because now an allocation of the page size wouldn't fit anymore into a page, because the pages size is decreased before comparison. In the end the mixup suffered from hard to handle off-by-one problems. This patch fixes the bug, but eventually SurfaceRect should be replaced by an extended basegfx::B2IBox. But since B2IBox uses two ranges, instead of a point and a size, it would need a lot of conversations to I2Point and I2Size objects with the current Page::insert algorithm. Change-Id: Ia725b4f8ed4fb270f2eb3734e492062bc7f13793 Reviewed-on: https://gerrit.libreoffice.org/80628 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-10-05The SystemEnvData passed into the canvas factories appears to be unusedStephan Bergmann
It was passed in as aArg[1] ever since d551190e8311242eadda4a3e82efff160175cb04 "INTEGRATION: CWS canvas05", but I can't find any current use of that specific argument in canvas/source/ (assuming that all the factories are implemented there), nor can I find any trace in the git history of it ever havig been used. That means that Window::GetSystemDataAny is unused now and can be removed. Change-Id: I16efe548afb5cc3e0606cffea135f7e6674d5def Reviewed-on: https://gerrit.libreoffice.org/80295 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-05The checks should apparenty be maArguments.getLength() >= 5Stephan Bergmann
...given that maArguments[4] is accessed two lines further down, in both cases. Looks like typos in b6a7c4da52acf45a7b69d1e81cf9548f8552752e "INTEGRATION: CWS canvas05". Change-Id: Iee8a111126f2b81c9e586fe8e3c569fbd81dd8f4 Reviewed-on: https://gerrit.libreoffice.org/80289 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-04Related: tdf#127529 make it harder to misunderstand this VirtualDevice ctorCaolán McNamara
Change-Id: I250bc68da118a994a2e0ff8ab9eb11112827756d Reviewed-on: https://gerrit.libreoffice.org/80158 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-10-02loplugin:fragiledestructor (clang-cl)Stephan Bergmann
Change-Id: Ibf5b8022df00bb6c49b53853811b6503146dddd7 Reviewed-on: https://gerrit.libreoffice.org/79971 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:data (clang-cl)Stephan Bergmann
Change-Id: Ib8b2bc1c5f7b27a646036ce23cae2b6a06edd038 Reviewed-on: https://gerrit.libreoffice.org/79922 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:stringconstant (clang-cl)Stephan Bergmann
Change-Id: Id1a82cea4444255fdb693e126b7571a406094624 Reviewed-on: https://gerrit.libreoffice.org/79916 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:simplifyconstruct (clang-cl)Stephan Bergmann
Change-Id: I08da288a88c2bce1d4250ec77f17bd483e6bc09c Reviewed-on: https://gerrit.libreoffice.org/79911 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01lok jsdialogs: Introduce dumping of widgets hierarchy to vcl::Window.Jan Holesovsky
Change-Id: Ie3267e1f888df371d281e81ead437a150aa8dc1c Reviewed-on: https://gerrit.libreoffice.org/79796 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2019-09-26remove internal use of 16-bit packed formatsNoel Grandin
none of our supported hardware uses these any more Change-Id: Ic95d6df619a05df0bec1f5870596cb2bb3bcc6cb Reviewed-on: https://gerrit.libreoffice.org/79476 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-22loplugin:constmethod in canvas,comphelperNoel Grandin
Change-Id: I8790355369159b2325d3992712b2f65e0401db86 Reviewed-on: https://gerrit.libreoffice.org/77930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-08-16Fix typosAndrea Gelmini
Change-Id: I207333e9bafc5d6c38ffa53a303046e437b7a815 Reviewed-on: https://gerrit.libreoffice.org/77607 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-08-16use more TOOLS_WARN_EXCEPTIONNoel Grandin
Change-Id: Ic21ea11ff106e0732bb8fa600ef39a549d7bda86 Reviewed-on: https://gerrit.libreoffice.org/77569 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-31Improved loplugin:stringconstant (now that GCC 7 supports it): canvasStephan Bergmann
Change-Id: Ia01e9c6a5a730e0efe97a9315810a5dfef5ec98f Reviewed-on: https://gerrit.libreoffice.org/76693 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-27tdf#74702: vcl add OutputDevice::Flush() to remove GetOutDevType()Chris Sherlock
Change-Id: I3e8775845e471517945876a48696747a46e5270a Reviewed-on: https://gerrit.libreoffice.org/75616 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-07-19loplugin:referencecasting in canvas..chart2Noel Grandin
Change-Id: I3a3671b5c44d1a7e5ca320d3d76dd5d902382cbc Reviewed-on: https://gerrit.libreoffice.org/75935 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-04remove some unneede vcl/bitmap.hxx includesNoel Grandin
Change-Id: Ibdc79538276992193e61f6dc16ddd3fd1ab80b82 Reviewed-on: https://gerrit.libreoffice.org/75069 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-11Use hasElements to check Sequence emptiness in accessibility..canvasArkadiy Illarionov
Similar to clang-tidy readability-container-size-empty Change-Id: I24c3f04b4eed3c1cd973166885660f113a26844f Reviewed-on: https://gerrit.libreoffice.org/71805 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-28Log used / selected canvas serviceJan-Marek Glogowski
Change-Id: If62dcbffe6514966418bbf78ef3392cc3219f159 Reviewed-on: https://gerrit.libreoffice.org/73074 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-05-22New loplugin:dataStephan Bergmann
...following up on 1453c2c8f13bac64ecd1981af7cebf1c421808ac "prefer vector::data to &vector[0]" Change-Id: I7c113747d92d144a521d49b89384dd8bf1215c01 Reviewed-on: https://gerrit.libreoffice.org/72765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-22fix complex transformation in CanvasHelper::fillTexturedPolyPolygon()Luboš Luňák
There's pretty much the same code in CanvasHelper::fillTexturedPolyPolygon() that has received various fixes over the time, but this code not, so fix it as well. Change-Id: I7293d4d67dff2d5276928bb3ab25adfb883ce3ca Reviewed-on: https://gerrit.libreoffice.org/72700 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-13fix wrong SET/QUERY flags passed to uno::ReferenceNoel Grandin
By creating deleted methods for the wrong calls. Avoids the compiler needing to construct a temporary Change-Id: I3b8c648d6bb22d22827bf74f21ea5a2a17fc0f6a Reviewed-on: https://gerrit.libreoffice.org/72103 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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-04-15remove or change salbtype.hxx includes with the specific oneTomaž Vajngerl
We probably don't need salbtype.hxx include, but if we do we can now change it with a more specific one - namely BitmapPalette.hxx in most cases. This doesn't yet touch the includes in VCL. Change-Id: Ie3067ccb2eec425650b41ce7fca48e368215f489 Reviewed-on: https://gerrit.libreoffice.org/70761 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-04-12loplugin:sequentialassign in accessiblity..canvasNoel Grandin
Change-Id: I984717138ac85c1af5fc363fda06f5c2b5497965 Reviewed-on: https://gerrit.libreoffice.org/70641 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-10Fix typoAndrea Gelmini
Change-Id: Id9d19965511760839e8e93488b1cc6a98fbd4a5c Reviewed-on: https://gerrit.libreoffice.org/70493 Tested-by: Jenkins Reviewed-by: himajin100000 <himajin100000@gmail.com> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-05Replace legacy dynamically-loaded functions with statically linked onesMike Kaganski
We don't need the dynamic load complexity for these now with baseline Windows version being Windows 7 SP1. Stuff used only for compatibility with older versions was dumped. Change-Id: I810f271796cfd875cfa18a3081c9ad444fe57b3e Reviewed-on: https://gerrit.libreoffice.org/70321 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-04-04Fix typoAndrea Gelmini
Change-Id: I472dbda6c7323e1ec97a1664fa0e6633e7fa90c9 Reviewed-on: https://gerrit.libreoffice.org/70227 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-03-27loplugin:typedefparam (clang-cl)Stephan Bergmann
Change-Id: I07604028845c49cc084927e21db7f21c5d053bab Reviewed-on: https://gerrit.libreoffice.org/69796 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-03-27loplugin:unnecessaryparen (clang-cl)Stephan Bergmann
Change-Id: I0ce344a2a69604467d5bf579a2fdcaae172d5f54 Reviewed-on: https://gerrit.libreoffice.org/69788 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-03-06loplugin:unnecessaryparen improve member expressionNoel Grandin
Change-Id: I304621018cb1e2a47e478e86df4229bcf2176741 Reviewed-on: https://gerrit.libreoffice.org/68757 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-05re-land "new loplugin typedefparam""Noel Grandin
This reverts commit c9bb48386bad7d2a40e6958883328145ae439cad, and adds a bunch more fixes. Change-Id: Ib584d302a73125528eba85fa1e722cb6fc41538a Reviewed-on: https://gerrit.libreoffice.org/68680 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-03-04Revert "new loplugin typedefparam"Noel Grandin
This reverts commit 9865440d217d975206a3f91612f0666312bc8fd8. This is not ready to land yet, seems like the latest update of the logic reveals a bunch more places I need to fix before it can land.
2019-03-04new loplugin typedefparamNoel Grandin
verify that parameters use the exact same typedef-names (if any) in definition and declaration Change-Id: I55d2817f599b0253904dce2d35a1a93967e15a77 Reviewed-on: https://gerrit.libreoffice.org/68439 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-02-25tdf#42949 Fix IWYU warnings in include/canvas/Gabor Kelemen
Found with bin/find-unneeded-includes Only removal proposals are dealt with here. Change-Id: I93d516146ba44d83f84cb245e712ef6d14634a18 Reviewed-on: https://gerrit.libreoffice.org/68035 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>