Commit Graph
504368 Commits
Author SHA1 Message Date
Jean-Pierre Ledure 2953ff4682 ScriptForge (SF_Calc) formatting, case-sensitive arguments
Next methods:
   AlignRange() =>        TMBLCR
   BorderRange() =>       LTRBUDHV
   DecorateFont() =>      BUSI
receive a string argument describing
what they have to do.

Those arguments become case-sensitive: only
upper-case characters are considered.

Now:
   calc.DecorateFont(range, decoration := "BI")
may be written as:
   calc.DecorateFont(range, _
        decoration := "Bold+Italic")
which improves the readability of user's scripts.

The functionality is available both in
Basic and Python scripts.

To be considered in the 25.8 documentation.

Change-Id: If241f7aef2e8cbfa5b7dd240e26489790a8cca13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182232
Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
Tested-by: Jenkins
2025-02-26 16:37:09 +01:00
Xisco Fauli 26773186b5 tdf#164299: sd: Add UItest
Change-Id: I40689d1f59fa8ef9959cf18f78bf38739d820ccd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182231
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-02-26 16:06:02 +01:00
Miklos Vajna 1bec1608a5 tdf#165132 DOCX import: fix unexpected rotation on entirely vertical line
Open the bugdoc, it should have a fake left paragraph border (a vertical
line), it shows up as horizontal.

This went wrong in commit 6c09c85ec3
(tdf#161779 DOCX import, drawingML: fix handling of translation for
lines, 2024-06-26) where it tried to model the ODF import, but there the
PolyPolygon and Transformation properties are set separately (in this
order) on the line shape, while oox/ code sets it via
SvxShape::setPropertyValues() and that leads to a wrong result.

Fix the problem by switching to set the two properties one by one (and
not in one go) at least for vertical line shapes, which leads to the
correct result.

Note that this is a minimal regression fix, a better (but more risky)
fix would be to improve SvxShape so setting all properties in one go
would lead to the same result. Tests which were failing while working on
this change:
- CppunitTest_oox_drawingml's testToplevelLineHorOffsetDOCX: manual
  testing shows this is still OK.
- CppunitTest_sw_ooxmlexport3's testArrowPosition and
  CppunitTest_svx_unit's testPageViewDrawLayerClip: restrict this to
  entirely vertical lines for now.

Change-Id: Ia0e113d476d785d9320a142bdb449843f61d5dfe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182207
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2025-02-26 15:56:45 +01:00
Armin Le Grand (Collabora) 35c2320dcc tdf#160252 ITEM fix ScCondFormatDlgItem usage (againII)
Change-Id: Iac66fed14c6084d80c0b49badbaa1f8c6109f248
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182218
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
2025-02-26 15:40:40 +01:00
Xisco Fauli 7dddb827c9 tdf#164949: sw_uiwriter9: Add unittest
Change-Id: Ic3132d100307a8aec5789d18b3e3403faf666898
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182219
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-26 14:13:33 +01:00
Xisco Fauli 2d8f6291a6 tdf#122756: sw_uiwriter9: Add unittest
Change-Id: I763f9efc0497431cbc1150b8dbf1c8ba6bed5012
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182220
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-26 14:00:55 +01:00
Noel Grandin b9d7ab8dde IdenticalNameAction is unused
insert() is always called with the same value

Change-Id: I319864f112097ce7ba3c01687cf0598789005bdb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182205
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-02-26 13:18:27 +01:00
Andreas Heinisch 547c67de9f tdf#133146 - Enable delete shortcut to remove items
Change-Id: I8d0f223f27a3de299f917467064629c205e79c57
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181779
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2025-02-26 12:00:40 +01:00
Miklos Vajna 025a1e4612 cool#11226 sw per-view redline on: add new flag in SwViewOption
And set it in SwEditShell::SetRedlineFlags(). Existing usage of
RedlineFlags::On is not yet changed to work with
SwViewOption::IsRedlineRecordingOn() instead.

Change-Id: Ic7c549ef765ebb3667e3ca969fe0e02eb9f5d2b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182209
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2025-02-26 11:53:10 +01:00
Mike Kaganski 24eb7e8e01 tdf#164487: "Show underline" compatibility option OOXML import/export
Change-Id: I8db0b3da1cdadbf4a5c279231abc96699a8761f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182189
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-02-26 10:46:34 +01:00
Mike Kaganski a877c6ce97 tdf#164487: Introduce "Show underline" MS Word compatibility option
It corresponds to ulTrailSpace element in OOXML. This commit creates
the option in officecfg, UI, ODF, and implements its initial support
in layout.

Unresolved problems (pre-existing, not created here):

1. Short lines show underline unconditionally.  In the unit test doc,
line 2 is such.  In SwTextGuess::Guess, there is the "first check if
everything fits to line" shortcut, that skips SwHolePortion creation,
that causes the problem.

2. The first character of the trailing whitespace is underlined.  It
is caused by AdjustCutPos only stepping back until there is a single
character left. But to fix that,  we need to handle the "zero-length
portion plus some extra" case.

Change-Id: Icc84fcff3ae62ced198522a80b8ce6b0e12e3a3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182188
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-02-26 10:46:25 +01:00
Noel Grandin 95b497ae82 simplify the SearchMode enums
there only needs to be one enum, not two

Change-Id: Idb8c0c37737505cf6c28f26c0024c3c21a19fbb9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182202
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-02-26 10:19:26 +01:00
Noel Grandin 185df5e6b3 speed up display of XLSX with lots of conditional formatting
The biggest win here is the call to ShrinkToUsedDataArea, because
otherwise, we end up iterating over 16384 columns, most of which are
empty

Change-Id: I92f90b82b66b3a3997890cb22432482e10f7f960
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182178
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-02-26 10:01:28 +01:00
Noel Grandin c7b70df642 simplify VirtualDevice::InnerImplSetOutputSizePixel
the pBuffer param is unused

Change-Id: I4185d7b573734afc1a3e3903f8f30811b2d00750
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182200
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-26 09:55:48 +01:00
Noel Grandin 84cd2e5a71 loplugin:simplifyconstruct improve warning message
which was needlessly cryptic

Change-Id: Ifb91631705accff3f49ec3f55b67e83532d70a12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182199
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-02-26 09:03:48 +01:00
Michael Weghorn e20cc47c0e thumbnailview a11y: Drop ThumbnailViewItemAcc::mbIsTransientChildrenDisabled
See also

    commit 91ee00bcc1
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 18:44:24 2025 +0100

        valueset a11y: Drop ValueItemAcc::mbIsTransientChildrenDisabled

which did the same for ValueItemAcc.

Change-Id: Iac03d27aa67bc3379c51827131e92570fa1a11a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182197
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:10:25 +01:00
Michael Weghorn 5003e1d57d thumbnailview a11y: Drop always false param
See also

    commit d144891269
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 18:33:56 2025 +0100

        valueset a11y: Drop always false ValueSetItem::GetAccessible param

which basically did the same for ValueSetItem.

Change-Id: Ibb2b2d23926e618c3380a4b7aff0115fdea41a1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-26 08:10:18 +01:00
Michael Weghorn bb5f3c008b thumbnailview a11y: Simplify ThumbnailViewItemAcc::getAccessibleIndexInParent
This is basically the same as

    commit 921609b4b0
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 18:07:43 2025 +0100

        valueset a11y: Simplify ValueItemAcc::getAccessibleIndexInParent

, but now for ThumbnailViewItemAcc. See the above commit for more
details.

Change-Id: I73cc73e195187fe74dac89e33cf8f23aa1ea8b22
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182185
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-26 08:10:11 +01:00
Michael Weghorn cb1615948b thumbnailview a11y: Rename ThumbnailViewItemAcc::mpParent
Same motivation as in

    commit 8f0b672a1a
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 15:04:32 2025 +0100

        valueset a11y: Rename ValueSetAcc::mpParent to mpValueSet

The object referred to by ThumbnailViewItemAcc::mpParent
is the ThumbnailViewItem for which this is the accessible
object, not any parent widget/accessible, so rename
to avoid confusion.

Also rename ThumbnailViewItemAcc::ParentDestroyed
accordingly.

Change-Id: I186b59a23ab6b9b18a713bdd6929594edda3a404
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182184
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:10:06 +01:00
Michael Weghorn a67a353b03 thumbnailview a11y: Rename ThumbnailViewAcc::mpParent
Same motivation as in

    commit 8f0b672a1a
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 15:04:32 2025 +0100

        valueset a11y: Rename ValueSetAcc::mpParent to mpValueSet

The object referred to by ThumbnailViewAcc::mpParent
is the ThumbnailView for which this is the accessible
object, not any parent widget/accessible, so rename
to avoid confusion.

Change-Id: If188f8bce7e47223ac89c03e5300b89fd38e302c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182183
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:09:58 +01:00
Michael Weghorn 0b92534cd7 thumbnailview a11y: Drop misleading comment
ThumbnailViewItemAcc::getLocationOnScreen is supposed
to return the position of the object itself (not its parent)
in screen/global coordinates, so the

    // get position of the accessible parent in screen coordinates

comment is rather misleading.

Change-Id: Iaf371b7b7644b2f08831588baa7f306b285fb46e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182182
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-26 08:09:52 +01:00
Michael Weghorn b3c460980c valueset a11y: Dispose ValueItemAcc objects
So far, the ValueItemAcc objects created by
ValueSet were never disposed.

While this is a preexisting issue, this started triggering
crashes with the qt6 VCL plugin after

    Change-Id: If448008b3a6dc7b22a06b6ed551b08a40b2d5de3
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Feb 25 12:14:24 2025 +0100

        valueset a11y: Use OAccessibleComponentHelper for ValueItemAcc

as described in its commit message.

Fix this by disposing the objects in ValueSet::ImplDeleteItems,
and not just sending an AccessibleEventId::CHILD event.

Adjust the logic to be independent of whether the item is visible,
but instead do this for all items that have an associated ValueItemAcc.
Add a new `bCreate` param to ValueSetItem::GetAccessible and pass
false here to avoid creating new ones.

In the ValueSet dtor, call `ImplDeleteItems` before invalidating
the accessible object, as it may still be needed in `ImplDeleteItems`
to send the events.

This fixes the crash on exit for the scenario described in the
above-mentioned commit.

Backtrace of such a crash/assert:

    soffice.bin: /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:142: bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &): Assertion `rClients.end() != rPos && "AccessibleEventNotifier::implLookupClient: invalid client id " "(did you register your client?)!"' failed.
    [New Thread 9546.9547]
    [New Thread 9546.9548]
    [New Thread 9546.9549]
    [New Thread 9546.9557]

    Thread 1 received signal SIGABRT, Aborted.
    __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    warning: 44     ./nptl/pthread_kill.c: No such file or directory
    (rr) bt
    #0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
    #1  0x00007ff8c289de2f in __pthread_kill_internal (threadid=<optimized out>, signo=6) at ./nptl/pthread_kill.c:78
    #2  0x00007ff8c2849d02 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
    #3  0x00007ff8c28324f0 in __GI_abort () at ./stdlib/abort.c:79
    #4  0x00007ff8c2832418 in __assert_fail_base
        (fmt=0x7ff8c29b6ca0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7ff8c0f27cc6 "rClients.end() != rPos && \"AccessibleEventNotifier::implLookupClient: invalid client id \" \"(did you register your client?)!\"", file=file@entry=0x7ff8c0f360b9 "/home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx", line=line@entry=142, function=function@entry=0x7ff8c0efd262 "bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &)") at ./assert/assert.c:96
    #5  0x00007ff8c2842612 in __assert_fail
        (assertion=0x7ff8c0f27cc6 "rClients.end() != rPos && \"AccessibleEventNotifier::implLookupClient: invalid client id \" \"(did you register your client?)!\"", file=0x7ff8c0f360b9 "/home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx", line=142, function=0x7ff8c0efd262 "bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &)") at ./assert/assert.c:105
    #6  0x00007ff8c10eb4c8 in (anonymous namespace)::implLookupClient (nClient=24, rPos=...) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:140
    #7  0x00007ff8c10eb938 in comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing (_nClient=24, _rxEventSource=uno::Reference to (ValueItemAcc *) 0x558da6f7a220)
        at /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:185
    #8  0x00007ff8c10e751d in comphelper::OCommonAccessibleComponent::disposing (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/comphelper/source/misc/accessiblecomponenthelper.cxx:61
    #9  0x00007ff8c0b3cee0 in cppu::WeakComponentImplHelperBase::dispose (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:104
    #10 0x00007ff8bb84a0c5 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::dispose (this=0x558da6f7a220)
        at include/cppuhelper/compbase.hxx:90
    #11 0x00007ff8c0b3cc07 in cppu::WeakComponentImplHelperBase::release (this=0x558da6f7a220) at /home/michi/development/git/libreoffice/cppuhelper/source/implbase.cxx:79
    #12 0x00007ff8bb84d6c5 in cppu::PartialWeakComponentImplHelper<com::sun::star::accessibility::XAccessibleContext2, com::sun::star::accessibility::XAccessibleEventBroadcaster>::release (this=0x558da6f7a220)
        at include/cppuhelper/compbase.hxx:86
    #13 0x00007ff8bb8e0b95 in cppu::ImplInheritanceHelper<comphelper::OCommonAccessibleComponent, com::sun::star::accessibility::XAccessibleComponent>::release (this=0x558da6f7a220) at include/cppuhelper/implbase.hxx:171
    #14 0x00007ff8bb97d595 in cppu::ImplInheritanceHelper<comphelper::OAccessibleComponentHelper, com::sun::star::accessibility::XAccessible>::release (this=0x558da6f7a220) at include/cppuhelper/implbase.hxx:171
    #15 0x00007ff8af309baa in com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible>::~Reference (this=0x558da6f7a428) at include/com/sun/star/uno/Reference.hxx:114
    #16 0x00007ff8af321bad in QtAccessibleWidget::~QtAccessibleWidget (this=0x558da6f7a3e0) at vcl/inc/qt6/../qt5/QtAccessibleWidget.hxx:39
    #17 0x00007ff8af321c49 in QtAccessibleWidget::~QtAccessibleWidget (this=0x558da6f7a3e0) at vcl/inc/qt6/../qt5/QtAccessibleWidget.hxx:39
    #18 0x00007ff8ad8faf48 in QAccessibleCache::deleteInterface (this=0x558d9fbd0ac0, id=2147483692, obj=0x558da6eecdb0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:173
    #19 0x00007ff8ad8fad78 in QAccessibleCache::~QAccessibleCache (this=0x558d9fbd0ac0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:31
    #20 0x00007ff8ad8faf8d in QAccessibleCache::~QAccessibleCache (this=0x558d9fbd0ac0) at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:29
    #21 0x00007ff8ad8fb027 in cleanupAccessibleCache () at /home/michi/development/git/qt5/qtbase/src/gui/accessible/qaccessiblecache.cpp:24
    #22 0x00007ff8ae44a792 in qt_call_post_routines () at /home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:343
    #23 0x00007ff8ac3ddee4 in QApplication::~QApplication (this=0x558d9e8c76c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:667
    #24 0x00007ff8ac3de29d in QApplication::~QApplication (this=0x558d9e8c76c0) at /home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:663
    #25 0x00007ff8af3d63b8 in std::default_delete<QApplication>::operator() (this=0x558d9e955870, __ptr=0x558d9e8c76c0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:93
    #26 0x00007ff8af3d7da8 in std::__uniq_ptr_impl<QApplication, std::default_delete<QApplication> >::reset (this=0x558d9e955870, __p=0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:205
    #27 0x00007ff8af3cfcbd in std::unique_ptr<QApplication, std::default_delete<QApplication> >::reset (this=0x558d9e955870, __p=0x0) at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/unique_ptr.h:504
    #28 0x00007ff8af3c7b34 in QtInstance::~QtInstance (this=0x558d9e9556e0) at vcl/qt6/../qt5/QtInstance.cxx:323
    #29 0x00007ff8af3c7c29 in QtInstance::~QtInstance (this=0x558d9e9556e0) at vcl/qt6/../qt5/QtInstance.cxx:320
    #30 0x00007ff8b9bb1c54 in DestroySalInstance (pInst=0x558d9e9556f0) at /home/michi/development/git/libreoffice/vcl/source/app/salplug.cxx:361
    #31 0x00007ff8b9ca1509 in DeInitVCL () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:629
    #32 0x00007ff8b9c9fa4f in ImplSVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:241
    #33 0x00007ff8b9ca15e9 in SVMain () at /home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
    #34 0x00007ff8c2b9f4ba in soffice_main () at /home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
    #35 0x0000558d9330ba6d in sal_main () at /home/michi/development/git/libreoffice/desktop/source/app/main.c:51
    #36 0x0000558d9330ba47 in main (argc=2, argv=0x7ffd2669fb48) at /home/michi/development/git/libreoffice/desktop/source/app/main.c:49

Change-Id: Ifa7e18393edcc1889bcb390fa453c611d9345bdc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182174
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-02-26 08:09:46 +01:00
Michael Weghorn e7dc7ebc9e valueset a11y: Use OAccessibleComponentHelper for ValueItemAcc
Similar to how

Change-Id: I59643f970a54a585c9ec1f8a5ca915014f1e2991
Author: Michael Weghorn <m.weghorn@posteo.de>
Date:   Tue Feb 25 11:51:40 2025 +0100

    valueset a11y: Use OAccessibleComponentHelper for ValueSetAcc

did for ValueSetAcc, also derive
from OAccessibleComponentHelper for ValueItemAcc
to make use of the logic already implemented there
instead of having to implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.

ValueItemAcc::getBounds implements what is needed
to implement OAccessibleComponentHelper::implGetBounds,
so rename the method (and drop the mutex guard from that
method, as callers of that method in the base class take
care of that).

Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the OAccessibleComponentHelper base class.

No change in behavior intended or observed initially
when testing this with Accerciser and Orca and the qt6
VCL plugin for the scenario described in

    commit cfe63bf67f
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 17:17:34 2025 +0100

        valueset a11y: Fix reported position

However, when closing LO, this now triggers an assertion:

    soffice.bin: /home/michi/development/git/libreoffice/comphelper/source/misc/accessibleeventnotifier.cxx:142: bool (anonymous namespace)::implLookupClient(const AccessibleEventNotifier::TClientId, ClientMap::iterator &): Assertion `rClients.end() != rPos && "AccessibleEventNotifier::implLookupClient: invalid client id " "(did you register your client?)!"' failed.

This is due to a preexisting issue that ValuItemAcc
objects are not disposed that will be fixed separately
in upcoming commit

    Change-Id: Ifa7e18393edcc1889bcb390fa453c611d9345bdc
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Feb 25 12:33:21 2025 +0100

        valueset a11y: Dispose ValueItemAcc objects

The issue didn't trigger a crash on exit before
this commit because AccessibleEventNotifier and
the static `ClientMap gaClients` it uses weren't
used before with ValueSetAcc's custom a11y event
handling.
(Considering to get rid of the static client map
might be something to further consider in the future,
but I think that makes most sense once more classes
currently using AccessibleEventNotifier directly
have been refactored to use OAccessibleComponentHelper).

The fact that Orca currently doesn't announce the
valueset items when moving focus between them is independent
of this commit. Suggested upstream fix to make it work:
https://gitlab.gnome.org/GNOME/orca/-/merge_requests/236

Change-Id: If448008b3a6dc7b22a06b6ed551b08a40b2d5de3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182173
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:09:39 +01:00
Michael Weghorn b5d197cf4b valueset a11y: Use OAccessibleComponentHelper for ValueSetAcc
Similar to how

    commit 7107db3fe7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Fri Jan 24 18:57:58 2025 +0100

        toolkit a11y: Use OAccessibleComponentHelper for grid control

did for AccessibleGridControlBase, also derive
from OAccessibleComponentHelper for ValueSetAcc
to make use of the logic already implemented there
instead of having to implement all the XAccessibleComponent
and XAccessibleEventBroadcaster methods manually.

ValueSetAcc::getBounds implements what is needed
to implement OAccessibleComponentHelper::implGetBounds,
so rename the method (and drop the mutex guard from that
method, as callers of that method in the base class take
care of that).

Drop all of the other overrides that are no longer
needed as the implementation is now provided by
the OAccessibleComponentHelper base class.

No change in behavior intended or observed when
testing this with Accerciser and Orca and the qt6
VCL plugin for the scenario described in

    commit cfe63bf67f
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Mon Feb 24 17:17:34 2025 +0100

        valueset a11y: Fix reported position

Change-Id: I59643f970a54a585c9ec1f8a5ca915014f1e2991
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182158
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:09:34 +01:00
Michael Weghorn 2f534f9dc9 a11y: Introduce OCommonAccessibleComponent::hasAccessibleListeners
The method returns whether any accessible listeners are registered.

The main motivation is to to have an equivalent for the current
ValueSetAcc::HasAccessibleListeners implementation, in preparation
of making ValueSetAcc an OAccessibleComponentHelper subclass (to
reuse existing OAccessibleComponentHelper logic instead of having
yet another custom implementation in ValueSetAcc).

Change-Id: Id3ad3ba06a9d4daaa259e18641d8ad4492edfb63
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182157
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2025-02-26 08:09:26 +01:00
Arnaud VERSINI 9fddd34834 basic : use more OUString literals in basic comp
Change-Id: Ib67bee7e4ba85602be266bb7acc23c52251548b4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177611
Tested-by: Jenkins
Reviewed-by: Arnaud Versini <arnaud.versini@pm.me>
2025-02-26 07:58:16 +01:00
Bogdan Buzea d9c964d809 tdf#152299 - Remove unused define(s) from C/C++ files
Change-Id: I4836c66372b3d7151fed943086cb2df505d7b314
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177179
Reviewed-by: Simon Chenery <simon_chenery@yahoo.com>
Reviewed-by: David Gilbert <freedesktop@treblig.org>
Tested-by: Jenkins
2025-02-26 02:13:56 +01:00
Bogdan Buzea 1681c11cc1 tdf#152299 - Remove unused define(s) from C/C++ files
Change-Id: I1d608d8a0a02e460ce7cd9f3fb42d464e63bfb3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177136
Tested-by: Jenkins
Reviewed-by: Simon Chenery <simon_chenery@yahoo.com>
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2025-02-26 02:06:22 +01:00
Bogdan Buzea 7950d2900f tdf#152299 - Remove unused define(s) from C/C++ files
Change-Id: I3ef9e2f547ddbc39ccad230e4e6fb3b95dd49c81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177155
Reviewed-by: Simon Chenery <simon_chenery@yahoo.com>
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2025-02-26 02:03:03 +01:00
Simon Chenery 321881ca09 tdf#158237 Use C++20 contains() instead of find() and end()
Change-Id: Id295063a5f0460ab0b66ced5be29aaaeceaa8382
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182195
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2025-02-26 01:57:18 +01:00
Xisco Fauli 12c1596b0f related tdf#165433: poppler: upgrade to 25.02.0
Downloaded from https://poppler.freedesktop.org/poppler-25.02.0.tar.xz

Change-Id: I22cf1bd4dc3d27cabd8ce291d3bafd962d3f45f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182169
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-02-25 20:14:31 +01:00
Xisco Fauli 3f3ec465e1 tdf#164640: improve unittest
* Test more levels
* Can be reproduced with a blank document

After

commit 3aa4d99306
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Tue Feb 25 13:49:12 2025 +0100

    tdf#164640: sd_import_tests2: Add unittest


Change-Id: I4135a757bc85fb8a3233f613263ea6b71f41efa5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182187
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2025-02-25 20:10:52 +01:00
Balazs Varga db59ba7360 tdf#165443 fix Locked config of ForceSafeServiceImpl ignored for SKIA
"Use hardware acceleration" should always be insensitive in case
of readonly config key.

Change-Id: I42476c167bed11ae5f2c98a68334daf8083402e9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182177
Tested-by: Jenkins
Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
2025-02-25 19:43:36 +01:00
Noel Grandin d883aab37d loplugin:constantparam
Change-Id: Iba5ce1d44e52610e985e97d299571cf3387d938a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182180
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-25 19:37:56 +01:00
Noel Grandin d0a10d0a26 pPrintData param of PaintLayer method is unused
ever since
    commit 3bffef8f40
    Author: Noel Grandin <noel.grandin@collabora.co.uk>
    Date:   Mon Sep 30 14:02:59 2024 +0200
    PaintSwFrame is always called with a nullptr for pPrintData

Change-Id: I66296cf73aed6f4d078d2a894f8683a802bb0118
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182179
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-25 19:37:47 +01:00
Michael Stahl d09f3f24c3 tdf#165330 writerfilter: fix import of redline in paragraph after frame
The flag m_bIsActualParagraphFramed is reset only in
ExecuteFrameConversion() which is called at the end of the paragraph
that follows the one that is in the frame, so all redlines in that
paragraph were erroneously moved to the frame; reset it when a paragraph
ends, if the next paragraph is also in the frame it can set the flag
again.

(regression from commit e8bae67b3d)

Change-Id: I75a18d2e7b600737958e984c135ebf6201e6f979
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182181
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-02-25 18:08:53 +01:00
Xisco Fauli 3aa4d99306 tdf#164640: sd_import_tests2: Add unittest
Change-Id: Ibbfbd91ccf9eb9d27fcf80bf90cc9127a4db9813
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182166
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2025-02-25 16:15:33 +01:00
Noel Grandin d1c1b9cfe6 use more concrete UNO types in some local vars
found by a little plugin I created.

Change-Id: If89a8fa349bb823c4e8dfa5cd9732950149d06cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182162
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-25 15:36:34 +01:00
Noel Grandin 9b07819fba use more concrete UNO types in some local vars
found by a little plugin I created.

Change-Id: I5ff1f279c3510dbec2d6b208b09f3cd7f55e75b2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182161
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-02-25 15:36:26 +01:00
Noel Grandin 30306fd300 use more concrete UNO types in some local vars
found by a little plugin I created.

Change-Id: Ib048d80abed89da2ff3876c526c1fb48aded1546
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182160
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2025-02-25 15:17:41 +01:00
افشین ‌ 4332e34565 tdf#164996 Optimize Persian (Farsi) AutoCorrect list
In this patch, I have added ~100 new incorrect Persian (Farsi) words
and removed ~1000 words that were not incorrect.

The removed words were spelling variants and can not be considered
incorrect.

Change-Id: I0d9ee8e34d70e144e8ab9d920c3d9dbc4242841d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181982
Reviewed-by: Hossein   <hossein@libreoffice.org>
Tested-by: Jenkins
2025-02-25 14:58:51 +01:00
László Németh 33e54802ee tdf#164903 sw inline heading: fix DOCX layout by zeroing top margin
Skip top margin of the paragraph of the inline heading by
direct paragraph formatting to fix DOCX layout interoperability.

Regression from commit 56588663a0
"tdf#131728 sw inline heading: fix DOCX paragraph layout
interoperability".

Change-Id: I9fb485b08b4f3fd7506562e636151ccb6ee7b0a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182138
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
2025-02-25 14:19:06 +01:00
László Németh e5e7e5c6d0 tdf#164878 sw inline heading: skip non-text content, i.e. formula
Formulae with style separator lost their centered position because
of the newly introduced Inline Heading frame around the object.
Limit Inline Heading frames only for paragraphs with text content.

Regression from commit 49765a9e7b
"tdf#48459 tdf#131728 sw inline heading: new frame style: fix DOCX export".

Change-Id: Ibabc0e045045f96dbbe8cfb31f9ce319189ee72a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182127
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
2025-02-25 14:18:49 +01:00
Miklos Vajna 88e12a83ae cool#11226 sw layout xml dump: show some more view options
Not just the view of meta chars, but all the rest.

Change-Id: I6bc4d436517e56f8918a5fb8890c90df1c64a950
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182149
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2025-02-25 14:15:30 +01:00
Caolán McNamara 2638292293 GLib-GObject-CRITICAL **: invalid cast from 'GtkImage' to 'GtkLabel'
Change-Id: Ic5cc0db44cd00dab828ed17d7e4d41d59d89cf26
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182147
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-02-25 13:23:28 +01:00
Michael Stahl b3567d7e1f tdf#165322 sw: apply formatting for multiple redlines in SwRedlineItr
SwRedlineItr::Seek() assumes that redlines don't overlap, but sometimes
they do, at least a ParagraphFormat and a Delete redline can overlap
(unsure if that is a good idea) when imported from DOCX.

Change-Id: Ic13080bfe8c9910ffef44f3e48d11c7f852427ba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181961
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-02-25 12:54:22 +01:00
Mike Kaganski 8351c54ee1 SwPosSize -> SwPositiveSize
Maybe it was obvious, but I confused it for "position + size".

Change-Id: Id6b550cb4fac34d39647cc61cde0c1ffa06c03e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182146
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-02-25 12:25:22 +01:00
Michael Meeks 5554fff70e vcl: better variable naming for annotating low priority idles.
Change-Id: I80dd443a864bc63b4e0214a13efdd76474daa57f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182140
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
2025-02-25 12:24:56 +01:00
Gökay Şatır 5a3d715524 Add a test for decimal separator info.
Ensure that decimal separator of the number inside the cell is also sent to the server.

Signed-off-by: Gökay Şatır <gokaysatir@collabora.com>
Change-Id: I5864b86ae2d1c4a582a86a0f2488f7229be7bdaa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181094
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181776
Tested-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182143
Tested-by: Jenkins
2025-02-25 11:24:43 +01:00
Michael Stahl f439448d21 tdf#165322 sw: prefer insert/delete redline in mouse-over tooltip
Unfortunately SwCursorShell::GetContentAtPos() can only report 1 redline
for a given position; in case there is a format and a insert/delete
redline at the same position, the latter is more important.

This is then used in SwEditWin::RequestHelp() to display a tooltip if
the user moves the mouse cursor over a redline.

Change-Id: I32af7a154873e3fa5775a711980bb3dab3e307ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/181960
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
2025-02-25 10:52:03 +01:00