summaryrefslogtreecommitdiff
path: root/vcl/qa
AgeCommit message (Collapse)Author
2020-02-10restore unit test code accidentally deletedNoel Grandin
in c05680bd27f0f9fc9d5371f4ef97fd45184de1c6 Change-Id: I8d35ed9411c51b8bfffc2ca67d9d8de94ba067dc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88355 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-07rename GetBaseOfstForFly->GetBaseOffsetForFlyNoel Grandin
Change-Id: Ieeeaa53d916e192e7219d7d3d405584a22249e7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88181 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-07test: move component context from subclasses to BootstrapFixtureMiklos Vajna
To avoid duplication. Change-Id: I0ee7c26d5d55bd868ead04c77e7f4ef2582f90e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88138 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-04tdf#129976 PDF export of PDF images: adapt transparency to renderingMiklos Vajna
The bugdoc has a transparent PDF image, and we currently put a white background behind that in Impress, given that vcl::RenderPDFBitmaps() works with Bitmap instances, not BitmapEx ones. This means that in case we preserve transparency during PDF export, the content that was rendered OK now becomes unreadable. Adapt the PDF export to do the same as rendering by putting a white background behind the PDF image. Change-Id: I4edcb12fab71bb305d97a50d20fbfbf86d9aab85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87910 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2020-02-03make some headers privateCaolán McNamara
as shown with ./bin/find-headers-to-move-inside-modules.py Change-Id: I7662417e76fe00c0fc352957560e104b6c2a3d61 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87850 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-02-03fix incorrect Skia scanline test in vcl_bitmap_testLuboš Luňák
Change-Id: Ia485601a08e2c0093e802c175041b76f94cbbb63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87848 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-01-31clang-tidy modernize-concat-nested-namespaceNoel Grandin
Change-Id: Iab35a8b85b3ba1df791c774f40b037f9420a071a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86708 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-21PDF export: don't ignore FilterData specified by UNO clientsMiklos Vajna
The data was given to the PDF filter, but then we stopped iterating right after finding our output stream. Seems this was always like this, ever since commit 4111b430a0a7954416ff95794a8ffb8fbc4472e3 (#101570#: added pdf filter, 2002-08-13). Change-Id: If26661935c22a7b7959fda5f92b4d50b15f13a35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87152 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-01-20PDF export: skip pointless downsampling for very small imagesMiklos Vajna
Regression from commit b6588bd7c831ce88a29131ca7ea8d3f3e082564e (Reduce image resolution by default in PDF Export, 2014-03-02) the problem is that in case you have small enough bitmaps, then these used to look OK at reasonable zoom levels, but now we intentionally scale down bitmaps by default. That makes little sense for tiny images, do this only for large ones. Change-Id: Iff15325b842b47d9285a7c0f83f402897498392d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87086 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-01-16implement xor drawing for SkiaLuboš Luňák
Fortunately it seems this is largely unused (I can see 5 invocations when running all LO tests), so I went for the crude approach of redirecting all drawing to a temporary bitmap and then manually xor-ing all the data after each draw operation. This could be optimized if needed. Change-Id: I6fc91362dd93188775b371d5548a68a58645f85c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86776 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-01-15tweak GetBitmap methods in BitmapExNoel Grandin
so we return a const& for the normal case, just like other methods, which reduces copying. This revealed that CreateDisplayBitmap in Bitmap can be const. Change-Id: I9f9b9ff0c52d7e95eaae62af152218be8847dd63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86836 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-15external: update pdfium to 4021Miklos Vajna
Change-Id: I1c3280e811bf65641bf559e3f01bc62e609548f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86811 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2020-01-02tdf#129662 vcl: rtl: fix scrollbar in dropdownsMiklos Vajna
Regression from commit d4714b0fdb81e6e561ae526cc517ecc9a40a603e (tdf#101978 vcl combobox/listbox floating window: avoid flicker, 2019-06-17). High-level vcl double-buffering never set up RTL status of the virtual device correctly, but now that double-buffering is used at more places, this got noticed. Change-Id: Iba378cef3a693b0712389fab519f38ee222577d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86134 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-12-24sal_Char->char in vclNoel Grandin
Change-Id: I4359b7042f98586e2c9f5529d83d769cdf3d033c Reviewed-on: https://gerrit.libreoffice.org/85775 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-20tdf#127022 vcl: fix Windows RTL menu barMiklos Vajna
Regression from commit e8d5b8beb5958147235ff955ed38c47b51d860ff (tdf#113714 vcl menu bar window: avoid flicker, 2019-05-20), the problem was that while the original render context has RTL set up correctly, the intermediate virtual device had it disabled all the time. Change-Id: Ic063c4a6c0537891c0bfceb8927edb97cf1c6e86 Reviewed-on: https://gerrit.libreoffice.org/85624 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-12-19Fix typoAndrea Gelmini
Change-Id: Ibd7a2c28f086577563151e20ed51ec1030559b3c Reviewed-on: https://gerrit.libreoffice.org/85493 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-08pdfexport: improved detection of failure to print with --disable-guiAshod Nakashian
PDF printing tests cannot run when we don't have the proper support enabled, so we need to detect those cases and avoid failing the test unnecessarily. Change-Id: Ia602dbb5c3d16c082a8ff6e707db90501bb5453c Reviewed-on: https://gerrit.libreoffice.org/78610 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/82168 Tested-by: Jenkins
2019-12-06disable VCL backendtest again for qt5svpLuboš Luňák
It fails testDrawInvertTrackFrameWithRectangle. Change-Id: I15b79f8c39073400eceb92e1ad41a3c3f7879022
2019-12-03Adapt CPPUNIT_ASSERT to C++20 deleted ostream << for sal_Unicode (aka char16_t)Stephan Bergmann
<http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1423r3.html> "char8_t backward compatibility remediation", as implemented now by <https://gcc.gnu.org/ git/?p=gcc.git;a=commit;h=0c5b35933e5b150df0ab487efb2f11ef5685f713> "libstdc++: P1423R3 char8_t remediation (2/4)" for -std=c++2a, deletes operator << overloads that would print an integer rather than a (presumably expected) character. But for simplicity (and to avoid issues with non-printing characters), keep printing an integer here. Change-Id: I751b99ee32d418eb488131ffa130d6f7d6d38dc7 Reviewed-on: https://gerrit.libreoffice.org/84348 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-27always test Skia before OpenGLLuboš Luňák
Skia/Vulkan as the newer technology should be preferred, currently Skia is not enabled by default, but that can change later. And this should be consistent, otherwise the about dialog can claim OpenGL is used while it's actually Skia that gets selected elsewhere. Change-Id: I185feb231c28a119a1152e92afb54a1e8c41af6f
2019-11-27avoid unused parameter warning in non-debug buildLuboš Luňák
Change-Id: I3ea06a872d5348f7681602a6d68ff69990f2cd7e
2019-11-27make sure Skia invert with TrackFrame doesn't paint outsideLuboš Luňák
According to Tomaž that's a requirement and that is what the test for it tests. This is easy to implement with additional clipping. Change-Id: Ia54489e20ce58ae0624183f2989036e6938cd44f
2019-11-27add invert() tests to visualbackendtestLuboš Luňák
They already exist and are used by the unittest. And the TrackFrame test actually appears to expect incorrect results (or otherwise pretty much all backends implement the operation incorrectly). Change-Id: I26867a2d1b0f01b5e836131932b422cb8823fb5b
2019-11-27use different line and fill color in vcl backendtestLuboš Luňák
Having them the same can hide problems with them fixed up incorrectly. And it also shows that drawPolygon() with line color unset does not draw the right-most and bottom-most line, which is what all underlying graphics systems do, so the test is kind of wrong and I've added a compensation to make it visually correct (and match the checked expected result). Change-Id: I333f41210232c74ba55bd5c92ef5fda917ce3e59
2019-11-27use center of pixels when doing GPU drawing using SkiaLuboš Luňák
According to https://bugs.chromium.org/p/skia/issues/detail?id=9611 rounding errors may cause off-by-one errors, so compensate when converting int->SkScalar in relevant cases. Change-Id: I72a579064206c216c9f99adc7d7c2c57bbe567d6
2019-11-27extend vcl backendtest to more backendsLuboš Luňák
At least the KF5/Qt5 VCL plugins passes fine. Change-Id: I033ddf6ae9cc663729ca459cdc514dc0fa51ddc2
2019-11-27backendtest: test blending of bitmapTomaž Vajngerl
This forces a blending of an alpha virtualdevice with a BitmapEx which has an alpha component. This tries a fast-path with using blendAlphaBitmap in the backend and does blending manually and slower if the fast-path is not available. Change-Id: I7e45dc78ce3e61ede408aa8388802a193cbc577a
2019-11-27fix SkiaSalGraphicsImpl::drawPixel()Luboš Luňák
Change-Id: I2fa0853ba2593583a479747460f77f2ced67fd6a
2019-11-27hopefully finally fix SkiaSalGraphicsImpl::drawMask()Luboš Luňák
It now passes BackendTest::testDrawMask, so it should be checked. Change-Id: Ib3e1df03aefe6e9487737bec036a943377414735
2019-11-27temporarily disable failing tests in visualbackendtestLuboš Luňák
These should get fixed, but no point in having tests that already fail without breaking anything. Change-Id: Ibfa48fc22a4be1d76924d61a7dc223a56f64244b
2019-11-27backendtests: add some bitmap testsTomaž Vajngerl
Change-Id: If791dd113fb484ccdd81a2ee7c1f217057a918ca
2019-11-27backendtests: enable tests only when render backend is skiaTomaž Vajngerl
Change-Id: Idd06da27e405a3c0040bdad69c76537f12e50c92
2019-11-27backendtest: Add polyline bezier curve backend testsTomaž Vajngerl
Change-Id: I8cb3e97de79cbd683a266b09fb7d194c07b0089f
2019-11-27backendtest: Add PolyLine B2D test diamondTomaž Vajngerl
Change-Id: I6e754e72ff698d62c493b827f9804f63d0e39e2d
2019-11-27add "invert" tests to BackendTestTomaž Vajngerl
All backend tests are not enabled yet as none of the backends pass, but testDrawInvertWithRectangle and testDrawInvertN50WithRectangle should pass with skia backend. testDrawInvertTrackFrameWithRectangle is more complicated as drawing an inverted dashed frame around overshoots outside of the rectangle area (as with gtk3 backend, maybe others too). This is something we need to fix or better yet to get rid of this invert mode. Change-Id: Ibc08ff99d91014c41324b67e8e984111bcd3c7ac
2019-11-27disable bitmap CRC checking in SvmTest::checkBitmap(Ex)s() for SkiaLuboš Luňák
The idea itself is broken, the CRC depends on the scaling algorithm and also on the exact internal layout (and if scanlines are rounded up, the CRC also depends on random bytes). Change-Id: I800be8553c7f2afce1a4c292cd61369cde0ba6c3
2019-11-27also check rendering in SvmTest::testBitmaps()Luboš Luňák
Just like it's done in SvmTest::testBitmapExs() Change-Id: If004853aa12987eae1857c69061bdca114384942
2019-11-27better handling of bit depths in skia codeLuboš Luňák
Change-Id: Ifb3103cc3494bc55a562d4b6a16b59a044782416
2019-11-27basic functional implementation of Skia SalBmpLuboš Luňák
Not complete but can pass basic tests. Change-Id: I8e81c44554663a99cd4b262e37f4841ba0687cf1
2019-11-26tdf#128629 vcl DrawTransformedBitmapEx: do scaling for flipped bitmapsMiklos Vajna
Regression from commit dd4a67084853a030bf4b9f1f85d728620e0604a5 (vcl: avoid downscale && upscale in DrawTransformedBitmapEx(), 2019-10-08), the original problem to be solved was that in case you downscale a bitmap and upscale it later, then you get blurry result, so we try to avoid touching the pixels and just scale during rendering of the bitmap. However, here the problem is that scaling is also (mis)used for flip purposes, so go back to the original behavior for negative scaling. This keeps the original problem fixed and solves the loss of flip as well. Change-Id: Ic9a6eb49d55f2fb8ccf18d982e574398f010cabd Reviewed-on: https://gerrit.libreoffice.org/83711 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-24widget theme: add additional settings to the theme definitionTomaž Vajngerl
Change-Id: Ib50ebadf73979068d3595f09de113aa8745eccb9 Reviewed-on: https://gerrit.libreoffice.org/83591 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.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-19tdf#128632 vcl image lazy-load: take unit into account when setting sizeMiklos Vajna
It makes no sense to set the size of an image based on the swap info when the swap info unit and the actually loaded image's unit doesn't match. Converting the size would be also an option, but let's wait for the first case when a custom size is actually needed for mismatching units. Change-Id: I96b5c237f0be5587bb2f938faf3c69fa0e1d4a5c Reviewed-on: https://gerrit.libreoffice.org/83122 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-19widget theme: add centeredTabs setting to theme definition fileTomaž Vajngerl
Change-Id: I714a44d40a99e0bb5ff48e3d36ded73db60af5a0 Reviewed-on: https://gerrit.libreoffice.org/83133 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-11-17tdf#128847 - vcl: fix colorspace names for MacOSChris Sherlock
kCGColorSpaceGenericGray is deprecated and should be kCGColorSpaceGenericGrayGamma2_2, and kCGColorSpaceGenericRGB is similary deprecated and now should be kCGColorSpaceSRGB. This fixes the "color skew" issue found in a variety of tests. Change-Id: I8088b2377e03cde3f8e03e9d3778a40fc3081c4a Reviewed-on: https://gerrit.libreoffice.org/82809 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2019-11-12tdf#128630 vcl PDF export: fix aspect ratio when scaling rotated imageMiklos Vajna
Regression from commit 68549e00d5e23aa22bc974a8151d93cd948444b3 (vcl, BitmapEx transformed draw: special-case simple rotations, 2019-10-10), the intention there was to fix an error on the last col/row of a bitmap, but that was only tested with input where the aspect ratio doesn't change on scaling. Fix the problem by going back to the original way in the "aspect ratio changes" case. Change-Id: I52bed503ddaadbbbdf64ac6fec2fe268153866f1 Reviewed-on: https://gerrit.libreoffice.org/82467 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-06vcl PDF export: fix re-exporting PDF images with page-level rotationMiklos Vajna
PDF images are effectively 1 page PDF documents. The page object may have a /Rotate key, which was simply ignored before. We turn page objects into form XObjects on PDF export, such rotation can be expressed with a /Matrix key. Add support for the 90 degrees rotation case, this can be generalized later if wanted. Change-Id: I55a4f63e0b986637ccdeba0b783f1db9a85c4d93 Reviewed-on: https://gerrit.libreoffice.org/82154 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-11-05vcl PDF export: fix re-exporting PDF images for dict obj resource sub-keysMiklos Vajna
Re-exporting PDF images works by tokenizing the PDF image, identifying which PDF object is the page object and then copying that over to the PDF output, together with the dependencies of that object. This involves copying the resources of the page object. Previously we assumed that the sub-keys of the resources are always inline dictionaries, but the bugdoc shows that they can be references as well, which point to dictionary objects, so add support for this scenario. Change-Id: I78ee1c726e6ecd958232e9fab64773595e5b9c86 Reviewed-on: https://gerrit.libreoffice.org/82076 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2019-10-31remove some stray random propertiesCaolán McNamara
Change-Id: I0f20e057b97bcb3ab120ae6b211729ea60937bd8 Reviewed-on: https://gerrit.libreoffice.org/81769 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-10-31Fix IsTransparent() for unloaded graphicsLuke Deller
Fix Graphic::IsAlpha() and Graphic::IsTransparent() for unloaded graphics. This fixes tdf#118036. GraphicDescriptor::Detect(true) is currently used to read the image size from the header of images which are not being fully loaded yet. This change extends GraphicDescriptor to also report whether the image supports transparency or alpha, implemented only for PNG format so far. Change-Id: I1753c0d11491f1dc518e23da8d7b3842945770cb Reviewed-on: https://gerrit.libreoffice.org/81785 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>