24582 Commits
Author SHA1 Message Date
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 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 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
Aron Budea 52277daba8 cool#16279 sd: inherited autofit in PPTX lost on import
When an empty PPTX presentation was opened and saved,
its Title and Content layout/master slide lost its
autofit setting.

Original slide master had <a:normAutofit/> element
in its placeholders, which turned into <a:noAutofit/>.

This happened, because on import the inherited property
got overwritten by the default no autofit.

Change-Id: If9842d4c53eb283b9497b46198aaea4911413bc9
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/14276
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit afe4932986453513ea1a50b1143de3827f39c0ed)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211865
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-06 16:26:14 +02:00
Xisco Fauli 942302efea CppunitTest_sd_export_tests-ooxml4: split in two
it already has 111 tests

Change-Id: I1d0596702d2fc69389436c8d02ae074fb0287f9a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211829
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-05 22:05:05 +02:00
Dmytro Kulyk 57cc833541 tdf#173712 sd: test numbering of PPTX lists that repeat startAt
The expected numbers are what PowerPoint for Windows shows.
The tests cover: the same startAt on every paragraph, a new startAt
or numbering type, plain and unnumbered paragraphs between items,
nested lists, and startAt from a:lstStyle.

Change-Id: I75d9bfc88ca2e1d73442b28fb039c20fc1f907be
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211783
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
2026-10-05 22:03:02 +02:00
Caolán McNamara 3130f90ac9 crashtesting: ClickAction_VANISH missing from translations
seen on converting ooo103896-3.odp to pdf

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I5fb08b84fd0b84f704421e0af9a47a8ef34af957
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7232
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 7b41c8b3f607ff8e6bd3a0d6ec23ff481921b9aa)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208280
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-05 20:33:14 +02:00
Xisco Fauli 14d535067a CppunitTest_sd_export_tests-ooxml3: drop test dependency
It was added in
commit de3898aecb
Author: Stephan Bergmann <sbergman@redhat.com>
Date:   Sat Jan 22 10:56:15 2022 +0100

    Add missing test dependency

    > [_RUN_____] SdOOXMLExportTest3::testTdf140912_PicturePlaceholder

but now testTdf140912_PicturePlaceholder lives in
CppunitTest_sd_export_tests-ooxml4 after
commit 8d6f1a6448
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Mon Oct 30 17:21:05 2023 +0100

    CppunitTest_sd_export_tests-ooxml3: split in two

Change-Id: I840829973cf2e55929b4ca3cba86b1d81031a582
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211824
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-05 20:33:02 +02:00
Andrea Gelmini cfbd347df3 Fix typo
Change-Id: Ibb16391a70408ab9141f91ae0b85973a950712d5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211833
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-10-05 17:08:50 +02:00
Armin Le Grand (collabora) 5519a3d407 Correct StyleSheet handling when cloning to different Model II
Until now the 'local' StyleSheet got set, but that may
not be the same as the original. It was/gets identified just
by searching by name and type, not comparing content.

What to do? We could...

(a) the Style-Friendly way:
 - check if StyleSheet is identical
  - if not, create a new in-between StyleSheet hosting missing Items
  - if yes, use, done.

(b) the pragmatic/practical way:
 - Just hard-attribute the Items that are detected as different
   similar to what BurnInStyleSheetAttributes does/did, but only
   for a view differing Items

(b) is the most simple for now, but will lead to more hard
attributes. The other possibilities will be better in the
long term. For now, I will use (b).

Note that there are more cases in that VERY complex and grown
stuff emerging from SdDrawDocument::PasteBookmarkAsPage. More
things will need to be fixed, see this as a 1st step.

Needed to adapt postProcessAfterCloneToDifferentModel due to
UT testTdf96206 failing, see comment there for details.

That 1st implementation showed weaknesses with those Items
critical and only on MasterPages, so decided to give up on
that and implement ContentCompare to SdPage::Equals. That
was easier than thought: No parameter needed, only used by
InsertBookmarkAsPage_FindDuplicateLayouts::operator(). Thus,
SdPage::Equals needs no change, just SdrObject::Equals.

Due to still problems with Items corrected in Objects on
MasterPages I will for now exclude this.

Could now isolate remaining problems, these are defaults
and/or PresObj things on MasterPages. Important is that I can
completely correct all Items for all Objects in
postProcessAfterCloneToDifferentModel. I can react to these
false-positives in the ContentCompare in SdrObject::Equals.

Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I10e17c8d6a893dbe92ab716182f07bafce1f3284
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6595
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
(cherry picked from commit 92ffaeac04c5c8586006b026f29ce12fba3674f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211729
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-05 08:52:54 +02:00
Armin Le Grand (collabora) 14312e4eb8 Correct renaming of ObjectStyles II
Whatever SdDrawDocument::renameObjectStylesIfNeeded is
intended to do, it changes the look of SdrObjects when
doing what it does.

I am not sure if these are just the 'wrong' StyleSheets
that got copied or something else. It may happen when
slides from more than two sources get copied to a
document: The newly imported styles get 'extended' names
following a naming scheme. When pasting from a 2nd
document, the *same* names for slides get created using
that naming scheme, so before these were re-used here
assuming they have the same content - which is wrong.

To just *ensure* that the objects look will not change,
compare previous ItemValues with those ItemValues after
changing the style, that guarantees equal look - for the
cost of some more hard-set attributes, but less
StyleSheets.

I see that these corrections *are* done, so that is a
clear hint that re-setting these Styles in this whole
import has basic errors, I have to correct the values.

Also use a SdrObjListIter, the version before *only*
visited all SdrObjects plain on SdrPage, leaving all
GroupContent out.

Signed-off-by: Armin Le Grand (collabora) <Armin.LeGrand@collabora.com>
Change-Id: I0cf1f823bddcea0b0087244268d1dc224da39638
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/6449
Reviewed-by: Armin Le Grand <armin.legrand@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 605790cb198686d382c809de949094755e70e833)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208432
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-05 08:52:26 +02:00
Xisco Fauli 7003eb6fc6 fix headers
Change-Id: Ia2732cc041367bc113654bc424ea6621f3961e9f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211724
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-05 08:52:04 +02:00
Noel Grandin b00fc0d4e7 add some editeng/sd unit tests
which will be useful in upcoming changes to EditEngine/Outliner

Change-Id: I762a5b213f3ee9a65a83ac8b17d377f9d91a2a2a
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13817
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit a6899cb5b04532f2efa24619b93ba0e9fef6c344)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211654
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-10-01 13:53:06 +02:00
Noel Grandin 212d17f7ea add a non-const GetEditEngine() method to Outliner
to avoid const-casting all over the place

Change-Id: I75f3442341894dbe4e12cc7995669dc7f3bf63f7
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13354
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 318e2cf839c6311d4a69572b4534f554bdda3f96)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211604
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-10-01 09:01:52 +02:00
Sergey Anisimov 0a327fc06f AnnotationPopup close fix
There is a bug where, an impress comment does not close when clicking outside of it.
More precisely, the comment does close, but is immediately opened again.
(Qt/gen)specific bug, not reproducible with GTK

The issue is caused by the handling of NotifyEventType::MOUSEBUTTONDOWN: it triggers
FloatingWindow::EndPopupMode(). However, when NotifyEventType::MOUSEBUTTONUP
is received, the call chain eventually reaches FuSelection::MouseButtonUp(),
which accesses an SdrObject from the SdrMarkList (GetMarkedObjectList()).
At that point, the list still contains the popup that is supposed to
be opened, so the comment gets opened again.

Change-Id: Ieb5691812009059d2100976932c34876cca5bc4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211275
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-30 16:11:27 +02:00
Andreas Heinisch bc6c2272ba tdf#111085 - Exchange master page only once per master
Exchanging the master page already updates all slides using the same
master, so it is enough to update one selected slide per master.

Change-Id: I1a76d20c33151c30679f5b11d179ffb2052e9438
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211580
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-09-29 21:14:51 +02:00
Aron Budea e9801baf62 oox: don't cast transformation values to sal_Int16
They might not fit and overflow.

This was a regression from
a07bad0cc8
and came to light with
40aaaeff1d2ff4f6ba5cd2c8fc80356d38996e03

Change-Id: I8f71449d854fd6190511ce72f2603186f6469002
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13619
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit ca77cd2a4f9fbe7655d3ca5cc2e1e965389e0d3f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211529
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-29 08:45:22 +02:00
Mike Kaganski 0b3a0fae8c Related: tdf#166401 fix writing properties for empty placeholder
Regression after commit b41a780d139ec6ca5a5514db972ccf0e50058dfc (tdf#166401:
support custom placeholder prompt text, 2026-08-17), where a placeholder that
authored no prompt stopped writing text and got a bare <a:p/> instead.

On a slide an empty presentation object reports no text through UNO anyway, so
the paragraph the export wrote for such a placeholder never had a run. It
carried the properties, and those are the formatting. In PowerPoint 2016 the
original title showed white at 22pt, indented 56.5pt; the round-tripped one
showed bold black at 17pt, indented 18pt.

Write the paragraph the way a shape with no text already does: the paragraph
properties, the run properties in endParaRPr, and no run. The prompt still
stays out of the file. That branch of DrawingML::WriteText is now a method of
its own, called from both places.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I034a4e14f388c90872069d32b303c6c143c1814c
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10768
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit e2859f5b23f53281d80cbad4c56db1764aaf1406)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211538
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-29 08:45:18 +02:00
Aron Budea e577a27585 sd: adjust theme ids when exporting notes to PPTX
Previous numbering was from before the
deduplication in commit
9205b4eb09.

Deduplication collapses themes for the same master
to a single XML, and the theme for notes master
didn't follow in numbering, causing a big gap,
eg. theme1.xml being followed by theme13.xml.

Use mnThemeIdMax introduced there.

Change-Id: I5e9ddb11716543bc816d47f5aac03bb2f182dc62
Signed-off-by: Aron Budea <aron.budea@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13448
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit a1f3059174fa5ff51d258b5a2125884cb1b4e23b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211513
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-28 18:47:00 +02:00
Tomaž Vajngerl 8c2f779a93 sd: hide text boundaries for PDF in Draw
A PDF opened in Draw fills every page with a single imported image,
so the text boundary guides carry no meaning there. Drawing the page
background as transparent recently let those guides show through,
where the opaque background used to hide them.

Skip the guides whenever the document is a PDF, no matter what the
"show boundary for margins" setting says. Ordinary Draw documents
still follow the setting. The flag is recomputed on every redraw in
DrawView::CompleteRedraw, so the PDF exclusion goes there.

Add a test that renders a PDF page and checks the inner page border
is not drawn in the boundary color.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ia2ea9116ef0a32ef0fb78cd35d926f668fa78705
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4812
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 5fa4bf9c49fb1416f005607c72b904388fc7170a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209434
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-28 16:28:27 +02:00
Caolán McNamara f52c3d3d24 pdf decomposing, widen to fill the textbox don't shrink
My test case got unwanted line wraps

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: Ie9cc9e00560ae91eb32fdeabaf8c2db0f18e5343
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4461
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit aae05668900e7465edc2019666e019608ca3ce7a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209381
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-28 15:53:41 +02:00
Caolán McNamara 370e262391 Related: tdf#163590 apply the autofit scales stored in pptx
A PPTX shape keeps the fit the file was saved with until its text is
edited, and after that it is fitted by our own rules.

The fontScale and lnSpcReduction of a normAutofit never reached the
shape, for three reasons.

Import passed fractions to the TextFitToSizeFontScale and
TextFitToSizeSpacingScale properties, which are percentages.

A missing lnSpcReduction was read as 100000, a full reduction,
instead of 0.

When both properties were set in one setPropertyValues call along
with TextFitToSize, the collected fit item was applied last and
overwrote the scales.

Change-Id: I6b7fcfb6a1822f289f18b8ce77e78526a80f8944
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/13539
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit c6938c35aa527883e2fd867f36e22c396601d376)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211506
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-28 14:01:41 +02:00
Bayram Çiçek 5c8b89c3b6 starmath OOXML: keep the font color of text in a formula
Steps to reproduce:
1) Write a formula with a color command, such as color red { 1 }.
2) Save the document as DOCX and open it again.
The formula comes back at the default color, and the color command has
gone from its text.

A run is one stretch of text with a single set of formatting. In a
formula each run carries two property elements. The import already read
the math element m:rPr. The font color sits in the text element w:rPr.
The import skipped that one as an unexpected tag, and the export never
wrote it.

Read w:color on import and put a color command around the text of that
run. A color that StarMath has a name for is written with that name, so
a formula written as color red reads the same way after a round trip.
Other colors become hexadecimal digits, which the parser reads only in
upper case. A value of auto leaves the default color in place, and so
does black, which keeps ordinary formulas clean and lets the color
follow a dark document theme.

The braces of a color command hold an expression, and a run holds
whatever text the document put in it. A run of operators is written as a
literal, which is an expression and keeps the color. A run that does not
parse for any other reason keeps no color command, so the formula reads
the way it did before any color was carried over. The import never
writes command text that fails to parse.

On export, write w:color for a run whose node has a color of its own, but
only for a DOCX. A slide or a sheet never declares the w namespace, so the
color stays out of a presentation or a spreadsheet. The tree has been
arranged by then, so a surrounding color command has already reached the
leaf nodes.

The color of the lines and signs a formula draws, such as a fraction
bar, travels elsewhere and is not covered here.

Added the testMathColor and testMathObjectColorOmittedInSlide unit tests.

Signed-off-by: Bayram Çiçek <bayram.cicek@collabora.com>
Change-Id: I4207aab6a363e5f841de58e3f743d9e010609c10
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10046
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit dfcc0c42df5c774f4087f425cad0af81ecea6b5e)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211415
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-24 13:05:07 +02:00
Michael Weghorn 25eea781f0 [API CHANGE] Pass XAccessible to XAccessibleGroupPosition::getObjectLink
Similar to previous commit

    Change-Id: I5db3a99bb8d78099e3b136cbcd402fe2ae49d49c
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Sat Sep 19 13:12:54 2026 +0200

        [API CHANGE] Pass XAccessible to XAccessibleGroupPosition::getGroupPosition

, also pass an XAccessible instead of a uno::Any to
XAccessibleGroupPosition::getObjectLink.

See the above-mentioned commit for more background.

Change-Id: I8440b91eff66a18bc6e431a0ad91362e895d945c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211217
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-20 22:24:29 +02:00
Michael Weghorn a19da3e1cd [API CHANGE] Pass XAccessible to XAccessibleGroupPosition::getGroupPosition
Instead of passing an XAccessibleContext wrapped in a uno::Any,
pass the XAccessible. This drops an extra level of
wrapping/unwrapping.

The same will be done for XAccessibleGroupPosition::getObjectLink
in an upcoming commit.

Since the XAccessibleGroupPosition interface
(and the UNO a11y API in general) is unpublished
and meant for internal use only, changing it should
be unproblematic.

Change-Id: I5db3a99bb8d78099e3b136cbcd402fe2ae49d49c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211216
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-20 22:23:52 +02:00
Michael Weghorn 6b81401b71 sd a11y: Switch AccessibleObject::mxParentAccessible to OAccessible
Use the more concrete OAccessible instead of the abstract XAccessible
UNO interface for that member.

Drop now unnecessary querying for the XAccessibleContext UNO
interface, as OAccessible implements that interface itself
as well.

Change-Id: I689af3c6b72f442967ab7fe4c39d438fc68b09fe
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211215
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-20 22:20:48 +02:00
Michael Weghorn b5113cdb5c sd a11y: Pass OAccessible to AccessibleObject::SetAccessibleParent
Use the more concrete OAccessible for the parent param
instead of the abstract XAccessible UNO interface, to
make clear that the parent is always an OAccessible subclass.

Change-Id: I6447f6131e809baddc24a4b413fe4d4748aa7a7a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211214
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-20 22:20:11 +02:00
Michael Weghorn 958481f2e2 sd a11y: Switch PresenterAccessible::mxAccessibleParent to OAccessible
Use the more concrete OAccessible instead of the
abstract XAccessible UNO interface for that member.

Change-Id: Id811da24db3e48baefa22343d999541cd31546af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211213
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-20 22:19:44 +02:00
Michael Weghorn c408a9cfe6 sd a11y: Use concrete type in AccessibleSlideSorterView
Use the concrete known type for the local var instead
of the abstract XAccessible UNO interface in
AccessibleSlideSorterView::getSelectedAccessibleChild.

Change-Id: I7253df538dd0aa2e9003575a33b4572353e852b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211182
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-20 22:11:44 +02:00
Michael Weghorn 797c4961a3 sd a11y: Use concrete type in AccessibleSlideSorterView::getAccessibleAtPoint
Use the concrete known type for the local var instead of the
abstract UNO XAccessible interface.

Change-Id: I2dfb9f5367d45bed768097f4be73182a2defc598
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211181
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-20 22:11:28 +02:00
Michael Weghorn 796861ec7b sd a11y: Drop local var in AccessibleSlideSorterView::getAccessibleParent
Return the result right away instead of first assigning
it to a local XAccessible variable.

Change-Id: I3451890a155c7791ec6f08cada34f3fbbc317ea3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211180
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-20 22:11:11 +02:00
Michael Weghorn 1bed5288c2 sd a11y: Return Reference in AccessibleSlideSorterView::...::GetAccessibleChild
Return an rtl::Reference in AccessibleSlideSorterView::Implementation::GetAccessibleChild
and related methods instead of a plain pointer.

Change-Id: I7ecf8c21ca8220408d1633aa2243fdbda987aadb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211179
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-20 22:10:36 +02:00
jan 95e804b637 tdf#171892:Icons in menus only on most important items
This removes icons for many menu entries to only have icons
for the most important commands, as suggested in the design guidelines
(See: https://wiki.documentfoundation.org/Design/Guidelines/MenuBar)

Change-Id: I687aa79333ab9f391e8b51c4900a348622f7ab3a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210342
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-09-15 10:59:51 +02:00
Heiko Tietze c8ad160b73 Show the section context menu
Change-Id: I0e0fb6271f2a0c060b3eed9df42a744b7c7e50c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210685
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
2026-09-14 13:14:06 +02:00
Michael Weghorn bcc91ade19 sd a11y: Pass OAccessible for AccessiblePageShape parent
Switch param for parent param in the ctor from the abstract
XAccessible UNO interface to the more concrete OAccessible.

Change-Id: Id34208c539c45807fc8f957e565df2b0d833acff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210676
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-12 22:13:59 +02:00
Andrea Gelmini a5fc9ac9ab Fix typos in code + comments + some reformatting
Change-Id: Ic16cfe81371046c2ba131f7e7bca53824c3a24cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210573
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-10 22:07:10 +02:00
Andrea Gelmini b36dd72872 Fix typos
Change-Id: Ie0d39dd4bb84d346ca2b19d0965e31fecc75d878
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210572
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-09-10 16:05:29 +02:00
Andrea Gelmini 6410690a38 Fix typos in code and comments.
Change-Id: I8f1419c60c8aec0784e6de685ba7f630ae99638d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210571
Tested-by: Julien Nabet <serval2412@yahoo.fr>
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-09-10 14:00:17 +02:00
Andreas Heinisch 4a419fa33c tdf#173370 - Avoid unchecked GetSdrPageView()
Change-Id: I13c762e48209dadead24e3a1fec81b7bcd489d07
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210587
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-09-09 16:51:01 +02:00
Dan Williams e4e60f2769 vcl: standardize Reset dialog button response code
Qt plugin automatically orders buttons for each platform based on
the button's role, which we derive from the Gtk .ui file's
action-widget response code. But to do that conversion from response
code to Qt button role, we need a standard response.

Without a standard response, the button has no role, and gets ordered
to the right of OK/Cancel buttons on Mac. With the correct role, it
is correctly placed far-left along with the Help button.

Change-Id: I16d3126d4999649e7aa6e72ec5e7b1a25f48c2a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210223
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
2026-09-08 13:42:17 +02:00
Tomaž Vajngerl 1d475cdae0 Keep a shape's color and its theme reference in step
The default drawing style names a theme color now, and a PPTX saved
to ODF and back came out with every shape green. A shape that really
did name a theme color lost the reference and came back plain.

A color item holds the color and the theme reference together.
Setting a plain color started from the item the shape inherits from
its style and overwrote the color alone, so the inherited reference
won. Clear the reference, which is what an explicit color means.

The ODF export repeats each shape's fill on a paragraph style,
applied after the graphic style, and the paragraph properties had no
complex color. Carry it there too.

A style's graphic properties took a complex color only when it was
the character one, matched by element name. Match on the context id,
which the fill and stroke colors share.

Add a round trip test through ODF and PPTX with a plain shape, a
themed one, and a themed one with a luminance modulation.

Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Change-Id: Ia9550222d18a243287240e4184666d78d0abdd22
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10060
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 07cf37b104983f765d3e1005f677e0058df12026)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210510
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-06 21:22:35 +02:00
Noel Grandin 1b276f9265 merge the outliner ParagraphData information into the regular EditTextObject
as part of the process of merging the Outliner code into the normal EditEngine paths.

So instead of keeping a bunch of information "on the side" and then having to merge information
from multiple sources, it all lives where it logically belongs.

Also take the chance to rename the depth/getdepth/setdepth
fields and methods to NumberingDepth, which makes the purpose
more obvious.

Change-Id: I314673ee1b9efa14f178ac34a122995a554cd788
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/10551
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 284bbe0af12b96844976f30bb35ade3a327ea76d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210503
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-05 00:09:20 +02:00
Xisco Fauli eb0c65a1a1 UnoApiTest: pass PDFium to parsePDFExport as parameter
so we can check if it's not a nullptr at test level

Change-Id: Icfe580b27f3ad4a28b328f0fac8cf93e05c50b54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210484
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-09-04 15:32:19 +02:00
Xisco Fauli d3d8cef720 CppunitTest_sd_pdf_import_test: drop duplicated code
Change-Id: Ib577343225a58ca08899bae70e0818ed9c4875ef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210481
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-09-04 15:32:12 +02:00
Michael Weghorn 6b7f5e35c9 editeng a11y: Stop declaring AccessibleContext support in AccessibleContextBase
The com.sun.star.accessibility.AccessibleContext UNO service
is unnecessary and not really used for implementing a11y support,
apart from some a11y implementations declaring support for it.
What is relevant is the com.sun.star.accessibility.XAccessibleContext
interface instead.

Stop declaring support for the com.sun.star.accessibility.AccessibleContext
service in AccessibleContextBase and drop related
XServiceInfo::getImplementationName overrides in subclasses,
in preparation of dropping the service altogether in an upcoming
commit.

AccessibleDrawDocumentView currently still declares support
for the "com.sun.star.drawing.AccessibleDrawDocumentView"
service, so let it implement XServiceInfo directly, now that
it no longer inherits that from the AccessibleContextBase
base class.

Change-Id: Ie927cd98f9e1c8eb5a80bfaab5cb1dacb64dc238
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210403
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-09-03 09:21:27 +02:00
Michael Weghorn 553ac44e4f sd a11y: Stop declaring support for AccessibleContext service
The com.sun.star.accessibility.AccessibleContext UNO service
is unnecessary and not really used for implementing a11y support,
apart from some a11y implementations declaring support for it.
What is relevant is the com.sun.star.accessibility.XAccessibleContext
interface instead.

Stop declaring support for the com.sun.star.accessibility.AccessibleContext
service in AccessibleSlideSorterView, in preparation
of dropping the service altogether in an upcoming
commit.

Change-Id: Ie37eacfa7725abd550cb39d7ce3ad53893640c88
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210398
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-03 09:20:20 +02:00
Michael Weghorn ae3c3d7d3d sd a11y: Drop AccessibleDocumentViewBase::getAccessibleParent
This AccessibleContextBase::getAccessibleParent override
calls `ensureAlive()` before calling the base class implementation.

However, the base class implementation already calls that at the
beginning as well, so the override is redundant/unnecessary. Drop it.

Change-Id: I5a3c6756e237903923e2ee5e8e4ac7bed3e54ee8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210380
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-02 14:33:51 +02:00
Michael Weghorn df73eb8eac sd a11y: Pass OAccessible for AccessibleDocumentViewBase parent
Pass the more concrete OAccessible instead of the abstract
XAccessible UNO interface for the parent param to the
AccessibleDocumentViewBase ctor.

Change-Id: I7bc782f2d6f9b2debd49230cd07eff5013a0be9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210379
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-02 14:33:43 +02:00
Michael Weghorn fbb0fb4aac sd a11y: Pass OAccessible for AccessibleDrawDocumentView parent
Pass the more concrete OAccessible instead of the abstract
XAccessible UNO interface for the parent param to the
AccessibleDrawDocumentView ctor.

Change-Id: I68fe5e93e131a44f8e9d794ad73161353ab634cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210378
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-09-02 14:33:34 +02:00