Commit Graph
25577 Commits
Author SHA1 Message Date
Michael Weghorn 6a299f8297 svtools: Port SvtLineListBox from ValueSet to weld::TreeView
Use a weld::TreeView inset of the custom ValueSet widget
for the SvtLineListBox that can be used to select a line
style.

Show the name of the line style in a column next to the
icon, which makes this more consistent with the popup used
to set a line style for Calc cells in the "Properties"
sidebar deck, section "Cell Appearance".

Using weld::TreeView also helps to be more consistent with
other platform/toolkit widgets and reduces use of custom
widget logic (implemented in the ValueSet class).

Some notes:

* ValueSet uses a 1-based ID for its items. weld::TreeView
  uses a 0-based index, so adjust places using those
  accordingly.

* Use the weld::TreeView handler for item activation
  (set with weld::TreeView::connect_item_activated) instead
  of the ValueSet selection handler (set with
  ValueSet::SetSelectHdl) and activate single-click activation
  (using the GtkTreeView::activate-on-single-click property
  in the UI file) so that a single click on an item still activates
  it but keyboard navigation using the arrow keys doesn't.

SvtLineListBox gets used e.g. in the control to pick the line style
in Writer's "Format" -> "Page Style" dialog, tab "Borders".

Adjust a UI test accordingly (use TreeView widget, use
new 0-based indices and press the Return key after selection,
to activate selected entry).

Change-Id: I54fb1d2a49774c6c64eda0ad5de7af36c3603cee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205821
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-01 08:53:16 +02:00
Michael Weghorn dd6b1237e3 uitest: Move IconViewUIObject::get_state logic to base
ID and position are not specific to IconView but
apply for the SvTreeListBox base class just the same.

Move the logic to set those properties in the UI test
to the TreeListUIObject base class, so it can be reused
for SvTreeListBox/weld::TreeView tests in an upcoming
commit.

Change-Id: Ia6f27e714cebfe6a6cdc1bf0558c50ff09e41757
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205840
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-01 08:53:09 +02:00
Adolfo Jayme Barrientos 0da125d6ad Reword generic VCL control warning strings for clarity
Update the title and text of this infobar to be more concise and
user-friendly. "You are using generic controls!" is replaced with a
more neutral statement, and the recommendation is clarified to explicitly
mention a "desktop environment integration package", which may
help users who inadvertently forgot to add a missing dependency.

Follow-up to 999e18ad24

Change-Id: I9629b55dfa833a360f4569aa944dcabd2f433cde
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205844
Tested-by: Jenkins
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2026-05-30 02:44:38 +02:00
Heiko Tietze 999e18ad24 Resolves tdf#172256 - Show a warning when using the gen VCL backend
Infobar shown for gen AND Office::UI::Infobar::Enabled::WarnGenericVCL

Change-Id: Ia4d42bb7c3ca9cc3da9b7564f7a0b6edce78ee31
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205832
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-05-29 16:08:55 +02:00
Xisco Fauli 0a231f1237 drop isLOKDesktop and LOKDeviceFormFactor
follow-up of
commit 7579bac8e9
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Fri May 29 10:46:04 2026 +0200

    drop isLOKTablet

and

commit f436c1cd89
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Fri May 29 10:07:20 2026 +0200

    drop isLOKMobilePhone

Change-Id: I59604e56af75933acaa3ba6146e9b406d7a7845e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205828
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-29 15:13:09 +02:00
Xisco Fauli 7579bac8e9 drop isLOKTablet
follow-up of
commit f436c1cd89
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Fri May 29 10:07:20 2026 +0200

    drop isLOKMobilePhone

Change-Id: I0b7774357071ea25069655dad33b2f3e2c02b835
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205827
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-29 13:38:57 +02:00
Xisco Fauli f436c1cd89 drop isLOKMobilePhone
follow-up of
commit 8b90f2cd18
Author: Heiko Tietze <tietze.heiko@gmail.com>
Date:   Thu May 28 09:05:55 2026 +0200

    Remove wordcount-mobile dialog

This commit also reverts
commit 5eec86d6c4
Author: Caolán McNamara <caolan.mcnamara@collabora.com>
Date:   Tue May 6 16:38:57 2025 +0100

    no searchicon (or searchbox) in mobile version of search dialog

Change-Id: I7dd37f5e6575f2f1b7748ce6c1bd6ddadb8c3e77
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205826
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-29 13:38:32 +02:00
Tomaž Vajngerl 4efc11357b sc: round-trip dynamic array spill state through XLSX
Make the spill state of a dynamic array survive a saveAndReload
to XLSX and make the XLSX be properly accepted by MSO. There is a
special way, with dynamic array extension to the format, which
must be written to the file.

Export:
- Emit xl/metadata.xml with an XLDAPR dynamicArrayProperties block,
  and register it in [Content_Types].xml and workbook rels.
- Mark the master cell with cm="1" and write aca="1" + ca="1" on f.
  A 1x1 collapsed master is written as a single cell reference.
- Map the SPILL cell error to "#VALUE!", since OOXML has no #SPILL!
  literal. Recalc on reload reclassifies it back to SPILL.

Import:
- Remember "cm" on the cell. A cached "#VALUE!" on an array master
  with "cm" set is treated as a SPILL hint so the blocker survives.

Extend the XLSX round-trip tests in subsequent_export_test2.

Change-Id: I9209e43f3a398e23fc7ca46daf58a88546687dba
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2865
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit eb85edc75e5100beb7802381175de914f4102a81)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205803
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-28 20:09:47 +02:00
Xisco Fauli 0159850b67 [API CHANGE] drop ComplexColorJSON
No need to use it when we can use ComplexColor

Change-Id: I921e229d2dee719b7457f046c1ed1ff0492aa3e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205810
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-28 20:07:19 +02:00
Michael Weghorn 336f70f966 weld: Move weld::Label to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ide86f35543468a88288a068cc9f89eaf381ac52f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205763
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-27 22:24:37 +02:00
Jim Raykowski f55852a2a4 Styles Spotlight: Make numbering consistent in all VCL backends
Currently styles spotlight numbers are reverse for GTK compared to the
other VCL backends. This patch makes inserting items into the style list
happen in the same order for all VCL plugins.

Change-Id: Id14b385b24bc03ca5a794d0279990d3a411fd762
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205573
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2026-05-26 19:45:22 +02:00
Neil Roberts 745c5a1fa4 string: Fix documentation for char versions of endsWith/startsWith
Some of the methods added in the commit below had the wrong name for the
character parameter in the documention.

commit ab871d3af9
Author: Neil Roberts <nroberts@libreoffice.org>
Date:   Sun Apr 26 12:00:28 2026 +0200

    [API CHANGE] rtl/string: Add startsWith/endsWith for a single character

Change-Id: I47eec8a7a6aca75f5735e3158125efc4cb44c734
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205716
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-05-26 17:40:25 +02:00
Mike Kaganski 1614a4e1ee cool#15754: Fix PPTX round-trip of empty picture placeholders
An empty picture placeholder on a slide used to export as <p:pic>
with the internal "Insert Image" icon embedded as
<a:blipFill><a:stretch/>, which PowerPoint stretched across the
whole slide. Emit it as <p:sp> with <p:ph type="pic"/> and an empty
<p:spPr/> so geometry, fill and any custGeom from the layout get
inherited.

The layout-side <p:ph type="pic"/> used to be mapped to a
presentation.OutlinerShape and re-exported as <p:ph type="body"/>,
breaking slide-side inheritance on round-trip (the slide's
<p:ph type="pic"/> couldn't find a matching pic placeholder on the
layout and ended up 0x0 and invisible). Map XML_pic to
presentation.GraphicObjectShape on layouts too, matching the slide.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ie21f7dfe6822b8ddf00a443c523db89d926dcadc
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3068
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 73f1e76b1760d4e936aa22627623c922dcda964b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205693
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-26 09:02:07 +02:00
Mike Kaganski 315349828a Fix --enable-werror gcc build on Linux
Commit 8ed30e4a243a3efdfe380852d20910bc4a02e181 (Move ToolboxController
to use OPropertyContainerImplHelper, 2026-04-10) introduced cases similar
to the problem handled in commit 3917b082b9f4530d305cd947ab47658f6883c4f1
(Fix --enable-werror gcc build on Linux, 2026-04-09).

In file included from /home/mk/core/framework/inc/uielement/complextoolbarcontroller.hxx:28,
                 from /home/mk/core/framework/inc/uielement/comboboxtoolbarcontroller.hxx:24,
                 from /home/mk/core/framework/source/uielement/comboboxtoolbarcontroller.cxx:20:
/home/mk/core/include/svtools/toolboxcontroller.hxx:86:31: error: ‘virtual void svt::ToolboxController::disposing(const com::sun::star::lang::EventObject&)’ was hidden [-Werror=overloaded-virtual=]
   86 |         virtual void SAL_CALL disposing( const css::lang::EventObject& Source ) override;
      |                               ^~~~~~~~~
/home/mk/core/framework/inc/uielement/comboboxtoolbarcontroller.hxx:44:22: note:   by ‘virtual void framework::ComboboxToolbarController::disposing(std::unique_lock<std::mutex>&)’
   44 |         virtual void disposing(std::unique_lock<std::mutex>& rGuard) override;
      |                      ^~~~~~~~~

Change-Id: Ic41be4d39b032864c3427d17a85502e36f31dce9
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/757
Reviewed-by: Justin Luth <justin.luth@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit e95308f8dc2e5c1088686eaa1552126eea9745d0)
(cherry picked from commit d6a555ec61272006e801764dd46a493bbbf3e90a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205689
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-26 00:41:16 +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
Tomaž Vajngerl 768a051ec5 sc: Preparation for dynamic-array spill handling
Add a compile-time flag on FormulaTokenArray for formulas that use
a dynamic array function (UNIQUE, FILTER, SORT, SORTBY, SEQUENCE,
RANDARRAY, DROP, EXPAND, HSTACK, VSTACK, TAKE, CHOOSECOLS,
CHOOSEROWS, TEXTSPLIT, TOCOL, TOROW, WRAPCOLS, WRAPROWS). Set by
the compiler when such an opcode appears. Later commits consume
this flag to decide whether a matrix formula is eligible for spill
or auto-resize.

Also fix GetMatrixFormulaCellToken - it used to hide the matrix
token whenever a result error was set, because GetType() returns
svError. Inspect mpToken directly so the token survives error
state. Later commits need the matrix dimensions of a #SPILL! cell
to be readable.

Change-Id: I63c196553762c77b9a64321a2fe9359ee06f6944
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1815
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 1ea485c5df618a7ff10c0b8b135d537ce06d94ed)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205684
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-25 16:29:59 +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
Noel Grandin 8f6c2c38eb reduce FormulaByteToken virtual calls
similar to
  commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
  reduce ScRefListToken virtual calls

Push the Get/Set-Byte() methods down to the only subclasses
that actually use it.

Change-Id: I990e45baccb00657600ecf62004a67849ede2f62
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1008
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit d3ab7f03ee98fb23ab1b9c6a0e5f18874603f46d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205601
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-24 10:28:55 +02:00
Noel Grandin e22c8988d2 prefix pc field in FormulaCompiler
Change-Id: I2b7b78d6a9df1103084ac4a50d39e452645b4e5f
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1392
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 431e8c9e9a6a7e476e8240c6c8781e2344b558ea)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205600
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-24 09:05:43 +02:00
Noel Grandin 3a57fe4450 prefix fields in FormulaCompiler
Change-Id: Ib03b15f069d21dccaa585e0577c43c91fabb046c
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1391
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit c1020ea6fe5e8eb85b756857b0e80bbe1d560c4d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205598
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-24 09:03:58 +02:00
Kurt Nordback 0fcb8f99b7 tdf#165742 Step 5.9f: Improve <cx:chartData> handling
Replace some temporary chartex parse and export code to handle chartData more
properly. This now round-trips at least some <cx:f> and <cx:nf> content,
and handles the various *DimensionType values.

Change-Id: Ie91ac845a911c5be1f7ad5d8ed872d091bd6a623
Signed-off-by: Kurt Nordback <kurt.nordback@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2644
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit 1d58d04fb96b9bd73affeaecf9d6dee35d6357b5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205578
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-24 01:00:06 +02:00
Noel Grandin 1d8cf993df reduce Sc*Ref*Token virtual calls
similar to
  commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
  reduce ScRefListToken virtual calls

Push the Get/Set-Ref*() methods down to the only subclasses
that actually use it.

Change-Id: Idf56c7c1fc2340438add93e11a549824461b80a8
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1243
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 003c0007c13e443fe4e520d1b70586266abf7811)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205579
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-23 21:47:06 +02:00
Noel Grandin af6e41b327 reduce virtual calling in Sc*Ref*Token
similar to
  commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
  reduce ScRefListToken virtual calls

Push the GetIndex() method down to the only subclasses
that actually use it.
And take the chance to rename them to something more meaningful.

Introduce an inbetween ScExternalToken class to represent
tokens that have an external file id.

Change-Id: If45e87a5bb66aeb1c65d82121b430b886b53f20b
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/955
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 7705899fa7bca501f331070f7969374fcf5f52e9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205576
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-05-23 13:14:34 +02:00
Noel Grandin 0bad6cbf40 reduce virtual calling in String*Token
similar to
  commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
  reduce ScRefListToken virtual calls

Push the GetString() methods down to the only subclasses
that actually use it.

We change the inheritance hierarchy a little here
-class FORMULA_DLLPUBLIC FormulaStringOpToken final : public FormulaByteToken
+class FORMULA_DLLPUBLIC FormulaStringOpToken final : public FormulaStringToken
because FormulaStringOpToken and FormulaStringToken share
a type svString which makes it hard to decide which subclass we
are handling.
So now we can check for GetType() == svString and then
cast to FormulaStringToken safely.

Change-Id: I3f087d65a2297b2d8fb5213e81987e0001bc1c62
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1152
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 8710f98c1565b1d8ecbbbec743b29bcbb38c5ce2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205569
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-05-23 09:01:44 +02:00
Devansh Varshney a83694c6ca xmloff: support histogram ODF import and export
Export histogram charts as chart:bar with coext:class="histogram"
and write histogram properties.

Import the histogram class and configuration again recreate the
HistogramChartType, and trigger the histogram template once chart
import is complete so calculated bins, categories, and frequencies
are rebuilt from the preserved raw values-y data.

Change-Id: I202d5666315d4f26da2bf4b3650b4388a9e4fb50
(cherry picked from commit 5fb2f5f2c2676743b823640dbaa02762308d6a54)
Signed-off-by: Devansh Varshney <varshney.devansh614@gmail.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1880
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
(cherry picked from commit a54fc185d3d73f765bd37cc98df92cac81e01572)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203814
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-05-23 00:09:47 +02:00
Michael Weghorn 9752a52fd3 weld: Move weld::Box to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I0cc1e0f3aa60d3457af0f0f30ec8fe74cb5ce6a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205489
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:54 +02:00
Michael Weghorn 1a3d6d5cdf weld: Move weld::Frame to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ia7bc570fcd463d9adcbcdad070250cec5bc3b949
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205488
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:45 +02:00
Michael Weghorn 632c40c9aa weld: Move weld::Grid to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ibe76e4c871f364904a2ad65921d37ec0380094ff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205487
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-22 21:56:35 +02:00
Michael Weghorn ee7e1d968b weld: Move weld::Scale to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I2e42a2992c08311922451bb01062683bd81954fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205486
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:27 +02:00
Michael Weghorn 68ce3cfcb1 weld: Move weld::LinkButton to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I6d9323c56bca95734a1b60daa60085547f212a66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205485
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:19 +02:00
Michael Weghorn fa9fc166ea weld: Move weld::Spinner to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I98a090f31fc8b4111b7e13dfcdf843af8c3113c8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205474
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:56:11 +02:00
Michael Weghorn ecab2e0226 weld: Move weld::ProgressBar to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I8861b5494c22b666ed80ead82ec3a8293dbeee81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205473
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-22 21:56:02 +02:00
Michael Weghorn b2ce99c623 weld: Move weld::Image to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I2eb564b2483b052f01d4af55fd4feb00b5ed6031
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205472
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-22 21:55:53 +02:00
Michael Weghorn e528f1de16 weld: Drop includes/fwd-decls not used in weld.hxx itself
Move these to those files actually needing them instead
of relying on transitive includes after multiple weld::Widget
subclasses were moved to their own headers.

Change-Id: If431078dffb85a2788170d4a753978d1983decb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205471
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:55:45 +02:00
Michael Weghorn 3315556e6a weld: Move weld::LevelBar to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ie5bd9f20c6802301614a9ccbe327797a59e3932b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205465
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-05-22 21:55:31 +02:00
Michael Weghorn 8db0a537e4 weld: Move weld::Calendar to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ic0ca052460c3c84ca00bc392c81c1c9fa7bde6b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205464
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:55:23 +02:00
Michael Weghorn 377891d2a2 weld: Move weld::Expander to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: Ib944fa421b9d3bcd82ac6c7ab3faf5f0b8b30b6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205463
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-22 21:55:15 +02:00
Noel Grandin 9cfdd6b430 reduce virtual calling in ScFormulaDoubleRefToken
similar to
  commit f47fc9a67f16a3da1e5cbcc8b821682298ec90b3
  reduce ScRefListToken virtual calls

Push the GetDoubleRef() methods down to the only subclasses
that actually use it.
Which means we can return a ref instead of a pointer,
since we now never return nullptr.

Change-Id: I4dfce551e985fe20db00d3a0694ed99f20f87731
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1050
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 9aab43b4e3a68cd833eddfdd11086f03e55f2c1a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205508
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-05-22 20:28:02 +02:00
Caolán McNamara 0fc4bfb611 Removed unused bUpdateGrfLinks param from LinkManager::UpdateAllLinks
Change-Id: Ie9d364feab5bbb623fff3277375e65e8b7f412a4
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2387
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 41c0c39fbd9edd117b241f0f311000c074d9a8fc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205493
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-22 09:36:27 +02:00
Xisco Fauli fb28678005 loplugin:unusedmethods
Change-Id: If3dae53e3cf16df2d0c505a898138dfa6fe6c0f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205442
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-22 09:32:38 +02:00
Ferdinand Gassauer 47f593c865 sc: Add warning infobar when deletion breaks cell references
When rows, columns, or sheets are deleted, referencing cells can
result in #REF! errors without warning. Manual reconstruction is
often time-intensive once the session is closed, so this patch
detects these errors and shows a warning infobar to alert the user.

The infobar includes a "Go to First Error" button that navigates to
the first affected formula cell. Only the first error is surfaced to
avoid UI clutter. The warning is dismissed on undo and re-shown on
redo automatically.

The feature is controlled by an Expert Configuration option at
org.openoffice.Office.Calc/Input/WarnOnDeleteCellReferences
(default: off for now).

See: https://github.com/CollaboraOnline/online/issues/2861

Change-Id: I649296444e783c88cbd4688109ac10b3a1bb5046
Signed-off-by: Ferdinand Gassauer <f.gassauer@chricar.at>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/816
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Balázs Varga <balazs.varga@collabora.com>
(cherry picked from commit b3354e376bee90dedf1fe84b5cf6f4f3c17b7f70)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205499
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-05-22 07:17:11 +02:00
Heiko Tietze 7877351d36 Resolves tdf#121174 - Module-specific theme colors
Shades the background of Notebookbars with module-specific
colors if theming is enabled. The patch adds four *NOTEBOOKBARCOLOR
colors in the UI theming section.

To deal with light/dark system themes, the color is merged with the
background at a transparency of 150 by default, which can be changed
via the expert setting common::Misc::NotebookbarColorTransparency.

MacOS is excluded since it draws the whole Notebookbar and has
no extra colors for the background.

Change-Id: Ia016499a9657793ebcbe07f7a50281195ab08c43
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205153
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-05-22 07:15:21 +02:00
Julien Nabet 100fcb9ca3 tdf#172188: Crash when switching para direction in editeng
Test bLeftToRight to know if we must use StaticWhichCast with SID_ATTR_PARA_LEFT_TO_RIGHT
or SID_ATTR_PARA_RIGHT_TO_LEFT

It requires to add "TypedWhichId<SfxBoolItem>" for SID_ATTR_PARA_RIGHT_TO_LEFT

Regression from c0b0a18f5c:
Related tdf#140226: use StaticWhichCast in ww8graf+drwtxtex (sw)

Change-Id: I59f98d7b3285c12154ad69e9e2727d66ea1dfd3e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205476
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-05-21 17:34:13 +02:00
Tomaž Vajngerl ebe3264a9e sc: Sheet view sync - Code review fixes
Change-Id: Ia5ffa2de76859c5b9673a6ab51910e27c5a6b3cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199522
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202004
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
(cherry picked from commit 8a89cc05482215de732c2d9be805d6cfce3a9949)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205397
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-05-20 17:01:01 +02:00