Commit Graph
516295 Commits
Author SHA1 Message Date
Neil Roberts e66d2aec00 tdf#171853 Use endsWith instead of checking lastIndexOf is at end
There seems to be an idiom used throughout the LibreOffice code where
lastIndexOf is called and then the returned index is checked to see if
it covers the entire end of the string. This should be equivalent to
just calling endsWith but it’s slightly less efficient because
lastIndexOf will pointlessly continue searching other places in the
string if the end doesn’t match.

Change-Id: I4c2c6dd750d41ffabf5d27011c22a4bbb5e32777
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204300
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
2026-04-26 09:32:38 +02:00
Jakub Trzebiatowski 961599d662 sw: Redraw chart immediately after changing its source table name
* UpdateCharts calls InvalidateTable internally
* This code was a copy-paste from UpdateCharts_

Change-Id: Iffe02b30cae7464c0a5e186d7834b22d06d21296
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204338
Tested-by: Jenkins
Reviewed-by: Jakub Trzebiatowski <ubap.dev@gmail.com>
2026-04-26 07:58:21 +02:00
Bogdan Buzea 221bdc948f Update git submodules
* Update helpcontent2 from branch 'master'
  to 8b9d6582cf42fc3898e4bbed700e1bf263bc69ec
  - tdf#171816 Change the link to Acces2Base in Help
    
    Change-Id: Ice15286c61268fe70010b83a559139904d1a883a
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/204340
    Tested-by: Jenkins
    Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2026-04-25 21:08:36 +02:00
Muhammad Ammar dec4b73618 tdf#143148: Use pragma once instead of include guards
Change-Id: I43a2140dab6203e58547710f2bf8530ff72d53d6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204325
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-04-25 19:51:17 +02:00
Christopher Sherlock 03e4874322 vcl: make nPoly const
Change-Id: I61ebe9029a54bc4f1945f24a576beee91bd15602
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196486
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-04-25 13:18:27 +02:00
Christopher Sherlock 7b788e93d4 vcl: make nPoints const
Change-Id: I929f5ce1b430ede6212a882ccd8fe4f3635c872f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196483
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-04-25 13:17:46 +02:00
Christopher Sherlock eb08585b36 vcl: use static instead of anonymous namespace in map.cxx
Replaced the anonymous namespace in vcl/source/outdev/map.cxx with
explicit static declarations for translation-unit local functions.

- Renamed getCorrectedUnit() to lcl_getCorrectedUnit() to match the
  standard lcl_ prefix convention for local functions.
- Explicitly marked lcl_getCorrectedUnit() and lcl_calcConversionMapRes()
  as static.
- Updated all corresponding call sites to reflect the renamed function.

Change-Id: I6a489a50f3f12d2797ecfb4c46dfed8dede70b1b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203269
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-04-25 13:17:16 +02:00
Christopher Sherlock 2272b54a61 vcl: restrict scope of loop variables in outdev map.cxx
Moved the declaration of the sal_uInt16 i loop counter directly into
the for loop initializers across several polygon conversion methods
in vcl/source/outdev/map.cxx. This reduces the scope of the variables
to the loops themselves, cleaning up the code and following modern C++
practices.

Affected functions include:
- ImplLogicToDevicePixel()
- LogicToPixel() (both overloads)
- PixelToLogic() (both overloads)

Change-Id: I5f7f46d786c2e7e34c8277acee689820c5f74305
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196481
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-04-25 13:10:57 +02:00
CassieLX b6ac05f5fa tdf#171696 UI SIFR adding icons for defaultparastyle and textbodyparastyle
These icons were duplicates, and individual icons were created.

Change-Id: I81d8acc0be85df8b08a26bc1776726c8e21ba349
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204136
Tested-by: Cassandra Freund <cassie_lx@secure.mailbox.org>
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2026-04-25 11:56:53 +02:00
Jakub Trzebiatowski 704fddfae2 tdf#83196 sw: update table formulas on table rename
Call RenameTableReference for all formulas in SwDoc::SetTableName to
update formulas when a table is renamed.

Change-Id: Ie91410e5d9a9800492c0b6138231121a7528719f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203803
Reviewed-by: Jakub Trzebiatowski <ubap.dev@gmail.com>
Tested-by: Jenkins
2026-04-25 11:30:45 +02:00
Jakub Trzebiatowski 741e249764 sw: add SwTableFormula::RenameTableReference
Add a method for updating table references inside formulas.

Example:
Formula: =<Table1.A1> + <Table2.B1>
Renaming "Table1" to "NewTable"
Result:  =<NewTable.A1> + <Table2.B1>

Note: Tables with a dot ('.') in their name may not update correctly.
See: tdf#171783

Change-Id: I4f3695afcd7003b8253ae2f9247f193245e21f07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203802
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
2026-04-25 11:26:51 +02:00
Andrea Gelmini d17afd6400 Fix typo
Change-Id: I2fd28af8d35964e4bde3cb31154e9154f05da922
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204296
Tested-by: Jenkins
Reviewed-by: Simon Chenery <simon_chenery@yahoo.com>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-04-25 11:00:04 +02:00
Andrea Gelmini 5bf5aa440d Remove duplicated include
Change-Id: Icd52d57f80859b585af09314c1f8d0f53d296284
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204297
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-04-25 10:57:54 +02:00
Karthik Godha d6a52488e4 XLSX: Export of PivotTable field flags with invalid dates
This is an extension of d223775e011ac1d8253b4488ec2d941b2dd3e8a9,
invalid dates in pivot table are properly handled but the flages of the
fields are not handled.

bug-document: ooo72278-2.xls
Change-Id: I12469386fb07c4d4922fc0853c6d4d246b97b310
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202868
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204262
Tested-by: Jenkins
2026-04-25 10:19:31 +02:00
Karthik Godha 75a6ac7059 XLSX: Export external refs of Conditional formats in <extLst>
This is an extension of 64414578751993d48eb5f806ec85bc9f60b5f269,
external references of conditional formats in <extLst> are not being
exported.

bug-document: forum-mso-de-108610.xls
Change-Id: I748bd229123ec987c68ecdd20aebfdbf14fa4fb2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202811
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204261
Tested-by: Jenkins
2026-04-25 10:19:13 +02:00
Karthik Godha 0ff5e85c73 XLSX: Use "#REF!" for invalid user-defined functions
This is a regression from bce84f279755171addf29b61f4e8b09e89026c44,
for empty user-defined functions use "#REF!"

bug-document: forum-mso-de-49320.xls
Change-Id: I67d43b8adaf53c1d54aaf91db58dfff3b005310d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201983
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
(cherry picked from commit 66e7fb01de87ad8cb15fe56539549eca158e7ab6)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202812
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204260
Tested-by: Jenkins
2026-04-25 10:19:05 +02:00
s-AustinAvery 4771e823dc tdf#168520 give automated tests more readable names
testTdf147196 renamed to testTdf147196TitleCaseMultilineTransliteration
testTdf148148 renamed to testTdf148148CaseWhitespaceOnlyTransliteration

Change-Id: I74dcb6d14ca1c073b0053a3dbc15c786b6c672e1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204201
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
2026-04-25 09:35:01 +02:00
Christian Lohmaier 709c16676a follow-up fix to the ant update in winget configuration files
ac3cd43c08 didn't adjust the checksum so
the admin step would fail, and also didn't adapt the user step to use
the new file.

Change-Id: I0d5133eb5e62ec0cb23c56a85dfee3eaa2779cea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204319
Tested-by: Jenkins
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-04-25 09:24:46 +02:00
Sampath-1984 938a0f670d tdf#129162 PDF Export: Disable range when whole-sheet export is active
Added ToggleSinglePageSheetsHdl in impdialog.hxx and implemented it in
impdialog.cxx following the pattern of ToggleAddStreamHdl. The handler
disables all range widgets when 'Whole sheet export' is active, as it
overrides sheet selection entirely. A new variable
bDialogUsedThisSession was introduced that checks if the user had used
the dialog to export as pdf once in the current session. This was done
so as to always initialize the 'whole sheet export' to false on dialog
pop up for first time on current session, and then to persist the user
selected state throughout the sesssion and reset on session restart.
Also added a test to check for the disabling of range field in
calc_tests4 folder under the method test_singlePageSheetsDisablesRange.
Change the following files:
filter/source/pdf/impdialog.cxx
filter/source/pdf/impdialog.hxx
sc/qa/uitest/calc_tests4/tdf129162_singlepagesheets_disables_range_options.py

Change-Id: I81390ff1d173ac05d7178440775efa1dbbf106bd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202286
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
2026-04-25 09:22:47 +02:00
Julien Nabet 9d510964a9 Related tdf#140226: use StaticWhichCast (chart2 part 2)
+ simplification of some other cases of static_cast with nWhichId

Change-Id: Ic54b0e2814c253494f69b9f3f926e349f3be035f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204316
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-04-25 08:41:21 +02:00
Xisco Fauli 3058799939 libgpg-error: upgrade to 1.60
Downloaded from https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.60.tar.bz2

Change-Id: I3abfb40e410bc880cb55defccbdb1871c296c341
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204312
Tested-by: Jenkins
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
2026-04-25 08:35:14 +02:00
Xisco Fauli f583da1357 lcms2: upgrade to 2.19
Downloaded from https://sourceforge.net/projects/lcms/files/lcms/2.19/lcms2-2.19.tar.gz/download

Change-Id: I5085cf14326420377ac56d349c88be179c6696a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204314
Reviewed-by: Taichi Haradaguchi <20001722@ymail.ne.jp>
Tested-by: Jenkins
2026-04-25 08:09:30 +02:00
Christian Lohmaier 1b1c38716d update credits
Change-Id: I8769d56c5f811523564f867204964f8c28220727
2026-04-24 21:13:25 +02:00
Christian Lohmaier 08f3f447fb remove additional PathFormatUnix wrapper
the existing one already handles both cases, and the difference only
mattered for wsl where the configure step is run in a different
environment (the wsl distro container) than the build, so configure
needs to see the paths as seen from within wsl vs the build then needs
to have windows paths.
For cygwin the configure and build env are the same, so if configure
step can see it, then also the build (and vice versa) - however
AC_PATH_PROGS still only treats a path starting with / as valid, so also
change the $formatted_path_unix to unix-style for cygwin.

Change-Id: I20caf864d7759cc261a01d4de43daa60bf459606
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204109
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2026-04-24 20:17:30 +02:00
Christian Lohmaier dda3781800 Update git submodules
* Update translations from branch 'master'
  to 92a5bf090c8e6ff3f19567b1a4f9faa7f97830dd
  - update translations for master
    
    and force-fix errors using pocheck
    
    Change-Id: I9ec60d8c463d2bbee61602421d55244fe505a38d
2026-04-24 20:14:34 +02:00
Olivier Hallot bae5f8e1d6 Update git submodules
* Update helpcontent2 from branch 'master'
  to 941bb8839bc394a8099417dc48a5ac7372f57821
  - Fix bad links in scriptforge help page
    
    Change-Id: I08d0c904565ee9411cff6b3f6b2caab9c2190384
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/204315
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
    Tested-by: Jenkins
2026-04-24 16:36:47 +02:00
Olivier Hallot af23c0b3e2 Update git submodules
* Update helpcontent2 from branch 'master'
  to ee8dd71b9bb5cc9130a3251d65578ca814397894
  - tdf#168783 text orientation in page tab of page style dialog
    
    + removal of the outdated screenshot
    + Note: preview of vertical orientation is wrong, character should be rotated.
    
    Change-Id: Ie443c661c274b7569d521a163f704329e255188f
    Reviewed-on: https://gerrit.libreoffice.org/c/help/+/204310
    Tested-by: Jenkins
    Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2026-04-24 16:36:29 +02:00
Aron Budea d7b20f68c1 formula: check if next token exists before dereferencing
Can cause crash with a number of XLS files, eg. ooo40608-1.xls,
fdo58541-1.xls, forum-mso-en4-73512.xls

Happens since bce84f279755171addf29b61f4e8b09e89026c44.

Change-Id: If7def874f7c10701a921ed947620afd14da43b69
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201814
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Balazs Varga <balazs.varga@collabora.com>
(cherry picked from commit 3fdf14069f6629cc9662eb693c2935036d8b8f7b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202647
Reviewed-by: Aron Budea <aron.budea@collabora.com>
Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204259
Tested-by: Jenkins
2026-04-24 16:00:24 +02:00
Andras Timar 5db6c203f3 tdf#168107 emfio: render ETO_GLYPH_INDEX text as glyph outlines
also tdf#137440 and tdf#102780

EMF files with pre-shaped text (e.g. Arabic) use ETO_GLYPH_INDEX in
EMR_EXTTEXTOUTW records. The string data in these records contains
font-specific glyph indices (16-bit IDs), not Unicode codepoints.

Previously, emfio read these glyph indices as Unicode text via
read_uInt16s_ToOUString, then passed them to DrawText which creates
a MetaTextArrayAction. On playback, VCL/HarfBuzz would shape these
fake "characters" again, producing double-shaped garbage output.

Fix this by detecting ETO_GLYPH_INDEX and rendering the pre-shaped
glyphs as filled polypolygon outlines, bypassing text shaping entirely.

Implementation:

- Add OutputDevice::GetGlyphOutlines() as a new VCL public API that
  takes raw glyph IDs and returns per-glyph B2DPolyPolygon outlines
  by calling LogicalFontInstance::GetGlyphOutline() directly. This is
  needed because LogicalFontInstance is in VCL's private headers and
  not accessible from emfio.

- Add MtfTools::DrawGlyphs() in emfio that mirrors the DrawText()
  setup (position/DX/DY mapping, font/color/alignment MetaActions)
  but instead of emitting MetaTextArrayAction, it obtains glyph
  outlines via GetGlyphOutlines() on a VirtualDevice, positions each
  glyph using the DX/DY array, and emits the combined result as a
  filled MetaPolyPolygonAction with the text color.

- Branch in emfreader.cxx: when ETO_GLYPH_INDEX is set on the Unicode
  variant (EMR_EXTTEXTOUTW), read glyph indices as sal_uInt16 values
  and call DrawGlyphs() instead of DrawText().

- Since glyph indices are font-specific, DrawGlyphs() checks font
  availability via IsFontAvailable() before rendering. If the required
  font is not installed, it returns false and the code falls back to
  the standard DrawText() path (same as before this change).

- Remove the stale SAL_WARN_IF for ETO_PDY|ETO_GLYPH_INDEX, since
  both flags are now handled.

Change-Id: Ib6e0a0b1accfe61ff871c391d02f4c529764438c
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/318
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit b260c2a6d8313c80720e34a366f01bcd0e429f47)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204245
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-04-24 15:50:37 +02:00
Michael Weghorn 6d768a2b24 tdf#130857 qt weld: Support chart "X Axis Title"/"Y Axis Title" 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 Writer
* "Insert" -> "Chart"
* right-click underneath the legend to open context menu
* select the "Insert Titles..." context menu entry
* type "TITLE" for the "X axis" field and confirm with OK
* select the new "TITLE" title of the X axis
* right-click on it to open the context menu
* select the "Format Title..." context menu entry
  to trigger the "X Axis Title" dialog

Prior to this commit, the dialog would already show up,
but the content of the "Alignment" tab page newly declared as
supported in this commit would be missing when use of
native Qt widgets was enabled.

Change-Id: I333a2d41220a1a9708c0621196d8546b44f06482
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204219
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:26:35 +02:00
Michael Weghorn 361a743058 chart: Resave titlerotationtabpage.ui with glade 3.40
This UI file is used for the "Alignment" tab
of the chart dialog for the X/Y Axis title that can be
triggered like this:

* start Writer
* "Insert" -> "Chart"
* right-click underneath the legend to open context menu
* select the "Insert Titles..." context menu entry
* type "TITLE" for the "X axis" field and confirm with OK
* select the new "TITLE" title of the X axis
* right-click on it to open the context menu
* select the "Format Title..." context menu entry
  to trigger the "X Axis Title" dialog

Change-Id: I92826df1c9f2e719ff147a09ae2d3d005e9529ad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204218
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:26:28 +02:00
Michael Weghorn 32424ecf6c tdf#130857 qt weld: Support chart "X Axis"/"Y Axis" 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 Writer
* "Insert" -> "Chart"
* double-click on the Y axis to open the "Y Axis" dialog

Prior to this commit, the dialog would already show up,
but the content of the 3 tab pages newly declared as
supported in this commit would be missing when use of
native Qt widgets was enabled.

Change-Id: I207065d46b784145dec98fd3e0d10ec8842925fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204217
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:26:20 +02:00
Michael Weghorn 33b3ab558b chart: Resave tp_axisLabel.ui with glade 3.40
This UI file is used for the "Label" tab
of the chart dialog for the X/Y Axis that can be
triggered like this:

* start Writer
* "Insert" -> "Chart"
* double-click on the Y axis to open the "Y Axis" dialog

Change-Id: I7e563c0163d946ebecd059db4ff6b2a0fbc6abb8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204216
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:26:12 +02:00
Michael Weghorn 04d182f5b1 chart: Resave tp_Scale.ui with glade 3.40
This UI file is used for the "Scale" tab
of the chart dialog for the X/Y Axis that can be
triggered like this:

* start Writer
* "Insert" -> "Chart"
* double-click on the Y axis to open the "Y Axis" dialog

Change-Id: I2c3f538aea3b3d94e2079952e80a32803cc6e0e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204215
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:26:03 +02:00
Michael Weghorn 9ed4c664c0 chart: Resave tp_AxisPositions.ui with glade 3.40
This UI file is used for the "Positioning" tab
of the chart dialog for the X/Y Axis that can be
triggered like this:

* start Writer
* "Insert" -> "Chart"
* double-click on the Y axis to open the "Y Axis" dialog

Change-Id: I77e466e454d8fe74f04af32723795aa54d44a5cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204214
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:25:56 +02:00
Michael Weghorn 180b8397da tdf#130857 qt weld: Support chart "Legend" 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 Writer
* "Insert" -> "Chart"
* double-click on the legend to open the "Legend" dialog

Prior to this commit, the dialog would already show up,
but the content of the "Position" tab page would be
missing when use of native Qt widgets was enabled.

Change-Id: Ibd3d5c9b9a9ae2335ac9f59d7929c08753685f70
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204213
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:25:48 +02:00
Michael Weghorn 06bf8e0bbb chart: Resave tp_LegendPosition.ui with glade 3.40
This UI file is used for the "Position" tab page
in the chart "Legend" dialog that can be triggered
like this:

* start Writer
* "Insert" -> "Chart"
* double-click on the legend to open the "Legend" dialog

Change-Id: Iba5aa5d09cda6bc318cbb5627a9074dba7ad5729
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204212
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:25:41 +02:00
Michael Weghorn bb3817930d tdf#130857 qt weld: Support chart "Data Series" 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 Writer
* "Insert" -> "Chart"
* double-click on a bar in the chart to open the
  "Data Series" dialog.

The SchAttribTabDlg class implementing this dialog
also implements various other dialogs and always
uses the same "modules/schart/ui/attributedialog.ui"
.ui file.
As a consequence, other dialogs implemented by this
class may temporarily be not fully functional with
qt6 and SAL_VCL_QT_USE_WELDED_WIDGETS=1 until all
.ui files used by those as well are supported.

The plan is to look further into these in the near
future.

Change-Id: I2229146a309d0cb88da0e74d58c30008e28d3b3b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204211
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:25:34 +02:00
Michael Weghorn 52a86394b9 tdf#130857 chart: Don't hardcode size for chart color palettes icon view
Instead of hard-coding a size based on the icon size
for the icon views in ChartColorPalettes, rather let
the toolkit allocate a proper size.
Tweak some properties in the .ui file to achieve
proper auto-sizing.

Maybe, hard-coding the size was done because before

    commit 478b712ea1
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Aug 7 09:45:15 2025 +0200

        tdf#167658 vcl: Honor GtkIconView::columns + calc size

, the vcl implementation didn't take the column count
set in the .ui file into account when the original
code was was introduced in

    commit a26c93a630
    Date:   Sun Aug 10 22:33:37 2025 +0200

        chart color palettes: switch from drawingarea to IconView

.

In any case, it seems unnecessary now, and not hard-coding
the size e.g. results in all rows being visible at once
when using the gen vcl plugin for the following dialog,
instead of showing only part of them and using a scrollbar
despite there being plenty of space below the icon view.

Steps to trigger a dialog using this:

* start Writer
* "Insert" -> "Chart"
* double-click on a bar in the chart to open the
  "Data Series" dialog.
* switch to the "Color Palette" tab

Now, all rows are shown at once for both, the gtk3
and the gen vcl plugins.

The code is also used in the chart palette popup
that can be triggered like this (and whose .ui
file is also tweaked in this commit a bit):

* start Writer
* "Insert" -> "Chart"
* click on a bar in the chart
* switch to the "Properties" sidebar deck
* in the "Colors" section, click on the arrow
  of the button to open the popup

This commit also prepares for supporting the
dialog mentioned above with native Qt widgets
in an upcoming commit.

Change-Id: Ibf1cb597bc93f29033ab76432ca08af0b029cc0d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204209
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:25:25 +02:00
Michael Weghorn 9061bd0eee chart: Pass outdev by ref to ChartColorPaletteHelper::renderColorPalette
Change-Id: I8bcac85c115968a4949916a9dae24a02da851173
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204208
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:25:17 +02:00
Michael Weghorn 0fa182a059 tdf#130857 qt weld: Support "Area" 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 Impress
* select the title text box
* right-click on the border to open the context menu
* select the "Area..." context menu entry

Change-Id: Ie832e930b2466b7955f3d11ef0f9c4f1fffa5f0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204207
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:25:08 +02:00
Michael Weghorn 4e98b21508 tdf#130857 Define widgets in "Shadowing" 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.

A dialog using this UI file for the "Shadowing" tab
page can be triggered like this:

* start Impress
* select the title text box
* right-click on the border to open the context menu
* select the "Edit Style..." context menu entry

Change-Id: If57bb3d9b26532b907e3a5e8f606476c17c9d3ab
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204206
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:59 +02:00
Michael Weghorn 5dcb9feaf8 tdf#130857 qt weld: Support Impress dialog to edit style
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 Impress
* select the title text box
* right-click on the border to open the context menu
* select the "Edit Style..." context menu entry

Change-Id: Ibab6aae23b2d75373923030a2a1907e2eb844d9e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204205
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:24:52 +02:00
Michael Weghorn c2eb338d00 cui: Resave shadowtabpage.ui with glade 3.40
However, restore

    <property name="label" translatable="no"></property>

for GtkMenuButton that got lost on resave, to avoid
unwanted side-effects.

This UI file is used for the "Shadowing" tab page
in the dialog that can be triggered like this:

* start Impress
* select the title text box
* right-click on the border to open the context menu
* select the "Edit Style..." context menu entry

Change-Id: Ie28644af49e9f5812e9e20d07a7e29e6d131835c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204204
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-04-24 14:24:45 +02:00
Michael Weghorn d70dd41c09 sd: Prefix SdPresLayoutTemplateDlg members with m_
This makes it easier to distinguish them from
local variables.

Change-Id: I175b14e8461236cd1fe309ebba65d1fba77dd177
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204203
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:38 +02:00
Michael Weghorn 9a0813e45f sd: Replace IS_OUTLINE macro with a local function
Change-Id: I8eb77f38f1c8792a4c5b716095b476b9aabeb71d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204202
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:28 +02:00
Michael Weghorn 1701959e4b sw a11y: Leave Envelope dialog text views on simple tab key
Set the "accepts-tab" property to false for the GtkTextViews
so pressing the tab key moves focus to the next field in the
dialog, instead of inserting a literal tab character.

This simplifies using the dialog when using the keyboard only.
For the VCL and GTK implementations, pressing Ctrl+Tab
would previously be needed to move focus, which is less
intuitive.

Setting the property does not technically prevent inserting
tabs, they could still be inserted by copy-pasting
text containing tabs; just pressing the tab key while
the text view has focus won't insert them any more.

This is in the "Envelope" tab page of the "Envelope"
dialog that can be triggered like this:

* start Writer
* "Insert" -> "Envelope..."

Change-Id: I1d67a19fbabc876cce8b00eba29ef7e60cfbc954
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204189
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:19 +02:00
Michael Weghorn 981b88a729 tdf#130857 qt weld: Support Writer "Envelope" 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 Writer
* "Insert" -> "Envelope..."

Change-Id: I66cfcbb4736374570e492288326ebfb4b70bdf51
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204188
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:10 +02:00
Michael Weghorn e91d2a7849 sw: Resave envaddresspage.ui with glade 3.40
This UI file is used for the "Envelope" tab
page of Writer's "Insert" -> "Envelope..."
dialog.

Change-Id: Id8c406ccf6d9f4d72c1d96a89402200f82a2eb5f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204187
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:24:03 +02:00
Michael Weghorn b0888ec0ee cui: Return std::unique_ptr in lcl_CreateNumSettingsPtr
Change-Id: I5f7730ead331f864f78fcb8d438a6611b759c038
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/204186
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-04-24 14:23:56 +02:00