summaryrefslogtreecommitdiff
path: root/vcl/unx
AgeCommit message (Collapse)Author
2024-09-28gen: Use std::vector::at instead of operator[]Michael Weghorn
std::vector::at does bounds checking. Change-Id: Id173ad08fb3bf54e4b3e625b45bc439c59b4d9d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174031 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-28qt: Let GetQtInstance return ref instead of pointerMichael Weghorn
The return value was dereferenced in all callers anyway. Change-Id: Ib91eddd23222d086f9a4edac980a05cd96c75ad7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174026 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-26tdf#160837 vcl: Use getter to get frame geometryMichael Weghorn
Instead of directly accessing the (currently still public) class member SalFrame::maGeometry, use the getter that returns a const reference to it. Change-Id: Iac7dd70b82160acba06d8016d94a1ac4380e779e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173955 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-26tdf#160837 vcl: Use existing SalFrame::GetWidthMichael Weghorn
Call `SalFrame::GetWidth` instead of directly accessing `SalFrame::maGeometry` and calling its `width()` method to simplify and abstract a bit from the implementation details in the callers. Change-Id: I06f960c4984e57a728c301e10fc62a28a8af6199 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173954 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18Resolves: tdf#162538 explicitly make buttons gain focus on activatationCaolán McNamara
even if by keyboard. So spinbuttons that depend on losing focus to update will update before 'ok' is called. Change-Id: I1eddd4c29c3ffeb06ead058c9efbdfde01418589 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173616 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-12tdf#161256 gtk4 a11y: Don't crash on missing context or invalid child indexMichael Weghorn
If an `XAccessible` doesn't have a context or `XAccessibleContext::getAccessibleIndexInParent()` returns an invalid index of -1, don't crash/assert, but let `lo_accessible_get_next_accessible_sibling` return `nullptr`. This works around potential bugs in underlying `XAccessible`/`XAccessibleContext` implementations for now. This is meant to fix the assert/crash seen in the backtraces attachment 196363 and attachment 196383 from tdf#161256 which I cannot reproduce locally on Debian testing. Change-Id: Ic1779d875161469bf296c558039e19f1d426a259 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173216 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-10use more concrete UNO type in vclNoel Grandin
Change-Id: I157109d11b349e1304a3279471d4ab90b65b5841 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173138 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-08-29Resolves: tdf#162659 toggle buttons have no "weight" propertyCaolán McNamara
so those extra columns don't make sense, they make sense if those were text entries. and add sensitive as a property we expect to see in tree/list-stores if sensitivity or later properties are used. Checking all the existing cases shows the only other cases like this are where we've just used the -1 'col' arg to set all columns to the desired sensitivity and previously shared a single sensitive property between checkboxes and the main 'text' case. Change-Id: I0b22fb93b935a06bfcda6f6a3169df0e24d8b9e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172546 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-27vcl: Use cups_option_t** param instead of void**Michael Weghorn
Use `cups_option_t**` for the param type instead of passing the `cups_option_t**` as `void**` and casting to `cups_option_t**` again everywhere it is used. Make the `<unx/cupsmgr.hxx>` include in vcl/unx/generic/printer/ppdparser.cxx depend on `ENABLE_CUPS`, to not require the CUPS header newly included in cupsmgr.hxx otherwise. Change-Id: Iac1362866099496f59101149ca02f1477cbd2b11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172402 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-27Make CPDB work with --enable-cpdb --disable-cupsMichael Weghorn
The `PrinterInfoManager` implementation in vcl/unx/generic/printer/printerinfomanager.cxx takes care of actually using the `CUPSManager` or the `CPDManager` for handling printers/printing. Therefore, build that one also when `--disable-cups` is used in addition to `--enable-cpdb`, and only make the CUPS-specific bits depend on `ENABLE_CUPS`, rather than building the dummy version of the `PrinterInfoManager` implemented in vcl/null/printerinfomanager.cxx. This makes the CPDB printers show up in the print dialog with WIP Gerrit change [1] in place in addition. [1] https://gerrit.libreoffice.org/c/core/+/169617/25 Change-Id: I5dddc72b8e679a84225f1dfb9c87d7562613a9f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172401 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-27vcl: Merge PrinterUpdate code into SalGenericInstanceMichael Weghorn
Move the logic from `PrinterUpdate::update` and `PrinterUpdate::doUpdate` directly into `SalGenericInstance::updatePrinterUpdate` and drop the extra helper class `PrinterUpdate` altogether. This also allows dropping retrieving the `SalGenericInstance` using SalGenericInstance *pInst = GetGenericInstance(); , as that is the object itself (`this`) in `SalGenericInstance::updatePrinterUpdate`. Change-Id: Ie201bead42f51b976c4bbffd6da650280bb45925 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172400 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-27vcl: Drop always null PrinterUpdate::pPrinterUpdateIdleMichael Weghorn
After Change-Id: I431171094d4981552f641af89940d877147ffa71 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Aug 26 14:18:46 2024 +0200 vcl: Drop logically dead "PrinterUpdate::nActiveJobs > 0" code , it's clear that `PrinterUpdate::pPrinterUpdateIdle` is always nullptr, so drop it and `PrinterUpdate::jobEnded`. Change-Id: Ieb1e1fdabc98d8d612a0af2c68f1dcdfc17852cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172399 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-27vcl: Drop logically dead "PrinterUpdate::nActiveJobs > 0" codeMichael Weghorn
`PrinterUpdate::nActiveJobs` is initialized to 0 and never increased, so cod paths for it being >= 0 are logically dead. Therefore, drop them and `PrinterUpdate::nActiveJobs` altogether. Also drop the now unused `UpdateTimerHdl`. `PrinterUpdate::jobStarted` that would have increased `PrinterUpdate::nActiveJobs` was dropped in commit 3564e11a41c8d3f06c8be387691d5997942e9738 Date: Sun Jul 30 23:20:36 2023 +0200 tdf#156230 remove now unused various bit and pieces Change-Id: I431171094d4981552f641af89940d877147ffa71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172398 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-27Add a CUPS config headerMichael Weghorn
In line with what's done for most optional, build-time configurable features, use a config header `config_cups.h` that has a `ENABLE_CUPS` define, include that header in the relevant source file and use #if ENABLE_CUPS for code depending on CUPS being enabled instead of defining a macro and using #ifdef ENABLE_CUPS This also aligns this with the `ENABLE_CPDB` macro used in the same source file. Change-Id: I71a5205fd63f9fc18470afcaf808c489ff833319 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172397 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-26cid#1608341 Overflowed return valueCaolán McNamara
Change-Id: I0deb43c8bf998f914368115f1dfd176278cfe274 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172386 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-24cid#1607908 silence Overflowed return valueCaolán McNamara
Change-Id: Iafc85f656b0703cd6a4e19469f4752203789477e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172347 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-20emscripten: Show actual Emscripten version in "About"Michael Weghorn
Display the actual Emscripten version instead of a literal "__EMSCRIPTEN_major__.__EMSCRIPTEN_minor__.__EMSCRIPTEN_tiny__" for the environment information in "Help" -> "About LibreOfficeDev". Change-Id: I6a29e8c323e8874e89201b2cce7c28d2218fc8cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172107 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-18cid#1557699 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1557435 COPY_INSTEAD_OF_MOVE cid#1557307 COPY_INSTEAD_OF_MOVE cid#1557209 COPY_INSTEAD_OF_MOVE cid#1557192 COPY_INSTEAD_OF_MOVE cid#1557184 COPY_INSTEAD_OF_MOVE cid#1557183 COPY_INSTEAD_OF_MOVE cid#1557171 COPY_INSTEAD_OF_MOVE cid#1557150 COPY_INSTEAD_OF_MOVE cid#1557148 COPY_INSTEAD_OF_MOVE cid#1557123 COPY_INSTEAD_OF_MOVE cid#1557118 COPY_INSTEAD_OF_MOVE cid#1557116 COPY_INSTEAD_OF_MOVE cid#1557103 COPY_INSTEAD_OF_MOVE cid#1557078 COPY_INSTEAD_OF_MOVE cid#1557075 COPY_INSTEAD_OF_MOVE cid#1557071 COPY_INSTEAD_OF_MOVE cid#1557070 COPY_INSTEAD_OF_MOVE cid#1557067 COPY_INSTEAD_OF_MOVE cid#1557049 COPY_INSTEAD_OF_MOVE cid#1557046 COPY_INSTEAD_OF_MOVE cid#1557042 COPY_INSTEAD_OF_MOVE cid#1557036 COPY_INSTEAD_OF_MOVE cid#1557030 COPY_INSTEAD_OF_MOVE cid#1557024 COPY_INSTEAD_OF_MOVE cid#1557012 COPY_INSTEAD_OF_MOVE cid#1557009 COPY_INSTEAD_OF_MOVE cid#1557008 COPY_INSTEAD_OF_MOVE cid#1557004 COPY_INSTEAD_OF_MOVE cid#1556999 COPY_INSTEAD_OF_MOVE cid#1556992 COPY_INSTEAD_OF_MOVE cid#1556987 COPY_INSTEAD_OF_MOVE cid#1556984 COPY_INSTEAD_OF_MOVE cid#1556981 COPY_INSTEAD_OF_MOVE Change-Id: Id2687aa282f4e2d4b8053b73c7aa1a74a9516b16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171974 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
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-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-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-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-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-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-05vcl: Drop obsolete CUPS version checkMichael Weghorn
This CUPS >= 1.7 version check was was introduced back in 2017 in commit 7fbf98d99737ac916cc2dc374f3139e2ea81e47b Date: Thu Jul 27 08:11:34 2017 +0530 Add Common Printing Dialog Functionality and is obsolete by now. According to [1], our AlmaLinux baseline has CUPS 2.2.6 by now. Replace by a simple check whether CUPS is enabled for the build. (`pwg_media_t` used in that conditional code block is from a CUPS header and e.g. not available in the Android CI builds, see [2].) [1] https://pkgs.org/search/?q=cups [2] https://ci.libreoffice.org/job/gerrit_android_x86_64/40875/console Change-Id: I4683c86c2c9e44ff41ee8093d8f045bc955cba99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171485 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-05CairoSDPR: direct text rendering using CairoArmin Le Grand (Collabora)
I have added basic support for the text primitives (TextSimplePortionPrimitive2D) to the SDPR Cairo renderer. It can now basically render Text using a fallback to the already existing CairoTextRender. NOTE: This is not yet complete, but for discussion. Change-Id: I9b0c7b6bb4892905576593ef4e2b4071c7663c63 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171429 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2024-08-04Resolves: tdf#154959 label printers no longer rotateCaolán McNamara
a) partly revert this piece of: commit 598ff4e2433a419a432fd54ed5dac560663ec107 loplugin:constantparam in vcl b) fix the thinko mismatch of "true" for bSwaped detected by that plugin Change-Id: I2d31a969538d1cfa8d22a089fa61fdaa5454cc0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171449 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-08-02tdf155447 gtk3 a11y: Report accessible ID for drawing areaMichael Weghorn
Override `GtkInstanceWidget::get_accessible_id()` for `GtkInstanceDrawingArea`, similar to what is done for the handling of the accessible name and description. While accessible name and description don't have to explicitly be set on the AtkObject because they can be retrieved from the underlying XAccessible on demand as `AtkObjectClass::get_name` and `AtkObjectClass::get_description` are overriden (s. LO's `atk_object_wrapper_class_init`, and the ATK implementations of `atk_object_get_name` and `atk_object_get_description` [1]), there's no such function to override for the accessible ID (s. ATK's `atk_object_get_accessible_id`), so explicitly set it for the drawing area's AtkObject each time the accessible is queried in `GtkInstanceDrawingArea::GetAtkObject`. With this in place, the accessible ID "sentence" shows up in Accerciser with gtk3 for the corresponding edit view in Writer's spell check dialog, as is already the case for qt6 since Change-Id: I5cf8958118c84c01ecb3545381a05b306ca53163 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 31 13:25:45 2024 +0200 tdf#155447 a11y: Set accessible ID for WeldEditView [1] https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/fddfd5ae5d44b09c3e587f41f450e05b95262bd9/atk/atkobject.c#L686-729 [2] https://gitlab.gnome.org/GNOME/at-spi2-core/-/blob/fddfd5ae5d44b09c3e587f41f450e05b95262bd9/atk/atkobject.c#L1717-1733 Change-Id: Ib1e889a06dccf4522148d8a17b62259dc08e2b85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171321 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-02tdf#155447 a11y: Introduce weld::Widget::get_accessible_id()Michael Weghorn
This will be used in an upcoming commit to implement reporting of the accessible ID for `WeldEditView`. For Qt 6, this uses the API introduced in qtbase commit [1] commit b8b7c58402740204da72e1b1f4ea7321b7bfa540 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jul 15 16:53:58 2024 +0200 a11y: Add property for QWidget's accessible ID For GTK 4, there is currently no corresponding API; issue [2] suggests to add it. [1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=b8b7c58402740204da72e1b1f4ea7321b7bfa540 [2] https://gitlab.gnome.org/GNOME/gtk/-/issues/6870 Change-Id: I9bf38b3c2d6d0cf627ac4288695dcc1137c3d120 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171319 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-07-31cid#1555587 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1555589 COPY_INSTEAD_OF_MOVE cid#1555593 COPY_INSTEAD_OF_MOVE cid#1555596 COPY_INSTEAD_OF_MOVE cid#1555602 COPY_INSTEAD_OF_MOVE cid#1555608 COPY_INSTEAD_OF_MOVE cid#1555610 COPY_INSTEAD_OF_MOVE cid#1555620 COPY_INSTEAD_OF_MOVE cid#1555623 COPY_INSTEAD_OF_MOVE cid#1555625 COPY_INSTEAD_OF_MOVE cid#1555626 COPY_INSTEAD_OF_MOVE cid#1555634 COPY_INSTEAD_OF_MOVE cid#1555638 COPY_INSTEAD_OF_MOVE cid#1555667 COPY_INSTEAD_OF_MOVE cid#1555682 COPY_INSTEAD_OF_MOVE cid#1555686 COPY_INSTEAD_OF_MOVE cid#1555702 COPY_INSTEAD_OF_MOVE cid#1555710 COPY_INSTEAD_OF_MOVE cid#1555750 COPY_INSTEAD_OF_MOVE cid#1555752 COPY_INSTEAD_OF_MOVE cid#1555761 COPY_INSTEAD_OF_MOVE cid#1555762 COPY_INSTEAD_OF_MOVE cid#1555771 COPY_INSTEAD_OF_MOVE cid#1555772 COPY_INSTEAD_OF_MOVE cid#1555784 COPY_INSTEAD_OF_MOVE cid#1555785 COPY_INSTEAD_OF_MOVE Change-Id: Ib9724230c05b2027b4edf64e6a0bb5e22a270a88 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171274 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-25O[U]String overloads that return view for rest parameterNoel Grandin
Add new overloads to OUString methods that have a "OUString* rest" style parameter. Instead return a view, which does not require allocation. To avoid overload ambiguity, split the methods into different variants that do not use default parameters. Change-Id: I1aa366115750f1f7ea4fe665804195f59f7c4b69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167632 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-07-25gtk4: fix -Wmaybe-uninitializedĐoàn Trần Công Danh
Despite that we bailed out when both old and new value set, gcc-13 cannot see that. Change-Id: Ie727a14bb29a4b1cc304d2ce077c62f72cece19f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170973 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-24cid#1556131 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1556135 COPY_INSTEAD_OF_MOVE cid#1556146 COPY_INSTEAD_OF_MOVE cid#1556164 COPY_INSTEAD_OF_MOVE cid#1556171 COPY_INSTEAD_OF_MOVE cid#1556177 COPY_INSTEAD_OF_MOVE cid#1556181 COPY_INSTEAD_OF_MOVE cid#1556182 COPY_INSTEAD_OF_MOVE cid#1556183 COPY_INSTEAD_OF_MOVE cid#1556192 COPY_INSTEAD_OF_MOVE cid#1556201 COPY_INSTEAD_OF_MOVE cid#1556208 COPY_INSTEAD_OF_MOVE cid#1556215 COPY_INSTEAD_OF_MOVE cid#1556224 COPY_INSTEAD_OF_MOVE cid#1556227 COPY_INSTEAD_OF_MOVE cid#1556228 COPY_INSTEAD_OF_MOVE cid#1556238 COPY_INSTEAD_OF_MOVE cid#1556246 COPY_INSTEAD_OF_MOVE cid#1556247 COPY_INSTEAD_OF_MOVE cid#1556288 COPY_INSTEAD_OF_MOVE cid#1556293 COPY_INSTEAD_OF_MOVE cid#1556305 COPY_INSTEAD_OF_MOVE cid#1556310 COPY_INSTEAD_OF_MOVE cid#1556317 COPY_INSTEAD_OF_MOVE cid#1556321 COPY_INSTEAD_OF_MOVE cid#1556322 COPY_INSTEAD_OF_MOVE cid#1556331 COPY_INSTEAD_OF_MOVE cid#1556339 COPY_INSTEAD_OF_MOVE cid#1556342 COPY_INSTEAD_OF_MOVE cid#1556351 COPY_INSTEAD_OF_MOVE cid#1556358 COPY_INSTEAD_OF_MOVE cid#1556370 COPY_INSTEAD_OF_MOVE cid#1556379 COPY_INSTEAD_OF_MOVE cid#1556390 COPY_INSTEAD_OF_MOVE cid#1556423 COPY_INSTEAD_OF_MOVE cid#1556532 COPY_INSTEAD_OF_MOVE cid#1556561 COPY_INSTEAD_OF_MOVE cid#1556662 COPY_INSTEAD_OF_MOVE cid#1556704 COPY_INSTEAD_OF_MOVE cid#1556730 COPY_INSTEAD_OF_MOVE cid#1556988 COPY_INSTEAD_OF_MOVE cid#1557071 COPY_INSTEAD_OF_MOVE cid#1557081 COPY_INSTEAD_OF_MOVE cid#1557177 COPY_INSTEAD_OF_MOVE Change-Id: I2c723f0fe9a4eefa62a68f47049ed690d06eb0ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170932 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-24tdf#159040: add sign with default certificate to save dialogSarper Akdemir
Include X.509 certificates under Tools->Options->UserData among the keys for signing. Add a new checkbox to Save file dialog, to sign with that selected key easily. The checkbox is disabled if there's no matching key found. Change-Id: I9fc16790c479819cd1f35bcad040d0ebc7c4bdef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170619 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir@allotropia.de>
2024-07-20Remove now unneeded osl/diagnose.hGabor Kelemen
followup to commit 57c228803e55ed343c6693de7d0857ad7d3cd9e3 Change-Id: Iebfb23bb65e2bf898bf27f367cc9641f47a14cf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167998 Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Tested-by: Jenkins
2024-07-19Resolves: tdf#161662 use some hackery to bring bullet combobox height downCaolán McNamara
There are some Arabic, etc numbering options in there that cause gtk to allocate a large odd-looking height for the combobox. What we can try is to remove top/bottom padding for this widget, but then sync it with a sizegroup to another combobox and then it gets a more natural looking height. Change-Id: Idecbb3ee7b61fe55805d26cabdbaf1885574b3cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170751 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-07-18tdf#162072 vcl, fontconfig: consider font-family-generic for substituteMiklos Vajna
Open the bugdoc, it has two paragraphs: first with a sans font, second with a serif font. These fonts are missing, but their metadata clearly state that they are sans vs serif. Still, Writer renders both as sans. Investigating a bit, the ODT case imports the "font-family-generic" of these fonts fine, but in the Linux case the fontconfig code ignored this info when building the search pattern for the font fallback. Fix the problem by extending vcl's PrintFontManager::Substitute() to also take the vcl-level "family type" into account, which is about sans vs serif (roman vs swiss). Note that FC_FAMILY is a string list, so once the actual font name is added to the pattern, the next "add" will append to this list, not drop the already added font name. The same problem is still there with the DOCX equivalent. Change-Id: I61f31ae73e524471a5261ac9426e5b566454a09c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170681 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-07-17Use IsRunningUnitTest / IsRunningUITest consistentlyMike Kaganski
The functions are moved to o3tl as inline functions. Change-Id: Ief7d7e292ef15e055ad04ab5707e5e6a2a05b916 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170636 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-07-17tdf#155447 gtk3 a11y: Use GtkBuilder ID as accessible IDMichael Weghorn
Set the GtkBuilder ID (the ID set in the .ui file) as the accessible ID of the GtkWidget for welded widgets in the gtk3 VCL plugin. For non-welded widgets, that would happen in `atk_object_wrapper_new`, similar to how Change-Id: I2281d15c38a229410469c29a14fdc4221aeb3e1e Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 16 13:57:41 2024 +0200 tdf#155447 qt a11y: Report accessible ID implements it for the qt6 VCL plugin. However, since native widgets are now used almost everywhere for the gtk3 VCL plugin, the implementation in `atk_object_wrapper_new` does not take effect for most of the UI, including the spell checking dialog mentioned in tdf#155447. This commit makes sure an accessible ID is set for such cases as well. Using the GtkBuilder ID is also mentioned in the `atk_object_set_accessible_id` doc [1]: > Sets the accessible ID of the accessible. This is not meant to be > presented to the user, but to be an ID which is stable over application > development. Typically, this is the gtkbuilder ID. Such an ID will be > available for instance to identify a given well-known accessible object > for tailored screen reading, or for automatic regression testing. GTK 4 currently doesn't have API to set an accessible ID. [1] https://docs.gtk.org/atk/method.Object.set_accessible_id.html Change-Id: I6061888f38aa40a0d3c4e680b7daa1649d5954e0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170586 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-07-16use generic clipboard when running UI testsNoel Grandin
rather than the system clipboard, which makes no sense, since then the tests interfere with each other Change-Id: I911e88f5547dfc4f3558b9ed3ef670cef4903420 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170574 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-07-10prefer higher version of "Noto Sans Arabic" of system vs bundledCaolán McNamara
I have "Noto Sans Arabic" installed system wide: file: "/usr/share/fonts/google-noto-vf/NotoSansArabic[wght].ttf"(s) fontversion: 131858(i)(s) and there is the bundled version: file: "./instdir/share/fonts/truetype/NotoSansArabic.ttf"(w) fontversion: 131727(i)(w) what we generally want to do is pick just one font, the version with the higher number, but in this case we don't see them as near-duplicates and so add both of them. In my case then using any font/glyph fallback for a "en" font suggests "Noto Sans Arabic", presumably because the bundled one has those glyphs, but we seem to end up rendering with the system one which doesn't have them, so font/glyph fallback for fonts that are non explicitly configured somewhere in fontconfig end up with missing glyph symbol. So additionally disregard the FC_INDEX and FC_POSTSCRIPT_NAME fields when comparing fonts to find the higher version. https://bugzilla.redhat.com/show_bug.cgi?id=2262410 has a similar sounding problem but in the end I think it is a different issue, but maybe the same trigger of having "Noto Sans Arabic" at the start of the list of possibilities. Change-Id: I500fb9cad793b63d0fbeb8c4bc1246fd68be39fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170251 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-07-09jsdialog: support on demand rendering for icon viewSzymon Kłos
- rename action: rendered_combobox_entry -> rendered_entry - change generic get json property callback to more specialized image getter as it wasn't used anywhere apart of that and we need image enceded as base64 only not JSON - add to the full update of icon view "ondemand" property to the entries with images so LOK client will know it has to download the render - it will be possible to support HiDPI renders in the future: added TODO Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I83a6e91133f8f9cb03e0bc794b51e1947435fa90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169622 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170160 Tested-by: Jenkins
2024-07-04cpdb: Don't include cpdmgr.hxx if not building CPDB supportMichael Weghorn
Don't include the header when building without `--enable-cpdb`, as the code there is CPDB-specific. This prepares for Biswadeep's pending Gerrit change series starting at [1] that implements CPDB support using the CPDB C API, and includes the corresponding header. (See CI failure [2] due to missing headers when not building CPDB without this change in place.) [1] https://gerrit.libreoffice.org/c/core/+/168633/5 [2] https://ci.libreoffice.org/job/gerrit_linux_gcc_release/168688/consoleFull#1916232175cd06c086-ffd7-48da-8ce2-d58b9387379c Change-Id: I8b5395d2ad45d50c63c2dbdd0a5459890fc6f6a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170001 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-06-30gtk4: Require GTK >= 4.10Michael Weghorn
For the gtk4 VCL plugin, require GTK version >= 4.10 and drop code for older versions. This simplifies maintenance, in particular since requiring 4.10 ensures that the basic GtkAccessible API is available. GTK 4.10 was released on 2023-03-04 [1], so it will be almost 2 years by the time that LO 25.2 will be released. Given that the gtk4 VCL plugin is still experimental, providing support for older GTK 4 releases shouldn't have to be a concern. [1] https://gitlab.gnome.org/GNOME/gtk/-/blob/4.10.0/NEWS?ref_type=tags Change-Id: I6f361b533391225d0e74c174e0479b767b9d827a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169324 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-06-29Fix "lets" -> "let's"Andrea Gelmini
Change-Id: I01968fc18b093dbbc27213f01c3da38ae151c62c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169748 Reviewed-by: Andrea Gelmini <andrea.gelmini@gelma.net> Tested-by: Jenkins
2024-06-28Fix "lets see" -> "let's see"Andrea Gelmini
Change-Id: I7aa939681720bc0dc81c8f114a3608a8cdfb4f60 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169722 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2024-06-28Fix "lets" -> "let's"Andrea Gelmini
Change-Id: Ibe6cbbd618aab5c145913235dc90fec3c98cd504 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169723 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>