summaryrefslogtreecommitdiff
path: root/desktop
AgeCommit message (Collapse)Author
2024-02-19hide more symbolsNoel Grandin
using the bin/find-can-be-private-symbols.py script to find classes with large numbers of exported symbols that can hidden. before exported = 58104 imported = 30810 unused_exports = 35433 after exported = 55094 imported = 31073 unused_exports = 32423 Change-Id: Idd0a70ee3740afd5ca1a86771e0e2ff8090d102d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163456 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-18Revert "tdf#152524 Add a __objc_fork_ok data section for Mac Intel executable"Patrick Luby
This reverts commit c6652e280b0690497abf27380dd064898f91db32. Reason for revert: patch may no longer be needed after commit b0656e6ca668a0719fbcb71b6d46c68093dda470. Change-Id: I20da2d0ff576f82272efbb193148e77c44a73d5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163540 Tested-by: Jenkins Reviewed-by: Patrick Luby <guibomacdev@gmail.com>
2024-02-15Revert "merge sdui library into sd"Noel Grandin
This reverts commit 2cf7c26293462406d91ee050c6677930065e660b. Reason for revert: <_rene_> noelgrandin: sdui->sd... and what about people not needing that ui? <_rene_> (e.g. --disable-gui and libreoffice-draw-nogui and impress-nogui) <_rene_> i.e. the use case of --convert-to for ppt(x) etc Change-Id: I6755c209e63f34b3fc9f9fdc4af7001b18579e8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163348 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-14lok: implement a joinThreads function - to wind down thread pools.Michael Meeks
Necessary to do this before forking on Unix systems; use a dynamic_cast interface since this is all for internal use. Change-Id: I8a911322acd4ec5654eb0d14804c09d513a0bd4b Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163335 Tested-by: Jenkins
2024-02-14merge sdui library into sdNoel Grandin
which eliminates another dynamic-symbol lookup and another complication which was making it harder to do better with --enable-mergedlibs sd is relatively small, so even the combined library is not as big as one of the sw and sc libraries Change-Id: Ibef8077d70a5abc7361c95f5dbb8c43447610188 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163302 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-02-13Fall back to old bootstrap.ini [Win32] section, for backwards compatibilityStephan Bergmann
Change-Id: I629b2a16bc889f16595cd1718d2ee4535f31aed7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162602 Tested-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit fe459b9595c851d00a861d595c8dd50b35c90be3) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163255 Tested-by: Jenkins
2024-02-12Search for load-time variables in fundamental.override.iniStephan Bergmann
...instead of arbitrarily cramming them into bootstrap.ini. (And don't force those ini-files to have an additional [Win32] section, when include/rtl/bootstrap.h demands that "An ini-file is only allowed to have one section, which must be named `[Bootstrap]` with the square brackets.") Change-Id: I732bf9d771ea309eccd35b6db0f565a0c56a3c3e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162188 Tested-by: Stephan Bergmann <stephan.bergmann@allotropia.de> Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de> (cherry picked from commit 50b14f26de63d22b9ad05ca51d9edc53e024e75e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163252 Tested-by: Jenkins
2024-02-09preload: open and close empty documents of main types in preinit.Michael Meeks
Some quick testing suggest this saves ~800k for writer, ~3Mb for impress each loading an ~empty hello-world document. Change-Id: I9a7bc25d38d82b5556dfb04a99d5c145dd71ffec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162939 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit d85cb3832286ae1fdcf4a8494abb8212f21e4e9a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163148 Tested-by: Jenkins
2024-02-03First-class Embind JS support for OUStringStephan Bergmann
Change-Id: Ic178737da802e17f87d0b5b09004a847b0fe91be Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162956 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-29Experimental support for latest Emscripten (and Qt6)Stephan Bergmann
What I'm after in the context of our Embind-related code is the claim at <https://emscripten.org/docs/porting/connecting_cpp_and_javascript/embind.html#memory-management>: "JavaScript only gained support for finalizers in ECMAScript 2021, or ECMA-262 Edition 12. The new API is called FinalizationRegistry and it still does not offer any guarantees that the provided finalization callback will be called. Embind uses this for cleanup if available, but only for smart pointers, and only as a last resort." However, with the recommended emsdk 2.0.31 my tests did not show any use of that finalization support. So I wanted to try with the latest emsdk 3.1.51 instead. But then, linking vcldemo failed with > wasm-ld: error: ~/allotropia-qt5/lib/libQt5Core.a(qlogging.o): undefined symbol: std::__2::__vector_base_common<true>::__throw_length_error() const etc., so I gave it a try to rather build against latest Qt6.7, with > --with-distro=LibreOfficeWASM32 > --disable-qt5 > --enable-qt6 > QT6DIR=... TODO: The result is highly experimental, and it uses ENABLE_QT5 (i.e., the recommended setup with emsdk 2.0.31 and the <https://github.com/allotropia/qt5.git> v5.15.2+wasm branch) vs. ENABLE_QT6 (i.e., my experimental setup with emsdk 3.1.51 and the <https://github.com/qt/qt5.git> 6.7 branch) not only to distinguish between Qt5- vs. Qt6-specific behavior, but also to distinguish between old- vs. new-Emscripten-specific behavior. Of note: * The startup code appears to have changed substantially (and required setting -s MODULARIZE=1 and -s EXPORT_NAME=soffice_entry now, and telling emcc to build just soffice.js and not the wrapper soffice.html. TODO: This also required hacking into qt_soffice.html: (1) The command-line arguments (--norestore, --nologo, --writer, and the exammple.odt; all of which we should eventually get rid of, anyway). (2) Saving the generated instance as window.Module (and adapting the embindmaker-generated code, cf. the changes to static/README.wasm.md). * There were some symbol clashes between external/argon2 and libQt6Core.a(qcryptographichash.cpp.o, so renamed the problematic symbols in external/argon2. Change-Id: I5420ab566d560b11954ac6613249bfc53d8acb31 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162695 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-28add sparc64, riscv64 and loongarch64 test extensionsRene Engelhard
forgotten in 3cb45765f2accfa749cc56a087059600ec467f28 and bc9487f745befde6534fd46058e119256952323d and d3625d968901eb93a9680db8d1165f70de3fd64e Probably academic since none of those archs will have something in LO doing online-update anyway, but... Change-Id: I10bcc909df42ee7f51f2135b60fbb33c135f2554 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154335 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-28Simplify massively over-engineered compatibility optionsMike Kaganski
They seem to be designed with multi-dimensional flexibility in mind; it is stored as an array of lists, each having a name and a module. The name may mean a filter. It may have a special name "_user" with unclear meaning. But it only ever used a single item in the array, named "_default", in a single module (swriter). Everything else was only read into a hidden listbox in Compatibility dialog, and never shown nor used. Make ir much simpler. Just use the "_default" item. It is possible to expand it later, if needed; but the previous complexity was bad for maintenance and adding new options. Translatable descriptions of the options were moved from UI file to sw/inc/strings.hrc, and used in a structure that clearly maps them to respective identifiers, to avoid fragile hidden dependency on order of different lists. Change-Id: I78ac5add8a872613e1fb388e4b8cc4fbf4362adf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162651 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-27Drop std::as_const from css::uno::Sequence iterationsMike Kaganski
Obsoleted by commit 2484de6728bd11bb7949003d112f1ece2223c7a1 (Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and commit fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[] in internal code, 2021-11-05). Change-Id: Idbafef5d34c0d4771cbbf75b9db9712e504164cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162640 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-26tdf#152524 Add a __objc_fork_ok data section for Mac Intel executablePatrick Luby
This attempts to fix a particularly difficult to debug crash due to memory corruption when gpgme tries to fork and exec a gpg command. For more background, see the following bug comment: https://bugs.documentfoundation.org/show_bug.cgi?id=152524#c39 This data section is only added in Mac Intel builds as it is a controversial approach and I have not seen any reports of this bug on Mac Silicon yet. So limit the fix only to Mac Intel in the hope that this controversial approach will automatically phase itself out when Apple eventually stops releasing new versions of macOS for Mac Intel. Note: the Objective C runtime doesn't appear to check the value of this data section, but set it to 1 in case that changes in the future. Change-Id: Ifac7893589a9183e092724297aff93eb3d58ab70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162634 Tested-by: Jenkins Reviewed-by: Patrick Luby <plubius@libreoffice.org>
2024-01-25preload sal_textencCaolán McNamara
use RTL_TEXTENCODING_MS_1250 to trigger Impl_getTextEncodingData to dlopen sal_textenclo early Change-Id: Ie96b81615cbd4b479d731916518835b2f72adf6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162477 Reviewed-by: Neil Guertin <neil.guertin@collabora.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com> (cherry picked from commit 4f404f2b18692276d157c4de9bfbb1f6370ad58d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162541 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-24SfxViewShell::GetFirst lambda is never passed a null pShellCaolán McNamara
it's null checked before the lambda gets called so make this a reference Change-Id: Ib8804a2003cbdc6b7b62d8a38fa514d0ce08128c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162495 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-24Some refactor of Win32 loaderMike Kaganski
Change-Id: If019677d24a56c46f06b31a15a18a615b62a6806 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162445 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-22use portable "command -v" to detect installed programs, part 1Eli Schwartz
The "which" utility is not guaranteed to be installed either, and if it is, its behavior is not portable either. This means that when various programs are installed, the `which` check will report a fatal error because the which tool did not exist and the shell returned a nonzero status when attempting to fork+exec. If it did exist, it might not be an implementation of `which` that returns nonzero when commands do not exist. The general scripting suggestion is to use the "command -v" shell builtin; this is required to exist in all POSIX 2008 compliant shells, and is thus guaranteed to work everywhere. For some in-depth discussions on the topic, see: - https://mywiki.wooledge.org/BashFAQ/081 - https://unix.stackexchange.com/questions/85249/why-not-use-which-what-to-use-then/85250#85250 Examples of open-source shells likely to be installed as /bin/sh on Linux, which implement the 15-year-old standard: ash, bash, busybox, dash, ksh, mksh and zsh. This commit changes two programs installed to end-user systems. Change-Id: I6013965bb914f5b0d593a876866b991e210ef5b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160662 Tested-by: Jenkins Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org> Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2024-01-19lok: remove non-filter options from filter optionsGabriel Masei
Filter options should be what remains after extracting any other options from the original list of options. Change-Id: Iad787b34aba58c3910118e94df66a102b44034c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162316 Tested-by: Jenkins Reviewed-by: Henry Castro <hcastro@collabora.com>
2024-01-18-Werror,-Wunused-function (Emscripten)Stephan Bergmann
Change-Id: Ia7af2ad01bab012ad55bab86aac648078d4a8928 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162247 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-12cid#1546222 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546154 COPY_INSTEAD_OF_MOVE cid#1546120 COPY_INSTEAD_OF_MOVE cid#1546115 COPY_INSTEAD_OF_MOVE cid#1546111 COPY_INSTEAD_OF_MOVE cid#1546096 COPY_INSTEAD_OF_MOVE cid#1546016 COPY_INSTEAD_OF_MOVE cid#1545980 COPY_INSTEAD_OF_MOVE cid#1545942 COPY_INSTEAD_OF_MOVE cid#1545902 COPY_INSTEAD_OF_MOVE cid#1545869 COPY_INSTEAD_OF_MOVE cid#1545853 COPY_INSTEAD_OF_MOVE cid#1545769 COPY_INSTEAD_OF_MOVE cid#1545742 COPY_INSTEAD_OF_MOVE cid#1545735 COPY_INSTEAD_OF_MOVE cid#1545689 COPY_INSTEAD_OF_MOVE Change-Id: If93debe8b00991761cf1876b3fce27b09906749e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161966 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-11cool#7492 sfx2 lok: set language/locale on async sidebar updateMiklos Vajna
Create two Calc views, set the first view language to English, second view language to German. Type in the English view, double-click on a chart in the German view. The sidebar in the German view will have English strings in it. This doesn't happen if there is no typing right after the chart activation in the English view. What happens is that the sidebar update is async, and sfx2::sidebar::SidebarController::notifyContextChangeEvent() gets called, which registers an aync event when it calls AsynchronousCall::RequestCall(). Then later this job gets scheduled, but possibly by that time the active view is the English one, leading to English strings when chart::ColumnChartDialogController::getName() calls SchResId(), which works from the language of the current view. Fix the problem similar to what commit fb7b0b944741e4efae8d92a6e305036aff906c7a (cool#7492 sfx2 lok: just set language/locale on async binding update, 2024-01-09), did: set the language/locale from the current view before executing the async job and restore the old value once we're done. Extract the now duplicated code to a new SfxLokLanguageGuard, so in case more places have a problem with incorrect l10n, then it's meant to be a one-liner to fix further places. Change-Id: I52724a24d93fb753175a3b9b99bc33178519d981 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161920 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins
2024-01-09lok: external data source listSzymon Kłos
Make possible to filter allowed data sources. It is used for WebDAV curl, WEBSERVICE function, cell external references. Change-Id: Ifc82af31ff1123b5656a21e6a27624fb1616db39 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160196 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161772 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2024-01-08calc: Add option to keep edit mode on enter/tabSkyler Grey
This change makes it so that, rather than leaving edit mode, enter and tab keep editing the new cell when they have moved. This is important on devices with an onscreen keyboard (e.g. iPads, Android tablets, Convertible Laptops, etc.), particularly in Collabora Online, as exiting edit mode hides the onscreen keyboard. It is not desirable to enable this by default, as arrow keys cannot move around the document when we are in edit mode (they move within the cell). Therefore, this commit also adds an .uno command so that we can activate or deactivate the option. In LibreOfficeKit we want to make sure not to share this setting among different users, so we also add this option in the view shell and switch which one we care about based on whether Kit is active. Change-Id: I5e6c93c64af0d201a8ec045fea5546e189baca74 Signed-off-by: Skyler Grey <skyler.grey@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160313 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161696 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-01-07Drop SvtFilterOptions and use officecfg insteadMike Kaganski
Change-Id: I6aa9a21d1422b8b3b6fe5dde9869dffa88be5535 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161744 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-05Also copy updater.ini (so that updater progress UI will actually shown up)Stephan Bergmann
Change-Id: I2805087da196aa7153850345803999af4de313df Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161660 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-01-04Send tooltip text to LOKMike Kaganski
Call vcl::Window::RequestHelp from LOKPostAsyncEvent for mouse movement. Introduce LOK_CALLBACK_TOOLTIP callback type, and send it from SwEditWin::RequestHelp. Intention is, that the tooltip is shown by client at the current mouse pointer position, which is hopefully not far away from the point that generated the mouse event. On the next movement, the client starts a timer to hide the tooltip. If the next tooltip message arrives, the tooltip would be updated in the new place. Alternatively, the payload could contain the coordinates from the HelpEvent. Change-Id: I8e96eb6e6983ad8d13b4c5d7be4d51ff3fd11893 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161302 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-03Drop now unused SvtSlideSorterBarOptions classGabor Kelemen
Change-Id: I9db309b15e490c9bd03e767c192ba364a4ffe214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161452 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2024-01-03tdf117100: do not attempt to re-install extensions on restartJustin Luth
A common way to install extensions is to simply double-click on them in the OS's file browser. But in this case the reload still contains the extension in the cmdline and thus it "opens" the extension again and asks to re-install. So just eliminate OXTs from the commandline if OfficeRestartInProgress. If multiple OXTs are provided on the commandline, two things happen: -LO crashes (with an assert) -both extensions are successfully installed before restart is requested. In both cases removing ALL extensions during restart is appropriate. Prior to this patch, OfficeRestartInProgress was not actually used AFAICS. Mike Kaganski laid out lots of good criteria for this patch 1. After restart, user can still manually install an extension: YES 2. A restart after a restart should still inhibit extensions: YES 3. Must no interfere is user choses to "restart later": YES 4. It works with a clean profile (rm -r instdir/user): YES This implementation is closest to his suggested > Variant 4. Cleanup all fileopen/print arguments from the guards > that manage restarts (e.g., soffice.exe on Windows), so that > when restarting, they would not repeat using those arguments again. > Problem: first launch of soffice.bin that initializes user profile: > restart after this should repeat all the command line arguments. Change-Id: I2460cb31be0c6f3e10cbb5b200cf67839cbd822a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161549 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-01-02lok: import Work path from LOK_WORKDIRSzymon Kłos
Change-Id: If0c9727f53c1c4dfb78d1ccbd6b3ff602268bbf7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160156 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161059 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2024-01-01Replace "size() != 0 with !empty()" (desktop)Julien Nabet
Change-Id: I164e29ed02fc4abf7a5b03ca0c391fb46b60e4f4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161483 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-12-30SvtAccessibilityOptions no longer loads settingsGabor Kelemen
Change-Id: Ia7404122029b6b7c6fe7ff879bb1143b3419fc32 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161239 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
2023-12-30cid#1546349 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546236 COPY_INSTEAD_OF_MOVE cid#1546126 COPY_INSTEAD_OF_MOVE cid#1546042 COPY_INSTEAD_OF_MOVE Change-Id: I24b60d855f564ba8551501fc1dc614b24d5505c6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161440 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-28In readonly mode, we restrict many events like click.Gökay Şatır
In readonly mode, Online users need to be able to click on a hyperlink and get the related info. For this purpose, this PR adds a new function template that sends the hyperlink info if there is any at the clicked position. I will send the implementation with the next commit. Signed-off-by: Gökay Şatır <gokaysatir@collabora.com> Change-Id: I886ea22a7097aac73ade0da78a88ddfc95ad819c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160022 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161372 Tested-by: Jenkins
2023-12-27tdf#158803 Remove unused imports from desktopBogdan B
Used pyflakes to find unused imports from desktop module. Then, removed those unused imports. Change-Id: Iccc0661ed586a717f4e5c69c238cbf70d6de0b79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158820 Tested-by: Hossein <hossein@libreoffice.org> Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2023-12-21Remove DeleteItemOnIdlexArmin Le Grand (allotropia)
There are some CrashReports in 7.6 which have DeleteItemOnIdle on the stack, but there is nothing reproducable. So I took a look... I first thought it's a MCGR regression, due to classes on the stack. But the Item involved is just random, can happen with any Item. Then I thought it may have to do with ITEM refactorings, but it happens with DeleteItemOnIdle involved, so also not the case. I already saw DeleteItemOnIdle when doing these and qualified as 'hack' in the way. already It is only on Windows and DeleteItemOnIdle is involved. This again (took a deeper look now) is an old hack to keep an SfxPoolItem 'alive' for some 'time'. For that, it triggers an async reschedule which then deletes the Item when being called. If the Item will be used after that is pure coincidence - seems to work in most cases. It seems as if for Windows the timing slightly changed for some scenarios, so a reschedule is too early. This can happen with this hack anytime. DeleteItemOnIdle is used in scenarios where SfxPoolItem* is e.g. returned, but is *not* anchored, so e.g. not member of an SfxItemSet. Or in short: Lifetime is not safe. DeleteItemOnIdle exists since 1st import, but was changed to AsyncEvent ca. 4 months ago (see 57145acf9ec47c23e307b7a5c0029d21d937cc35), so that may have caused it. It is possible that these errors happen on Windows since then. Before something more complicated was used to delete it late, but surely also not really safe. Due to ITEM refactor I have the knowledge/tooling to solve this. It will not be a 1-5 lines fix, but it is a hack and in the way for further ITEM refactor anyways. What we have nowadays is a SfxPoolItemHolder -> it's like an SfxItemSet for a single Item. It safely holds/ controls the lifetime of an SfxPoolItem. It is already used in quite some places. It helps to solve many hacks, also the ones putting Items directly to the Pool - due to there never was an alternative for that. In principle the ItemPool/ItemSet/Item paradigm was never complete without SfxPoolItemHolder. Thus I started to fix that (and remove that hack for good, sooo many changes over the years, sigh), but as said is not straightforward. Will have to change retvals of involved stuff to SfxPoolItemHolder - it's just two pointers and designed to be copied (one is a Pool, needed to cleanup when destructing). CopyConstruct/destroy just counts the RefCnt up/down, so cheap. 1st version compiling, let's check on gerrit... Corrected one error in QueryState for securitypage, also added some security features/asserts. Change-Id: Ida49fd35ca88ead84b11d93e18b978cb9e395090 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161083 Tested-by: Jenkins Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2023-12-20Revert "updater: check every 12 hours for updates for now"Stephan Bergmann
This reverts commit bb5622adc5db348efcc9a6f41d19de9f00a367dd, going back to a less aggressive 7 day period for now. Change-Id: I439a49f3ca6761ef17ca2b92d395b0de5c400197 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161050 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-19Improve --enable-online-update-mar Windows MOZ_MAINTENANCE_SERVICE featureStephan Bergmann
To get the MOZ_MAINTENANCE_SERVICE mode going at all, update.status needs to contain a "pending-service" token. For Mozilla, code in its toolkit/mozapps/update/UpdateService.sys.mjs takes care of writing that. For us, lets always write that in update_checker() (even on Linux, where it's apparently harmless). Then, the MOZ_MAINTENANCE_SERVICE code is rather picky with its various sanity checks: Among other things, it expects argv[0] to be a full path to the updater executable, and it expects the update.mar (and its status and log files) to be in a directory hierarchy named updates/0/ rather than patch/. So get all that fixed in desktop/source/app/updater.cxx. And patch in external/onlineupdate/lo.patch where it expects to find the updater executable (just updater.exe vs. our program/updater.exe). And we shouldn't interfere with the upstream Mozilla maintenance service, so also rename that in external/onlineupdate/lo.patch. And `update_service install` wants to read version resources from the update_service.exe, so provide that (via gb_Executable_add_default_nativeres). Also, `update_service install` wants to read a MozillaMaintenanceDescription value from an updater.ini, so provide one (with contents of that value inspired by Mozilla's browser/locales/en-US/updater/updater.ini). As we now have an updater.ini anyway (and which apparently works fine with Unix line ends on both Linux and Windows), also use it on Linux and drop the onlineupdate/source/update/updater/progressui_gtk.cpp again from external/onlineupdate/lo.patch. And update external/onlineupdate/README.md how to manually execute that test against an updater.ini. Change-Id: I0e3e5e5311be61e1224cda700af2e5d751113a99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160996 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-19cid#1557601 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546498 COPY_INSTEAD_OF_MOVE cid#1546384 COPY_INSTEAD_OF_MOVE cid#1546376 COPY_INSTEAD_OF_MOVE cid#1546374 COPY_INSTEAD_OF_MOVE cid#1546373 COPY_INSTEAD_OF_MOVE cid#1546368 COPY_INSTEAD_OF_MOVE cid#1546365 COPY_INSTEAD_OF_MOVE cid#1546356 COPY_INSTEAD_OF_MOVE cid#1546340 COPY_INSTEAD_OF_MOVE cid#1546266 COPY_INSTEAD_OF_MOVE cid#1546236 COPY_INSTEAD_OF_MOVE cid#1546188 COPY_INSTEAD_OF_MOVE cid#1546178 COPY_INSTEAD_OF_MOVE cid#1546166 COPY_INSTEAD_OF_MOVE cid#1546156 COPY_INSTEAD_OF_MOVE cid#1546144 COPY_INSTEAD_OF_MOVE cid#1546143 COPY_INSTEAD_OF_MOVE cid#1546100 COPY_INSTEAD_OF_MOVE cid#1546078 COPY_INSTEAD_OF_MOVE cid#1546041 COPY_INSTEAD_OF_MOVE cid#1546036 COPY_INSTEAD_OF_MOVE cid#1546033 COPY_INSTEAD_OF_MOVE Change-Id: Ib3586d93198992e206baf5c2de5a663d5574aa3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160979 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-15Avoid "Desktop disposed before terminating it" assertStephan Bergmann
...from Desktop::disposing() at framework/source/services/desktop.cxx:1041, on Windows, when the HAVE_FEATURE_UPDATE_MAR update() call returns true (and soffice.bin is about to exit now), but the css.frame.Desktop service happens to already have been created somewhere else (and will thus be disposed as part of disposing the service manager) but doesn't receive a terminate() call in Desktop::Main(). So reorder the code in Desktop::Main(), moving the HAVE_FEATURE_UPDATE_MAR code after the > xDesktop = css::frame::Desktop::create( xContext ); so that we have something to call > xDesktop->terminate(); on in this scenario. Change-Id: Iee5b6eeece33d5a27cadb94a7da0d26aa1492e91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160831 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-15-Werror,-Wunused-resultStephan Bergmann
...caused by typo in previous 58bfd8f982950566018f77ce8895963d914058f8 "Fix backward vs. forward slashes on Windows" Change-Id: Ibd1967688c6ab4c962818595d435c7f821ad3d64 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160820 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-15Fix backward vs. forward slashes on WindowsStephan Bergmann
Change-Id: I24771a526848901ccedb15aa5dd7b373fe854977 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-13Fix number of actual argumentsStephan Bergmann
Change-Id: I04bb3462948aeab24d46ee7ee910fdae8da2aa65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160674 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-10cid#1545975 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545955 COPY_INSTEAD_OF_MOVE cid#1545954 COPY_INSTEAD_OF_MOVE cid#1545952 COPY_INSTEAD_OF_MOVE cid#1545948 COPY_INSTEAD_OF_MOVE cid#1545943 COPY_INSTEAD_OF_MOVE cid#1545935 COPY_INSTEAD_OF_MOVE cid#1545930 COPY_INSTEAD_OF_MOVE cid#1545928 COPY_INSTEAD_OF_MOVE cid#1545925 COPY_INSTEAD_OF_MOVE cid#1545922 COPY_INSTEAD_OF_MOVE Change-Id: I28d830504337f417829c675b1eb9c763b83b30c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160522 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-09cid#1556778 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546474 COPY_INSTEAD_OF_MOVE cid#1546473 COPY_INSTEAD_OF_MOVE cid#1546469 COPY_INSTEAD_OF_MOVE cid#1546467 COPY_INSTEAD_OF_MOVE cid#1546458 COPY_INSTEAD_OF_MOVE cid#1546448 COPY_INSTEAD_OF_MOVE cid#1546446 COPY_INSTEAD_OF_MOVE cid#1546441 COPY_INSTEAD_OF_MOVE cid#1546424 COPY_INSTEAD_OF_MOVE cid#1546377 COPY_INSTEAD_OF_MOVE cid#1546374 COPY_INSTEAD_OF_MOVE cid#1546352 COPY_INSTEAD_OF_MOVE cid#1546334 COPY_INSTEAD_OF_MOVE cid#1546328 COPY_INSTEAD_OF_MOVE cid#1546310 COPY_INSTEAD_OF_MOVE cid#1546303 COPY_INSTEAD_OF_MOVE Change-Id: I8a43fdd574857ba1d3ec416f23c8269a9a08e12f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160515 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-09Fix Linux --enable-online-update-mar buildStephan Bergmann
...after 13595f6220095d120e13ccb6fbfac1de4c803fe7 "Fix --enable-online-update-mar on Windows" Change-Id: I8e13a3f4234f3b5fb64d606eb3c2c16611dacd33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160491 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-08Fix --enable-online-update-mar on WindowsStephan Bergmann
The code had apparently rotten a bit, * a wchar_t vs. char16_t confusion in desktop/source/app/updater.cxx * code broken by 926e4e469d0285ee72f8da80f00370b4b3120417 "Rename online updater functions and strcmp relpath" in onlineupdate/source/update/updater/updater.cxx * -DUNICODE missing in some places (so that plain Windows functions resolve to the ...W variant), which had been set centrally in the past IIRC * silencing some warnings like "C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data" (where silencing is the right thing to do for effectively extern code); no sure why those apparently didn't hit in the past, maybe it is all warnings that compilers only started to emit in recent years, or only for recent -std:c++... modes * silencing some "Conversion from string literal loses const qualifier" errors with -Zc:strictStrings-; these hit at least with recent VS 2022 Preview and --with-latest-c++, where -Zc:strictStrings is apparently now on by default Change-Id: I7fe46f5aa2b42fc9c03f24f7f0236512b4d3b936 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2023-12-07simplify and modernise ScopedBitmapAccessNoel Grandin
(*) Make all of it use a "Scoped" paradigm (*) pass by value, no need to allocate on heap (*) make all of the construction go via the *Access constructors, instead of it being some via the constructors and some via the Acquire*Access methods. (*) take the Bitmap& by const& in the constructor, so we can avoid doing const_cast in random places. Change-Id: Ie03a9145c0965980ee8df9a89b8714a425e18f74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160293 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-12-06make AlphaMask separate from BitmapNoel Grandin
Having it subclass Bitmap encourages confusion in passing it around, and I need the extra type-safety for my work on merged-alpha Change-Id: I35819f9b8ee609cbdaf865563c78531e397b529b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160235 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-12-05Fix apparent copy/paste typoStephan Bergmann
...present ever since the code got introduced in 569269078576fa832143ec4f0bf03283ff358f48 "improve the update checker" Change-Id: I38d0efee3cb3f6954dd30690ba9afddf0b66c959 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160348 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>