summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2022-06-20Use of uninitialised value of size 8 on export to pdfCaolán McNamara
==2899330== Use of uninitialised value of size 8 ==2899330== at 0xCABB82A: (anonymous namespace)::appendHex(signed char, rtl::OStringBuffer&) (pdfwriter_impl.cxx:120) ==2899330== by 0xCAEB14C: vcl::PDFWriterImpl::emitTrailer() (pdfwriter_impl.cxx:5466) ==2899330== by 0xCAEDA09: vcl::PDFWriterImpl::emit() (pdfwriter_impl.cxx:5773) ==2899330== by 0xCA9F10C: vcl::PDFWriter::Emit() (pdfwriter.cxx:53) ==2899330== by 0x3D5FE329: PDFExport::Export(rtl::OUString const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&) (pdfexport.cxx:1012) an issue since... commit be39eba9a3d81e20c42f1073a365e91ce855c1cd Date: Mon Jun 6 00:17:02 2022 +0200 Use same glyph width in PDF drawing and font subset Change-Id: I72dbcf2bb7934c9f911c7c5c3035d3d166e9521a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136183 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-20tdf#141026 Put user and computer name into collapsed sectionSiddhant Chaudhary
This patch hides away the file name and the name of the user when the user tries to open a locked file. This improves privacy, as discussed in the bug report. The .ui file for the new dialog box is `vcl/uiconfig/ui/openlockedquerybox.ui`. The source files `openlocked.hxx` and `openlocked.cxx` have been changed to implement the new dialog. The old string template `STR_OPENLOCKED_MSG` has been deleted to hide away the private data, and a new string template `STR_OPENLOCKED_HIDDEN_DATA` has been added; the latter will be hidden inside the expander dialog. Finally, corresponding changes in the makefiles have been made to let the makefiles know about the UI file. Change-Id: I3cc9d2f6e2d9bc43857c80662e2a405aacd7fc70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132342 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-06-20ofz#39186 reduce max length allowedCaolán McNamara
Change-Id: I1b11e5451a305f45f369d9140b71c2a5e8b77230 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136147 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-19qt: Fix qt6 build after fbc61e06584ff8e6d9240f8b67be8dc28ecab5b9Michael Weghorn
Failed like this: In file included from /home/michi/development/git/libreoffice/vcl/qt6/QtX11Support.cxx:10: /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtX11Support.cxx:15:10: fatal error: QtX11Extras/QX11Info: No such file or directory 15 | #include <QtX11Extras/QX11Info> | ^~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:334: /home/michi/development/git/libreoffice/workdir/CxxObject/vcl/qt6/QtX11Support.o] Error 1 make[1]: *** Waiting for unfinished jobs.... In file included from /home/michi/development/git/libreoffice/vcl/qt6/QtFrame.cxx:10: /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx: In member function ‘virtual void QtFrame::StartPresentation(bool)’: /home/michi/development/git/libreoffice/vcl/qt6/../qt5/QtFrame.cxx:746:5: error: ‘m_ScreenSaverInhibitor’ was not declared in this scope 746 | m_ScreenSaverInhibitor.inhibit(bStart, u"presentation", bIsX11, aRootWindow, aDisplay); | ^~~~~~~~~~~~~~~~~~~~~~ make[1]: *** [/home/michi/development/git/libreoffice/solenv/gbuild/LinkTarget.mk:334: /home/michi/development/git/libreoffice/workdir/CxxObject/vcl/qt6/QtFrame.o] Error 1 make: *** [Makefile:288: build] Error 2 As mentioned in [1], `QX11Info` has been removed in Qt 6. The `ScreenSaverInhibitor` related code (except for the `QX11Info` part) can be used for Qt 6 as well, so adapt the checks in the header accordingly. [1] https://www.qt.io/blog/qt-extras-modules-in-qt-6 Co-authored-by: Jan-Marek Glogowski <glogow@fbihome.de> Change-Id: Ifd546b4f4210aaf7f09ebaa8c36d2a031763d492 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136091 Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-06-18qt a11y: Handle special value of -1 for text offsetMichael Weghorn
As the note in the Qt doc for `QAccessibleTextInterface::textAtOffset` says [1]: > An offset of -1 is used for the text length and custom implementations > of this function have to return the result as if the length was passed > in as offset. Without this, LO happened to crash quite frequently with Orca enabled when moving the cursor between paragraphs in a Writer doc when using the qt6 VCL plugin in a WIP branch including more changes to qt5/qt6 a11y. [1] https://doc.qt.io/qt-6/qaccessibletextinterface.html#textAtOffset Change-Id: I5c6ca69f8a9b2edad204bb1af740d4de17668f18 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136073 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-06-18Qt move most X11 specifics into QtX11SupportJan-Marek Glogowski
Just some refactoring. Change-Id: I5b2ef531778d4d43d2fdc32fe7da59edffa3c02e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136061 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-18o3tl: ensure that the initializer of enumarray contains enough elementsMichael Stahl
Currently this silently succeeds. Turns out oox already contains some too-short initializers, let's guess the missing properties are all invalid. One downside of the templated parameter pack approach in the enumarray ctor, as witnessed in vcl/win/window/salframe.cxx, is that argument types can no longer be implicitly deduced and thus need to be spelled explicitly now in certain cases. There were also three uses of enumarry with V being unsigned short (aka sal_uInt16) that started to cause narrowing conversion errors now and needed to be adapted: In editeng/source/uno/unonrule.cxx the obvious fix was to use the proper type for V. In sw/source/core/unocore/unosett.cxx with its odd mix of saL_Int16 and USHRT_MAX, lets keep things that way for now (probably awaiting later clean up) and use casts to avoid the implicit narrowing. And in sw/source/filter/ww8/wrtw8esh.cxx the ESCHER_Prop_* values, while presumably conceptionally of type sal_uInt16, are plain #defines (thus of type int), so rather than changing V to int it looked more consistent to explicitly cast the ESCHER_Prop_* vlaues to sal_uInt16. (And in tools/source/fsys/urlobj.cxx the poor loplugin:redundantfcast started to unhelpfully kick in for (only) the first argument now.) Change-Id: If06c29e673ec7e565e283c6f447889cf1f777cb7 Co-authored-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135970 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-17Fix and add ostreams for vcl::WindowPosSizeJan-Marek Glogowski
... and inheriting classes. Follow-up on commit ea5a0918c8c32309821ab239c4b95f4d6a3b5c12 ("VCL add vcl::WindowPosSize abstract class"). Change-Id: I4733cd4619f91fe1ba05c208a650be591ecf5d8e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135806 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-17WIN drop window state redundanciesJan-Marek Glogowski
So on Windows a window's state is stored in: - maGeometry, inherited from SalFrame - maState, which is the same type then maGeometry - mnWidth and mnHeight, which are just set, never read - mbFullScreen, which can be encoded in the vcl::WindowState IMHO we can get rid of mnWidth, mnHeight and mbFullScreen. Which leaves the mystery of the extra maState. But at least it looks like we can simply cache an vcl::WindowState instead. And this is a little start to make WinSalFrame variable members private; it'll be a long way... And it also changes a SW_SHOWMAXIMIZED to SW_SHOWMINIMIZED in the cleaned UpdateFrameState(), which looks like an error. Change-Id: I5895313d87a6f81371e2b77af6c813d35f591725 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135809 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-17qt a11y: Forward STATE_CHANGED event as suchMichael Weghorn
Handle `AccessibleEventId::STATE_CHANGED` by sending a corresponding `QAccessibleStateChangeEvent`. The previous way of sending a `QAccessible::ForegroundChanged` event looked rather arbitrary and had no effect in practice, since that type of event is currently ignored in Qt's AT-SPI adapter anyway. At this point in time, the Qt library doesn't forward changes of all states to the AT-SPI layer. Most notably, it ignores changes to the focused state. (Qt itself uses events of type `QAccessible::Focus` instead of `QAccessibleStateChangeEvent` with the `focused` state set to notify about focus changes, but that's not exactly the same, and e.g. causes Orca to ignore some focus changes). I have submitted a change to Qt to implement forwarding of `QAccessibleStateChangeEvent`s for the focused state to the AT-SPI layer, currently awaiting review. [1] With that Qt change in place, Orca still ignored these events in LibreOffice message dialogs, since those use a11y role `ALERT`, which wasn't previously considered when trying to retrieve a potential dialog that an a11y object belonged to. The corresponding Orca merge request [2] has just been merged. With these two in place, Orca now announces the focused button when switching focus using the tab key e.g. in the "Save document?" dialog when using the qt6 VCL plugin. (Most other things in the LO UI are still usually not announced.) For some reason, forwarding changes to state `AccessibleStateType::ACTIVE` resulted in Orca becoming unresponsive (stop talking) quite quickly. That needs further analysis, so that state change isn't forwarded to Qt for now. [1] https://codereview.qt-project.org/c/qt/qtbase/+/416510 [2] https://gitlab.gnome.org/GNOME/orca/-/merge_requests/127 Change-Id: I81c9a0f5ec8c74f95943d3073bba5b304f995d31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136057 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-06-17Convert ImplWindowStateFromStr to WindowData(str)Jan-Marek Glogowski
To have a constructor as the counterpart of the toStr() function. Better then some unrelated independant function. Change-Id: Iba4cb3d400a92704753db6b35d12f2189b23077e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135807 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-17Qt use QEvent::type to handle the event correctlyJan-Marek Glogowski
No need for an extra function parameter. Change-Id: Iedb949b45ad3f161121110e2db2132b6c3cb706e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135894 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-17handle GC* pixmap functions on Mac reading past pixmap (tdf#145843)Luboš Luňák
The code passes adjusted position for pixel data in order to create a sub-rect of the pixmap without copying, but at least on Intel Mac the GC* functions then try to read the entire pixel row even though it shouldn't be necessary. Since that may cause reading past the pixmap data if the last line is involved, use entire pixmap width to avoid that. Change-Id: Ia08059b363d39dd465b2cadde5138ee045628f59 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136003 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-06-16This should apparently be a true assertStephan Bergmann
...as dereferencing a past-the-end iterator would be fatal, as seen with <https://ci.libreoffice.org/job/lo_ubsan/2432/> during UITest_sw_fieldDialog at > warn:legacy.tools:19040:19040:vcl/source/treelist/treelist.cxx:1353: Entry not in model or wrong view > /opt/rh/devtoolset-7/root/usr/lib/gcc/x86_64-redhat-linux/7/../../../../include/c++/7/debug/safe_iterator.h:283: > error: > attempt > to > dereference > a > past-the-end > > iterator > . > > Objects involved in the operation: > iterator "this" @ 0x0x7fc0a42e1fe8 { > type = Hٷm�␡ (mutable iterator); > state = past-the-end; > references sequence with type `NSt7__debug13unordered_mapIP15SvTreeListEntrySt10unique_ptrI15SvViewDataEntrySt14default_deleteIS4_EESt4hashIS2_ESt8equal_toIS2_ESaISt4pairIKS2_S7_EEEE' @ 0x0x7fc0a42e1fe8 > } > > > Fatal exception: Signal 6 Change-Id: Ibd547536849b15d56711e065262197a2e168db3d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135961 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-15Make sure pEntry is not nullSamuel Mehrbrodt
Crash seen: > mergedlo.dll!SvTreeList::GetDepth(const SvTreeListEntry * pEntry) line 106 mergedlo.dll!SalInstanceTreeView::get_iter_depth(const weld::TreeIter & rIter) line 4230 basctllo.dll!basctl::SbTreeListBox::FindVariable(const weld::TreeIter * pEntry) line 271 basctllo.dll!basctl::SbTreeListBox::FindModule(const weld::TreeIter * pEntry) line 695 basctllo.dll!basctl::MacroChooser::BasicSelectHdl(weld::TreeView & __formal) line 473 basctllo.dll!basctl::MacroChooser::RestoreMacroDescription() line 158 basctllo.dll!basctl::MacroChooser::run() line 178 Change-Id: Ic85758c0bbee952d0a23b1d52e8bbdd231e8de26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135914 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2022-06-15ofz#47699 TimeoutCaolán McNamara
Change-Id: I8445fef2a116d063c15f65ed4c8ac705a8ce7491 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135870 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-15Add support for exporting EMZ/WMZofftkp
Split xcu files for Z compressable graphic formats. This introduces a new option for exporting each Z compressed graphic format without needing to check for extension. Change type detection accordingly in graphicfilter. Change-Id: Iabb971123f5e394196716900796632cb8ed12ece Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135181 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-06-15vcl: change maList in Animation to maFramesChris Sherlock
Change-Id: I2358434ffa3aff8bda16576bf8849eed52a3edd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/76401 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2022-06-15Drop SalMenu::DrawMenuBar (is WIN-only)Jan-Marek Glogowski
This follow-up on commit 483f3125ecd4744cbcc2f8fd3cdf243d81a601ff ("WIN drop effectively empty ImplDrawMenuBar") should probably have been included in it. Windows was the only implementation of that API, but the API is just called for a native menubar, which Windows doesn't use (VisibleMenuBar returns false). Maybe Windows SalFrame::SetMenu should also be dropped? Change-Id: Ic3600e66c91ce9d56d7f911bce5674e0a9ee833c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135633 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-14ofz#47668 OOM on massive line widthsCaolán McNamara
Change-Id: I310a9d438ef6f50ecc5931cea12fb26b7ed600c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135832 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-14Make PARTIAL_FULLSCREEN a X11SalFrame boolJan-Marek Glogowski
SalFrameStyleFlags::PARTIAL_FULLSCREEN is just ever read in X11SalFrame, so there is no need to have it as a "global" flag. Just save it as a member boolean and drop it from gtk3. FWIW: consolidating all the booleans in X11SalFrame as a bitfield (AKA reorder the fields and declare them bool myvar : 1;) might be a nice easy hack. Change-Id: I6a94310d3b734ecfd083b520d613a076b1e7670a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135805 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-14Remove some unused includesMiklos Vajna
See tdf#42949 for motivation. Change-Id: I157b331195cc8262e6bd1dcc536cb653587fc45f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135775 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-06-13vcl: restore lost spinner imagesMiklos Vajna
This went wrong in commit 13aa5081793f133077610cd01b7f01ee765b4add (remove unused defines, 2021-11-19), the trouble is that postprocess/CustomTarget_images.mk needs these images to be listed in bitmaps.hlst explictly, and the makefile won't see that the same names are used in Throbber::getDefaultImageURLs(), constructed dynamically. Change-Id: Ie7ea1734ed417d17e1ce54d6a755509ef52572d1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135725 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2022-06-13Revert "tdf#98743: TIFF export uses 96dpi by default"Julien Nabet
This reverts commit 988285410f8883ad49f32c4b804c4f5bd14569d0. It worked with brand new file and A4 example but not with attachment of the bugtracker. Change-Id: Ia33d06a994dd80a8fe0e0837f4e91fc8fdd5ce63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135795 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-06-13remove #undefNoel Grandin
which is unnecessary, and does nothing and seems to have been there since commit 7b1d0af8640fb4641cfdc3af752ed0bf467f9229 Date: Wed Apr 11 17:07:29 2007 +0000 INTEGRATION: CWS hedaburemove01 (1.1.2); FILE ADDED Change-Id: Ie6eaa1a939891a056f6fd1eb207db127352fc029 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135718 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-13make VirtualDevice::SetOutputSizePixelScaleOffsetAndBuffer() LOK-onlyLuboš Luňák
Because it's used only for LOK, and SvpSalVirtualDevice::CreateSurface() otherwise wouldn't know whether to apply LOK DPI settings or not (since this might be called for LOK tiled painting, when it should, or it might be called from somewhere else while LOK is active, in which case this should be handled normally). Getting that mismatched can cause things like https://github.com/CollaboraOnline/online/issues/4834 . Change-Id: I1df7b8a169c8ef2e799731a6695a032948536582 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135588 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-06-13avoid uninitialized data when handling WindowStateLuboš Luňák
I get valgrind reports when I start LO with kf5 backend and a maximized window, since in that case position and size are not set (since the maximized state makes them irrelevant). The semantics here seem to conflict, the caller of GetWindowState() sets flags to say what data it wants, and SalFrame::GetWindowState() sets flags to say what data it provides, but as can be seen here those aren't necessarily the same. So actually use only those flags that are in both sets. Change-Id: I4559baab90d6f465382560549d52431b28119b3f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135563 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2022-06-13vcl: Trigger IconView action on space key as wellMichael Weghorn
Handle space key the same as the return key. This e.g. allows to insert the selected element into the formula this way in Math again after the switch to IconView in commit d79c527c2a599c7821d27cf03b95cb79e2abe685 Date: Wed Jun 1 11:20:12 2022 +0300 Use IconView in SmElementsControl gtk3 was already behaving that way without this change in place. Change-Id: I061b286723fedf023551afbb2184abc946b54b9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135592 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2022-06-13crashtesting: fix crash seen on loading forum-mso-de-98993.xlsxCaolán McNamara
which may explain the backtraces seen with BitmapFilterStackBlur::filter and BitmapBasicMorphologyFilter::filter in crashreporting Change-Id: Ib55cde1603d354b8ca0e336a08fe2d73b548f73f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135680 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-12Related: tdf#125040 NB: rework print preview contextMaxim Monastirsky
Current implementation broadcasts the context change before the new controller was set on the frame (via XFrame::setComponent). This isn't going to work for anything LayoutManager based, as it responds to frame events by recreating all toolbars, so the newly created toolbar won't see the context sent for the old controller. Solve that by delaying the context change to SfxShell::Activate, like anywhere else in the codebase. And make NB listen to frame events, so it could also switch listening to the new controller. Also fixed a crash when switching to print preview in Writer with the navigator in the sidebar being active. Ideally we shouldn't even try to create sidebar panels in print preview, as the sidebar as a whole is disabled. But left that for a future investigation. Change-Id: I07759c676d2a2eb6f752fe778b559b15d2d759ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135492 Tested-by: Jenkins Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
2022-06-11tdf#98743: TIFF export uses 96dpi by defaultJulien Nabet
Create a brand new odg with A4 format with just a rectangle or a smiley on it and export it in tiff. Since we export the whole page, the size is: - in cm: 21x29.7 (definition of A4) - in inches: about 8.2677x11.6929 Taking a look at the value of the generated tiff, we got: ImageWidth: 794 ImageLength: 1123 Notice that 794/8.2677 like 1123/11.6929 is about 96. So resolution isn't 300x300 (like the code suggests) but 96x96. Then let's remove all the useless mechanism to try to find the X and Y resolutions. TIFF Documentation indicates that "XResolution" and "YResolution" tags use "RATIONAL" type which is defined as: "Two LONGs: the first represents the numerator of a fraction; the second, the denominator." Since we got a non floating value, we can use "1" for denominator and "96" for nominator. With this we change TIFFWriter::ImplWriteResolution implementation to put the nominator first which corresponds to the resolution passed by argument to the method and the denominator afterwards. Finally, let's fix the name of the second of ImplWriteResolution, it's the resolution value, not the resolution unit. Next step would be to use the dialog box for compressing options (like for png or jpg). But for this I think we should take benefit of external lib "libtiff" since we now use it now for import. Change-Id: I7dbd04e506e98c344f97e455955cdf2c2f6d83c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135631 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-06-10Entry may have no textMike Kaganski
... after the changes made to IconView. This partially reverts commit 54725f6e5f06b074d1c08d8efbd16518b96882d5 Author Mike Kaganski <mike.kaganski@collabora.com> Date Tue May 03 09:49:07 2022 +0100 Don't add empty labels to fontwork's icon view and instead, makes SvTreeListBox::GetEntryText tolerate absent text. Change-Id: Ifc386263ad656478416907a6f6b567cd1f3331ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135582 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2022-06-10new loplugin:moveitNoel Grandin
look for local variables that can be std::move'd to parameters off by default, since it doesn't do proper data flow analysis Change-Id: I3403a0fcffd165bdea6a772528bc53995c5fdb40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135527 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-10tdf#135346: vcl_pdfexport: Add unittestXisco Fauli
Change-Id: I11ad776419ea3c0eb5babd0f1ee2c7c70b7e7485 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135580 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-06-10tdf#114256: vcl_pdfexport: Add unittestXisco Fauli
Change-Id: Iaaeb0b248f84709855d9e83d34cecf22f1169769 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135581 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-06-10Add asserts to those places where I fixed a EXCEPTION_INT_DIVIDE_BY_ZEROXisco Fauli
I found those crashes scraping https://crashreport.libreoffice.org/stats/ so those are blind fixes basically. Add these asserts, hoping one day someone will hit them so we can find the root cause. See 7c8b9fa98f4c5f7f5620e797dbbe24081e252548 fae937b6859517bd9fe8e400cad3c84561ff98ab ce39195e533336ce1482e2be6b1bec2b7f992125 23e3bff528ab38c8d5c6d401b672a0033cef2bd4 ea4cd397300120a0f825752182eb3b943eb8a1b2 Change-Id: I175f47361e07961417c87cc8f3d7d4d1fb50fb2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135448 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2022-06-09Accessibility for IconViewMike Kaganski
Change-Id: I65ca9d43f70a50e2e95aabfc3b8ba1b15f9ff8be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135226 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-06-09loplugin:unusedmethodsNoel Grandin
Change-Id: Ib89ab59f7ad7e90b2a44ddd122176cde904fba4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135520 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-09a Frame has max two childrenCaolán McNamara
during creation it might not have all its children created yet if a11y querys it during its setup. Change-Id: Ifbbec7eeb80409dc5e871c2022d1ee1e36c6e74f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135526 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-09Use same glyph width in PDF drawing and font subsetKhaled Hosny
During PDF drawing we already know the glyph width, but when subsetting we get it again from the font subset. For fonts without CFF table this is redundant but harmless, but for fonts with CFF table, if the CFF and hmtx table (the authoritative source of glyph widths) disagree, we will be drawing the PDF string with the wrong adjustment resulting in displaced glyphs. This is a font bug, but avoiding redundancy and having one source of truth is an improvement overall. I kept the code that calculates advance widths for font subsets, just in case it is is still used elsewhere. Change-Id: I757cd0c2ebb6477b2f840d0005e84b5a131f7efb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135442 Tested-by: Jenkins Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-08VCL add vcl::WindowPosSize abstract classJan-Marek Glogowski
... and use it to remove a duplicate and simplify code. Should mostly be a refactoring, which was mainly done by some larger sed calls, except for the new API calls, which helped shrinking some LOC. All data is also now private. Originally two of the "replaced" "classes" had unsigned width and height and one had signed. Noel pointed out, that during calculations, the value might get negative temporarly, so this now settles with signed values. Still the set size should never be negative and this is enforced this way. Not sure that is what Noel had in mind. This also includes: - rename WindowState => WindowData - rename WindowStateMask => WindowDataMask - rename WindowStateState => WindowState - move WindowState and WindowDataMask to vcl/windowstate.hxx - move WindowData(Mask) and WindowState into vcl namespace - readability: replace or'ed WindowState enums with "meta" enums + add "meta" WindowState enums PosSize and PosSizeState Change-Id: Icd16cfb498531aa7238ddbde83fcb0ed6d9e4f77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135426 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-08tdf#119827 implement GtkBuilder "scale" property for font sizeCaolán McNamara
and use it for the case in charnamepage Change-Id: I5920aa429c750e9b147cbc09a6f3814166851a8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135493 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-08CppunitTest_vcl_pdfexport: reduce test doc size in testAlternativeTextMiklos Vajna
A one-pixel image will do the job. Change-Id: Ied9b51c104a39b0bcf5401d8486c11f87c979805 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135477 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2022-06-07Fix ImageView without text on GTKMike Kaganski
Change-Id: I2c1884722de2d40e96282d1efbba4be0ad078bd2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135465 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-06-06Fix typoAndrea Gelmini
Change-Id: I313b07bb1a3c387abddcad85c997075bd584ae6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135440 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-06-05assert if a model is used in duplicate widgetsCaolán McNamara
we never do this deliberately Change-Id: I6d6d8ea13fb5f09bcf631c0474e671d4605f4c69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135427 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-05tdf#137471 Qt return frame pos + client area sizeJan-Marek Glogowski
My code comment about "drawable area" and Michaels bug comment 12 about the "frameGeometry()" usage were both half right. LO expects the window's frame position and the drawable client area size almost everywhere when "geometry" is involved. The frame's border is stored in the decorations members of SalFrameGeometry. Change-Id: Ic00ad1f1d74d7afadcaca0c01e1a41ea7f2833de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135434 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-04WIN refactor geometry updatingJan-Marek Glogowski
Change-Id: I34e710c022e6362dc2381327eb896610c35bcbf0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135425 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2022-06-04this should call the base class enable_notify_eventsCaolán McNamara
Change-Id: Icc26f3adcb3273426e6892aafd16da23176e23de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135373 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-06-04ofz#47759 TimeoutCaolán McNamara
Change-Id: I8d6b1adb83963c229d71b9f593d39d8cd3e281e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135363 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>