summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2024-09-20Correct usage of premultiply for ENABLE_WASM_STRIP_PREMULTIPLYArmin Le Grand (allotropia)
The order of parameters for vcl::bitmap::premultiply and vcl::bitmap::unpremultiply was wrong because when doing that I just used the same order that the indexing that was to be replaced used it. Corrected that. Change-Id: I59473acca8afdc58105b3381d1fdcedd6c0fd83b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173683 Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-19ofz#71782 fix build failureCaolán McNamara
Change-Id: I4be65927215dbf9c10ecd51baca42b59b569d75b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173677 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-19qt: Use more qobject_cast instead of dynamic_castMichael Weghorn
Change-Id: I236d016dd51f219b63a7d7fb6b0cb83a06b960c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173661 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-19qt: Use qobject_cast to cast to QtMimeDataMichael Weghorn
Use `qobject_cast` instead of `dynamic_cast` to cast to QtMimeData. Add the `Q_OBJECT` macro to the class, as the the qobject_cast doc [1] says: > Warning: If T isn't declared with the Q_OBJECT macro, this function's > return value is undefined. Change-Id: I5de2d8dbf62ed1293f3660acae44e3b13ab5df71 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173660 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-19qt: Use qobject_cast in QtFilePickerMichael Weghorn
Use `qobject_cast` instead of `dynamic_cast` when casting to native Qt widgets. It should be faster. Quoting from the doc [1]: > The qobject_cast() function behaves similarly to the standard C++ > dynamic_cast(), with the advantages that it doesn't require RTTI support > and it works across dynamic library boundaries. [1] https://doc.qt.io/qt-6/qobject.html#qobject_cast Change-Id: I20d4cca6936eeeb6f8367f82a9d11f12ada63e2d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173659 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-19qt a11y: Destroy QWindow when popup gets hiddenMichael Weghorn
When a popup gets hidden, destroy its associated QWindow. This prevents a "top-level" a11y object being reported when a popup gets shown, then hidden again, e.g. after expanding the Paragraph Style combobox in Writer's Formatting toolbar, then closing it again. Showing the popup results in a QWindow being created that would not implicitly be destroyed when the popup gets hidden again. Due to popups in LO currently not using the Qt::Popup type, but Qt::ToolTip, they are considered for top-level a11y children of the app, see the commit message of Change-Id: I7aff5c435dfa8b6aadcbbedb0d84db19bb86c8ab Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Sep 19 09:15:37 2024 +0200 qt a11y: Defer QWindow creation until frame gets shown for more details. Only delete the QWindow for non-spontaneous hide events, as the QWidget::hideEvent doc [1] says: > Note: A widget receives spontaneous show and hide events when its > mapping status is changed by the window system, e.g. a spontaneous hide > event when the user minimizes the window, and a spontaneous show event > when the window is restored again. After receiving a spontaneous hide > event, a widget is still considered visible in the sense of isVisible(). With this commit in place, after starting Writer, opening the Paragraph Style combobox, then closing it again, only the Writer window is shown as a top-level child of the app in Accerciser when using the qt6 VCL plugin, as expected. Showing the popup again works just fine, as a new QWindow is implicitly created then. [1] https://doc.qt.io/qt-6/qwidget.html#hideEvent Change-Id: Iefa5d05ea128966c4417d53d122a6a0f1178fc00 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173657 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-09-19qt a11y: Defer QWindow creation until frame gets shownMichael Weghorn
Calling QtFrame::windowHandle makes sure that the QWindow exists, by calling QWidget::setAttribute(Qt::WA_NativeWindow). QWindows that don't have the Qt::Popup or Qt::Desktop type, are listed as accessible children of the application, see QAccessibleApplication::child [1] in qtbase and the `topLevelObjects()` [2] helper method it uses. This resulted in various dummy "top-level" objects being reported as children of the LibreOffice a11y app object, and therefore shown in Accerciser. For Writer, there are 2 instances for each of the popups for the comboboxes in the formatting toolbar that get reported as toplevels, as can seen by printing the accessible ID of their parent objects in Accerciser (they have a parent different from the app, since they're not actually top-levels): Paragraph style combobox: In [4]: acc.parent.accessibleId Out[4]: 'applystyle' Font name combobox: In [5]: acc.parent.accessibleId Out[5]: 'fontnamecombobox' Font size comobobox: In [6]: acc.parent.accessibleId Out[6]: 'fontsizecombobox' While these *are* popups, the Qt::Popup type is currently not used for them in LO to work around another issue with these popus on Wayland, but the Qt::Tooltip type is used, see the QtFrame ctor and comments there. To prevent these wrong "top-levels" from always being part of the a11y tree due to that, defer creating the QWindow by calling QtFrame::windowHandle to when the window is actually needed, in QtFrame::Show. Pass the Qt::UniqueConnection connection type param in the call to QObject::connect [3], to avoid duplicate connections if the frame gets hidden/shown multiple times. (Other than the ctor, QtFrame::Show could potentially get called multiple times.) With this in place, Accerciser now only shows a single top-level frame after starting LO Writer with the qt6 VCL plugin, which is the actual Writer window. [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/accessible/qaccessibleobject.cpp?id=0681e720a9851f1873ce5a5f99b5567d2b418261#n160] [2] https://code.qt.io/cgit/qt/qtbase.git/tree/src/gui/accessible/qaccessibleobject.cpp?id=0681e720a9851f1873ce5a5f99b5567d2b418261#n122 [3] https://doc.qt.io/qt-6/qobject.html#connect Change-Id: I7aff5c435dfa8b6aadcbbedb0d84db19bb86c8ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173656 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-19qt: Run whole QtFrame::Show in main threadMichael Weghorn
Instead of running only parts of the method explicitly in the main thread, ensure this for the whole method. Also, add a SolarMutexGuard at the beginning. Change-Id: I9c510b2d58ee5a3b05c1a16ce8e53077c7075caa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173655 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-19tdf#162955 PDF export: avoid the popup rectangle with zero sizeTibor Nagy
Change-Id: I9a3cdda4d1dfa0b23a3ea6dd99341cb17ca47490 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173580 Tested-by: Jenkins Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
2024-09-19Fix typoAndrea Gelmini
Change-Id: I291dcc19e429493289cd2be8367a0d1e0c6d2296 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173646 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Julien Nabet <serval2412@yahoo.fr>
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-18tdf#130857 qt weld: Pass parent to QtInstanceBuilderMichael Weghorn
Instead of always passing `nullptr` for the parent to the `QtInstanceBuilder`, use `QtInstance::GetNativeParentFromWeldParent` in order to find a QWidget that can be used for the parent. This makes the "Save Document?" dialog in the WIP Gerrit change [1] (patch set 24 that actually makes use of the parent) properly modal on top of the Writer window, so the dialog no longer disappears behind the Writer window when using Alt+Tab. [1] https://gerrit.libreoffice.org/c/core/+/161831 Change-Id: I84de0c4808d76020103f10ebaacb03908a6ee815 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173594 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-09-18tdf#130857 qt weld: Move logic to find native Qt parent to helperMichael Weghorn
Move the logic to find a QWidget parent mostly introduced in commit 1e2836665a1839f61cd8bfa46c54687f010e7e9d Author: Michael Weghorn <m.weghorn@posteo.de> Date: Fri Aug 30 18:17:53 2024 +0200 tdf#162696 tdf#130857 qt weld: Get parent via SalInstanceWidget to a helper method, for reuse in `QtInstance::CreateBuilder` in an upcoming commit. Change-Id: Ied41e7f5054f08382668292042f2a9978c6bed91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173593 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18tdf#130857 qt weld: Add QtInstanceBuilder skeletonOmkarAcharekar
Add new `QtInstanceBuilder` that derives from `weld::Builder` and is meant to use `weld::Widget` implementations using native Qt widgets. Override `SalInstance::CreateBuilder` in `QtInstance` to return an instance of the new `QtInstanceBuilder` for UI files that that one can handle/supports. As of now, `QtInstanceBuilder` doesn't yet implement what's needed, so `QtInstanceBuilder::IsUIFileSupported` currently still always returns `false`, meaning that `SalInstanceBuilder` is still always used in practice. The idea is to implement funcationality needed for a specific UI file/dialog in `QtInstanceBuilder`, then add it to the set of supported UI files in `QtInstanceBuilder::IsUIFileSupported`. This allows looking at one .ui file at a time and only having to implement what is relevant for that particular one, without having to implement the full weld API at once. The use of `QtInstanceBuilder` can completely be disabled by starting LO with environment variable `SAL_VCL_QT_NO_WELDED_WIDGETS` set. This commit is mostly extraced from Omkar Acharekar's WIP Gerrit change [1] (patch set 22) with some further adjustments by Michael Weghorn. Patch set 23 of that WIP Gerrit change demonstrates adding support for a dialog (the "Save Document?" one), but still needs more work. [1] https://gerrit.libreoffice.org/c/core/+/161831 Co-authored-by: Michael Weghorn <m.weghorn@posteo.de> Change-Id: If2d1ea30d43c2c1d84d64e577035489c8e158a7c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173592 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18vcl: test BitmapAlphaClampFilterChris Sherlock
Change-Id: Ie44884a3010cd26b057bac593059a4bd0a3aabc8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173345 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-18tdf#130857 VclBuilder: Move m_sHelpRoot member to base classMichael Weghorn
Add a protected getter, `getHelpRoot()` to access it. Change-Id: Idb2f6834e13f6b7d04abe0a3c607444383e6ee1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173577 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18tdf#130857 VclBuilder: Move TextBuffer bookkeeping to base classMichael Weghorn
This is basically the same as Change-Id: Iba98406817906e36fb8dc723c8e9b4b554eb2258 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Sep 17 19:35:22 2024 +0200 tdf#130857 VclBuilder: Move adjustment bookkeeping to base class , but for the `TextBuffer`s instead of the `Adjustment`s. Change-Id: I0f53718892f70a285a7f8b0d8e9e112d48dedb50 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173575 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18tdf#130857 VclBuilder: Move Adjustment bookkeeping to base classMichael Weghorn
A GtkAdjustment represents a value with an upper and lower bound. Move bookkeeping of the adjustments from `VclBuilder` to the base class `BuilderBase`, so this can be reused by other subclasses in the future. For now, adding adjustments by calling `BuilderBase::addAdjustment` only happens in the (currently still) VclBuilder-specific `VclBuilder::handleObject`, but this is one step towards making it useful outside of it. Change-Id: Iba98406817906e36fb8dc723c8e9b4b554eb2258 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173574 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-18tdf#130857 VclBuilder: Move class/id/custom prop extraction to helperMichael Weghorn
Extract parsing of these attributes from `VclBuilder::handleObject` to a new helper method `BaseBuilder::extractClassAndIdAndCustomProperty` in the base class. Change-Id: I248448407db446fd61bf91bf13c9bc187e0706d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162918 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-09-17tdf#130857 VclBuilder: Turn extractOrientation into static helperMichael Weghorn
Turn the `extractOrientation` helper function into a static helper method `BuilderBase::hasOrientationVertical` for reuse in the pending WIP Gerrit change to implement a `QtBuilder` [1], which currently duplicates this method in patch set 18. [1] https://gerrit.libreoffice.org/c/core/+/161831/18 Change-Id: I8255188ae66727d0832e8d6b41952649de07a679 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173546 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-17ofz#71606 use better upstream solutionCaolán McNamara
Change-Id: I088db3a8defd4cddee657c25d35724932339b983 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173541 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-17cid#1608226 Overflowed integer argumentCaolán McNamara
and cid#1607920 Overflowed integer argument cid#1606589 Overflowed integer argument cid#1606576 Overflowed integer argument Change-Id: I2b1c0e871e7f7a913e0f14128fb13fc04d993ca1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173520 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-17qt: Add "Sign with default certificate" to QtFilePickerMichael Weghorn
Extend `QtFilePicker` to implement the new feature added and implemented for other file picker implementations in commit 426c641976688e3e4d1ce66f76b27ccbd2dca55a Author: Sarper Akdemir <sarper.akdemir@allotropia.de> Date: Wed Jul 17 12:47:22 2024 +0200 tdf#159040: add sign with default certificate to save dialog This makes the checkbox show up when opening the "Save As" dialog in Writer using Ctrl+Shift+S and behaves as expected when a GPG key has previously been set in "Tools" -> "Options" -> "User Data" -> "Signing Key". When no signing key is set there, the checkbox currently isn't disabled as expected, but that's a separate issue, also seen with the "Edit filter settings" checkbox that is disabled with gtk3, but not with qt6 independent of this commit. Change-Id: I9edf65a31f8268feb13fd6abf627744d68fd79e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173453 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-16cid#1607350 Data race conditionCaolán McNamara
Change-Id: Ibd30f03513661762613cc0b386acc48eb994bc2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173422 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-15ofz#71606 don't ignore CRCs when fuzzingCaolán McNamara
got a case similar to https://github.com/pnggroup/libpng/issues/587 with a backtrace of: /work/workdir/UnpackedTarball/libpng/png.c:1475:23: runtime error: signed integer overflow: -1703155269 - 692774662 cannot be represented in type 'png_fixed_point' (aka 'int') #0 0x59bbf901eab0 in png_XYZ_from_xy /work/workdir/UnpackedTarball/libpng/png.c:1475:23 #1 0x59bbf901eab0 in png_colorspace_check_xy /work/workdir/UnpackedTarball/libpng/png.c:1610:13 #2 0x59bbf901d8bc in png_colorspace_set_chromaticities /work/workdir/UnpackedTarball/libpng/png.c:1717:12 #3 0x59bbf9046855 in png_handle_cHRM /work/workdir/UnpackedTarball/libpng/pngrutil.c:1302:10 #4 0x59bbf902d064 in png_read_info /work/workdir/UnpackedTarball/libpng/pngread.c:175:10 #5 0x59bbf7c331d6 in (anonymous namespace)::reader(SvStream&, Graphic&, GraphicFilterImportFlags, BitmapScopedWriteAccess*, BitmapScopedWriteAccess*) /src/libreoffice/vcl/source/filter/png/PngImageReader.cxx:404:5 #6 0x59bbf7c36960 in read /src/libreoffice/vcl/source/filter/png/PngImageReader.cxx:845:55 #7 0x59bbf7c36960 in vcl::PngImageReader::read() /src/libreoffice/vcl/source/filter/png/PngImageReader.cxx:850:5 #8 0x59bbf786fe57 in LLVMFuzzerTestOneInput /src/libreoffice/vcl/workben/pngfuzzer.cxx:52:19 (gdb) print *xy $1 = { redx = 9, redy = 131616, greenx = 598048, greeny = 538976288, bluex = 0, bluey = 151551, whitex = 538976288, whitey = 538976288 } but not reproducible with a typical utility because we're unusually ignoring crc errors for fuzzing so reenable those and see if a testcase can be generated anyway. Change-Id: Ifc050ee082800906b087609154ec29ca39cd8fe6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173409 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-15Related: cid#1608226 make this more directCaolán McNamara
Change-Id: I255d70adf055e36c722b0cd52b7843a878eb9a96 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173379 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-14qt: Use modern connect syntax in QtInstanceMichael Weghorn
Change-Id: I3126ca571e8120797ca9d61da6a902398f57b337 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173349 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-14qt: QtFilePicker: Use modern connect syntax, port from deprecated signalMichael Weghorn
Use modern connect syntax and address the warning about the use of a deprecated signal that this revealed: `QCheckBox::checkStateChanged` was introduced in Qt 6.7 [1] and `QCheckBox::stateChanged` was deprecated in Qt 6.9 [2]. In file included from .../libreoffice/vcl/qt6/QtFilePicker.cxx:10: .../libreoffice/vcl/qt6/../qt5/QtFilePicker.cxx:693:44: error: 'stateChanged' is deprecated: Use checkStateChanged() instead [-Werror,-Wdeprecated-declarations] 693 | connect(pCheckbox, &QCheckBox::stateChanged, this, | ^ .../qt5/qtbase/src/widgets/widgets/qcheckbox.h:40:19: note: 'stateChanged' has been explicitly marked deprecated here 40 | QT_MOC_COMPAT QT_DEPRECATED_VERSION_X_6_9("Use checkStateChanged() instead") | ^ .../qt5/qtbase/src/corelib/global/qtdeprecationmarkers.h:179:44: note: expanded from macro 'QT_DEPRECATED_VERSION_X_6_9' 179 | # define QT_DEPRECATED_VERSION_X_6_9(text) QT_DEPRECATED_X(text) | ^ .../qt5/qtbase/src/corelib/global/qtdeprecationmarkers.h:29:33: note: expanded from macro 'QT_DEPRECATED_X' 29 | # define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text) | ^ .../qt5/qtbase/src/corelib/global/qcompilerdetection.h:1004:36: note: expanded from macro 'Q_DECL_DEPRECATED_X' 1004 | # define Q_DECL_DEPRECATED_X(x) [[deprecated(x)]] [1] https://doc.qt.io/qt-6/qcheckbox.html#checkStateChanged [2] https://doc.qt.io/qt-6/qcheckbox-obsolete.html#stateChanged Change-Id: I0787b378855009abea740a0f5c1aab537c41987e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173348 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-14qt: Use modern connect syntax in QTimerMichael Weghorn
Change-Id: Ic4a6c64de834b133a2708807d45c39d6ada4a00c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173347 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-09-14qt: Use nullptr instead of Q_NULLPTRMichael Weghorn
There's no reason to use that macro. As the doc says [1]: > /* * Compatibility macros for C++11/14 keywords and expressions. > * Don't use in new code and port away whenever you have a chance. > */ [1] https://code.qt.io/cgit/qt/qtbase.git/tree/src/corelib/global/qcompilerdetection.h?id=07749de7ef59827a2deb2719cd20208bdce201e2#n935 Change-Id: I93ef0ae34a737a6ff93270f52ba308bd90bfc505 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173343 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-13vcl: move variables closer to first usage in BitmapEmbossGreyFilter::execute()Chris Sherlock
Change-Id: I711b82e2c86035aa1bfbb245c125be65277043f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173198 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-13vcl: just return a BitmapEx() in BitmapDisabledImageFilter::execute()Chris Sherlock
Change-Id: I2a257211d7fdf22abb8d6e1f994293873348b38e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173191 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-09-13tdf#43157 vcl: remove OSL_ENSURE from BitmapEx functionsChris Sherlock
Change-Id: I8232751174dccc55139ab4878950636c32b1d6a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173199 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2024-09-12Temporarily skip unit tests on native arm64 buildBalazs Varga
which indicating unit test fails. Change-Id: I2689b0dda888e15e52ca60cc18e1705a1aefe968 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173143 Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de> Tested-by: Jenkins
2024-09-12These bogus -Wdangling-reference still hit with current GCC 15 trunkStephan Bergmann
Change-Id: Ice2be2156474cf486ad1c461d65e2711ebf43d2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173232 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
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-11cid#1607412 silence Overflowed constantCaolán McNamara
Change-Id: Ie4ca362c936c8cbb4850d438e0bd6c2ed91f95d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173189 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
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-09-10Add arguments to Last 4 UNO Commands in CrashReport DumpXisco Fauli
Change-Id: I8ea1e95abb62374b51de7b1d37055c216b29e04c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173125 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins
2024-09-10vcl: variable refactoring BitmapConvolutionMatrixFilter::execute()Chris Sherlock
Renamed variables, moved to declare closer to first use. Change-Id: I60b909c79d7c12c81247af2013228be84b42991e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172916 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins
2024-09-09sc: make SelectRange dialog asyncRashesh
Change-Id: Id1ac622d7a2f15d432fa122b87217c0bfa9a39a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172626 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com> (cherry picked from commit 832eee15118babf772f19a820ef88603fb6e5ccd) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173066 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-09lokit: calc: send named ranges as well on calcfunctionlist callbackRashesh
Change-Id: Ib8082d81da0eec54ba201b5958b86770a508ec91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172099 Reviewed-by: Gökay ŞATIR <gokaysatir@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit d805785b2cf7c570fc0bb480100bc50d8fbc5077) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172745 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-05tdf#162359 sw: fix the export of comments as PDF annotationsTibor Nagy
Change-Id: If4a8a1a73c382f496b2c6dd4d52271dc6bc87dda Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172877 Tested-by: Jenkins Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de>
2024-09-05Libreoffice Theme Part 0: Read correct colors from qt based VCL_PLUGINSSahil Gautam
See `QtFrame::UpdateSettings()`, where `StyleSettings::WindowColor` is set to aBase (QPalette::Base) and `StyleSettings::DialogColor` is set to WindowColor in a call to `StyleSettings::BatchSetBackgrounds`. The issue is that without this patch in place, "GetWindowColor()" doesn't return the color of the window, instead it returns the "base color" from QPalette. It had some unintendedd consequences like the "Animation Panel" in the Impress's Animations sidebar not being painted with the correct color, as it was expecting the old WindowColor. This patch also fixes that by changing WindowColor to FieldColor in `SalInstanceWidget::set_stack_background()` https://gerrit.libreoffice.org/c/core/+/168901/comment/0e5201bd_2cae07b9/ Change-Id: I36f8c5efd8c3e87ded19a1efc00ed9c69a7fccf1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171916 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-09-05kf6: Use the intended qt6 includesRico Tzschichholz
Change-Id: Ieaed72cbb0f915be4676d0df9bffe20e9fbfd0da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172616 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2024-09-05use less dynamic_cast when broadcasting SfxHintNoel Grandin
Change-Id: If4d33cbbf36a9ad495b80a7347b39d0f4bc0405e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172857 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-03tdf#92064 sw: Improve large paragraph layout performanceJonathan Clark
This change includes the following scalability improvements for documents containing extremely large paragraphs: - Reduces the size of layout contexts to account for LF control chars. - Due to typical access patterns while laying out paragraphs, VCL was making O(n^2) calls to vcl::ScriptRun::next(). VCL now uses an existing global LRU cache for script runs, avoiding much of this overhead. Change-Id: Iee03938683c95776a817d4819fe9a43c65a7c3fc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172801 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2024-09-03tdf#160084 Simplify comparison for basegfx::fToolsBogdan Buzea
Change-Id: I5fc9823b6d0ca88505e8d4e6127fac7e776fa1a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171784 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-09-03ofz#70815 Timeout, reduce this limit for fuzzingCaolán McNamara
Change-Id: I49f971796ed880f14514cc3f52bcd4405c16ecce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172787 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-09-02tdf#162646 suppress drawing hairlines when scalingPatrick Luby
Previously, drawing hairlines (i.e. zero line width) was only suppressed when running unit tests. But drawing hairlines causes unexpected shifting of the lines when using a Retina display on macOS and antialiasing is disabled. Change-Id: I6e788099c110862afc1f7a085dfac4a2908ca51b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172742 Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomacdev@gmail.com>