summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-06-19Update git submodulesOlivier Hallot
* Update helpcontent2 from branch 'libreoffice-24-8' to 23bbf450933fc8c59507521165d7e1d23a7bcf86 - tdf#161579 Further rework on Save options Help page + refactor + removed outdated screenshot from page + deleted outdated screenshot from build + change paragraph tag to a tip tag for better reading. Change-Id: I8ec7330ffe501e7b68ee1ccc9591e45dbe35c05b Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169116 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org> (cherry picked from commit 840359bcb401b17e55a0370a9a0d15890a824abe) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169109
2024-06-19Update git submodulesOlivier Hallot
* Update helpcontent2 from branch 'libreoffice-24-8' to 52572824af33a77628c57fe7f6d3e2e19c226b32 - tdf161612 Precisions for XMATCH function Help page Change-Id: Id50a01c9c33284124f022540ac51c1f1651848e7 Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169007 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org> (cherry picked from commit 9f43bf5caf95051c06f0c08f326f8d864c501d58) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169102
2024-06-19Update git submodulesOlivier Hallot
* Update helpcontent2 from branch 'libreoffice-24-8' to b80910b523d23afe7d4bb6c59a443eb429003faf - tdf#154226 Add link to LO books on Help pages Added a row of icons on the footer of the Help pages. Change-Id: I40e1e697e5defa21ba3fb6f93198489ac401924b Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169033 Tested-by: Jenkins Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org> (cherry picked from commit 4c8b04c8d9d3a2367bb3205b852f2d7b75082f90) Reviewed-on: https://gerrit.libreoffice.org/c/help/+/169101
2024-06-19tdf#161635 sw DoNotCaptureDrawObjsOnPage: fix handling of left paddingMiklos Vajna
Open the bugdoc, the shape has an 5cm left padding for its text, but only 4cm of that is visible in Writer. Checking the shape, part of that is outside the page frame, so the first 1cm of the left padding is not visible, visually resulting in a 4cm left padding in Writer, but not in Word. Fix the problem by extending SwFlyFrame::MakePrtArea(), so in case the shape is partially outside the page frame, then we make sure to increase the left padding enough that the nominal (5cm) left padding is inside the page frame. With this, the text on the title page of the document is visually centered also in Writer, even if not using an explicit paragraph alignment. Change-Id: I5dcbcf407ed7f12f0bc13820fa39621a76e23fe7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169186 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 61692b82ae4ff62662509b5979a7aabc7d380678) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169134
2024-06-19tdf#159835 sfx2: Simplify TabBar::OnToolboxClickedMichael Weghorn
Now that the logic from `SidebarController::PopulatePopupMenus` has been moved here in Change-Id: I8236f2467239e6a2f485d468656e961478eeb09c Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jun 17 13:35:12 2024 +0200 tdf#159835 sfx2: Move logic to populate sidebar menus to TabBar as well, simplify `TabBar::OnToolboxClicked`: No longer use one loop to build a vector of entries and another to process these, but use a single loop for that instead. Drop the now unused `DeckMenuData` class. Change-Id: I884f3b70bb4d85b9a52421e9de6042cda80cfa0b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169006 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169076
2024-06-19tdf#159835 sfx2: Move logic to populate sidebar menus to TabBarMichael Weghorn
Move the logic to populate the menus from `SidebarController::PopulatePopupMenus` (called by `SidebarController::ShowPopupMenu`) to `TabBar::OnToolboxClicked`. The latter called `SidebarController::ShowPopupMenu`. (In a first step, take over the existing implementation but leave further changes for following commits.) `TabBar::OnToolboxClicked` already collects all the deck data relevant for the menus and the menus are members of that class, so it seems more straighforward to populate the menus there right away. The only information needed from `SidebarController` is whether the sidebar is docked or not, so add a new method `SidebarController::IsDocked` to retrieve that information. Rename `SidebarController::ShowPopupMenu` to `SidebarController::ConnectMenuActivateHandlers` as it only connects the signals now, and rename `PopupMenuProvider` to `PopupMenuSignalConnectFunction` accordingly. This commit does some refactoring in preparation of fixing tdf#159835, no change in behavior intended (yet). Change-Id: I8236f2467239e6a2f485d468656e961478eeb09c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169005 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169075
2024-06-19tdf#159835 sfx2: Use reference instead of pointerMichael Weghorn
This e.g. makes it clear that this is never null. Also use an `m` prefix for the class member. Change-Id: Ia66245f17e7f0ca9e57750e8606c8ccc1387eb97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169004 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169074
2024-06-18language-subtag-registry: upgrade to 2024-06-14Xisco Fauli
How the file was created: mkdir data cd data wget https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry cd .. tar cvjf language-subtag-registry-2024-06-14.tar.bz2 data/language-subtag-registry Change-Id: Ib85b9072590a97fde37be85b9866bf53f77d1f4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169061 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins (cherry picked from commit 62c99a31de22561e0e38dd10f3b3fd2b6dd9971d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169098
2024-06-18tdf#161570 DOCX import: fix lost numbering in paragraph styleMiklos Vajna
Regression from commit ca71482237d31703454062b8b2f544a8bacd2831 (tdf#153083 writerfilter: import locale-dependent TOC \t style names, 2, 2023-01-31), open the doc, apply 'Level 2 Heading' on the first para, then switch back to 'Signature' again using e.g. the sidebar, the numbering of the first paragraph is gone. This was initially a wider problem, but since commit ab1697cb4c17fd7a2fbf8d374ac95fc03b4d00be (tdf#160402 filter,writerfilter: import locale-dependent STYLEREF names, 2024-05-06), the problem only affects built-in styles. There were two remaining problems: 1) the separator for the TOC field can contain whitespace, which resulted in a style named ' Signature' and 2) the style was always cloned, even if the name was not localized. Fix the problem by first trimming the style name in DomainMapper_Impl::handleToc() and then only cloning in DomainMapper_Impl::ConvertTOCStyleName() if we see that the style name is localized. A localized style name can be observed when opening e.g. sw/qa/extras/ooxmlexport/data/custom-styles-TOC-semicolon.docx that has Intensives Zitat vs Intense Quote. One remaining question is why the numbering is lost when the cloning happens, that's not addressed here, as the cloning should not happen for this document in the first place. Change-Id: Ibc2ea20cc3c9ec6bec9bdcdabce1469a0457317a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168994 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 4e5dd2c0774242e44ac6edf2bd5ada220541b06b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169014
2024-06-18tdf#145735 qt avmedia: Don't deadlock with QGstreamerMediaPlayerMichael Weghorn
While opending a slide with a video worked fine for me with the qt6 VCL plugin and a local Qt development build on Debian testing (qtbase as of 8915ae3a75c4a356d94962dd9b31e1458f2a506f, qtwayland as of deae8b9ce9f551b29ef98d0bb827a8543af2797e, qtmultimedia as of 235ba5f273fbb7dfed8ba3736e4444a85aee5770), this resulted in a freeze when using Debian's system-provided Qt packages instead (libqt6multimedia6:amd64 6.4.2-11+b2). While the self-compiled Qt dev is using `QFFmpegMediaPlayer` which asynchronously loads media, the system QtMultimedia is using `QGstreamerMediaPlayer` (s. frame 37 in below backtrace) that apparently doesn't use multiple threads. Therefore, using `Qt::BlockingQueuedConnection` is problematic, as its documentation [1] says: > Same as Qt::QueuedConnection, except that the signalling thread blocks > until the slot returns. This connection must not be used if the receiver > lives in the signalling thread, or else the application will deadlock. Use `Qt::AutoConnection` (= 0, the default) instead and specify the `Qt::SingleShotConnection` flag in addition to ensure the slot gets called only once: > This is a flag that can be combined with any one of the above connection > types, using a bitwise OR. When Qt::SingleShotConnection is set, the > slot is going to be called only once; the connection will be > automatically broken when the signal is emitted. This flag was > introduced in Qt 6.0. Drop the now no longer needed manual disconnect. This makes the scenario work with both, the custom-compiled Qt dev using `QFFmpegMediaPlayer` and the system-provided Qt 6.4.2 using `QGstreamerMediaPlayer`. Side note: Unrelated to the issue addressed here, using the system-provided Qt with `QGstreamerMediaPlayer` results in a crash when started via the soffice shell script wrapper with a LibreOffice debug build or when using soffice.bin directly and manually setting `MALLOC_PERTURB_=153`, which indicates some memory issue. That could be within Qt, though, haven't analyzed that further. Backtrace of deadlock: 1 syscall syscall.S 38 0x7f40a83249f9 2 QSemaphore::acquire(int) 0x7f40948714e2 3 ?? 0x7f409477fede 4 QVideoSink::videoFrameChanged(QVideoFrame const&) const 0x7f4095195376 5 ?? 0x7f405c219f5c 6 ?? 0x7f405c21a25b 7 QApplicationPrivate::notify_helper(QObject *, QEvent *) 0x7f4093782d62 8 QCoreApplication::notifyInternal2(QObject *, QEvent *) 0x7f40947356d8 9 QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *) 0x7f40947358b7 10 ?? 0x7f4094925257 11 ?? 0x7f409ab0de3f 12 ?? 0x7f409ab0fec7 13 g_main_context_iteration 0x7f409ab104e0 14 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 0x7f4094922f60 15 QtInstance::ImplYield QtInstance.cxx 455 0x7f4094e534e0 16 QtInstance::DoYield QtInstance.cxx 464 0x7f4094e568a5 17 ImplYield svapp.cxx 384 0x7f409f3c48cc 18 Scheduler::ProcessEventsToIdle svapp.cxx 419 0x7f409f3c4bc8 19 avmedia::qt::QtFrameGrabber::grabFrame QtFrameGrabber.cxx 106 0x7f405cac5524 20 non-virtual thunk to avmedia::qt::QtFrameGrabber::grabFrame(double) 0x7f405cac564e 21 avmedia::MediaWindow::grabFrame mediawindow.cxx 385 0x7f40a03e41ad 22 SdrMediaObj::getSnapshot() const::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const svdomedia.cxx 195 0x7f40a249e5b5 23 std::__invoke_impl<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(std::__invoke_other, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) invoke.h 61 0x7f40a249e52d 24 std::__invoke_r<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) invoke.h 111 0x7f40a249e4dd 25 std::_Function_handler<void (com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&), SdrMediaObj::getSnapshot() const::$_0>::_M_invoke(std::_Any_data const&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) std_function.h 290 0x7f40a249e345 26 std::function<void (com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&)>::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const std_function.h 591 0x7f40a03e96cd 27 avmedia::PlayerListener::callPlayerWindowSizeAvailable mediawindow.hxx 76 0x7f40a03e6bf1 28 avmedia::PlayerListener::preferredPlayerWindowSizeAvailable mediawindow.cxx 496 0x7f40a03e5055 29 avmedia::qt::QtPlayer::notifyListeners QtPlayer.cxx 395 0x7f405cacfd53 30 avmedia::qt::QtPlayer::notifyIfReady QtPlayer.cxx 326 0x7f405cacfb42 31 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QMediaPlayer::MediaStatus>, void, void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus)>::call qobjectdefs_impl.h 135 0x7f405cad477b 32 QtPrivate::FunctionPointer<void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus)>::call<QtPrivate::List<QMediaPlayer::MediaStatus>, void> qobjectdefs_impl.h 172 0x7f405cad46cd 33 QtPrivate::QSlotObject<void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus), QtPrivate::List<QMediaPlayer::MediaStatus>, void>::impl qobjectdefs_impl.h 383 0x7f405cad4612 34 ?? 0x7f409477fbbe 35 QMediaPlayer::mediaStatusChanged(QMediaPlayer::MediaStatus) 0x7f4095184a05 36 ?? 0x7f405c210740 37 non-virtual thunk to QGstreamerMediaPlayer::processBusMessage(QGstreamerMessage const&) 0x7f405c2009f7 38 ?? 0x7f405c21aa94 39 QObject::event(QEvent *) 0x7f40947723e0 40 QApplicationPrivate::notify_helper(QObject *, QEvent *) 0x7f4093782d62 41 QCoreApplication::notifyInternal2(QObject *, QEvent *) 0x7f40947356d8 42 QCoreApplicationPrivate::sendPostedEvents(QObject *, int, QThreadData *) 0x7f40947358b7 43 ?? 0x7f4094925257 44 ?? 0x7f409ab0de3f 45 ?? 0x7f409ab0fec7 46 g_main_context_iteration 0x7f409ab104e0 47 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) 0x7f4094922f60 48 QtInstance::ImplYield QtInstance.cxx 455 0x7f4094e534e0 49 QtInstance::DoYield QtInstance.cxx 464 0x7f4094e568a5 50 ImplYield svapp.cxx 384 0x7f409f3c48cc 51 Scheduler::ProcessEventsToIdle svapp.cxx 419 0x7f409f3c4bc8 52 avmedia::qt::QtFrameGrabber::grabFrame QtFrameGrabber.cxx 106 0x7f405cac5524 53 non-virtual thunk to avmedia::qt::QtFrameGrabber::grabFrame(double) 0x7f405cac564e 54 avmedia::MediaWindow::grabFrame mediawindow.cxx 385 0x7f40a03e41ad 55 SdrMediaObj::getSnapshot() const::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const svdomedia.cxx 195 0x7f40a249e5b5 56 std::__invoke_impl<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(std::__invoke_other, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) invoke.h 61 0x7f40a249e52d 57 std::__invoke_r<void, SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&>(SdrMediaObj::getSnapshot() const::$_0&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) invoke.h 111 0x7f40a249e4dd 58 std::_Function_handler<void (com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&), SdrMediaObj::getSnapshot() const::$_0>::_M_invoke(std::_Any_data const&, com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) std_function.h 290 0x7f40a249e345 59 std::function<void (com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&)>::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) const std_function.h 591 0x7f40a03e96cd 60 avmedia::PlayerListener::callPlayerWindowSizeAvailable mediawindow.hxx 76 0x7f40a03e6bf1 61 avmedia::PlayerListener::preferredPlayerWindowSizeAvailable mediawindow.cxx 496 0x7f40a03e5055 62 avmedia::qt::QtPlayer::notifyListeners QtPlayer.cxx 395 0x7f405cacfd53 63 avmedia::qt::QtPlayer::notifyIfReady QtPlayer.cxx 326 0x7f405cacfb42 64 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QMediaPlayer::MediaStatus>, void, void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus)>::call qobjectdefs_impl.h 135 0x7f405cad477b 65 QtPrivate::FunctionPointer<void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus)>::call<QtPrivate::List<QMediaPlayer::MediaStatus>, void> qobjectdefs_impl.h 172 0x7f405cad46cd 66 QtPrivate::QSlotObject<void (avmedia::qt::QtPlayer:: *)(QMediaPlayer::MediaStatus), QtPrivate::List<QMediaPlayer::MediaStatus>, void>::impl qobjectdefs_impl.h 383 0x7f405cad4612 [1] https://doc.qt.io/qt-6/qt.html#ConnectionType-enum Change-Id: Ia8bfd19b0c0c4f970a5eb200c2a0b45784ef25fd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169036 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 4df2a30c57c150d30d34e4cd1641a076cf3010f6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169097
2024-06-18tdf#145735 qt avmedia: Show audio placeholder for audio filesMichael Weghorn
So far, `QtPlayer::createPlayerWindow` was unconditionally creating a video widget. However, audio-only media files can be used as well, therefore handle that case, too and create a widget holding an audio icon as a placeholder instead if the media doesn't contain video. (This is the same icon shown when using qt5 that doesn't use QtMultimedia). As described in commit a99575f04fa9c858bfcd996f037444135810d43f Author: Michael Weghorn <m.weghorn@posteo.de> Date: Sat Jun 1 07:32:22 2024 +0200 tdf#194504 qt avmedia: Don't wait for video frame if there's none , `QMediaPlayer::hasVideo()` only returns a useful result once loading media has finished. Therefore, if the player is still in that state in `QtPlayer::createPlayerWindow`, defer creating the widget to when the media status changes. With this commit in place, opening an Impress presentation that contains an audio file (like attachment 194504 from tdf#145735) and starting presentation mode now shows an "audio icon" as placeholder as expected when using the qt6 VCL plugin. (This commit here makes that work for presentation mode, while the above-mentioned commit already made the icon show as expected for non-presentation mode.) Change-Id: I1ff7e8b8659162a748abc3f97a8d2181375c0e7c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169009 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit 12c4b7ee91c6fb1e2a1e4a5c8828372ddfad5a9f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169096
2024-06-18tdf#161616: do not set error when XGoalSeek failsXisco Fauli
Change-Id: I2fcec37cd9d22862dd136c97e5b4097e69fd41cc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169035 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169050
2024-06-18tdf#68034: sc_goal_seek: Add unittestXisco Fauli
Change-Id: I675d59cd7e22c09ea1c673e016d71f8d3ed404a5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168890 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169049
2024-06-18tdf#161511: sc_goal_seek: Add unittestXisco Fauli
Change-Id: Icc05195a4870d5bb4f8c5ffc9b3bcae89367a89d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168866 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169048
2024-06-17package: remove experimental mode checkMichael Stahl
It should check for the wholesome encryption more directly; PBKDF2 is unreachable from the UI in this case anyway, this can only be tested with LO_ARGON2_DISABLE=1 in the environment. Change-Id: I5e74471300df1c6ef3892dc544f13328e5898abb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168998 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins (cherry picked from commit 0cbfd84b0c57a831b2ff48239aa9926482f49f8b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169012
2024-06-17tdf#148569 set extra drawing constraints when scalingPatrick Luby
Previously, setting stroke width and cap was only done when running unit tests. But the same drawing contraints are necessary when running with a Retina display on macOS. Change-Id: I74f7347d30a410f7d3485388ffec61b32730b948 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168973 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Patrick Luby <guibomacdev@gmail.com> (cherry picked from commit a4488013ee6c87a97501b620dbbf56622fb70246) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168947 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2024-06-17Update git submodulesChristian Lohmaier
* Update translations from branch 'libreoffice-24-8' to 8be0b107f84d9ea94a5d04146d54426366fe4ee5 - update translations for 24-8/master and force-fix errors using pocheck Change-Id: I4a4726ec04a147df4f78d95213a82bf9e0c13a61 (cherry picked from commit b6092afde898f454189047221479af58e31049fa)
2024-06-17cid#1603805 COPY_INSTEAD_OF_MOVECaolán McNamara
Change-Id: Ieb2c72dbdfec8431bd23da8a5e4844f3c1a5b74e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168958 Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit c003f792183b63ca3f282a6fd53ceae0167f2a5e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168942 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17crashtesting: avoid eventual assert when double inf is cast to sal_Int32Caolán McNamara
seen on loading forum-mso-en4-604220.xlsx and asserting on export to ods lets assume that an infinite Y position equates to ALIGN_BOTTOM which is the case seen in this example, and assume the same for infinite X and ALIGN_RIGHT if it arises Change-Id: I009a9cd94b7bd9ed66e18f8dbbb9eb91d37eaa65 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168892 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit 64da52a94738aa73cbcf2411952914d4e8e0f9ef) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168940 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17Gtk warnings about missing labelsCaolán McNamara
a problem since: commit 164596c00b4361b5b378609f026a1b11ac653970 Date: Tue Nov 14 12:13:21 2023 +0100 resave with newer glade version Change-Id: I2b69229c59ee07939da43b3013f64041c74f5967 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168930 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17tdf#159924 sw: fix hyperlink name export to PDFTibor Nagy
If there is a Name attribute set for a hyperlink, the text is exported to PDF as tooltip. note: not every PDF reader displays this text Change-Id: Ib9f1c13403c1555bfae733d662754c0e052378f7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168993 Tested-by: Jenkins Reviewed-by: Nagy Tibor <tibor.nagy.extern@allotropia.de> (cherry picked from commit a3ac49ebe78b7fc164dbc766492faee084bad254) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168949 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17tdf#160888 package: fix opening password protected scripting libraryMichael Stahl
The problem is that XBufferedThreadedStream does not implement XSeekable, so the new code in ZipFile::checkValidPassword() throws an exception, and then joining the UnzippingThread hangs. Implementing XSeekable doesn't appear to help, as the mutex that is used by XBufferedThreadedStream and the UnzippingThread is already locked by checkValidPassword() [fixably] and by getDataStream(). So just disable threading for AEAD streams, these are read immediately anyway so threading isn't much of a benefit. (regression from commit 2f512aaa6c39390a5a0eb1d1e37f070127d068a4) Change-Id: I16027d5b03ba6e102bc143c22383eb7f08590e5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168893 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 31698044cd1fe7a7662740b97ea58f9904b3bb0e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168945
2024-06-17fix crash in "delete comments by author" in impressCaolán McNamara
insert comment, click on it to expand it, click on menubutton and use "delete all comments by..." crash on use of invalid iterator as callback trashes the vector being iterated over Change-Id: Ia86de87207f706f35a023efa433c5e67b8bb436a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168970 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168935
2024-06-17Remove some unneeded castsMike Kaganski
This also changes the API used in WriteLibraryToRegistry. Change-Id: Iba4c20567275a64684be8695c771e4c5535956ab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168912 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168992
2024-06-17tdf#161585: fix DllRegisterServer implementationMike Kaganski
The buffer was prepared with a wrong length (one too few spaces); thus, the resulting registry key path was wrong, and opening it failed. While at it, use a normal WinAPI to stringify GUIDs, and simplify code. Change-Id: I9a51a5aa70791106055c615fd15a32e5e07847a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168903 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 7b2c82ff14094aad4cb64a9d2531fd8fe48229b1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168938 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17Simplify a bit using newer registry APIMike Kaganski
Change-Id: I0bd2a238662e1da0c62cdaec96b9892df82298f6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168909 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168991
2024-06-17Simplify a bit using newer registry APIMike Kaganski
Change-Id: I8e0106464260126983a1d55c66c218e78da7f94e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168908 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168990
2024-06-17tdf#35568 Repeat "first run" procedure on upgradeMike Kaganski
1. In isProductVersionUpgraded, if it was upgraded, set FirstRun. This will run in runGraphicsRenderTests, early enough in Desktop::Main(). 2. This will make sure that Desktop::CheckFirstRun() will do its tasks, including creation of the quickstart shortcut. It is simplified a bit, to use a better WinAPI. 3. Setting FirstRun to false is moved to m_firstRunTimer's handler, to make sure that it gets run eventually, even if the first launch was terminated before the timer fired. This will not make installer itself create the quickstart shortcut: it will happen on the program's first run after an upgrade. But users now won't have to enable the option manually each time. Change-Id: Ica6cc41f1e56b8970db27d14e2be3c47910293e3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168902 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins (cherry picked from commit f1e4a97b03e1eacd679c3ef1dcb7ab4b577dd928) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168939 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17tdf#68034: set the variable cell to value temporarily if neededMike Kaganski
Change-Id: I35fed710862ed87c477686e26bc8c82379c5e5a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168854 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Tested-by: Jenkins (cherry picked from commit 6fc21353bb30e71e2fc4d47394bf7ec2e704a454) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168941
2024-06-17Resolves: tdf#160681 draw impress comment similarly to how writer does itCaolán McNamara
so we get the same filled MenuButton in both applications Change-Id: Iea41a17285287ec2794e4cdce6eaae0906fff291 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168969 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168989
2024-06-17fix gtktreestore.c:1047: Invalid column number 6 added to iter warningCaolán McNamara
probably since: commit 35f59457ff434b7b97cad6ce1dbef6ff07f7bc96 Date: Thu Nov 16 17:03:39 2023 +0100 tdf#158135 - UI: Part 30 - Unify lockdown behavior of Options dialog for Writer - Compatibility Page. Change-Id: Icaf1320f4f819294d49f99b3f1728fa025c51e11 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168931 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17sw: show "wait" pointer while accessibility check is runningTomaž Vajngerl
Change-Id: I234af45560db7940d07669be9abd1b1ec50a74cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167880 Tested-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com> (cherry picked from commit 10ef0f03bb6a9efc0dcabe8710b59bd7b41a2fcf) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168783 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins (cherry picked from commit 37422f16fe56ca10cda549af03b165bf28c9e099) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168875 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17sw: add update button to a11y check sidebar when using LOKitTomaž Vajngerl
Running the a11y check when the sidebar gets enable takes some time, because populating the widgets is quite expensive. Instead of running the check right away, add a "update" button to the sidebar, that needs to be clicked first to start running the accessibility check. This does not check the behavior of the sidebar in desktop LibreOffice. Also change the populate call to be async, which helps a bit to make the UI interaction more fluent, but doesn't fix the issue. Change-Id: Ia04f4a5fbae952035c1b8d4d7c56211e061d8251 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167855 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> (cherry picked from commit 5e6d7927e27551aa63a2b22134b1a9ee6408d39a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168784 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> (cherry picked from commit efd665b931fdc46f226964ac838fb72a73782b98) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168882 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-17tdf#92091 Writer save and restore VCL state during recursionJonathan Clark
This change updates Writer to save and restore VCL device state while laying out text. This fixes issues caused by Writer mutating device state while recursively laying out text, particularly overlapping RTL and LTR text when used together along with footnotes. Change-Id: I077352551ce2072f5c5eab9bff4b98bbcc6e78f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168835 Tested-by: Jenkins Reviewed-by: Jonathan Clark <jonathan@libreoffice.org> (cherry picked from commit e78bb77c3c5930b20113bff3de2dd02065cead85) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168881 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-16Resolves: tdf#159741 canceling printing results in 'modified' documentCaolán McNamara
Change-Id: I627487a79f819351ec38e34b3fac432c36670d7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168932 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2024-06-15tdf#158914 add back reusing weakly cached ScAccessibleCellsPatrick Luby
While commit 8e886993f32b7db11a99bdecf06451e6de6c3842 fixed tdf#157568, moving the selected cell rapidly creates a large number of stale ScAccessibleCell instances that aren't deleted until the Calc document is closed. So reduce memory usage by adding back the ScAccessibleCell cache that was in commit f22cb3dfab413a2917cd810b8e1b8f644a016327 now that a new fix for tdf#157568 has been implemented. The new fix for tdf#157568 is to do the following: - Check if the edit engine text has changed. If the input string is different than the edit engine's existing text, force update of the edit engine's text. Otherwise, the edit engine will still to be set to its existing text. - Before a cell loses focus, check if any accessible text changes have occurred and fire text and value changed notifications if needed. Change-Id: I106ad0138d5d834367be59ca625d41a692696d4a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167961 Reviewed-by: Patrick Luby <guibomacdev@gmail.com> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> (cherry picked from commit ab5ad0c8b5056da8f699cea233dd31eceb3d80a4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168887
2024-06-15wina11y: Fix handling for special text offset -1Michael Weghorn
As described in the IAccessible2 spec [1], -1 can be used as a special text offset: > Using IA2_TEXT_OFFSET_LENGTH (-1) as an offset in any of the > IAccessibleText or IAccessibleEditableText methods is the same > as specifying the length of the string. Replace -1 by the text length *before* doing the check whether end offset is smaller than the start offset. Otherwise, trying to query the whole text of a Writer paragraph containing the text "hello" in NVDA's Python console would incorrectly trigger an error: >>> focus.IAccessibleTextObject.text(0,-1) Traceback (most recent call last): File "<console>", line 1, in <module> File "comtypes\__init__.pyc", line 856, in __call__ File "monkeyPatches\comtypesMonkeyPatches.pyc", line 32, in __call__ _ctypes.COMError: (-2147467259, 'Unspecified error', (None, None, None, 0, None)) With this commit in place, it works as expected: >>> focus.IAccessibleTextObject.text(0,-1) 'hello' [1] https://accessibility.linuxfoundation.org/a11yspecs/ia2/docs/html/_general_info.html#_specialOffsets Change-Id: I489a42270a56178cc8ee0564eec3dc82e15969c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168853 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins (cherry picked from commit 0c7928dc10da2c8c5ce9910fe20cea439573f2ae) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168885
2024-06-14tdf#161573: Do not show unrelated messages during broken ZIP detectionMike Kaganski
Change-Id: Iab7f4bb492e24eb2ca6448f3540d219a18c15d79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168869 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 278008f76835a128025b2a37ba8c9a7613284b6d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168883 Reviewed-by: Justin Luth <jluth@mail.com>
2024-06-14tdf#160522 Chart > 4 columns, Only 4 colorsNoel Grandin
regression from commit 337a9a454c1bc95214111578d3f9c0622c55c509 Author: Noel Grandin <noel.grandin@collabora.co.uk> Date: Mon May 18 09:17:04 2020 +0200 use for-range on Sequence in chart2 Change-Id: I94f9460e45e5910af1de905605158f9dc1dbedfb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168868 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 013282b1421c0bba66ef54ccbfe4a649a4b97628) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168879 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Tested-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2024-06-14Flatten a bitMike Kaganski
Change-Id: If021f2edf8e4029d22118a2ed369b21a3a7215da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168836 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins (cherry picked from commit e7455c7e38e3fe4538faf9bbbe834d01815a7678) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168876 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14tdf#161346 sw: PDF export: fix crash on field in hidden text frameMichael Stahl
When creating a link rectangle for a SwGetRefField, the problem is that the cursor is positioned on 2 different nodes with 2 different text frames, neither of which is the node that contains the field; this happens because that node's text frame has a height of 0, so IsSelOvr() moves the cursor to a previous node. Check that SwCursorShell::GotoFormatField() did in fact go to the field. (regression from commit 9ba8d68c2b2fd06340bbdcb61dc3d57f6e3eb974) Change-Id: Ib74533f46dce8fb05224fddfff12e49577346b35 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168860 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins (cherry picked from commit a9bc3ea1bef2a6b622a729dfa18eb3851ce7101e) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168872 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14tdf#156717 Fix "LibreOffice Community" in PDF metadataHossein
These settings are available to set the brand when building LibreOffice: 1) Community flavor: yes / no This is set via --disable-community-flavor, that defines HAVE_FEATURE_COMMUNITY_FLAVOR, which is used in cui/source/dialogs/about.cxx. 2) Product name: A string (set via --with-product-name='name') This defines PRODUCTNAME, which is used in many places in the code. Not every LibreOffice build is a "LibreOffice Community" flavor. This patch fixes this issue by using community brand only when variable HAVE_FEATURE_COMMUNITY_FLAVOR is set. Change-Id: Ib74450f380fed7c24222f88e389ddb5363bda3c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168676 Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com> Tested-by: Jenkins (cherry picked from commit 0e2409e5e3c73ec25c61aa4ea140d114869ea512) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168804 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14when SAL_CUPS_PPD_RETAIN_TMP is set output what the ppd file was saved asCaolán McNamara
Change-Id: Ib17ec39a5b2691190c5eb1291d1977e1b83eba15 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168799 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14crashtesting: out of bounds on reexport of forum-mso-en4-290152.pptx to pptxCaolán McNamara
probably since: commit 805fd61f8efaaac119bbe28ab51617c07f0d7058 Date: Thu Jun 6 19:47:45 2024 +0200 tdf#160591 PPTX export: fix colormap mapping in slide master Change-Id: I154f0ff1769fbda361ec62f1dd589ca0d7686bd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168506 Change-Id: I3ec45b2a0b78324e8512acbcc3a7544c196f670d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168805 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14tdf#161563 tdf#161565 sw: add No Break to word context menu & visualizeLászló Németh
Add No Break option to context menu of words hyphenated automatically, giving as easy access to fix paragraph layout, as context menu of misspelled words – like DTP software do. Also add this option to context menu of words with enabled "No Break" to disable it. To avoid unwanted paragraph layout during further text editing or formatting, visualize words excluded from hyphenation with a light gray dotted underline, when Formatting Marks is enabled. Follow-up to commit b5e275f47a54bd7fee39dad516a433fde5be872d "tdf#106733 sw: implement CharNoHyphenation" and commit 73bd04a71e741788a2f2f3b26cc46ddb6a361372 "tdf#106733 xmloff: keep fo:hyphenate in character formatting". Change-Id: I81bb410abcf999c8d9a3dca28acfc5c21aa0f260 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168827 Tested-by: Jenkins Reviewed-by: László Németh <nemeth@numbertext.org> (cherry picked from commit 2f0c7d5691acd4010443856788a54b0abc03098b) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168806 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14Make isProductVersionUpgraded update ooSetupLastVersion againMike Kaganski
This was changed in commit dd889b290304b73f96a9a8e6e0f144d3aa2ba7e1 (Resolves tdf#159573 and tdf#137931 - WhatsNew or Welcome dialog, 2024-03-27). This change doesn't require opening a module (and checking if WhatsNew dialog is needed) to update the configuration - it will be updated immediately in runGraphicsRenderTests. Change-Id: I595b6898c46998e7a0805ffbf7a710dbf0d2a5e4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168855 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Jenkins (cherry picked from commit 00ed1c5c02c20b98dc70ef9e01c9280d9d6b5193) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168874 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2024-06-14tdf#158658 sw: text formatting: make TabOverMargin even more crazyMichael Stahl
... to better match Word's formatting. The bugdoc has a special case where a right-aligned tab is positioned at the right margin exactly, which causes the bFull condition in SwTabPortion::PreFormat() to be true. An obvious change to replace rInf.Width() - rInf.X() with rInf.GetLineWidth() in the condition makes no difference because m_pLastTab was already reset previously; instead, pass in the last tab from Format(), which indicates that the right edge position of the previous text portion was found via that tab. Additionally, change the condition that checks for TabOverMargin to also allow equal positions, i.e., exactly at the end of the paragraph. Change-Id: I5d3b1c13eca0bffa640745d7c5f4113699f79cad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168823 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 69d873e1c46f3cc8c524e18ac5a307a8d32ddd0f) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168871
2024-06-14tdf#158658 sw: text formatting: try to make TabOverMargin more crazyMichael Stahl
... to better match Word's formatting; this commit is not based on a complete diagnosis of Word's compatibility-mode tab-in-margin formatting disorders. 1. in SwTabPortion::PreFormat() allow a left aligned tab beyond the width of the paragraph, like already done for TabOverSpacing 2. in SwTextFormatInfo::GetLineWidth() add some extra width to the paragraph so text can be hidden in the right margin. (it's very unclear what Word does here exactly, in one case it puts 339 additional "a" characters in the margin but then the 340th "a" goes onto a new line...) 3. in SwTextFormatter::NewTabPortion() allow manual tab stops to be positioned beyond the width of the paragraph, like already done for TabOverSpacing testTdf118672, testTdf120287b, testTdf120287c fail but the files, converted to RTF, render in Word 2013 basically the same as in Writer with this change. Change-Id: I5f74ced09c704bfd9967df61351c8bac6540e714 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168819 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit 10d753b8aadb50ec4309551b97d4cf2163ea3e3d) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168870
2024-06-14tdf#144208 speedup doc with lots of redline (10)Noel Grandin
don't call SwRDFHelper::getStatements for every single paragraph, we can call this once and re-use the result Change-Id: I0277ecbb113b8333839172bddd7978f4b3a7259a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168850 Tested-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit 0e33dff4252f3124c7ecc591befa56f0fb0e1895) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168809 Tested-by: Jenkins
2024-06-14sw: fix SwTextFrameInfo::GetSpaces() for line containing only spacesMichael Stahl
This would assert: frminf.cxx:139: void AddRange(): Assertion `rRanges.empty() || rRanges.back().second <= nPos' failed. Change-Id: Ib41f4c6c971fee9307140c108e74d5df7d94c973 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168824 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> (cherry picked from commit f97008c50ff88a7cf0a80a583a743ee1fb041327) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168807