520958 Commits
Author SHA1 Message Date
elioperdreau f459f456a3 Merge Gitea main history after upstream synchronization
Change-Id: I3230b380135aa97b9f5867a6ad03c2928ce1fab4
upstream-sync-build-ok-2026-10-08
2026-10-08 14:45:45 +02:00
elioperdreau 3b995c7643 README: document stable/26.8 branch
Change-Id: I8c8fd725071c566c66fbb0c0ba89dba357a903ed
2026-10-08 14:43:33 +02:00
elioperdreau b2554fe7f0 Merge upstream LibreOffice master into ODFStudio main 2026-10-08 12:56:19 +02:00
elio 256bb293c2 Actualiser README.md 2026-10-08 12:40:59 +02:00
elio f0eabe2408 Actualiser README.md 2026-10-08 12:37:49 +02:00
elio 9380eb7cc3 Actualiser README.md 2026-10-08 12:37:26 +02:00
Armin Le Grand (collabora) 760394bbad Remove XFillAttrSetItem and XLineAttrSetItem
Both are derived from SfxSetItem which means they contain
a SfxItemSet themselves. That leads to problems since at
their construction time a SfxItemPool has to be known and
it *should* not be different to the one of the ItemSet
that Item gets added later - that leads to the 2nd class
of problems.

In the long therm we should get rid of all SfxSetItems.
This change simplifies already some stuff, including that
the standard Items for DrawObjects reduces by two (and
more due to containing a whole ItemSet) and e.g. the
problem that these Items had to be converted to hard
attributes in the done fixes for copy/pasting Slides.

Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I8b1c6cabdaa43ed6062811b5508ab3dece47a755
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6795
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit e67458a9b769fe7a3a7ee0739ed6d5c46dbc0692)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211734
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-08 08:56:42 +02:00
Julien Nabet 4bc8d8e4dd tdf#173869: Compound File Binary version 4 rejected - PPT/DOC fail to load
Bugtracker submitted but also analyzed and with suggestion of a fix by
Florian Stascheck (florian.stascheck@gmail.com)
(see bugtracker for the whole analysis)
Thank you to him!

Edit:
m_nPageSize is in fact the sector shift
(see https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-cfb/05060311-bfce-4b12-874d-71fd4ce63aea)
so name the constants accordingly.

Change-Id: Iccbad515c0cda243e1ed9eec12caf7b614215484
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211958
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-10-08 07:56:16 +02:00
JebediahKermanIII bc7260827a tdf#173555 make function in _xpoly/b2dpolygontools a real warp.
The old implementation did a standard bilinear/"quad" warp on... the
Bezier control points.

That's not correct. A much better approximation of warping the points on
the curve itself can be achieved by first subdividing the curve into
smaller segments over which the bilinear warp is closer to affine. So,
the error is lower. Why did I do this? Because the grid pattern
indicates it's a bilinear warp and I was very confused when it wasn't.

Change-Id: I9478007c8662455ddbb56fa9d7e6dff425c8e718
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210921
Reviewed-by: Regina Henschel <rb.henschel@t-online.de>
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-10-08 06:54:56 +02:00
Dmitry Kulikov 23b745e20d tdf#170236 sw: import comment anchored inside a math formula
A Word comment whose w:commentReference sits inside <m:oMath> was lost on
DOCX import: OOXMLFastContextHandlerLinear/Math buffers every child of the
formula and never routes commentReference to handleComment, so comments.xml
was never resolved and no annotation was created.

Intercept w:commentReference in OOXMLFastContextHandlerLinear: collect its
id and resolve it via the existing resolveComment() path once the formula
object has been emitted (in OOXMLFastContextHandlerMath::process). The tag
is never buffered into the formula, so the Starmath buffer stays balanced
and formula import is unaffected.

Signed-off-by: Dmitry Kulikov <dkul@altlinux.org>
Change-Id: I9b0dccc79d5a7da9294b18f0cb58776a2bd8b553
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207888
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
2026-10-08 02:37:31 +02:00
Bayram Çiçek f2531aab9b tdf#145726: Calc: print empty rows that carry a border
- a form with a header row and a hundred empty bordered rows below it
printed only the header row. Calc drops a run of 84 or more equally
formatted rows below the last cell with content, and everything under
it, so the print range ended at the last row with data. The borders
were on screen all along, so only printing, the print preview and the
PDF export showed it.

- the run is measured from the last row with data, so typing changed
the result. On a form whose borders end at row 100, text in row 16 left
84 rows below it and the borders stayed away, text in row 17 left 83
and the whole form printed.

- ScDocument::IsPrintEmpty prints a page that carries a border and no
content, and suppresses one carrying only a colour. A bordered run is
therefore kept now, unless it is wider than SC_VISATTR_BORDER_STOP in
its own length or in its distance below the data, which is the whole
column case i30830 is about. The length stays the same as the sheet is
filled in, the distance stops a chain of shorter bordered ranges
reaching the sheet end. Neither measure applies to a run under
SC_VISATTR_STOP rows, because a run that short was never dropped.

- the print range also sets where Ctrl+End lands, how far the desktop
scrolls and what range is written out on save, so all three grow with
it. In the browser the scroll extent comes from the cell area, so it
stays where it was.

- a run has to meet one more condition than before to be dropped, so no
document prints less than it did, and the ones hitting this bug print
more.

- the tests say a bordered form is printed, a colour under the content
does not pull the print area down, a border too wide or too far down
does not either, a frame round a whole column leaves the printout
ending at the last row with content, and a form is printed wherever the
content ends, including when a font change splits it in two.

Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I44d041cdbbcde7bfa69b53035f5bebc8d59f9bdd
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14112
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit 00e5de0a8bd89e5f5c9f7b19fef85331354c4458)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211943
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-08 00:28:25 +02:00
Elio Perdreau f6bae7196e gitea: add interoperability issue form
Change-Id: If7d6d671e7f2be2798123fe82386ddae94422bef
2026-10-07 23:22:27 +02:00
Andreas Heinisch 720a6d856e tdf#171730 - Keep slider markers in sync in the Pick a Color dialog
The markers of the vertical color slider were only updated when the hex
field was changed. Switching the color component via the radio buttons
left the markers at their current position.

In addition, markers did not match the start color when the dialog was
opened.

The level will now be calculated on every color update and once the
slider is shown.

Change-Id: Ie31a6e93e2a6bbf10f0cdf3307b81b735662a3c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211962
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-10-07 21:14:59 +02:00
Miklos Vajna 1886cb2ee3 cool#16219 engine sd, RTF export: fix lost bullets of paragraphs
Add a few bulleted lines to a text frame in an Impress document, copy
them, paste in Writer: the paragraphs are imported with no bullet marks.

ImpEditEngine::WriteRTF() emits a bare \level<n> for the paragraph's
outline level, which editeng's own RTF importer reads back as a
bulleted item, but sw's RTF import ignores. The PowerPoint RTF clipboard
markup for the same thing is the RTF 1.0 old-style numbering pair: a
{\pntext <bullet>\tab} fallback and a {\*\pn\pnlvlblt{\pntxtb <bullet>}}
destination that contains the bullet character.

Fix the problem by emitting that pair alongside \level<n>, from the
paragraph loop in WriteRTF(), when the paragraph's EE_PARA_NUMBULLET
at that outline level is of type SVX_NUM_CHAR_SPECIAL.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I18a022ac28d50a8b7557ee2282cd3fd8e7c37299
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14439
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit b7002f07f475ce4eb5cf7309dfe8e59ba21ecd7a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211942
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-07 21:11:19 +02:00
Michael Weghorn 09d3cc2c14 sd: Drop always false TableDesignWidget::m_bModal
The member is initialized to false in the ctor
and that value is never changed afterwards.
Drop it altogether and simplify code accordingly.

Change-Id: I0213e9f74b353a214af3ad163a934bfa7e868412
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211913
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 20:27:00 +02:00
Michael Weghorn 294f872019 sd: Drop redundant TableDesignWidget::setModal call
TableDesignWidget::m_bModal has a default value of false,
so there is no need to explicitly call TableDesignWidget::setModal
with the same value.

An upcoming commit will drop TableDesignWidget::m_bModal
altogether.

Change-Id: Iedfcc446b1c6f8d77d82d0478ff447590648765a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211912
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 20:26:53 +02:00
Michael Weghorn dc79823c7e svtools: Drop unused ValueSet::{Format,ImpFormatItem} param
Now after

    Change-Id: I3593630b4758d0547264c0ed63fec7ac111ccfd7
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 17:30:24 2026 +0200

        svtools: Drop ValueSetItemType::ImageAndText and related logic

, the `rRendercontext` param for ValueSet::ImplFormatItem
is unused, so drop it, and also the then unused
corresponding ValueSet::Format param.

Change-Id: Ibc8afabf147974da1ed67ef903abc13c054c4c12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211911
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 20:26:40 +02:00
Olivier Hallot f01db975cd Update git submodules
* Update helpcontent2 from branch 'master'
  to b2429f8c0fffdef7bd37b8c750bfce3909838701
  - Fix bookmark for content alignment
    
    Change-Id: If97bada9c4efe19757000966493510217af85288
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/211980
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-10-07 20:01:07 +02:00
Neil Roberts 32e937ae2d Expand the smartpointerderefaddress compiler plugin to more ptr types
Instead of having a hard-coded list of smart pointer types, the plugin
now checks if the called type has a method called “get” which returns a
pointer with the same type as the overall expression. The intention is
that this should be general enough to catch all smart pointers.

Change-Id: I8c6f21f34a9debb81765155c544d0564c0f8ec58
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211848
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:16:39 +02:00
Neil Roberts 99f157a04f linkdlg: Use SvRef::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using SvRef::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I26aa62d78454d11c9912bdd3e9ab9db2d93293a7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211847
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:15:58 +02:00
Neil Roberts 7c361df048 docnode/section: Use SvRef::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using SvRef::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I4de3949f3cac3a6cea448f878ca761a67750efc3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211846
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:15:47 +02:00
Neil Roberts 6e11c6cf82 swref: Use SvRef::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
doesn’t matter, but using SvRef::get() is probably easier to understand
anyway. This also paves the way for a later compiler plugin to check for
this.

Change-Id: I802417762ed323128a07d4f8ccbcf8bb8553a8c0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211845
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:15:38 +02:00
Neil Roberts d886defd9b FormulaCompiler: Use boost::intrusive_ptr::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I0ba29f530c648782d7d6af8225a2eb6d5c28b5b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211844
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 19:15:27 +02:00
Neil Roberts 05baa27681 domimplementation: Use rtl::Reference::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
doesn’t matter, but using Reference::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I9c055228f21639ad4005d71a768b335b40eff7e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211843
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 19:15:15 +02:00
Neil Roberts e6176fc4f0 sqliterator: Use rtl::Reference::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
doesn’t matter, but using Reference::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I2361761496648eaaa1e245912ac19aa130b38863
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211842
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 19:14:54 +02:00
Neil Roberts bd60b650fe basmgr: Use SvRef::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
probably doesn’t matter, but using SvRef::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: Id539b0e2630013c4f07debf22eaeca1b45403fcd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211841
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:14:40 +02:00
Neil Roberts 0ef39cbc0b store: Use rtl::Reference::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
doesn’t matter, but using Reference::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I52837f7c972a87229ecbc4f72ee4c2f352a04dc8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211840
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-10-07 19:14:23 +02:00
Neil Roberts 987449e0b4 storbase: Use rtl::Reference::get() instead of &*
Using &* can be problematic if the pointer is null. In this case it
doesn’t matter, but using Reference::get() is probably easier to
understand anyway. This also paves the way for a later compiler plugin
to check for this.

Change-Id: I67bd637fef17a505cf49e3332ceebc61c3280c1f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211839
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
2026-10-07 19:13:57 +02:00
Andreas Heinisch 216d39140d tdf#47890 - Remember last used position and size of the mail merge dialog
Change-Id: Ibc6ba048d9f330f499d873c220f750964438c52e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211862
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-10-07 18:04:36 +02:00
Andreas Heinisch 7f1231cfec tdf#171416 - Put Link field before Text again in the Hyperlink dialog
Change-Id: I86cabe93386f0c0eafd1821fa4d2d988ccf8a0af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211954
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-10-07 17:58:10 +02:00
Michael Weghorn 4909fb2b4c svtools: Drop ValueSetItemType::ImageAndText and related logic
Prio to

    Change-Id: I0d2f691eecfac013bc8ad3e506484d958d18ce0a
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 17:22:54 2026 +0200

        svtools: Drop always false ValueSet::InsertItem bLegend param

, the only place where the type would have been set was
in ValueSet::InsertItem, but the method was never called
in a way that caused that code path being used.

Now that that was dropped from ValueSet::InsertItem,
also drop the remaining logic from the ValueSet
implementation.

This also means that the `rRenderContext` param for
ValueSet::ImplFormatItem becomes unused. Dropping
it and related cleanup will be done in an upcoming
commit.

Change-Id: I3593630b4758d0547264c0ed63fec7ac111ccfd7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211910
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:52:40 +02:00
Michael Weghorn cd6d8538d0 svtools: Drop always false ValueSet::InsertItem bLegend param
No single caller passes any explicit value for that
param, so the default of `false` is always used.

Drop the param and simplify the implementation a bit.
This will also allow for further cleanup in an upcoming
commit.

Change-Id: I0d2f691eecfac013bc8ad3e506484d958d18ce0a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211909
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:52:18 +02:00
Michael Weghorn f504ea8b34 sd: Port LayoutToolbarMenu from ValueSet to weld::IconView
Port the toolbar popup to select the slide layout to use
from using two ValueSet widgets to using weld::IconView
instead.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom widget logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based. For the particular case here, custom non-continguous
item IDs were used for the ValueSet items that
correspond to the AutoLayout enum values.
Store those custom IDs as the IDs of the weld::IconView items and
retrieve the ID again in LayoutToolbarMenu::IconViewItemActivatedHdl.

The popup can be triggered like this:

* start Impress
* in the toolbar, click on the "Slide Layout" button

Change-Id: Ib4bf1c611663e8001a6ffcff6bc5ecf393c22277
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211908
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:52:01 +02:00
Michael Weghorn b25df6df3f svx: Port ExtrusionDirectionWindow from ValueSet to weld::IconView
Port the widget to select the extrusion direction from using
a ValueSet widget to using weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom widget logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based.

The popup can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Direction" button in the "3D-Settings"
  toolbar

Change-Id: I045bd1d605b0f5bb5c4ad7eeb3247e50356b39b6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211907
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:51:46 +02:00
Michael Weghorn 8e1c047cf7 svx: Resave directionwindow.ui with glade 3.40
The popup can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Direction" button in the "3D-Settings"
  toolbar

Change-Id: If9c59a5d2e1d5232a909a4ad8a9e9e6086149ec5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211906
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:51:35 +02:00
Michael Weghorn b08518a14a svx: Drop ExtrusionDirectionWindow::maImgDirection only used in ctor
No need to store the images in a class member as they're
only used once in the ctor when inserting items into
the ValueSet. Just use a local variable and create the
images in the existing loop that inserts the items.

Change-Id: Ifa6722a88f97aac35e1b3c17ee9db7606c1ef001
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211905
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:51:08 +02:00
Michael Weghorn 9ad54fe80e svtools: Drop now unused ValueSet::SetItemImage
The last caller of that method was ported from ValueSet
to weld::IconView in previous commit

    Change-Id: I28d86251b70149574535dc7b583660dbe42e9a0d
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 15:01:52 2026 +0200

        svx: Port ExtrusionLightingWindow from ValueSet to weld::IconView

Change-Id: I232f3767268a4fde206515f2a6d92e35c664ccd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211904
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:50:55 +02:00
Michael Weghorn 0bf31b7f4c svx: Port ExtrusionLightingWindow from ValueSet to weld::IconView
Port the widget to select the lighting from using
a ValueSet widget to using weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom widget logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based.

The popup can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Lighting" button in the "3D-Settings"
  toolbar

Change-Id: I28d86251b70149574535dc7b583660dbe42e9a0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211903
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:50:48 +02:00
Michael Weghorn 1050ed2e56 svx: Resave lightingwindow.ui with glade 3.40
The popup can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Lighting" button in the "3D-Settings"
  toolbar

Change-Id: I195d1d7973b12541c7296433324b67a19dcd8021
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211902
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:50:39 +02:00
Michael Weghorn 8fc8feaae7 tdf#130857 qt weld: Support "Extrusion Depth" dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Depth" button in the "3D-Settings"
  toolbar and select "Custom"

Change-Id: I4f1e43e20bac5525d3c24fdaa85c83f978460b0b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211901
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:50:31 +02:00
Michael Weghorn f3df5034a9 svx: Resave extrustiondepthdialog.ui with glade 3.40
The dialog can be triggered like this:

* open attachment 175894 from tdf#145296
* make sure the "3D-Settings" toolbar is enabled
  in "View" -> "Toolbars" -> "3D-Settings"
* select the extruded shape
* press the "Depth" button in the "3D-Settings"
  toolbar and select "Custom"

Change-Id: Ia7da2d663569f733451a692a0a6201cc19b5fe9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211900
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:50:16 +02:00
Michael Weghorn a91d44317a svtools: Drop ValueSetItem::mnTextOffset
After

    Change-Id: I0150e699602a625874e5a09b8df38110f52c0c03
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 12:15:49 2026 +0200

        svtools: Drop now unused WB_NAMEFIELD logic from ValueSet

, that member is only written to, but never read, so drop
it completely.

Change-Id: I974183e725e3c530162152debd29bbf207b21b6b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211899
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:50:08 +02:00
Michael Weghorn 0e206454b1 svtools: Drop now unused WB_NAMEFIELD logic from ValueSet
The last case where that style flag was set was ported
away from ValueSet to use weld::IconView instead in earlier
commit

    Change-Id: I1c23a305322105608d0152bcd0b0fa195be14eff
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Tue Oct 6 11:48:21 2026 +0200

        cui: Port Callout tab page from ValueSet to weld::IconView

Therefore, drop the logic in ValueSet handling that
flag, to simplify the code.

This also means that the `pItem` param for ValueSet::ImplDrawSelect
is now unused, so drop that one, too.

Change-Id: I0150e699602a625874e5a09b8df38110f52c0c03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211898
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:49:55 +02:00
Michael Weghorn e0d0f4ca38 svtools: Drop unnecessary write to local var
The value of `n` is only used in the first branch.
Reduce the variable scope to that one.

Addresses this warning shown in Qt Creator:

    /home/michi/development/git/libreoffice/svtools/source/control/valueset.cxx:1522:8: Value stored to 'n' is never read [clang-analyzer-deadcode.DeadStores]

Change-Id: Ib6e74fb35152c1d6098274e1fd5a9a60253b4900
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211897
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:49:47 +02:00
Michael Weghorn a0e94744f0 tdf#130857 Define widgets in "Callout" tab page in order
Switch the order in which the widgets in the .ui file
are defined so that the order better matches the visual appearance
and logical order, which makes sure that tab focus order with the
Qt-based VCL plugins is correct as well when using native Qt
widgets (SAL_VCL_QT_USE_WELDED_WIDGETS=1), where
focus order is (by default) based on widget creation order.

See

    commit 02692566ad
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Oct 24 17:43:35 2024 +0200

        tdf#130857 optnewdictionarydialog.ui: Define focusable widgets in order

for more background.

The tab page can be triggered like this:

* start Draw
* make sure the "Text" toolbar is enabled in
  "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape
  and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry
* switch to the "Callout" tab

The Python script mentioned in the commit message of

    commit 327679b2fb
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jul 8 15:50:59 2026 +0200

        tdf#130857 Define widgets in Calc "General" options page in order

was used to reorder the GtkGrid children automatically.

Change-Id: Ice8f6b318f57411bea553311faf45b40cb098b44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211883
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:49:27 +02:00
Michael Weghorn 373ff268bb cui: Port Callout tab page from ValueSet to weld::IconView
Port the widget to select the connector type using a ValueSet
widget to using weld::IconView.

This helps to be more consistent with other platform/toolkit
widgets and reduces custom widget logic.

Adjust indices used to account for the fact that
weld::IconView indices are 0-based while the ValueSet ones
are 1-based.

Increase the item padding in the .ui file to 18 to
use more space for the individual items, to be more
similar to the previous ValueSet implementation.

The tab page can be triggered like this:

* start Draw
* make sure the "Text" toolbar is enabled in
  "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape
  and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry
* switch to the "Callout" tab

Change-Id: I1c23a305322105608d0152bcd0b0fa195be14eff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211882
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:49:09 +02:00
Michael Weghorn e68422786a Drop unused ValueSet forward declarations
Drop ValueSet forward declarations from headers
not actually using the class.

Forward-declare the class in cui/source/inc/numpages.hxx
which actually uses it, but didn't forward-declare it
or include the header yet, but previously got the forward-declaration
from an included header.

Change-Id: I8876ad47eb362f581aa41ee4a61a85c4093a1dd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211881
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:48:46 +02:00
Michael Weghorn 5bf5c6e453 cui: Insert actual images right away in SvxCaptionTabPage ctor
Instead of first inserting entries with a dummy image
and then setting the actual images using
ValueSet::SetItemImage, just insert the actual images
when inserting the entries right away.

Change-Id: I24b3e2a3a1e86a72eb99755c31602ac96845c9e8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211880
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:48:32 +02:00
Michael Weghorn 1ad0ba1af4 sd: Dispose AbstractSvxCaptionDialog
Without this in place, the following assert
would be triggered when closing the dialog:

    soffice.bin: /home/michi/development/git/libreoffice/include/vcl/vclptr.hxx:134: VclPtr<SfxAbstractTabDialog>::~VclPtr() [reference_type = SfxAbstractTabDialog]: Assertion `(!m_rInnerRef.get() || m_rInnerRef->isDisposed() || m_rInnerRef->getRefCount() > 1) && "someone forgot to call dispose()"' failed.

Steps to reproduce:

* start Draw
* make sure the "Text" toolbar is enabled in "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry to open the dialog
* press the "OK" button to close the dialog again

Change-Id: I2ddf9b6b0997db091ff8bc320ae04fbbfee19415
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211879
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-10-07 17:48:12 +02:00
Michael Weghorn e2c6a76dfe tdf#130857 qt weld: Support Callout dialog
This means that native Qt widgets are used for this dialog
now when using the qt5 or qt6 VCL plugin and starting LO with
environment variable SAL_VCL_QT_USE_WELDED_WIDGETS=1 set.

The dialog can be triggered like this:

* start Draw
* make sure the "Text" toolbar is enabled in "View" -> "Toolbars" -> "Text"
* in that "Text" toolbar, select the "Callouts" shape and insert it into the document
* right-click on the newly inserted shape to open the context menu
* activate the "Position and Size" menu entry

Closing the dialog currently triggers an assert,
but this is unrelated to this change and e.g.
also seen when using the gen vcl plugin and will
be addressed separately in an upcoming commit:

    soffice.bin: /home/michi/development/git/libreoffice/include/vcl/vclptr.hxx:134: VclPtr<SfxAbstractTabDialog>::~VclPtr() [reference_type = SfxAbstractTabDialog]: Assertion `(!m_rInnerRef.get() || m_rInnerRef->isDisposed() || m_rInnerRef->getRefCount() > 1) && "someone forgot to call dispose()"' failed.

Change-Id: I7ba1020dc045d95098ee45b1551f3e641141130b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211878
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-10-07 17:47:53 +02:00