summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2024-08-16cid#1557618 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557535 COPY_INSTEAD_OF_MOVE cid#1557520 COPY_INSTEAD_OF_MOVE cid#1557513 COPY_INSTEAD_OF_MOVE cid#1557503 COPY_INSTEAD_OF_MOVE cid#1557487 COPY_INSTEAD_OF_MOVE cid#1557483 COPY_INSTEAD_OF_MOVE cid#1557479 COPY_INSTEAD_OF_MOVE cid#1557474 COPY_INSTEAD_OF_MOVE cid#1557461 COPY_INSTEAD_OF_MOVE cid#1557446 COPY_INSTEAD_OF_MOVE cid#1557445 COPY_INSTEAD_OF_MOVE cid#1557441 COPY_INSTEAD_OF_MOVE cid#1557435 COPY_INSTEAD_OF_MOVE cid#1557433 COPY_INSTEAD_OF_MOVE cid#1557429 COPY_INSTEAD_OF_MOVE cid#1557375 COPY_INSTEAD_OF_MOVE cid#1557372 COPY_INSTEAD_OF_MOVE cid#1557356 COPY_INSTEAD_OF_MOVE cid#1557350 COPY_INSTEAD_OF_MOVE cid#1557344 COPY_INSTEAD_OF_MOVE cid#1557339 COPY_INSTEAD_OF_MOVE cid#1557332 COPY_INSTEAD_OF_MOVE cid#1557330 COPY_INSTEAD_OF_MOVE cid#1557328 COPY_INSTEAD_OF_MOVE cid#1557323 COPY_INSTEAD_OF_MOVE cid#1557315 COPY_INSTEAD_OF_MOVE cid#1557313 COPY_INSTEAD_OF_MOVE cid#1557304 COPY_INSTEAD_OF_MOVE cid#1557297 COPY_INSTEAD_OF_MOVE cid#1557291 COPY_INSTEAD_OF_MOVE cid#1557290 COPY_INSTEAD_OF_MOVE cid#1557271 COPY_INSTEAD_OF_MOVE cid#1557266 COPY_INSTEAD_OF_MOVE cid#1557262 COPY_INSTEAD_OF_MOVE cid#1557259 COPY_INSTEAD_OF_MOVE cid#1557246 COPY_INSTEAD_OF_MOVE cid#1557242 COPY_INSTEAD_OF_MOVE cid#1557241 COPY_INSTEAD_OF_MOVE cid#1557236 COPY_INSTEAD_OF_MOVE cid#1557228 COPY_INSTEAD_OF_MOVE cid#1557225 COPY_INSTEAD_OF_MOVE cid#1557221 COPY_INSTEAD_OF_MOVE cid#1557217 COPY_INSTEAD_OF_MOVE cid#1557213 COPY_INSTEAD_OF_MOVE cid#1557211 COPY_INSTEAD_OF_MOVE cid#1557209 COPY_INSTEAD_OF_MOVE cid#1557205 COPY_INSTEAD_OF_MOVE cid#1557204 COPY_INSTEAD_OF_MOVE cid#1557193 COPY_INSTEAD_OF_MOVE cid#1556082 COPY_INSTEAD_OF_MOVE Change-Id: I07f195a79a69d4bac0d14317854efc88d6fe94d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171927 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-16cid#1616498 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1616499 COPY_INSTEAD_OF_MOVE Change-Id: I21b089cab036902a7ba5b725a6eae0f1212f2b31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171923 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-15qt: Drop X11 condition for session/screensaver inhibitionMichael Weghorn
The DBus based session/sreenlock inhibition work on Wayland just fine, and in a quick test with the qt6 VCL plugin on Plasma 5 Wayland on Debian testing, the screen saver is inhibited as expected and doesn't start while an Impress presentation is running. The code in `QtFrame::StartPresentation` being guarded by a `CHECK_ANY_QT_USING_X11` at first looks like this was all X11-only code. It already worked just fine on Wayland before that commit however, as it's a build time check only, and X11 is enabled by default at build time, and the code would run just fine on Wayland then with a null X11 Display. Drop the `CHECK_ANY_QT_USING_X11` (build-time) condition altogether, now that `USING_X11` is no more required after Change-Id: Ic46c3f18151340a5ea6c0b62a82c957fd1cd6484 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Aug 15 10:13:27 2024 +0200 vcl: Allow DBus-based session inhibition without requiring X11 Move the X11-specific code into the `#if CHECK_QT5_USING_X11` block and call the overload that doesn't require an X11 Display otherwise. Change-Id: Idee0564d136e59ce54945670dee26df0cfc64d85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171896 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-15vcl: Allow DBus-based session inhibition without requiring X11Michael Weghorn
So far, building `SessionManagerInhibitor` code was conditional on `USING_X11`. Besides direct X11 API calls, it uses DBus calls to inhibit lockscreen, power management, etc. The DBus based ways don't depend on X11 at all. Therefore, build the `SessionManagerInhibitor`code on relevant platforms unless the GUI feature is disabled altogether, and make only the X11 specific code conditional on `USING_X11` in addition. Move the non-X11 specific code from the existing `SessionManagerInhibitor::inhibit` to a new overloaded version that doesn't require an (X11) `Display` param. This builds successfully in an `--enable-gui --without-x` build. Change-Id: Ic46c3f18151340a5ea6c0b62a82c957fd1cd6484 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171895 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-15vcl: Drop MATE <= 1.10 session inhibit supportMichael Weghorn
This was added in: commit 68570131013cfcf29f4c934a727053c2903e35b1 Author: Andrzej Hunt <andrzej@ahunt.org> Date: Tue Oct 20 17:24:44 2015 +0200 Add org.mate.SessionManager support This is valid for Mate <= 1.10 (As of writing, 1.10 is the current stable release - so we'll have to keep shipping this for quite a few years to come.) Change-Id: I4d1f81c50923148e710eac22f5428b2a1c41f0e9 As the commit message and code comments say, MATE >= 1.12 also uses the "org.gnome.SessionManager" interface (which is still supported), so drop the "org.mate.SessionManager" one only needed for older versions. MATE 1.12 was released on 2015-11-05, which is long enough ago by now. [1] https://mate-desktop.org/blog/2015-11-05-mate-1-12-released/ Change-Id: I062261c6396b35be1a0f452826f8ee2c545f4906 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171893 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-15Update pdfium to 6656Miklos Vajna
Drop external/pdfium/annot.patch.1, it has been upstreamed as <https://pdfium-review.googlesource.com/c/pdfium/+/120750>. Update PDFiumPageObjectImpl::getFontName() to match <https://pdfium-review.googlesource.com/c/pdfium/+/121911> "Rename FPDFFont_GetFontName() to FPDFFont_GetFamilyName()". Extend external/pdfium/build.patch.1 to work around: > C:/cygwin/home/tdf/jenkins/workspace/gerrit_windows/workdir/UnpackedTarball/pdfium/fpdfsdk/fpdf_annot.cpp(1083): fatal error C1001: Internal compiler error. Change-Id: I94ed21265a79d484759f240f3baeb51c92365c78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171884 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-08-15vcl: add "fillWithData" function to BitmapTools - used in lokTomaž Vajngerl
Change-Id: Ia143a39d2285bbdebf7fcfe709b0c6418d35585c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171589 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2024-08-14Simplify initialization of font name vector in vcldemoAshok
Replace the classic For loop with vector initializers. Change-Id: I60ee577ef395127e99148a32e02009e0cc1c1d51 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171568 Reviewed-by: Hossein <hossein@libreoffice.org> Tested-by: Hossein <hossein@libreoffice.org> Tested-by: Jenkins
2024-08-14cid#1557708 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557707 COPY_INSTEAD_OF_MOVE cid#1557706 COPY_INSTEAD_OF_MOVE cid#1557705 COPY_INSTEAD_OF_MOVE cid#1557704 COPY_INSTEAD_OF_MOVE Change-Id: I2346348d9d896e352db3471e8137c0eca8b21507 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171861 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-14qt: Remove "5" from render backend nameMichael Weghorn
The previously named "qtsvp5" and "qt5" render backends are used for both, qt5 and qt6 since the qt6 VCL plugin exists, so drop "5" from the name. Change-Id: Ia97eb14d9229bf33d40a6a383d7656f9467ad460 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171854 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-14Related: cool#9735 vcl lok: add an AnyInput() callbackMiklos Vajna
Open the 300 pages bugdoc, paste a oneliner plain text content in a paragraph which is part of a numbered list, observe a 274 ms hang till layout is done for all pages, then we get an updated tile. This could be better, there is no such hang in the desktop case. What happens is that 1) vcl doesn't try to invoke the poll callback of the LOK client when there was a processed timer and 2) Writer layout doesn't try to split its work into pieces because the LOK client has no way to inform vcl that it has pending input events. Fix the first problem in this commit: add a new API that allows a LOK client to inform vcl that it has pending input events and use that SvpSalInstance::ImplYield(): if a LOK client has pending input events, then invoke the poll callback after each processed timer. For example, this allows the LOK client to process emitted callbacks between two idle layout jobs, word counting, etc. The second problem around Writer to use comphelper::LibreOfficeKit::anyInput() is not yet fixed. Change-Id: I2e39253bfc4d1b5546bc60eef9ff05ccdc0868b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171846 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2024-08-14dubious to enable/disable help button based on IsContextHelpEnabledCaolán McNamara
in just the SingleTabController, which is a specific subset of all dialogs, the case of a dialog that hosts a page typically seen in a multi-table dialog. Why should such a dialog have no help, while its sibling containing the same page alongside others would have help, or vice-versa. Change-Id: I3f54c0088e30a396e83e990510ebe7f1f3bc7bda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171848 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-14CairoSDPR: Handle EmphasisMarksArmin Le Grand (Collabora)
Handling EmphasisMarks for direct text rendering was a hard task - the EmphasisMark stuff is deeply buried in vcl (would have needed to move quite some includes from vcl to public) and thus hard to use. It is also quite old (tools Polygon, Rectangle). It was missing in the decomposition of the TextDecoratedPortionPrimitive2D (for good reason), but is needed now. I found a way using a callback lambda function to create the needed geometry in vcl and hand back the needed data to the caller, in this case to the decomposition. Adding it to the decomposition of TextDecoratedPortionPrimitive2D also guarantees that other renderers/usages will do the correct thing and all will look identical. Interestingly EmphasisMarks were never added to Metafiles (see OutputDevice::ImplDrawEmphasisMarks) so they were not 'missing' in Metafile-based exports. But for SDPRs they have to work. I added another encapsulating TextHierarchyPrimitive to encapsulate primitives that do represent EmphasisMarks and added to ignore these in the VclMetafileProcessor2D (as needed). Change-Id: I5b5c1528d86a123df2beb57d8366f05aa71e77cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171826 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2024-08-14UBSan SAL_USE_VCLPLUGIN=qt5 needs SvpGraphicsBackend RTTIStephan Bergmann
...as it leaks out of Library_vcl into Library_vcplug_qt5 via GenPspGraphics::m_pBackend in vcl/inc/unx/genpspgraphics.h, included from vcl/qt5/QtInstance_Print.cxx Change-Id: Id89217f1eef346b70a7f9269c2dc76e28b78ca69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171835 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Tested-by: Jenkins
2024-08-13vcl a11y: Report "top-level"'s frame againMichael Weghorn
If a top-level windows has a border window that's a frame as parent, report that again as the a11y parent, which was no longer the case after commit 97d3baf3f92c4ab3e5dbd5a9c585dd1a1ad2b3d5 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Aug 9 15:59:28 2024 +0200 vcl a11y: Don't report parent window for top-levels Other than the "Save document?" case described in the commit message of that commit, where the dialog parent is actually a completely different window (the LO Writer main window), the "top-level" window's frame actually contains the top-level (i.e. they do belong to the same window on the platform level), and the frame does report the top level as an accessible child, so it's consistent to report the parent the other way around, too. This e.g. makes Accerciser's "Inspect under mouse" feature work again on Wayland with Accerciser's "kwin" backend for e.g. the "Format" -> "Paragraph" dialog in Writer, while still working for the "Save Document?" dialog case the above-mentioned commit addressed. It still seems a little odd that the "Paragraph" object in the a11y tree with "dialogue" role still has a parent of the same name with a "frame" role when using the qt6 VCL plugin, as can be seen in Accerciser. (The "dialogue" AT-SPI role is meant to be an actual top-level with no additional parents, and that's the way it actually is for the same dialog when using the gtk3 VCL plugin using native GTK widgets.) That's a different story, however. For now, report the parent again to have a consistent a11y hierarchy. Change-Id: I07cf287aaf3effbcda0bb4982aafb0fa4bf4f22f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171825 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Move handleAtkObject to base classMichael Weghorn
Change-Id: I0f29b53b58f2d65d3409f6416406ba21c2411b98 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171821 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Move handleItems to base classMichael Weghorn
Let the base class do the parsing for items and return a `ComboBoxTextItem`. It has nothing `vcl::Window` specific. (`vcl::Window` specific part is only when this gets applied in `insertItems`, which could probably be reimplemented differently for other subclasses). Change-Id: Ica2f435b48c69fbdfff450b713d91a6fbe985de6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171820 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Move size group parsing to base classMichael Weghorn
Move the parsing of size groups from `VclBuilder` to the base class, `BuilderBase` and add a getter, `BuilderBase::getSizeGroups` that currently gets used from `VclBuilder`. Since the parsing is not specific to vcl::Window, make it possible to reuse it from other subclasses. It could e.g. be useful for the WIP QtInstanceBuilder from Omkar's WIP change [1]. [1] https://gerrit.libreoffice.org/c/core/+/161831 Change-Id: I0c44bfda1d5c850679695ab6bd436e4e487df9c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171819 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-13tdf#130857 VclBuilder: Move list store handling to base classMichael Weghorn
This has has nothing vcl::Window specific, so make it reusable by other subclasses, like the WIP QtInstanceBuilder from Omkar's WIP change [1]. [1] https://gerrit.libreoffice.org/c/core/+/161831 Change-Id: I8ef00b9534c8f9d6bf756371133401ac06c05168 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171818 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Move collectProperty to base classMichael Weghorn
With the translation/localization moved to the base class in Change-Id: I2cefddae0a7e2e2dd4487cc9b9796afb215e2616 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Aug 12 12:52:16 2024 +0200 tdf#130857 VclBuilder: Move locale handling to base class , `VclBuilder::collectProperty` can now be moved there for reuse as well. Change-Id: I159aac8b59dd429b3c7d991c0d2546ae6739bcca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171790 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Reuse existing helper methodMichael Weghorn
Reuse the existing helper method `BuilderBase::finalizeValue` introduced in previous commit Change-Id: I76a41dbe9c830de02cb38b17d3587d49f64d0ff8 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Aug 12 13:24:46 2024 +0200 tdf#130857 VclBuilder: Extract helper to finalize value in `VclBuilder::collectProperty` instead of duplicating the logic there. Change-Id: Id04b27e880647150f8fb9aad321e3d216f92844c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171789 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Extract helper to finalize valueMichael Weghorn
Extract helper method `BuilderBase::finalizeValue` to "finalize" a value, i.e. translate (if applicable) and apply the string hook (if set) from `VclBuilder::handleItems`. It will be reused in `VclBuilder::collectProperty` in an upcoming commit to reduce duplication. Change-Id: I76a41dbe9c830de02cb38b17d3587d49f64d0ff8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171788 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Avoid unnecessary work for empty propMichael Weghorn
If `sProperty` is empty, `sValue` and `sFinalValue` are irrelevant, so only assign (and potentially translate) for the case it's non-empty. This also prepares for extracting part of this method to a helper method used by both, `VclBuilder::collectProperty` and `VclBuilder::handleItems`. Change-Id: I5b6acb1fe3c857c578b88b29d0b17e887134f687 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171787 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-13tdf#130857 VclBuilder: Move locale handling to base classMichael Weghorn
* Introduce `ParserState` in the `BuilderBase` base class and move the `std::locale m_aResLocale` there from `VclParserState`. * Add a virtual `resetParserState()` method to reset both parser states. * Move `VclBuilder::handleInterfaceDomain` to the base class to let it take care of the handling of the translation domain/locale. * Instead of directly accessing the `m_aResLocale` member of the parser state, introduce a new getter, `getResLocale()`. Moving more of the members from `VclBuilder::m_pVclParserState` to `BuilderBase::m_pParserState` might make sense in future commits in order to reuse code for other implementations (like the WIP QtInstanceBuilder from [1]), so start with a corresponding struct right away instead of a member for just the locale. [1] https://gerrit.libreoffice.org/c/core/+/161831 Change-Id: I2cefddae0a7e2e2dd4487cc9b9796afb215e2616 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171786 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Rename ParserState -> VclParserStateMichael Weghorn
This is in preparation of reintroducing `ParserState` in the base class, `BuilderBase`, with the plan to move things not specific to `vcl::Window`s there in the longer run, for reuse for subclasses not using `vcl::Window`, like the WIP `QtInstanceBuilder` from Omkar's pending WIP Gerrit change [1]. [1] https://gerrit.libreoffice.org/c/core/+/161831 Change-Id: I54758554b0093d3eefcd6f1f13f3479bdd07a0ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171785 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Extract helper for interface domainMichael Weghorn
Extract a helper method `VclBuilder::handleInterfaceDomain` that handles the "domain" attribute for the "interface" node that specifies the translation domain. This is more or less extracted from Omkar's WIP Gerrit change <https://gerrit.libreoffice.org/c/core/+/163103/9>. Co-authored-by: OmkarAcharekar <omkaracharekar12@gmail.com> Change-Id: I30ae1362b4d25ca478d2872cd695006a133d73f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171764 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-13tdf#130857 Drop VclBuilder::m_pStringReplaceMichael Weghorn
Just use a local variable and call the `Translate::GetReadStringHook` getter directly in the currently 2 places using it. (Those will be further consolidated to use a helper method in upcoming commits.) Change-Id: I787a4794e6fd727e19bad12d5f61df66f41964c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171763 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-13tdf#130857 VclBuilder: Move m_bLegacy to base classMichael Weghorn
... and introduce a protected getter instead of accessing the member directly. Change-Id: I105cb10b015887ee14bba0c519f03e9ba8b4c3c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171750 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-13tdf#130857 VclBuilder: Move 2 static methods to base classMichael Weghorn
They're not `vcl::Window`-specific and might be helpful for other implementations as well. Change-Id: I8c04706ac36f80bc225a9ad89352b3d4a7c6464f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171749 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-12cid#1616198 silence Arguments in wrong orderCaolán McNamara
Change-Id: I7be4ef1b27ddceb8ecdbe67c7985ad1e5bf47c2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171759 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-12icon choice ctrl: Drop EVENTID_SHOW_CURSORMichael Weghorn
The code that would have posted an event of that type was dropped in commit 40971354138e14a2aacfa4605ba0c096e000d578 Date: Tue Mar 1 08:30:03 2016 +0200 loplugin:unuseddefaultparam in svtools , so there's no need to keep the handling for an event that's never emitted in place. Change-Id: Iec6bf17e040a44eb1dccabbb1273ae112dedc45a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171746 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-12ofz: sc-html "ClusterFuzz Unreproducible" resetCaolán McNamara
so reenable this and bump up min fuzz length Change-Id: Iaafe917d75c0e9c6482957b368e39196b5c0ead8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171748 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-12gtk4 a11y: Avoid explicit std::max template specializationMichael Weghorn
Thanks to Mike Kaganski for pointing out this is the better way to do it in [1]: > In these cases, it's best to avoid the explicit template specialization, > but instead, do something like > > std::max(sal_Int32(0), xText->getCaretPosition()) > > because this latter form makes sure that it will not create problems > later at some unknown point in time, when we decide to change the > type of the returned value of the function. When that happens, your > form would silently continue to cast both its parameters to > sal_Int32, maybe overflowing. In the proposed form, this max would > break again, because the sal_Int32(0) would now not match the type > of getCaretPosition, and require us to revisit this code, and make > correct changes. > > It is indeed ~impossible in the specific case of the UNO API method; > but the best practice is that, and having inconsistency in the > codebase is sub-optimal ;-) [1] https://gerrit.libreoffice.org/c/core/+/171687/comment/35580611_5d9dfe85/ Change-Id: I489bf4fe5ca12833bc17849434822b984a8586a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171744 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-11cid#1558088 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1558080 COPY_INSTEAD_OF_MOVE cid#1558077 COPY_INSTEAD_OF_MOVE cid#1558055 COPY_INSTEAD_OF_MOVE cid#1558043 COPY_INSTEAD_OF_MOVE cid#1558039 COPY_INSTEAD_OF_MOVE cid#1558015 COPY_INSTEAD_OF_MOVE cid#1558014 COPY_INSTEAD_OF_MOVE cid#1558009 COPY_INSTEAD_OF_MOVE cid#1558002 COPY_INSTEAD_OF_MOVE cid#1557998 COPY_INSTEAD_OF_MOVE cid#1557996 COPY_INSTEAD_OF_MOVE cid#1557990 COPY_INSTEAD_OF_MOVE cid#1557986 COPY_INSTEAD_OF_MOVE cid#1557980 COPY_INSTEAD_OF_MOVE cid#1557971 COPY_INSTEAD_OF_MOVE cid#1557968 COPY_INSTEAD_OF_MOVE cid#1557967 COPY_INSTEAD_OF_MOVE cid#1557961 COPY_INSTEAD_OF_MOVE cid#1557959 COPY_INSTEAD_OF_MOVE cid#1557958 COPY_INSTEAD_OF_MOVE cid#1557956 COPY_INSTEAD_OF_MOVE cid#1557953 COPY_INSTEAD_OF_MOVE cid#1557949 COPY_INSTEAD_OF_MOVE cid#1557947 COPY_INSTEAD_OF_MOVE cid#1557940 COPY_INSTEAD_OF_MOVE cid#1557931 COPY_INSTEAD_OF_MOVE cid#1557930 COPY_INSTEAD_OF_MOVE cid#1557915 COPY_INSTEAD_OF_MOVE cid#1557913 COPY_INSTEAD_OF_MOVE cid#1557910 COPY_INSTEAD_OF_MOVE cid#1557886 COPY_INSTEAD_OF_MOVE cid#1557884 COPY_INSTEAD_OF_MOVE cid#1557880 COPY_INSTEAD_OF_MOVE cid#1557875 COPY_INSTEAD_OF_MOVE cid#1557871 COPY_INSTEAD_OF_MOVE cid#1557862 COPY_INSTEAD_OF_MOVE cid#1557847 COPY_INSTEAD_OF_MOVE cid#1557845 COPY_INSTEAD_OF_MOVE cid#1557844 COPY_INSTEAD_OF_MOVE cid#1557843 COPY_INSTEAD_OF_MOVE cid#1557838 COPY_INSTEAD_OF_MOVE cid#1557835 COPY_INSTEAD_OF_MOVE cid#1557834 COPY_INSTEAD_OF_MOVE cid#1557828 COPY_INSTEAD_OF_MOVE cid#1557823 COPY_INSTEAD_OF_MOVE cid#1557817 COPY_INSTEAD_OF_MOVE cid#1557813 COPY_INSTEAD_OF_MOVE cid#1557812 COPY_INSTEAD_OF_MOVE Change-Id: I55d4a920daa2d148683419169eb828325fd3c757 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171732 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-11speed up menu construction at app startupNoel Grandin
we spend a lot of time constructing menus, mostly because we trigger events for every tiny change to a menu item Change-Id: I8f81e406b577c27c9f4bcfe23bf644d751bb5d92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171723 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-11Related: tdf#154959 suitable label printer paper size not auto-selectedCaolán McNamara
a) If the printer is the default, then it doesn't get a paper size auto selected in the paper combobox, even though the preview shows it rendered on a paper size that the printer supports. b) With that fixed, then if the printer is the default one then right paper gets selected automatically, but starting with another and then switching to it gets different results, so throw away the "page cache" on switching pages and get it again. Change-Id: Idd5254eac2668164b02b41a63943f65a222656d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171721 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-10cid#1556058 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1556064 COPY_INSTEAD_OF_MOVE cid#1556066 COPY_INSTEAD_OF_MOVE cid#1556072 COPY_INSTEAD_OF_MOVE cid#1556075 COPY_INSTEAD_OF_MOVE cid#1556077 COPY_INSTEAD_OF_MOVE Change-Id: Ie2992d321ecff15f104547e3a3cad6e8c1a786a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171708 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-10gtk4 a11y: Fix 32-bit buildMichael Weghorn
Take over the fix that Ubuntu has as a patch in its LibreOffice package. Thanks to Rene Engelhard for pointing it out on IRC: [10:43] <_rene_> michaelweghorn: see armhf and i386 at https://buildd.debian.org/status/package.php?p=libreoffice&suite=experimental. gtk4 and 32bit [10:44] <_rene_> michaelweghorn: i saw https://git.launchpad.net/~libreoffice/ubuntu/+source/libreoffice/commit/?h=wip/oracular-24.8 in ubuntu for that somrhow only mentioning armhf Change-Id: I7666fb56f5e36195d5b320689bed6cfda2140e38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171687 Reviewed-by: René Engelhard <rene@debian.org> Tested-by: Jenkins Tested-by: René Engelhard <rene@debian.org>
2024-08-09vcl a11y: Don't report parent window for top-levelsMichael Weghorn
For top-level `vcl::Window`s, don't report any accessible parent from the `vcl::Window` hierarchy. Even though e.g. a parent for a dialog may be set in the widget hierarchy, that shouldn't be reflected in the a11y hierarchy. As top-level windows are direct children of the application (on Linux) or the desktop (on Windows), reporting another window as the parent would be inconsistent. Reporting the dialog's parent as a11y parent is also inconsistent because the parent itself doesn't report the top-level dialog as a child either. With this commit in place, e.g. the "Save Document?" dialog in Writer no longer reports the main window ("'Untitled 1 — LibreOfficeDev Writer 25.2") as its parent when using the qt6 VCL plugin, but reports the app as its parent instead. This makes highlighting the correct area work when clicking on any of the children of the dialog in Accerciser's a11y tree of the LO hierarchy when run on Wayland, and also makes the "Inspect under Mouse" feature work to detect (and select) the object currently under the mouse pointer. Change-Id: I8c8789cd40598ed9370fa5d34e0429d024af14bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171695 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-09Under Application::IsOnSystemEventLoop, do nothing in Application::RescheduleStephan Bergmann
...as e.g. loading an HTML document via SwHTMLParser calls it at various places, presumably to make loading more responsive for the user, but without any functional impact beyond that. So instead of aborting better just do nothing. Change-Id: I99350ab98b1b75be9a8c7adcc72973174bc258e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171688 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-08-09we can drop cached text check workaroundCaolán McNamara
the root problem was found as: commit e75a1eb21834fa872864df2cc5811c6463aceb78 Date: Tue Jun 11 11:29:44 2024 +0100 more stale hyphenation data after skipping blanks commit f050103c3324d878b310f37429ea3580a8230905 Date: Fri Jun 7 20:14:15 2024 +0100 stale hyphenation data after skipping blanks Change-Id: Ia92dcb779ef75d15dd47479458154ba04ff1ef52 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170255 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-08cid#1607356 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1607117 COPY_INSTEAD_OF_MOVE cid#1607089 COPY_INSTEAD_OF_MOVE cid#1606977 COPY_INSTEAD_OF_MOVE cid#1606899 COPY_INSTEAD_OF_MOVE cid#1606785 COPY_INSTEAD_OF_MOVE cid#1606769 COPY_INSTEAD_OF_MOVE cid#1606740 COPY_INSTEAD_OF_MOVE cid#1606738 COPY_INSTEAD_OF_MOVE cid#1606675 COPY_INSTEAD_OF_MOVE cid#1606533 COPY_INSTEAD_OF_MOVE cid#1558100 COPY_INSTEAD_OF_MOVE cid#1558098 COPY_INSTEAD_OF_MOVE cid#1558083 COPY_INSTEAD_OF_MOVE cid#1558077 COPY_INSTEAD_OF_MOVE cid#1558074 COPY_INSTEAD_OF_MOVE Change-Id: Ica17dec2c2102ef85283fd883a0a4e64aec307c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171620 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-08tdf#162358 Fix missing fallback run inside grapheme clusterJonathan Clark
This change fixes an issue causing certain diacritics to be rendered as the replacement character. The root cause was failing to consistently populate fallback runs for the first grapheme cluster, when a layout begins inside a grapheme cluster. Change-Id: I7ce368c815d33b26fc05d726d4f4efd050ed9a17 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171607 Reviewed-by: Jonathan Clark <jonathan@libreoffice.org> Tested-by: Jenkins
2024-08-07cid#1557545 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557556 COPY_INSTEAD_OF_MOVE cid#1557583 COPY_INSTEAD_OF_MOVE cid#1557587 COPY_INSTEAD_OF_MOVE cid#1557591 COPY_INSTEAD_OF_MOVE cid#1557598 COPY_INSTEAD_OF_MOVE cid#1557600 COPY_INSTEAD_OF_MOVE cid#1557653 COPY_INSTEAD_OF_MOVE Change-Id: I050bed7c088678e1d767d6edbe656eab2aee235d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171591 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-07tdf#130857 qt weld: Implement newly added 'escape_ui_str'Michael Weghorn
Implement actual Qt-specific handling in `weld::QtInstanceWidget::escape_ui_str`, newly added in commit ee749f4b43fea3b666c9c3613b232bc8fecf73fa Date: Tue Aug 6 16:47:30 2024 +0200 add polymorph function for VCL/ui specific string escaping For a sample use, see also commit fb56e1e284925937eff4386a7e3655c0f3182640 Date: Wed Jul 31 22:25:01 2024 +0200 tdf#161909: Escape filepaths for password dialog. (See also `vclToQtStringWithAccelerator`, but which would result in the accelerator character '~' to be preserved/converted as an accelerator, which is unintended here.) While at it, also fix a typo in the doc. Change-Id: Ic557a1aa8c6b46257a231627d817f1f7e1d101cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171586 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-07add polymorph function for VCL/ui specific string escapingMoritz Duge
Change-Id: Ie896a1050158acc85f66b8705812e5f6b9717070 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171509 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-07cool#9704 calc jsdialog autofilter send disabled entry informationJaume Pujantell
Added the code necessary to disable already filtered entries on jsdialog autofilter, like it is done on desktop UI. Change-Id: I095b7fe0054efcaff2717d05a2ab7bd1d8248b29 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171246 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 2815d11bb608a933e14b799cc802825423426d28) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171530 Tested-by: Jenkins
2024-08-07tdf#130857 qt weld: Implement QtInstanceWidget::get_clipboardMichael Weghorn
Like the gtk3 implementation, simply return the system clipboard. Change-Id: I643b31163954f2648b3bbee74397fc23c616ddef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171561 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-07tdf#130857 qt weld: Implement {s,g}et_tooltip_textMichael Weghorn
Change-Id: I02ab861a9e82840c62bbb61ba53a699881519796 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171560 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-07tdf#130857 qt weld: Implement QtInstanceWidget::{show,hide}Michael Weghorn
Change-Id: I557ef20ef0a4d173e5a54a4a568f1ebb127c072e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171559 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins