summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2019-12-17tdf#112989 reduce export to PDF timeNoel Grandin
reduces the time from 33s to 24s for me Change-Id: Ia70e1c4220ebedf0b686ed76c5704efa551591fe Reviewed-on: https://gerrit.libreoffice.org/85281 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 11c0effe3def917ec2002a30dbbcca1c5758ffa9) Reviewed-on: https://gerrit.libreoffice.org/85302 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-12-16tdf#127148 select-all on tabbing into version box in help->aboutCaolán McNamara
and allow select-all in readonly multiline edits too. Arguably this might be a universal settings, but just enable it for the about dialog for now. Change-Id: Ic2e64fe26593adf4ae630d1be1a7b196a5a0216c Reviewed-on: https://gerrit.libreoffice.org/85128 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2019-12-12tdf#123076 Get paper size for print previewGabor Kelemen
Initialize from current paper size which can be different from A4 Change-Id: Iae5e33d79c0783a32dad8635a66cc3fbe83dc568 Reviewed-on: https://gerrit.libreoffice.org/84920 Tested-by: Jenkins Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 562c30d5ad142fcdc77be6125fdac6d48b782fd7) Reviewed-on: https://gerrit.libreoffice.org/85053 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-12-12tdf#128824 Keep multiselection in style list on right clickSamuel Mehrbrodt
Change-Id: I196f8c7d3a1a0b3267498f6cde55069ba3a60523 Reviewed-on: https://gerrit.libreoffice.org/84882 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 13966121b49369950f2c214f3ab109fbad0386ad) Reviewed-on: https://gerrit.libreoffice.org/84947 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-12Qt5 fix missing XCB_ICCCM_WM_HINT_WINDOW_GROUPJan-Marek Glogowski
This is the application level equivalent of the Qt5 fix for bug QTBUG-46626 / commit 0de4b32 ("xcb: fix issue with dialogs hidden by other windows"), which was broken since Qt 5.4 and is just fixed since Qt 5.12. It is needed for some window managers, which don't know about the WM_CLIENT_LEADER property. Both settings are the same, but just the latter is set by older Qt5 releases. This probably isn't a real problem, as GNOME or XFCE would use the gtk VCL plugin, but since I already wrote the code when debugging tdf#129071, there is also no reason to drop it (except: more code, more bugs...). This fix is optional and needs development headers for xcb-icccm, which can actually be compiled into Qt5. If missing configure will just print a warning, since it's a runtime requirement and we explicitly drop the linked Qt version symbol, so the potential build Qt version won't matter. Change-Id: Ifc5a8f8a40ee13779a911efb53e8b8b868614d0b Reviewed-on: https://gerrit.libreoffice.org/84299 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit fe2baf9e84e0ca9aeaa683e37076f57fa3f38dca) Reviewed-on: https://gerrit.libreoffice.org/84810
2019-12-11Resolves: tdf#128867 support LocalizedDecimalSep for native gtk dialogsCaolán McNamara
Change-Id: Idb883707fb89d1f76b24ea592c51e28fffd2322f Reviewed-on: https://gerrit.libreoffice.org/84953 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-09drawPixel() should still get 'true' for bXorModeAllowed.Jan Holesovsky
That part of 7b267be4b2c87b2c3987d4d751307977a7d3ad41 was not necessary. Change-Id: Ie085f635d4adb6f574f3eca37976f9aded505524 Reviewed-on: https://gerrit.libreoffice.org/84536 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-09tdf#129071 Qt5 set file picker parent widgetJan-Marek Glogowski
If the XInitialization::initialize has a parent option, use that system window ID to find the parent Qt5Frame and set this as the parent of the file picker. This way the file picker doesn't show up as a separate window in the KDE task bar and get the proper icon. Just setting it transient to the parent is not enough. This also includes the terminate listener handling, so an open file picker won't prevent LO to shut down gracefully (which is handled independent from the document modified state). Change-Id: I62aef532e739e7fea9fe8a4b4e6c0e205faae1d9 Reviewed-on: https://gerrit.libreoffice.org/74544 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit d79a41a02cd46c50cab08ba1a5d5b213b6843251) Reviewed-on: https://gerrit.libreoffice.org/84756
2019-12-09tdf#122706 Fix built-in HID on Print dialogs Help buttonKelemen Gábor
to open the general Print page. Change-Id: I1ffee4a9d72bb6a4840dec3800a397a878ed2eca Reviewed-on: https://gerrit.libreoffice.org/84628 Tested-by: Jenkins Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de> (cherry picked from commit 46a07f2042a812fc552e26736183c7d06fe6aa35) Reviewed-on: https://gerrit.libreoffice.org/84735 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-12-06tdf#129071 Qt5 handle windows with parents as dialogsJan-Marek Glogowski
This is the main fix for this bug. Qt Xcb is a little picky here. It won't tell the window manager about the transient state, using WM_TRANSIENT_FOR, for all Qt::WindowTypes. The QPA internal list (see isTransient function) doesn't include the Qt::Window, which is qt5 VCL's primary used window type. This has two consequences: 1. LO dialogs show up in the plasma task manager as seperate windows. 2. LO has to handle the transient state itself, instead of relying on the window manager. This results in flickering, because LO can just push a transient window to the top again, after the parent window was activated and therefore drawn in front. So this just declares all windows with parents to be dialogs. Almost everything else should be a top-level window anyway. If not, there is SalFrameStyleFlags::DIALOG to create a parent-less dialog window. Change-Id: I89a6d46fd09e4f1d1d2904e152a26733eb266079 Reviewed-on: https://gerrit.libreoffice.org/84298 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit d8e3a08f06dcfea02c3f2f2a8578486381d77df7) Reviewed-on: https://gerrit.libreoffice.org/84619
2019-12-06KF5 drop KF5FilePicker::executeJan-Marek Glogowski
To prevent calls to Qt5FilePicker::updateAutomaticFileExtension, it is simply made virtual with an empty override. This is needed, because the KF5 file picker has its own automatic extension handling. The main motivation is the fix for tdf#129071, which will result in some major changes to XExecutableDialog::execute, so this will prevent larger code duplication later. Change-Id: I5f747f0828cb8a65b4e7043f3ee68ebd31973e6a Reviewed-on: https://gerrit.libreoffice.org/84297 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins (cherry picked from commit c0cdb01ef33042be76251c4a353e0582a0838e0e) Reviewed-on: https://gerrit.libreoffice.org/84605 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-12-06Qt5 hide more Qt5FilePicker detailsJan-Marek Glogowski
* Make most members private * Drop some unused members * Rename some single-char variables for easier reading * Spread some constness * Finalize the KF5FilePicker class * Test the native picker setting of the QFilePicker, instead of an additional bool member This is just some refactoring. While not strictly needed, it helps keeping the following patches fixing tdf#129071 more compact. Change-Id: I15ffe4de848a9498d7f61f99bcf031257da7cb08 Reviewed-on: https://gerrit.libreoffice.org/84456 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit f33b6e915fdc29cff25cc93784a04df866ad6bc3) Reviewed-on: https://gerrit.libreoffice.org/84551 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2019-12-06handle unsetting ImageCaolán McNamara
Change-Id: If4a3ab94c268caeebdc42c664c568aa9004c50ad Reviewed-on: https://gerrit.libreoffice.org/84580 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-06Resolves tdf#129140 - Wording in printer dialogHeiko Tietze
Wording improved Change-Id: I67fcee9bdae869eb57882b1944e8975d4c564735 Reviewed-on: https://gerrit.libreoffice.org/84572 Tested-by: Jenkins Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> (cherry picked from commit 291b1acd3b9664ed41954458648448d7799d4df9) Reviewed-on: https://gerrit.libreoffice.org/84590
2019-12-05headless: Don't leak the cairo context in drawPixel().Jan Holesovsky
Change-Id: If841f655ac634eee2dc7ca6e9445d2f204546545 Reviewed-on: https://gerrit.libreoffice.org/84445 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Jan Holesovsky <kendy@collabora.com> (cherry picked from commit 5b607ae89de9494c01952852df30a6f77206eadc) Reviewed-on: https://gerrit.libreoffice.org/84470 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-12-04tdf#128992 Compressing PNG files with alpha channel get a black backgroundNoel Grandin
regression from commit d4442ac1ac9aae36dbc08fda8154d71ea0f81708 Date: Wed May 30 13:02:25 2018 +0200 drop Graphic::GetBitmap Change-Id: I937f89255eebc68dffc2987e628a30bc7d2eed7b Reviewed-on: https://gerrit.libreoffice.org/84412 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 1187e2b35bb864808d9d158f0b10d83ce75dbaa7) Reviewed-on: https://gerrit.libreoffice.org/84428
2019-12-03tdf#129134 ApplicationColors Scrolled List moves too littleCaolán McNamara
Change-Id: I5cb6ac017f1d2a916297676724d523634afb2020 Reviewed-on: https://gerrit.libreoffice.org/84254 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-12-03tdf#129043 Correctly deliver combo box events when used with keyboardSamuel Mehrbrodt
Change-Id: I82186f999e74be4aebd59d77666390a7d5e8ad81 Reviewed-on: https://gerrit.libreoffice.org/83923 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 7de9417d5f65d35227c7f80f6d587c2a56bde4e0) Reviewed-on: https://gerrit.libreoffice.org/83982
2019-12-02tdf#129068 try dialog content area help before dialog itselfCaolán McNamara
we already check current notebook page before the dialog, now check the content area before the dialog Change-Id: Ieedb5727ddec6d24adc6e70144977b5c3063c0fd Reviewed-on: https://gerrit.libreoffice.org/84247 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-28tdf#126043 use another bulk_insert_for_eachCaolán McNamara
Change-Id: I05c3fc6e708d000ba955981dbd8d11371ea99da2 Reviewed-on: https://gerrit.libreoffice.org/83686 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 05734503ed36cff64cfaac8afb7c6df5eced8873) Reviewed-on: https://gerrit.libreoffice.org/83983
2019-11-28tdf#128337 clip the metafile Gradient drawingJan-Marek Glogowski
This basically reverts the patches for tdf#125670. Instead this just checks the mpGraphics in InitClipRegion() before using it, to prevent the crash from the tdf#125670 bug report. Additionally it drops the early mbOutputClipped return, as the output device doesn't matter for the metafile drawing and the preview of the tdf#125670 bugdoc and the Impress full screen view otherwise don't show the gradients. This patch works for me in the following tested scenarios: 1. Bugdoc tdf#125670 doesn't crash 2. Bugdoc tdf#125670 draws gradients in Impress full screen 3. Correct thumbnail pictures for both bug documents With all these side effects, I have no idea, if this is finally the correct fix and doesn't break anything else... Change-Id: I8c48210d4255e50339710fc14819d15686417c9c Reviewed-on: https://gerrit.libreoffice.org/83722 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit e021901b6c4f60735512c8d36b625be4f8edfd77) Reviewed-on: https://gerrit.libreoffice.org/83951 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-11-28get_active should be true when activated but menu not yet shownCaolán McNamara
Change-Id: Ia2a7cbf5b47eab6d09c78eb9d18233e18b628a3f Reviewed-on: https://gerrit.libreoffice.org/83906 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-27tdf#129042 factor the wizard buttons into the desired min widthCaolán McNamara
Change-Id: Ib89e8813c6f8e5203708952215156d3d5281ad17 Reviewed-on: https://gerrit.libreoffice.org/83914 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-27tdf#129042 set a min size for the wizard dialogsCaolán McNamara
Change-Id: I81264f98d122c81cf0c6e865bfbac81ea9fe8126 Reviewed-on: https://gerrit.libreoffice.org/83894 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-27tdf#108642 load accessibility children fasterNoel Grandin
Reduces the cost of repeatedly iterating over the page objects, by adding a new XAccessibleContext3 interface to return accesibility children in one call. This takes the load time from 5.6s to 3.2s. Change-Id: Ifcc20fa7e7ab8ad50417073882c8c3a2405d1eaa Reviewed-on: https://gerrit.libreoffice.org/83850 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 980c859480be431311ba803c5251694160dcb3d5) Reviewed-on: https://gerrit.libreoffice.org/83887
2019-11-27tdf#108642 rate-limit progress paintingNoel Grandin
this takes the load time from 9s to 6s for me Change-Id: I1a492b33106e43b1405238fe3a120a6447649f69 Reviewed-on: https://gerrit.libreoffice.org/83848 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 28ea418a3f1905d8a4a8e5813e8ed737960c62d2) Reviewed-on: https://gerrit.libreoffice.org/83885
2019-11-27tdf#126607 Qt5 activate window before setFocusJan-Marek Glogowski
.., and prevent Qt5MainWindow to take any focus. Our top level Qt5MainWindow shouldn't handle focus directly, as it's always completely drawn by the child Qt5Widget, which also handles input. So prevent any direct focus handling by setting the Qt5Widget as the focus proxy of the Qt5MainWindow. Also setting the focus of the child widget on its own seems to do nothing at all. At least I didn't see any difference after commenting the code block. But it at least has some effect, if you call setFocus on the real window, but that breaks Impress full screen mode, which somehow gets scroll bars?! Not that I understand why this is needed. At least the original X11 code just calls XSetInputFocus in this case. Change-Id: I591c031a17a7ae0b5486760cd1802522d4088678 Reviewed-on: https://gerrit.libreoffice.org/83689 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit ec554ac30236fa7949e9866d01319d4e3e88c983) Reviewed-on: https://gerrit.libreoffice.org/83838 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
2019-11-27tdf#127403 Revert "VCL keep / return the original set TextEngine font"Jan-Marek Glogowski
This reverts commit cc223fa12a61ba0e580b884386a7f5d7efd0541f. All the other attenps to fix this seem to cause timeouts in the Jenkins clang_dbgutil build. I don't have one around and no time to investigate further, so let's see, if the revert passes. Change-Id: Ib915185eaf79073523351705baf28df3c62906f1 Reviewed-on: https://gerrit.libreoffice.org/83654 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit b1e73fd49661e07e6085310f3f6ecc6ade2a3762) Reviewed-on: https://gerrit.libreoffice.org/83827 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-11-26tdf#126043 fetch the command properties just onceCaolán McNamara
Change-Id: Iaf343e9858be36ca8772d9c12eee772d93b4c394 Reviewed-on: https://gerrit.libreoffice.org/83668 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/83763
2019-11-26tdf#126043 we can use the stock attribute to skip an intermediate BitmapCaolán McNamara
Change-Id: I8fb3c348cff92fe5b47d7473dc23684b3bdc6dad Reviewed-on: https://gerrit.libreoffice.org/83679 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-26Resolves: tdf#129021 dummy entry in multicolumn lists not working properlyCaolán McNamara
Change-Id: I94afa3a29e0ce52cd8d17fab358d5737881814fa Reviewed-on: https://gerrit.libreoffice.org/83744 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
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. (cherry picked from commit 8dde8f9768f0dab97cdd30e3116f7e4d737c482f) Change-Id: Ic9a6eb49d55f2fb8ccf18d982e574398f010cabd Reviewed-on: https://gerrit.libreoffice.org/83732 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-24tdf#121740 cache font data to speed up PPT loadNoel Grandin
takes the load time from 24s to 21s for me. The cache was determined experimentally for this document. Change-Id: I34c78d1ff99cb8e72b274a201ded61d23e66941a Reviewed-on: https://gerrit.libreoffice.org/83470 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 90ea305110e5881256ba272800074a2a9f6b613d) Reviewed-on: https://gerrit.libreoffice.org/83542
2019-11-22wrong delete signal idCaolán McNamara
Change-Id: I4aecd3c8f5d40c3256d2d2816a79f8809db6cedb Reviewed-on: https://gerrit.libreoffice.org/83519 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-22Resolves: tdf#128948 double prime symbol not parsed as inch indicatorCaolán McNamara
Change-Id: I9d3e606b5158b4594f94e0f13bdf2f635bc77357 Reviewed-on: https://gerrit.libreoffice.org/83498 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-21tdf#84183 Give infobar close btn some 'clicked' stateSamuel Mehrbrodt
Slightly smaller cross when the button is clicked on to have some feedback for the user Change-Id: If0486319e9816378b2011bbb366b4c577c1ad84a Reviewed-on: https://gerrit.libreoffice.org/83087 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> (cherry picked from commit 60c0874227201310c099fb717c0a665dbcf5bb33) Reviewed-on: https://gerrit.libreoffice.org/83190 Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-11-20honour MenuFlags::AlwaysShowDisabledEntries for native gtk menusCaolán McNamara
Change-Id: I3d26320061f3da01e9b857cb3dad277f3d7aa4f5 Reviewed-on: https://gerrit.libreoffice.org/83324 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-20hide help buttons when LibreOfficeKit::isActive and local help unavailableCaolán McNamara
Change-Id: Ia263f9f7c78dbf48143678fc2f577402fb1ce998 Reviewed-on: https://gerrit.libreoffice.org/83323 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-20tdf#128820: use wps namespace for simple text shapesMike Kaganski
Without that, simple text shapes inside groups were written in <pic:wsp> elements, with many child elements also having pic:: prefix. Change-Id: I114cf3499e03aa5ca042211d7b134aaf5b0e7fbf Reviewed-on: https://gerrit.libreoffice.org/82980 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Also consider saved exceptions when terminating parse As with previous commit 18ae77a065cb8ae6940d4067f6ab7e99a3f74047, this will start showing parse errors on invalid files which previously just opened without warnings, silently losing the invalid stream part. Any bug bisected to this commit is not a regression from this commit! The real problem was already before, and was just disclosed by this (which is the actual goal). Also simplify unit test data for tdf#128820, which will now be enough after the change. A unit test (testN779627) revealed unexpected throws when parsing; this was fixed. Change-Id: I5a21b9001874ec6e3b8273c10043ef930bf1cc82 Reviewed-on: https://gerrit.libreoffice.org/82981 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> tdf#128820: improve unit test to not depend on opening bad file failing ... also test exported XML directly Change-Id: I50237593dd111e7c7974452769c8d49c22012713 Reviewed-on: https://gerrit.libreoffice.org/83005 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Fix UBSan build after 9fdf8c0a5cc036ea9bd1e11dd8f2c1a6e601fae2 The said commit simplified a testdoc to testTdf128820, using a smallest possible SVG in it. This seems to produce the smallest possible PNG of size 8, which is passed into GraphicDescriptor::ImpDetectPNG. There its size is read into nTemp32 past the end of the file without checks, which keeps last value of the variable (which was the magic number 0x0d0a1a0a), which is then saved into the descriptor. Then that value is used in ImpGraphic::ImplGetSizePixel, and later multiplying it in lclConvertScreenPixelToHmm causes UB. Fix by checking all the reads in GraphicDescriptor::ImpDetectPNG. Change-Id: Ib4740fac2b87fbef57d5150151129b9852f3ecb8 Reviewed-on: https://gerrit.libreoffice.org/83119 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/83296
2019-11-19tdf#128434 correctly release fonts in destructorsJan-Marek Glogowski
This adds ReleaseFonts() calls to all destructors of SalGraphics and TextRenderImpl derivated classes, which implement SetFont. During destruction a base class can't call into derivated classes, as these are already destructed, so we have to spread these calls manually. Change-Id: Ia57db04f7df665e5205212ce512119e2f60e3379 Reviewed-on: https://gerrit.libreoffice.org/82967 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit f8e1f8652255cadd80a991aa3e059ee631b333b8) Reviewed-on: https://gerrit.libreoffice.org/83149
2019-11-19tdf#128434 try garbage collect ImplFontCache fontsJan-Marek Glogowski
Instead of changing the harfbuzz caching, for this use case it's enough to queue all per-OutputDevice fonts for garbage collection (GC), which are managed by the OutputDevices ImplFontCache. So just try to GC all the fonts in the ImplFontCache destructor. There is no point keeping these LogicalFontInstances alive, after the OutputDevice font cache is destroyed, as these fonts aren't shared and can't be accessed later. But the main problem is still some correct accounting of harfbuzz resources and eventual even the Freetype ones, so this cleanup would not really be needed. AFAI can tell, this plugs the remaining per-document leaks of the PDF generation, except for a 72 byte basic listener leak from: basic::ImplRepository::impl_createManagerForModel(...) basicmanagerrepository.cxx:480 Change-Id: I3155be59a2bdcd85e01f6f048b990db04d88c94f Reviewed-on: https://gerrit.libreoffice.org/82968 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit e6aac0b637d583d3cfb893276f813ff5aa1ade17) Reviewed-on: https://gerrit.libreoffice.org/83148
2019-11-19Move static aFontFileList into GlyphCacheJan-Marek Glogowski
GlyphCache is already a global in the unix SalData class, so we can drop one more global static variable. and the FontFile map values aren't shared, so just use std::unique_ptr, like the two other maps, which form the GlyphCache class. While at it finalize the classes and hide their constructors. Change-Id: Iaac8cd9905e9b4025707a17f62d8961ccfa5d0fb Reviewed-on: https://gerrit.libreoffice.org/82966 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 578f97b4b2d06d3d5d5db7fd70066ba8ca665abc) Reviewed-on: https://gerrit.libreoffice.org/83147
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. (cherry picked from commit 0098563895f6a4024b400582d1bf93cb4435ceed) Change-Id: I96b5c237f0be5587bb2f938faf3c69fa0e1d4a5c Reviewed-on: https://gerrit.libreoffice.org/83160 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-18tdf#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> (cherry picked from commit 3a8d16ba8ca7ef7349e893f2bf1c7e12d9a8d7ae) Reviewed-on: https://gerrit.libreoffice.org/83081 Tested-by: Jenkins Reviewed-by: Xisco Faulí <xiscofauli@libreoffice.org>
2019-11-15tdf#128710 Qt5 don't force immediate paint on showJan-Marek Glogowski
I tried to build a minimal reproducer with QMainWindow and a QDialog and miserably failed. All variants of show, hide, modal change, move, resize, processEvents(QEventLoop::AllEvents) just worked. I was able to produce "qt.qpa.xcb: QXcbConnection: XCB error: 3 (BadWindow) ... major code: 18 (ChangeProperty)" entries in my ~/.xsession-errors, but that didn't matter for my program. Then I started to comment code blocks in Qt5Frame and after that continued in Qt5Widget, found that ShowEvent produced a modal window, albeit with an obviously missing paint event. But that is fixable by just queuing one in LO. I tried to debug that broken behaviour to find the real cause of the bug, but as I already knew from commit e770bacc85a0 ("Qt5 workaround modal change after show bug"), this bug has some timing related component, so that sadly didn't result in any conclusion. Change-Id: Iaec45997179365fae5430120f86e435aa5e88447 Reviewed-on: https://gerrit.libreoffice.org/82745 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Michael Weghorn <m.weghorn@posteo.de> Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 5d23f7748f33414a95297fa9f374a37e76de687b) Reviewed-on: https://gerrit.libreoffice.org/82805
2019-11-15tdf#128495 measure preferred size of print preview relative to UI fontCaolán McNamara
Change-Id: If04f50818fc94dd62263daaebc1c386b2d85c987 Reviewed-on: https://gerrit.libreoffice.org/82791 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-15tdf#128434 really free the VclPtr<PDFWriterImpl>Jan-Marek Glogowski
This fixes the major reference cycle introduced by my commit b85ff98383942360901b8242cf77366782400426 ("Change PDFWriterImpl into an OutputDevice"), and adds the missing disposeAndClear() call. Maybe it would be better to add a ScopedVclPtr in the PDFWriter class and revert all the other VclPtr<PDFWriterImpl> users back to the original PDFWriterImpl*. The PDFWriter code really doesn't need any of the special VclPtr handling. Change-Id: Ia64fb207ad274d9323e350022f6b8af35c44e9f5 Reviewed-on: https://gerrit.libreoffice.org/82562 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> (cherry picked from commit 4dd87ccdab80eb094cede538e3d742148df3880a) Reviewed-on: https://gerrit.libreoffice.org/82660
2019-11-15tdf#123734 Prepend "Custom." for values of custom PPD optionsMichael Weghorn
CUPS supports using custom options in PPDs, which go beyond what is specified in the PPD specification, s. doc at at [1]. [2] mentions that the "Custom." prefix is needed when specifying custom page sizes: > When Custom is listed for the PageSize option, you can specify custom > media sizes using one of the following forms: > > lp -o media=Custom.WIDTHxLENGTH filename > lp -o media=Custom.WIDTHxLENGTHin filename > lp -o media=Custom.WIDTHxLENGTHcm filename > lp -o media=Custom.WIDTHxLENGTHmm filename While I did not find any explicit documentation that the same is true for CUPS-specific custom options, this is apparently the case. (The "CustomPageSize" keyword is expclicitly specified in the PPD specification [3], section 5.16 "Custom Page Sizes" and thus not a CUPS-specific custom option.) This can be seen e.g. by the fact that after setting the default value for a PPD option to such a custom value, the corresponding entry in the PPD does get the "Custom." prefix, e.g. *DefaultPassword: Custom.12345 for the sample PPD from tdf#123734. For more details, s.a. the discussion on the similar bug report for Gtk+ at [4], where e.g. comment 0 says: > According to the cups people, the value should have been > "Custom.ThisIsAtest" in this case. Without the "Custom." part, > this is not used by the cups filters. Therefore, add the "Custom." prefix for custom options, but don't show them in the UI. [1] https://www.cups.org/doc/spec-ppd.html#OPTIONS [2] https://www.cups.org/doc/options.html [3] https://web.archive.org/web/20161017222612/http://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf [4] https://bugzilla.gnome.org/show_bug.cgi?id=543520 Change-Id: I570d8b55212c6fc33405460f11d152e86cedb0f9 Reviewed-on: https://gerrit.libreoffice.org/82722 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 3c825bcc483d24bc408f7438d966c79a1f5b084c) Reviewed-on: https://gerrit.libreoffice.org/82746
2019-11-14Revert "tdf#108687 vcl: always enable tabstop on radio buttons"Justin Luth
This reverts LO 6.2 commit f2cd1c3c7cce2699d1341f726fc90cf30b52612c because it most recently caused regressions tdf#128749 and tdf#128625. There are places where radio-groups are not properly defined, and things are a big mess. -about 4 levels of radio buttons are created. -the last level does not do grouping properly. -the tab order is defined too early, before all the controls are fully made. -this code is repeated for EVERY control added. Already reverted in 6.2, 6.3 and 6.5, this also reverts 6.4 because after looking again I don't see any way out of this, short of rewriting all of the old code. Reviewed-on: https://gerrit.libreoffice.org/75157 Tested-by: Jenkins Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 4109dfff009f017e8994ea0a57119e79291ca2c8) Change-Id: Ic62fd7bb50e67647703cba3796f6d11ffb797eb5 Reviewed-on: https://gerrit.libreoffice.org/82523 Reviewed-by: Justin Luth <justin_luth@sil.org> Tested-by: Justin Luth <justin_luth@sil.org> (cherry picked from commit bce68bef088f1adb59ff199b2fc44f676d64e749) Reviewed-on: https://gerrit.libreoffice.org/82671 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-14ensure we connect just onceCaolán McNamara
Change-Id: Icd403eac948f0ead1f08a5a2e3a46e9b6bf33792 Reviewed-on: https://gerrit.libreoffice.org/82624 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>