Commit Graph
1246 Commits
Author SHA1 Message Date
Neil Roberts 54ba86b578 scripting: Replace XAggregation of XBrowseNode with helper function
The browse node factory had a wrapper using XAggregation that wraps
every XBrowseNode. As far as I can tell this was used to replace the
implementation of getChildNodes with one that checks for exceptions from
the underlying provider and then sorts all of the resulting nodes by
name. The trouble with this is that it prevents the script providers
from detecting when a node is one from the same script provider and thus
makes it difficult to implement the XCopyableBrowseNode interface. The
documentation for XAggregation mentions this problem and also states
that the interface is deprecated.

To avoid this overhead, this patch replaces the aggregation with a
helper function in comphelper that should be used to retrieve children
from a browse node. That takes care of catching exceptions and sorting
the results.

Change-Id: I319888fee1b84ddcef397317d2cf7e72bd2867cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208160
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-07-23 15:18:22 +02:00
Michael Weghorn 652597d649 comphelper a11y: Drop KeyBindings typedef
It's only used once, in the very next line.

Change-Id: Iffbfae03378bf439cdc64d289f4346c8096669c1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208269
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-07-20 14:40:21 +02:00
Neil Roberts 2365c64aa3 comphelper: Add helpers for accessing duck-typed methods of XBrowseNode
Implementations of XBrowseNode have a bunch of extra methods which are
accessed by using XPropertySet::getPropertyValue to determine if the
action is possible and then XInvocation::invoke to invoke it. This patch
adds wrappers around checking and invoking these methods. The idea is to
abstract away the actual implementation so that the approach can be
changed in a later patch.

Change-Id: I117ab848391dbb1277f9331d6a93f71c2cb556ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207343
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-07-15 09:05:13 +02:00
ApurvR20 3ee90bca13 tdf#143148: Use pragma once instead of include guards
Change-Id: If630c4e4c66cebb05751bd857ec948fc6f2a5a6c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208035
Reviewed-by: Roman Kuznetsov <antilibreoffice@gmail.com>
Tested-by: Jenkins
2026-07-14 13:34:07 +02:00
Caolán McNamara 95045fb7d5 put links in form imagecontrols under link management
Change-Id: I265f889bcfdcf1b214cde02e9e5799081ec6aa42
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2396
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 01a314d398a497e01d0b9e4b575f3b7c842b8622)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206343
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-14 13:26:15 +02:00
Yoon6 d43fe70f9f tdf#143148 toolkit: use #pragma once in diagnose_ex.hxx
Change-Id: I721ef55002adf6af4db29e082b56d2eed81080a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204668
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-07-07 10:04:11 +02:00
Xisco Fauli 4e3d9ac310 cid#1695388: Inefficient vector resizing with reserve.
Ignore warning in GCC13

Change-Id: Idb881372a0a705c4c77dc66438b4a9874603564b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207370
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-06-29 20:14:42 +02:00
Noel Grandin eb3cee606e template static field appearing in two different CUs
I saw some warnings and got suspicious, so I converted
the OSL_ENSURE to assert, and then found that we
have two copies of the s_nRefCount static field, which
obviously causes trouble.

I tried to fix this by removing usage of this dubious
template class, but the templates classes are intertwined,
and that lead to a very large patch with weird failures.

So this is a hacky minimal fix, using explicit template
instantiation to force the code to only be emitted
in a single library.

Change-Id: I634afb8b40570f2e7e0f8da541b8a2b6325fdc29
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/904
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit af69817a343ccf1411f6f8980c94ed1f696769b4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207023
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-06-20 14:20:53 +02:00
Xisco Fauli 6f81bce807 loplugin:unusedmethods
Change-Id: I57a535f72e639a9b708c5c7dc1790e354d2d477e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205943
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-04 10:00:29 +02:00
Mike Kaganski bce4bc55f9 Move ToolboxController to use OPropertyContainerImplHelper
Quite a large inheritance chain, which all needed replace dispose
with disposing, and make sure the locking is correct.

Introduce comphelper::unique_unlock, RAII class for scoped release
of std::unique_lock, to help ensure the invariant established in
commit 4fc1ab0ca8d9bb0f0b8344d0537882aab1d6d2c0 (add assert to keep
WeakComponentImplHelperBase::disposing callees honest, 2026-04-04).

Change-Id: I72c98c25c01b8042428ef2376c6aba3c6b15ec87
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/248
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 8ed30e4a243a3efdfe380852d20910bc4a02e181)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205688
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-26 00:41:07 +02:00
Mike Kaganski 79ec708230 Fix --enable-werror gcc build on Linux
... after changes that introduced and used OPropertyContainerHelper.

In file included from /home/mk/core/include/comphelper/propcontainerimplhelper.hxx:18,
                 from /home/mk/core/sc/inc/chartuno.hxx:34,
                 from /home/mk/core/sc/source/ui/unoobj/cellsuno.cxx:83:
/home/mk/core/include/comphelper/propcontainerimplhelper.hxx: In instantiation of ‘class comphelper::OPropertyContainerImplHelper<comphelper::WeakComponentImplHelper<com::sun::star::table::XTableChart, com::sun::star::document::XEmbeddedObjectSupplier, com::sun::star::container::XNamed, com::sun::star::lang::XServiceInfo>, ScChartObj>’:
/home/mk/core/sc/inc/chartuno.hxx:98:14:   required from here
   98 |       public SfxListener
      |              ^~~~~~~~~~~
/home/mk/core/include/comphelper/propimplhelper.hxx:499:1: error: ‘com::sun::star::uno::Any comphelper::OPropertyImplHelper<BaseClass, Ifc>::getFastPropertyValue(sal_Int32) [with BaseClass = comphelper::WeakComponentImplHelper<com::sun::star::table::XTableChart, com::sun::star::document::XEmbeddedObjectSupplier, com::sun::star::container::XNamed, com::sun::star::lang::XServiceInfo>; Ifc = {}; sal_Int32 = int]’ was hidden [-Werror=overloaded-virtual=]
  499 | OPropertyImplHelper<BaseClass, Ifc...>::getFastPropertyValue(sal_Int32 nHandle)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mk/core/include/comphelper/propcontainerimplhelper.hxx:66:10: note:   by ‘void comphelper::OPropertyContainerImplHelper<BaseClass, Derived, Ifc>::getFastPropertyValue(std::unique_lock<std::mutex>&, com::sun::star::uno::Any&, sal_Int32) const [with BaseClass = comphelper::WeakComponentImplHelper<com::sun::star::table::XTableChart, com::sun::star::document::XEmbeddedObjectSupplier, com::sun::star::container::XNamed, com::sun::star::lang::XServiceInfo>; Derived = ScChartObj; Ifc = {}; sal_Int32 = int]’
   66 |     void getFastPropertyValue(std::unique_lock<std::mutex>&, css::uno::Any& rValue,
      |          ^~~~~~~~~~~~~~~~~~~~

and

/home/mk/core/chart2/source/tools/CachedDataSequence.cxx: In copy constructor ‘chart::CachedDataSequence::CachedDataSequence(const chart::CachedDataSequence&)’:
/home/mk/core/chart2/source/tools/CachedDataSequence.cxx:70:51: error: expected class-name before ‘(’ token
   70 |         : comphelper::OPropertyContainerImplHelper(),
      |                                                   ^
/home/mk/core/chart2/source/tools/CachedDataSequence.cxx:69:1: error: base class ‘class comphelper::OPropertyContainerImplHelper<comphelper::WeakComponentImplHelper<com::sun::star::chart2::data::XDataSequence, com::sun::star::chart2::data::XNumericalDataSequence, com::sun::star::chart2::data::XTextualDataSequence, com::sun::star::util::XCloneable, com::sun::star::util::XModifyBroadcaster, com::sun::star::lang::XInitialization, com::sun::star::lang::XServiceInfo>, chart::CachedDataSequence>’ should be explicitly initialized in the copy constructor [-Werror=extra]
   69 | CachedDataSequence::CachedDataSequence( const CachedDataSequence & rSource )
      | ^~~~~~~~~~~~~~~~~~

and similar.

Change-Id: I913e139744a452ea992d9f574997353a760f4722
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/642
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 3917b082b9f4530d305cd947ab47658f6883c4f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205669
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-25 14:34:21 +02:00
Mike Kaganski 350c6c5333 Drop OPropertyContainer2
Unused since I4e54547df46feed01613ebe0766c53be3c06de17 (Move EventListener
to use OPropertyContainerImplHelper).

Change-Id: Iad4efd1df433c77f4a5df20caa7a7b35558ab7e5
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/247
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 51be9cb71c55b72b61720c38295a62b127c83290)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205668
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-25 14:34:09 +02:00
Mike Kaganski 31fecb70d0 Introduce OPropertyContainerImplHelper as replacement for OPropertyContainer2
Combines OPropertyImplHelper with OPropertyContainerHelper and
OPropertyArrayUsageHelper. Derived classes only need to implement
createArrayHelper() and call registerProperty().

Migrate CachedDataSequence to use it.

Change-Id: I7c9077f412303ab3ba4d2541c2b6673813193d5a
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/235
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 480f2837def56b24b0c3b50dcd559dc785b59631)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205658
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-25 14:32:47 +02:00
Mike Kaganski 38ad50ebf4 Move OXSDDataType to use OPropertyImplHelper
Simplifies the implementation, removing boilerplate.

Change-Id: I56942a0b847995d680f65387b314c6eb27199198
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/241
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit dbb5e6bcd8e8edb3ed3346fb331cb6d38f1f5252)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205666
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-25 14:32:41 +02:00
Mike Kaganski 852d2107bc Introduce OPropertyImplHelper as a replacement for OPropertySetHelper
It is intended to work conveniently with cppu::ImplInheritanceHelper,
without XInterface diamond and without a need to write queryInterface/
getTypes/acquire/release boilerplate.

Migrate PathSettings as first user.

+ try to please gcc13 by calling reserve before insert

Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/234
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit e7d0265cbf6219e8b111dd0f98bf293d66bbba97)
Change-Id: I11e6f2d63dbe751fd3acca4ade34f8511775ee47
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205649
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-25 11:47:15 +02:00
Julien Nabet d57034d11f Revert "Introduce OPropertyImplHelper as a replacement for OPropertySetHelper"
This reverts commit 6116db6154.

Reason for revert: it makes Tinderbox on Master for Linux fail

Change-Id: I157dcd68c057475a5a677a87efb5d1e347207585
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205648
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-25 09:18:55 +02:00
Mike Kaganski 6116db6154 Introduce OPropertyImplHelper as a replacement for OPropertySetHelper
It is intended to work conveniently with cppu::ImplInheritanceHelper,
without XInterface diamond and without a need to write queryInterface/
getTypes/acquire/release boilerplate.

Migrate PathSettings as first user.

Change-Id: Ieee0e3bf8ec8313a19e1475375c4007977fef08f
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/234
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit e7d0265cbf6219e8b111dd0f98bf293d66bbba97)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205218
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-25 09:01:36 +02:00
Muhammad Naeem 3d029be871 tdf#143148: Replace include guards with #pragma once
Verified with: container=1 make -j4 oox.build sax.build xmloff.build \
comphelper.build sfx2.build reportdesign.build jvmfwk.build shell.build \
jvmaccess.build

Change-Id: Iafcce5855e7ab4e6b146e149eba43fcc1814a825
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204667
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-05-18 15:21:59 +02:00
Stephan Bergmann 811769f009 Consistently use __EMSCRIPTEN__ instead of EMSCRIPTEN macro
...as emsdk 5.0.3 deprecated the predefined EMSCRIPTEN macro (see
<https://github.com/emscripten-core/emscripten/commit/506052bd8b4e23ded7f2351c62ca3b24d40c8cf3>
"Warn about usage of deprecated EMSCRIPTEN macro. NFC (#26381)"), causing
failures like

> In file included from static/source/unoembindhelpers/PrimaryBindings.cxx:29:
> In file included from include/sfx2/viewsh.hxx:35:
> In file included from include/editeng/outliner.hxx:32:
> In file included from include/tools/color.hxx:26:
> include/osl/endian.h:66:15: error: macro 'EMSCRIPTEN' has been marked as deprecated: use __EMSCRIPTEN__ instead [-Werror,-Wdeprecated-pragma]
>    66 | #elif defined EMSCRIPTEN
>       |               ^
> /home/sberg/emsdk/5.0.4/emsdk/emscripten/main/cache/sysroot/include/emscripten/emscripten.h:35:66: note: macro marked 'deprecated' here
>    35 | #pragma clang deprecated(EMSCRIPTEN, "use __EMSCRIPTEN__ instead")
>       |                                                                  ^

To avoid confusion, also suppress the -D$(OS) in
solenv/gbuild/platform/unxgcc.mk that would unnecessarily keep defining
EMSCRIPTEN.

Change-Id: Ic1f187cf1c6417cd95d4092e9cea01a665bd1b2f
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/34
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 50291c2ed83bdb49bb827a4a12905d94b8c42035)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205167
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-14 10:11:38 +02:00
AsmatZahra-code 3f11b4bb09 tdf#143148 Replace include guards with pragma once in comphelper headers
Change-Id: Iabb4c5ac9dd09bac10a44dfc63c35877e48faebb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204727
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-05-09 07:00:49 +02:00
Adolfo Jayme Barrientos fc1af7dd2c tdf#171916 Rename “Safe Mode” to “Troubleshoot Mode”
Change-Id: Iee6f992f06428b2a80410590bc489277d47b020b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204820
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2026-05-06 20:49:39 +02:00
Ujjawal Kumar 1f665988d0 tdf#171481 Remove redundant markdown heuristic detection code
Introduced in changes I3b14b5a07f107de69825583f54023d2d98984288,
I2ac162e13040b0414bf0cdc5d3eb7ac997db9503 and
Iac1761e71169a322d67dcabecb7eb89ab00176c3

We can remove all these code and files because we now have
markdown under paste special.

Change-Id: I33eb547c9d8f6753565090741af44aa89b33da4a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203026
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203109
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-04-24 10:50:48 +02:00
Mike Kaganski 646e8af7a3 Don't claim XComponent for WeakImplHelper
Likely a copypasta from WeakComponentImplHelper

Change-Id: I6263487a22593c6b97844d46de2c2f15ab6d0029
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202646
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit c509bbbb99d696ff8c918c74075324ce4fa6c55a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202669
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2026-03-25 15:46:47 +01:00
Mike Kaganski f5e3ba8714 Drop WeakImplHelperBase::queryInterface
It did nothing that the inherited method wouldn't do.

Change-Id: Ifc796723149c3d6b4823795c81af69ac79254bbc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202597
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2026-03-24 18:16:47 +01:00
Rashmi 8d1a21997a tdf#143148 Use pragma once in comphelper headers
Replace include guards with #pragma once in include/comphelper header
files

Change-Id: Ie6235993906eda2290bc6ba67d56f53a72dc9900
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201675
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-03-14 20:31:40 +01:00
Ethan Garcia 4ee8477bdd tdf#143148 use pragma once in comphelper, basegfx, canvas
Change-Id: I45e21da3976cf215fe17c565633928281fdbccb0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201314
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-03-10 14:16:53 +01:00
Miklos Vajna e7ab4b7dd1 tdf#170595 sw lok, idle layout: fast render of the 2nd page, too
Open a large document, the first page (inside the visible area) shows up
fast, then the idle layout starts calculating later pages. Now scroll
down to page 2, and tiles for that second page only arrive after the
full layout finished.

What happens is that idle layout unfortunately creates high priority
tasks as a side effect of completing its work, so the COOL any input
callback will not interrupt (assuming core has high priority tasks),
even when it should, so idle layout runs to completion and only then we
start rendering tiles.

An option would be to fix the priority of these tasks, but there are a
lot of them: 'vcl SystemDependentDataBuffer', 'svx::SdrPaintView
aComeBackIdle', 'svx::svdraw::SdrPageWindow mpObjectContact',
'sw::SwView m_aTimer', then I stopped looking further. At this point it
looks better to have a higher level mechanism. So introduce a flag in
comphelper/, and using that ignore reporting high priority tasks from
core to COOL till idle layout is in progress.

Note that recursive layouts are not supported, so no need to query the
current value before the first
comphelper::LibreOfficeKit::setIdleLayouting() call. With this, my 839
pages long document shows content on e.g. pages 2 & 3 just fine, even if
the full layout is not yet complete.

Change-Id: I3b7d422dd4a6c95e6fcedbdecb8a98bca6130002
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201102
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2026-03-07 07:54:34 +01:00
Michael Weghorn 1b05f4053d a11y: Mark OAccessible::getExtendedAttributes as final
Mark OAccessible::getExtendedAttributes as final, now
that all existing implementations of
XAccessibleExtendedAttributes::getExtendedAttributes
in OAccessible subclasses have been ported to override
the new helper method introduced in

    Change-Id: Ie66f135fbf6cdc98c7cdca27fa3f5fe7db7f9a74
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Mar 5 12:12:45 2026 +0100

        a11y: Introduce helper to implement XAccessibleExtendedAttributes logic

instead. Any potential new implementations in
subclasses should be done likewise.

Change-Id: Iecff4ca731d91c9a1e15805b9a78bbb8aa037867
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201048
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-03-06 07:17:59 +01:00
Michael Weghorn 99ff2618e6 a11y: Introduce helper to implement XAccessibleExtendedAttributes logic
In OAccessible, which is used as the base class for most a11y
implementations, introduce a new virtual
OAccessible::implGetExtendedAttributes that returns a
std::unordered_map for the key/value pairs for extended attributes
and use that in OAccessible::getExtendedAttributes to build the
string mandated by the XAccessibleAttributes UNO interface.
(The order of attributes in the resulting string shouldn't
matter.)

The default implementation still results in an empty map/string
being returned. But this will allow switching subclasses to
override the new helper method in upcoming commits instead of
having to implement the string concatenation logic in each of them.

Also let OAccessible::getExtendedAttributes use
OExternalLockGuard like other UNO API methods in the class do,
which locks the SolarMutex and checks that the object hasn't been
disposed yet. (Both are reasonable when a11y UNO API methods
are called.)

If the latter results in any issues when switching subclasses
to the new logic, those are probably preexisting issues that
are surfacing then.

Change-Id: Ie66f135fbf6cdc98c7cdca27fa3f5fe7db7f9a74
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201035
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-03-06 07:14:57 +01:00
Michael Weghorn 9ec6cec8fc a11y: Let OAccessible implement XAccessibleExtendedAttributes iface
Let the OAccessible base class used by most a11y implementations
implement the XAccessibleExtendedAttributes interface and
add a default implementation for
XAccessibleExtendedAttributes::getExtendedAttributes
that simply returns an empty string.

Platform/Toolkit a11y bridges were prepared for this in
previous commit

    Change-Id: I84252f8764d3385d71b9ada24125ca96762baf9d
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Mar 4 19:30:05 2026 +0100

        a11y: Handle empty extended attributes string

This simplifies those subclasses that were already
implementing the XAccessibleExtendedAttributes interface
so far and will allow further refactoring.

Change-Id: I05f02b57f4c32be42232a52b24fe13c945090836
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200971
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-03-05 11:21:40 +01:00
Noel Grandin 4b10710e09 loplugin:passstuffbyref
Change-Id: I559d246b25c99e5cb7a28ba94e04a2acedd3e720
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200943
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2026-03-04 19:22:19 +01:00
Noel Grandin 5505d3bc4d loplugin:constparams
Change-Id: I33c701be5a441c1121b797f1eb5a8bda6fc3f89b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200927
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2026-03-04 11:29:39 +01:00
OUBOUSKEN ILYAS 47944d9f83 tdf#143148 Replace traditional include guards with #pragma once
in ChainablePropertySet.hxx and ChainablePropertySetInfo.hxx.

Change-Id: I414f8e54e87de2d4a8fbc4c1390c50f07728aec0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198893
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-02-12 07:45:56 +01:00
Miklos Vajna 6112dac3ab cool#13770 lok: add a file save dialog callback
Commit f4b9d6f024b27c4d8ddaabfe0eaa0b404137e3cf (Add horrible hack to
ask the filename when exporting PDF in CODA-W, 2025-12-02) added a
callback from core to the LOK client to trigger a file picker during PDF
export.

The problem is that in its current form, this callback is
Windows-specific so other platforms (Linux, macOS) can't provide their
implementation in a straightforward way.

Fix the problem by reworkig this, so it works similar to the anyInput
callback, which is cross-platform already.

The behavior for the case when the new callback is not registered is
meant to be unchanged.

Change-Id: I27934774889fc827772b2665799eca358dd62e55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195381
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
2025-12-11 15:49:35 +01:00
Rene Lopez Araiza 31ea0befee tdf#143138: Use #pragma once in comphelper headers.
Change-Id: I0476a8da1125dfe9fc56c411ff7acb9c72f3722a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194492
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2025-12-08 20:46:35 +01:00
Mike Kaganski fa0efd2899 Drop comphelper::newArray_null, and use new (std::nothrow) directly
That is clearer, and even shorter.

Change-Id: I293e588e91be0265a9898038318f3b0a99bc3767
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194738
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-11-28 06:46:41 +01:00
Caolán McNamara abdba6ee5b save/restore docId in Application::Reschedule
similar to what we do for viewID.

On attemting to load multiple documents StatusIndicator::start calls
Application::Reschedule during load of document #1.

That inner loop ends up loading document #2. The inner loop ends, and
load of document #1 completes in the outer loop.

Unfortunately the inner loop left the current DocumentId as that of the
inner document #2, so the document id set on the view of #1 is
incorrect.

Extend the similar fix for viewId switching during Reschedule to restore
the docId. If this Reschedule happens at any other time except load then
restoring the viewId is sufficient to identify the correct document, but
in the load case there is no viewId yet

Move the mnCurrentDocId out of sfx2 and ViewShell into comphelper so
it's available from vcl without needing to make any adjustments to
LibreOfficeKit.h[xx]

Change-Id: Ied70e0f9ff33f2587cfbcb02b0c9ca3cd4792cfd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193814
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2025-11-13 09:37:13 +01:00
Gabor Kelemen 93f7837306 Fix some non self contained headers in include/
for future IWYU treatment

Change-Id: I0261f2c8b2597f0144a3a2a3d6bfdff13492da01
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192752
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2025-11-08 09:37:47 +01:00
Gabor Kelemen fd2e467ba3 tdf#146619 Run IWYU in fw decl mode on include/[a-c]*
After recent commit 851fb75779
recheck these directories in include/ again
to test drive the new --headersfwd mode of bin/find-unneeded-includes

Change-Id: I0ede437c4f9958cd98210ed1760a5b98ea8bd1ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192377
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen@collabora.com>
2025-11-08 09:37:19 +01:00
Justin Luth e9f5d6ce38 tdf#148478 pptx export: only export ASCII .wav filenames
MS PowerPoint reports a corrupt presentation
if one of the ppt/media files contains non-ascii characters.

make CppunitTest_sd_export_tests-ooxml3 \
    CPPUNIT_TEST_NAME=testTdf148478_transitionMusic

Change-Id: Ide5c5d38b4517e7a933fb8d414d901b49b15faca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193435
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2025-11-06 19:47:51 +01:00
Noel Grandin ca24b32151 loplugin:unusedmethods
Change-Id: Ibf470ece46aa7150d7131ff66bc35d4769ec1125
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/192787
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-10-21 17:48:22 +02:00
Mike Kaganski 712c53c4e8 LOK Transform API: add generic UnoCommand command
There already was UnoCommand support inside SlideCommands. This change
introduces it at top level.

The syntax of the command is:

{"UnoCommand": {
    "name": ".uno:Foo",
    "arguments": {
        "Arg1": {
            "type": "long",
            "value": 0
        },
        "Arg2": {
            "type": "long",
            "value": 1
        }
    }
}}

Change-Id: I0015e937495ad1ae756c5366b555a3b0d5fb09ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191963
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2025-10-13 08:57:17 +02:00
Gabor Kelemen 851fb75779 tdf#146619 Run IWYU again on include/[a-c]*
Change-Id: I301b0d5585aa488e26ac5c3c2312043cd316671c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191910
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
Tested-by: Jenkins
2025-10-08 17:16:34 +02:00
Mike Kaganski a255b04d8d Shorten some names ending with _ASCII
Whatever that was intended to mean: if that meant that the constants
were encoded that way, these are UTF-16 already; is that meant that
they only contained characters in that range, that is unimportant.

Change-Id: I5463f1fca0d552a93d3c9d487ed9912c9e1a989e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191240
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-09-20 19:35:12 +02:00
Noel Grandin d62a29c705 simplify EmbeddedObjectContainer::CreateEmbeddedObject
dont need the variant that passes extra params, we already take that param

but convert that extra parameter from a pointer to a std::optional,
because some of the call sites pass a temporary OUString, and taking
the address of a temporary is a no-no.

Change-Id: I4d55f01a14230f5c64a052a143666a08bfcbf704
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191021
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-09-16 15:01:59 +02:00
Noel Grandin 02db8e7392 pretty up EmbeddedObjectContainer a little
Change-Id: I69f29310da41ccc7ae619529fd503bd5ce55d6bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190886
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-09-12 20:58:10 +02:00
Michael Weghorn 670c0e5987 comphelper a11y: Use #pragma once
Change-Id: I4ada6a08d3b7b5a73266db462d40c3be332705a6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189630
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2025-08-15 06:48:01 +02:00
Ujjawal Kumar 8c49b50c20 tdf#162153 Introduce a new dialog for pasting plain text as Markdown
This commit adds a drop-down dialog that appears when the user pastes
plain text containing Markdown-formatted content, prompting the user
to choose between text and markdown.

Change-Id: I3b14b5a07f107de69825583f54023d2d98984288
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188067
Reviewed-by: Thorsten Behrens <thorsten.behrens@collabora.com>
Tested-by: Jenkins
2025-08-10 13:27:01 +02:00
Caolán McNamara d752e23e41 drop coverity workarounds that no longer seem needed
since version 2024

Change-Id: I81b3c04087f0f9db181311cbfdd95a04b229b1be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189276
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Tested-by: Jenkins
2025-08-10 11:51:43 +02:00
Mike Kaganski 0e78f8aef1 Simplify empty default value definition as {}
It is cleaner IMO. Also use 'x' prefix instead of 'r' for UNO reference.

Change-Id: If04b12c2381281311aef9a4bd9335459b2d80065
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187608
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2025-07-10 11:18:25 +02:00