summaryrefslogtreecommitdiff
path: root/vcl/source/gdi
AgeCommit message (Collapse)Author
2021-08-02convert #defines to OUStringLiteralNoel Grandin
mostly by doing $ git grep -l '#define.*\"' -- *.cxx | xargs perl -pi -e 's/^#define\s+(\w+)\s+(\".*\")/constexpr OUStringLiteral \1 = u\2;/g' Change-Id: Idface893449b0ef2a3c5254865a300585d752fbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119669 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-30convert TextAlign to scoped enumCaolán McNamara
Change-Id: Id2c466eacb44f0ea6adba75a0ac0be8be8e7ed4c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119682 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-30drop FontAlign alias of TextAlignCaolán McNamara
Change-Id: If69ce85482fdb7d33d00fb0cf9b4d4609bb92cd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119681 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-29rtl::Static -> static localNoel Grandin
in a handful cases, like a map or a vector, we don't need init on demand at all, the default constructor can be laid out at compile time Change-Id: I2d404584b5aa23db7b1f779e160e04e72dd2aa74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119656 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-29Avoid some division by zeroStephan Bergmann
The first of which was seen when running under UBSan `instdir/program/soffice --headless --convert-to pdf` of caolan/id:002485,src:002216,op:havoc,rep:8.jpg from the crash-testing corpus. The second one (when computing nGrfDPIy) was not observed, but lets assume that it could happen just as well, and keep the code symmetric. Change-Id: Idf9f9a84f3b05c7cfe3c66db753c73d2cbf812be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119650 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-07-21flatten vector in ImplMultiTextLineInfoNoel Grandin
Change-Id: I30f40c3906c38d29bab7aeef0a9562bd96934a72 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119329 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-13Add PowerPoint compatible screen size for ImpressJun NOGATA
I realized that Impress does not have the same screen size as PowerPoint. tdf#142286, tdf#142288 When I load a PowerPoint slide into Impress, it was a custom size, but when I add this screen size, it shows up with the screen size name. And when I load a slide with the added screen size into PowerPoint, it also shows up with the PowerPoint preset screen size name and not the custom size. The screen sizes I have added are as follows * Widescreen (Current PowerPoint default) * On-scren Show (4:3) * On-scren Show (16:9) (Google slide defualt) * On-scren Show (16:10) Change-Id: I33e2bbc36b2c92ecbb85c610c864f735bf540d03 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116374 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-12move the existing std::unique_ptr<tools::Long[]> rather than duplicating itCaolán McNamara
Change-Id: I8686fc15254f922b1963eb86151c6aa770c2d578 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118758 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-12cid#1487034 explicitly pass len of aArrayCaolán McNamara
Change-Id: Ia632df2967d3aa75ba0bcedcc899851dc80bab69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118757 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-07-09Add Handler for MetaTextArray Readpanoskorovesis
The handler separates the MetaTextArrayAction::Read from metaact.hxx Read implementation is now in SvmReader.hxx Change-Id: Ie74ef5b2e44d48c8c8a6d8efe9adda956cde4d3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118633 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-07-02tdf#143149 fix crash if app exits while print progress is runningCaolán McNamara
dismiss the dialog if its parent goes away, but leave the print job running Change-Id: Ic29ee0300a7d9476ad27a2594a555312e30c74f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118244 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-06-28Add EPS cppunit test to vcl.panoskorovesis
The test creates an EPS along with a second metafile and tests their attributes. mtfxmldump.cxx was edited to support EPS. Change-Id: I43495304aaf191e1a8ad034b96ff59de085a0630 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117702 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-28loplugin:indentation improve checks for brace alignmentNoel Grandin
Change-Id: I333100fda7e181f68f36b03279b3fbb8cb768310 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117615 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-23disable ligatures for monospace fontsCaolán McNamara
we don't want e.g. a ffi ligature for Courier/Nimbus Mono PS Change-Id: I292c6e2ea217b511b4affcd8dab4a4bda85ab5da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117669 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-06-23Add LayoutMode cppunit test to vcl.panoskorovesis
The test sets two LayoutModes (using ComplexTextLayoutFlags) and checks their attributes. Change-Id: Id765c150485c6f06c1326498a7f1b40b8f9c12fa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117575 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-23Add TextLanguage cppunit test to vcl.panoskorovesis
The test sets two languages for the metafile and checks their attributes. Change-Id: Ibb23c03af48af5c40ea65593917a40a928fd1280 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117368 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-23Add Comment cppunit test to vcl.panoskorovesis
The test creates two MetaCommentActions from the GDIMetafile and checks their attributes and contents. Change-Id: I748a6fa5dcf0dc09359fb48ea0bf3d7ceef3dbcf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117245 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-21tdf#142560 handle cached glpyh items in ImplGlyphFallbackLayoutMark Hung
Fallback layout beyond level1 isn't generated because pre-caculated glyph items does not contain glyph items that needs to fallback, i.e. when calling ImplLayoutArgs::PrepareFallback. Hence it produce no maFallbackRuns and maRuns. The patch changes ImplLayoutArgs::PrepareFallback so that it use pre-caculated glyph items in the next level to create maRuns to ensure the same fallback layouts are genrated as layouts generated without pre-caculated glyph items. Change-Id: I672f3be6c4915892792b3cb968ad4a325465ccc0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117105 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2021-06-16Add MoveClipRegion cppunit test to vclpanoskorovesis
The test creates two MoveClipRegions and checks their attributes. mtfxmldump.cxx was modified to support MoveClipRegion case. Change-Id: Ibfabf9d4048cf94e43c259e411a6c59b73baff34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117153 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-14Add ClipRegion cppunit test to vclpanoskorovesis
The test creates multiple ClipRegions with different shapes and tests their attributes. Makefile was edited to support basegfx::B2DPolyPolygon Change-Id: Iabdf744e1749627b2bc4cbc0c8e933b38552e785 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116959 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-11MetaAction::Clone() -> constLuboš Luňák
Change-Id: Ie5785127a1fb202b146710dfedf3838d2a607670 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117035 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-06-11Simplify Sequences initializations (vcl)Julien Nabet
Change-Id: Id93bde17dbc4c71ad93bc094b94408fc9e39ec98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117055 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-06-09Add GradientEx cppunit test to vclpanoskorovesis
The test creates two GradientEx and checks their attributes. In mtfxmldump.cxx the case regarding GradientEx was completed Change-Id: I52f2303fa3123b97fb8a4b0783610c0bae300fc8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116819 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-06-04sw HTML export: allow custom DPI for the bitmaps of shapesMiklos Vajna
But leave the CSS pixel size of them unchanged in the HTML markup. Also add some documentation on the various options, so one doesn't have to dig them out from testcases. Change-Id: I6c6ee4e9c98d674f44e7c5835f2e6a6737e13f34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116722 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-06-04sw HTML export: fix pixel size of shapesMiklos Vajna
- the twips logic size was set, but it was consumed as mm100 logic size, so the pixel size was about half of the correct one - the HTML export didn't write a logic size ("CSS pixels size") for shapes Change-Id: I37f6b4acde9d1298fae81f9975e9db95485631ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116691 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2021-05-28Select svl crypto backend in configure.acJan-Marek Glogowski
And define USE_CRYPTO_* macros to select it in code. This way we can get rid of all the HAVE_FEATURE_NSS and _WIN32 variations. This also reverts 1f6b98f21495f0ecc5ded493cb3273da03852191. Change-Id: I101e4ae2f49cdb127d59bd49a4f1c86304ca2238 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116338 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2021-05-28vcl: handle fallback glyph offset for vertical writing.Mark Hung
When GenericSalLayout::MoveGlyph() is called from MultiSalLayout::AdjustLayout(), new position is calculatd by adding glyph advances ( i.e. glyph items' m_nNewWidth ). To move the glyph, the moving offset should be calculated based on the corresponding position, i.e. m_nXOffset v.s. m_LinearPos.X(). Change-Id: I912d499f49f69f68d8388bc8677e6b47bfb6f066 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115926 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2021-05-27no need to allocate these on the heapNoel Grandin
Change-Id: I0740f7194c589d6949a816f365cd54403be72118 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116260 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-20move some headers inside modulesNoel Grandin
Change-Id: I2baa9e9334850cf72e8ea1e96a2177a1c052e589 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115868 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-19ImplPlayWithRenderer never checks its OutputDevice against nullptrCaolán McNamara
just pass a reference instead and spread that around to some similar cases Change-Id: Ifb2dee8c7bf02a9f01982b928c90666cbbdd84fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115759 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-18cid#1484905 Dereference before null checkCaolán McNamara
Change-Id: Ia69cb70cda1ba5bc56bec7d480db1f89b7b9200d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115734 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-17vcl PDF export: fix re-exporting PDF images with arbitrary page-level rotationMiklos Vajna
Building on top of commit bd520b177637d4b7d9d93733103cff17a3c91b0a (vcl PDF export: fix re-exporting PDF images with page-level rotation, 2019-11-06), this was already working for 90 degrees, now generalize this to work with 180 degrees as well. Change-Id: I5a5d51662399814d5554d7c2cb86a6c9a2974012 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115705 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
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-05-13inline some typedefsNoel Grandin
Change-Id: I1608e03ff9f6fbc55987010e88897e034b690b3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115552 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-11loplugin:noexceptmoveNoel Grandin
after commit adfd91d24678053b9a1475ad6985eb1fc548706a Date: Mon May 10 20:17:11 2021 +0200 fix leak in SalLayoutGlyphs Change-Id: I495106d9930ce6f2dad8e62fd89bc2970f747088 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115392 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-11change usage of boost::hash_combine to o3tl::hash_combineTomaž Vajngerl
Change-Id: I840518a36ac43d36c95f38e09c7bfcfe1a25a525 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114984 Tested-by: Tomaž Vajngerl <quikee@gmail.com> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-05-11gtk4: menu item text seems to be parsed as xml now, so escape the basicsCaolán McNamara
"Zoom & Pan" in impress causing trouble Change-Id: If738eebaa3d9fd9abdd09a4fba4abce600c28743 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115363 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-11fix leak in SalLayoutGlyphsNoel Grandin
we forgot to delete the extra impls vector Also make more use of std::unique_ptr Change-Id: I2c745c0ad2b7ad62d368e9702bd2c32c734442fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115375 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-06cid#1401334 silence Uncaught exceptionCaolán McNamara
Change-Id: I7d0d9324afdfd5e06e2def62919dbefb78abdb3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115173 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-05loplugin:constmethodNoel Grandin
Change-Id: I7913fd8144d521b8293ac43036d0fad82e457cd1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115145 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-05vcl: adjust LayoutText() for vertical writing.Mark Hung
Revert 58af692e2814 "tdf#111967 translate offsets so it is relative to vorigin", which use hb_font_add_glyph_origin_for_direction to change the origin for vertical writing. This caused major problem in Y-axis. For X-axis, align the baseline of the vertical run to the center of the rotated horizontal run, by adding "(ascender + descener) / 2. Besides the alignment mentioned above, underlying text rendering code should be able to render properly based on the positions that Harfbuzz API creates. Change-Id: Ic1ef1f734686d0e61c4b2a6bf7feb7c870bba84f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115014 Tested-by: Jenkins Reviewed-by: Mark Hung <marklh9@gmail.com>
2021-05-03loplugin:stringadd improvement for appending numbersNoel Grandin
I was wrong, the Concat framework already optimised appending numbers by stack-allocating small buffers, so include them in the plugin Change-Id: I922edbdde273c89abfe21d51c5d25dc01c97db25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115037 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-03vcl: remove MetricVectorChris Sherlock
Change-Id: Ib700887ca79f423c65dfb75eea36bbfd808fa172 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114976 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-05-01Related: cid#1478001 CreateVirtualDevice never passed a null pGraphics argCaolán McNamara
Change-Id: I0701b15a28ab3583586c0c8018c511e100b41a93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114948 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-04-30simplify WallpaperNoel Grandin
All of it's member fields are already COW types, so it doesn't need the complication Change-Id: I44e402e8e80fe96462fc4e1aa06b9ec6815e3cd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114933 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-29do not apply line dashing in drawinglayer (tdf#136957)Luboš Luňák
basegfx::utils::applyLineDashing() is not as good as the actual VCL backend dashing, and there are some rounding errors because of all the canvas transformation matrices or whatever, which leads to the drawing problem. So use LineInfo to carry the dashing information. As a part of this change, also make LineInfo use doubles instead of ints. The use of transformation matrices means that the values may be fractional and less than one. Change-Id: Ia5ac7d266cab344b7137052c81fbd96c1ce28003 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114710 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2021-04-29remove support for BITMASK in vcl backendsNoel Grandin
Rather use a proper alpha channel if we need transparency. This is another small step towards merged alpha in our vcl layer. I suspect the intent in a lot of this code was to save memory. Which have been a thing way back then, but these days our backends mostly end up doing a copy-and-convert to a real alpha channel anyway, so the existing code is actually now a pessimisation. Change-Id: I4a2bcbb2f76b841f05bc00580f364492829c69de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114808 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-28use string_view in INetURLObject::encodeNoel Grandin
Change-Id: Ib686c6872388b02c8939d3b65f6bd25cda348bc8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114754 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-27loplugin:stringadd convert chained append to +Noel Grandin
which can use the more efficient *StringConcat Also fix a crash in stringview plugin which started happening while I working on this. Change-Id: I91a5b9b7707d1594d27d80b73930f5afac8ae608 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114568 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-27use more string_view in tools/streamNoel Grandin
Change-Id: I2a957cd72d71fea717734488cdb3670e0bcdd6f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114657 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>