Commit Graph
20281 Commits
Author SHA1 Message Date
Justin Luth 78f371e500 NFC tdf#111843 SfxViewShell: HasSelection(bText=true), remove =true
No Functional Change intended

This function is used very specifically for only UI stuff.
It is very different from any regular stuff.

So help to differentiate it by requiring the bool value.

To make sure I got all of them, I tested by requiring
a bogus OUString variable as well - make sure it compiled.

Change-Id: I4879427a806324d9fb9c033ef6b66ad24ba0bd54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208234
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
2026-07-21 11:22:20 +02:00
Heiko Tietze a435d56867 Related tdf#115805 - Use correct increments for numbering dialogs
Rather than using set_unit() use the function SetFieldUnit() to set
the unit property according the configuration

Change-Id: I1a8638d34d71b509f2d0a52fef8a673c8e112c55
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207353
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
2026-07-21 07:46:10 +02:00
Michael Weghorn 312aac710b Move SvtViewOptions from unotools to svtools
The SvtViewOptions class is used to store the state
of windows/dialogs.

So far, SvtViewOptions::SetWindowState and
SvtViewOptions::GetWindowState are string-based
and the callers are responsible for (de)serializing
the vcl::WindowData to/from string.

This will be changed to become the responsibility
of SvtViewOptions in an upcoming commit.

Since unotools is below vcl in the module
dependency chain, it cannot make use of vcl,
i.e. vcl::WindowData couldn't be used there.

Therefore, move SvtViewOptions from unotools
to svtools, which is above vcl in the module
dependencies.
(svtools/README.md summarizes the purpose of the
module as "Tools on the Top of VCL", which seems
an appropriate place for helper code to manage
the state/options for dialogs, tab pages,...)

Change-Id: If849224c35c7ac895659ddb7c17e6d17061d61a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208124
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-15 14:45:41 +02:00
Caolán McNamara 95045fb7d5 put links in form imagecontrols under link management
Change-Id: I265f889bcfdcf1b214cde02e9e5799081ec6aa42
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2396
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 01a314d398a497e01d0b9e4b575f3b7c842b8622)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206343
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-07-14 13:26:15 +02:00
Denis A. Altoé Falqueto 88d1c60b18 sd: scroll the Presenter Console slide overview to the current slide
The slide overview (PresenterSlideSorter) always opened scrolled to the
top, ignoring the current slide, because UpdateLayout() resets the
scroll offset to 0 and only setCurrentPage() called ScrollSlideIntoView
(and only when the slide index changed). Opening/resizing the grid does
not change that index. Call ScrollSlideIntoView(mnCurrentSlideIndex) at
the end of UpdateLayout(), guarded by mnCurrentSlideIndex >= 0.

To reproduce the issue, with a single screen setup we can go to Slide
Show - Slide Show Settings - Presenter console: Windowed, then create 30
slides (copying and pasting a slide is the quickest way) and start the
presentation with Shift+F5 from the last slide. In the console view, we
click the Slides button from the bottom toolbar. With the multiple rows
of slides and the scrollbar appearing, we can see the issue of the view
not being pre-scrolled to the active slide.

Change-Id: I61f1a1eb10e2ec032fa385f77081c00ff6b0d08a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208056
Tested-by: Jenkins
Tested-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
2026-07-14 11:49:03 +02:00
Caolán McNamara a950aba70f sd: implement "block untrusted referer links" feature for exported ppt sounds
The ppt sound collection fetched the sound url straight through
UcbStreamHelper, without the referer and exotic-scheme checks applied
before fetching any other document-supplied url. The avmedia media
loader guards the same way:

commit 5668e73beb
Date:   Wed Nov 20 14:43:45 2013 +0100

    avmedia: Implement "block untrusted referer links" feature

commit 836d73a651
Date:   Fri Nov 15 12:30:39 2024 +0000

    consider VndSunStarExpand an exotic protocol

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I2e3f6e025dba2b660e3b69a7c8097e3663e8d1a9
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4548
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
(cherry picked from commit d0663178249d57ee55a505813efc8a9618478a3f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208024
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-13 15:53:30 +02:00
Xisco Fauli 9a6197c869 cid#1692494: silence Argument cannot be negative
Change-Id: Ic908ddb4acb81850f6e0183bcf543e656a17aa44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207949
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-07-10 23:06:23 +02:00
Michael Weghorn f1f6a505a0 weld: Pass weld::TextWidget& in text change callback/handler
Switch the weld::Entry and weld::TextView handlers
that are called when the text changes due to user
interaction to pass a weld::TextWidget& param
instead of a weld::Entry& and weld::TextView&
one respectively.
Adjust related methods across the code base accordingly.

This unifies the behavior for both of these
weld::TextWidget subclasses and prepares for
deduplicating the logic and moving it to the
common base class in an upcoming commit.

That will also ensure they stay in sync.
(Change also motivated by the fact that their behavior was
differing before

    Change-Id: I03d2a13cd84d53d806eb9e363f49c4b6be28d938
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Thu Jul 9 13:08:58 2026 +0200

        tdf#130857 weld: Don't signal about programmatic TextView text change
.)

Change-Id: I5572fc88caf577fae9a23a39f1ec4f2179935a99
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207936
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-10 18:17:27 +02:00
Michael Weghorn da667a0c7a sd: Switch param from void* to weld::Widget*
Use a more specific type to make clear this is
always a weld::Widget.

Change-Id: I9bacaa2c155be5fec9f2acf4d57b5a3d06f36e7a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207933
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-10 18:16:58 +02:00
Andreas Heinisch ea1f8dd356 tdf#155798 - Refresh ruler after scale change
Change-Id: I8dd1570af5caf1b9813767c60de431d0773284ed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207651
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-07-06 03:53:26 +02:00
Michael Weghorn d168fdc6b4 sd: Declare local var where it's assigned
Change-Id: I5fca63dade6e0288f7f4b95fed699ff1319ae131
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207585
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-07-03 17:32:55 +02:00
Mike Kaganski 50935f0fd9 vcl, sd: import PDF /IRT threaded comments and /State resolved flag
Extend PDFGraphicAnnotation with the raw PDF fields — /IRT, /RT,
/State, /StateModel, and /F plus each annotation's pdfium index —
that are needed to reconstruct a thread on the sd side.

The sd PDF filter uses them to:
  - mark every imported PDF annotation as threaded (any PDF comment
    can be replied to / resolved);
  - link replies to their parent via /IRT (page-scoped per spec);
  - collapse Acrobat-style state-change annotations into the target's
    IsResolved flag — /IRT + /State + /StateModel, with /F carrying
    the Hidden | NoZoom | NoRotate bits.

Only /StateModel = "Review" with /State = "Completed" maps to
resolved; other state models are discarded. /RT = "Group" is honoured
as a grouping relationship, not a reply. Acrobat's per-user state
model (each reviewer maintains their own state-change pointing at the
same target) is collapsed to a single boolean per comment — resolved
if any reviewer's latest state is Completed. The mapping is lossy;
the in-code comment on StateChange documents the trade-off.

Also make newly added comments threaded (allowing to resolve), when
the document is PDF.

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I88e2bbe1202ada7b2e21a3ed90f2eb28760dcd6f
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1455
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 72a729882982ebf29cbbc5bdf5000621b53b2d8a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207212
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-06-28 13:38:25 +02:00
Irgaliev Amin 4cc4da148a tdf#41007 sd: Inserting multiple images via the insert dialog and DnD.
Added the behavior of inserting multiple images through the insert
dialog, which is similar to DnD.

The method for creating a dialog box for inserting images has been
extended to allow the selection of multiple images: aDlg.setMultiSelect(true).
File selection is now handled as a list instead of a string.

Previously, when inserting an image into an area with another image,
the new image was inserted next to it, although it was expected to replace
the existing image, similar to other modules. In the current patch, when
inserting a single image through the paste dialog or DnD into an existing
image area, the existing image will be replaced. However, if insert
multiple images into an existing image area, the new images will be inserted
next to each other. This behavior is consistent with other modules.

Change-Id: Ia64634f969e53342dfe2828a67a6ee4277134f7d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205754
Tested-by: Jenkins
Reviewed-by: Roman Kuznetsov <antilibreoffice@gmail.com>
2026-06-27 17:30:09 +02:00
Xisco Fauli 7ddad3e6b6 cid#1695392: Explicit null dereferenced
Change-Id: I5c12bc45bab1f25c01313ecdb2d66af0bebe5650
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207340
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-26 15:59:37 +02:00
Xisco Fauli 9ce8ac35ab cid#1695397: Logically dead code
Change-Id: I5434ffdf28eae35791b619d6f80b7fa5ef9b566b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207338
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-26 14:07:51 +02:00
Xisco Fauli a2f2925e96 cid#1695402: 'Constant' variable guards dead code
Change-Id: I2be2bce70075386eeac1e5c06450c99e8118009f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207339
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-26 13:25:47 +02:00
Caolán McNamara 8d0cb8f2e9 remove the write-only second animation sound field
loplugin:unusedfields already lists it as only used in the constructor.
Drop it, and note in its place that the second effect's sound URL really
lives in the shape's bookmark string, not in a sound field of its own.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I6ba402fd6e8052d6533f396d746da735abbf27bd
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4809
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 9d96470a60ad0c783fd3836bfc7f22ea91c5c24a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207282
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-25 15:36:57 +02:00
Mike Kaganski db79242098 svx, sd: add threaded fields to Draw annotation model
Extend sdr::annotation::Annotation and AnnotationData with m_Threaded,
m_Resolved, and m_ParentId so a Draw annotation can carry a reply/resolve
relationship. The three fields are propagated by toData / fromData and
by sd::Annotation::clone; when IsThreaded() is true they are emitted
from Annotation::ToJSON and SdXImpressDocument::getPostIts under the
same keys (threaded, resolved, parentId) that ScModelObj::getPostIts
already uses for Calc.

The fields will be used by the PDF filter (follow-up commits) and left
at their defaults elsewhere; ODP, PPTX and ODF exporters are unchanged
and continue to ignore them. Support for [MS-PPTX] extensions [1] for
comments that introduce state and replies is not in the scope of this
patch series.

[1] https://learn.microsoft.com/en-us/openspecs/office_standards/ms-pptx/161bc2c9-98fc-46b7-852b-ba7ee77e2e54

Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I49594e1e4698bfd541f4c5041362a52b675683fd
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/1454
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit bbde910405829527c92c406a82f75743bc4416c2)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207199
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2026-06-23 17:16:44 +02:00
Mohit Marathe bde6437f72 sd: add .uno:RemoveSlideSectionsAndSlides
Executing this command would iteratively delete all the slides in the
section in reverse order via XDrawPages::remove. The deletion of slide
is handled by SlideSectionManager::OnSlideRemoved, which deletes the
section when all of its slides are removed.

Signed-off-by: Mohit Marathe <mohit.marathe@collabora.com>
Change-Id: Idacb703f67695751ace2837bd03ce9deb8abd238
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3256
Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
Tested-by: Pranam Lashkari <lpranam@collabora.com>
(cherry picked from commit 6bc6c67557fe4c2a09d0260c97b6d4c561f55c9f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206632
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-23 14:11:27 +02:00
Xisco Fauli 667fe200a9 Revert "[API CHANGE] remove deprecated XSpell1 and XSupportedLanguages"
This reverts commit bce4b4af9d.

Reason for revert: Revert it for now until there is a policy
for removal of published APIs

Change-Id: Ia1cbcfcd6b953be48a60d8ef67333b1e3265e563
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207150
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-23 10:58:29 +02:00
Caolán McNamara 42cfdea1b5 remove optimize svx::ThemeColorsPaneBase::initColorSets cost
19.17% of

https://github.com/CollaboraOnline/online/issues/15054#issuecomment-4213614352

this is fired too often, make the broadcast/listen more direct and avoid
the spurious wakeup on generic invalidate-all that it can't filter out.

Change-Id: I9476591a5feefa5e47de5f8098eaa152fc8b10ac
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/870
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 92ae69bd1c8a8bc7f8fafc2dddec000182c6fb6d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207074
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-06-21 22:16:28 +02:00
Mohit Marathe 3b40fa5d5a sd: getPartSize should return page sizes according to the page mode
which is received by COOL via 'partstatus' message.

This is needed to set the size of preview container in slide sorter
correctly in normal/master/notes view mode.

Signed-off-by: Mohit Marathe <mohit.marathe@collabora.com>
Change-Id: I2417b84ab93ec6da2b9b2d4f07caf7797bc925d6
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/940
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
(cherry picked from commit b4a2adb889713f63278e250e3a2365c425c822d9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207021
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
2026-06-20 14:57:14 +02:00
Noel Grandin bce4b4af9d [API CHANGE] remove deprecated XSpell1 and XSupportedLanguages
in favour of their replacements XSpell and XSupportedLocales

Change-Id: I3ad20d0c6c3bf0a00d7ef3947705059027a1ff6f
Signed-off-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4228
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 35842d441f2e82204ce77ba8c53735be3f18dc78)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206467
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-16 14:55:20 +02:00
Caolán McNamara 64b1bf3a65 sd: stop refreshing SlideTransitionPane on every shape change
SlideTransitionPane's EventMultiplexerListener default branch called
onSelectionChanged + onChangeCurrentPage on every non-Disposing event,
including ShapeChanged.

ShapeChanged fires for every text edit on any view, so with several
users editing the panel re-emitted its full notebookbar state hundreds
of times to every view, although the page-level transition properties
had not changed.

Sync SlideTransitionPane with CustomAnimationPane so SlideTransitionPane
handles only the same explicit cases. And use the same sort of setup
as that panel does, e.g. take the controller from the ViewShellBase directly like:

commit ec58f5e318
Date:   Thu Dec 16 09:12:41 2004 +0000

    2004/12/10 10:11:53 af 1.2.10.1: #i38630# Using the right controller after views have changed.

Transitions panel update sent on every shape edit since:

commit c4e0d6596d
Date:   Thu Jun 2 15:43:45 2016 +0200

    notebookbar: added slide transition tab

To reproduce: open the Slide Transition sidebar in Impress, click into
a text frame and type. updateControls() fires twice per keystroke via
the ShapeChanged -> default path. With this change it only fires on
actual slide selection changes.

Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: I12a44e17e982f0502fe8fbf6b61f41cb3ac26e07
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3236
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
(cherry picked from commit 9a49d09e20b0687b30c9603d427ae2bd87d20638)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206639
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-16 01:20:16 +02:00
Caolán McNamara 4510754aa3 Get notes page via flat list instead of forcing page list rebuild
this is a typical way to get the notes page anyway

Change-Id: I1f5d0195980e1a0e5e7b1531f95ee3891ba5d8f4
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/961
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit b803327d156c4c799a176e3ce62e774d3c381d6f)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206608
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2026-06-15 21:15:19 +02:00
Caolán McNamara 23ea1663b7 put calc background images under link control
Change-Id: I5adbbaf7e4860732dad2375dcbee541198ef6fab
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2393
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 6ebc3fb5db211b6c9de96dcf3ba14b6b7f37c203)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206342
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-11 21:42:21 +02:00
Caolán McNamara dfc1b53266 put impress/draw background images under link control
Change-Id: Id1355ed3346e2c2123a2b35f16bd9cabf21d451f
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2391
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit bdb5efeea50d3d7aeb1b50bc5b7e00b5a89c17d9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206341
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-11 10:45:37 +02:00
Noel Grandin a5901d42c5 fix SfxViewFactory leak
found by running
   make CppunitTest_sd_tiledrendering \
     CPPUNIT_TEST_NAME=testA11yPresentationInfo
under ASAN with detect_leaks=1

There are two bugs here. One is that we are allocating
SfxViewFactory and not deleting it. The other is that in
sd/ we were calling the same function multiple times and
overwriting a global pointer to SfxViewFactory.

So fix both those bugs, and add a couple of asserts
to prevent future double-allocation issues.

Change-Id: Ia71861bd8da44876fbdd2a2aac3b22527030a598
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3130
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 7f83acffa0c4e1cee9f744658d8ed7d6450a5816)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206322
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-11 08:58:23 +02:00
Noel Grandin dcbe928a4f simplify SdStyleFamily
it is very confusing to have (1) a pimpl that is sometimes there
and sometimes not and (2) to have the same fields in the pimpl
struct and also on the parent instqnce.

Change-Id: Ie647e4d1867d44373f31d3cf2fc75f9e1fdcf060
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/1310
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 1adc2ed48e8b8ef4fd14e8f6d597ead0d5c5accf)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206325
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-10 22:27:41 +02:00
Szymon Kłos fa75171ad8 pptx: export overrideClrMapping in slide layouts
- it's feature allowing to change mapping of colors for slide layouts
- we can use theme colors like accent1 etc.
- we were correctly importing them but on export colors were different
  due to missing mapping information

Conflicts:
        engine/oox/source/ppt/presentationfragmenthandler.cxx
        engine/sd/qa/unit/export-tests-ooxml4.cxx

Change-Id: Id73e87d5f912e851e6a4a32d516ec3548a984cef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198768
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Signed-off-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2624
Reviewed-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 2f9d50de2fa839c34abab3b9302376b59e702f23)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206290
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-10 15:53:34 +02:00
Jan Holesovsky bc2da4e14c sd: Read paragraph emptiness from the outliner, not the shape's UNO text
In a dbgutil build (on macOS - but probably does not matter), type a word in a
slide's text box, select it, copy it, move the cursor past it, and paste.
The paste asserts:

  assert( IsUpdateLayout() && "Should not be used for Update=FALSE: GetTextHeight" );

The paste merges paragraphs, which reaches
EffectSequenceHelper::disposeTextRange through the ParagraphDeleted callback
(SdPage::onParagraphRemoving).  To decide which effect to drop it called
isParagraphTargetTextEmpty(), which reads the shape text through the UNO text
forwarder and so forces a text frame layout recompute
(NbcAdjustTextFrameWidthAndHeight, then GetTextHeight).  The paste runs with
the EditEngine layout updates suspended, hence the assert in
ImpEditEngine::GetTextHeight.

Decide the previous paragraph's emptiness in onParagraphRemoving, where the
editing outliner with the live text is at hand, and pass it down to
disposeTextRange.  This drops the UNO read and its layout side effect for
every case, animated or not.

Includes a unit test that executes the sequence described at the beginning;
without the fix, it fails with an assert.

Signed-off-by: Jan Holesovsky <kendy@collabora.com>
Change-Id: Id6ae3c8a121f036f87fa43ce134541376ff0b179
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3669
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 89a1a74dc95054698c1097b0aea0466ad6a6e092)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206213
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-09 10:53:57 +02:00
Miklos Vajna cebff7400f cool#15908 engine sd, SetHyperlink: ignore given text when there is a selection
Similar to commit 277ebe4cdc9ce386e9baedc687f67498b8c60cba (cool#15908
engine sw, SetHyperlink: ignore given text when there is a selection,
2026-06-02), but this one is for Impress/Draw.

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I2c320808d82cf9e417f2cdf59169082afaa8d3d1
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3724
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
(cherry picked from commit 01fdf92bd12dd2d03b8c94f15145714d405d4e76)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206211
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-08 15:59:58 +02:00
Xisco Fauli b0e4238a46 svx: remove svx::theme::notifyLOK
The logic was relevant for Collabora Online
but it no longer uses this repo

Change-Id: I11755f26a3ed345eafcf7fe5aeaee850729227eb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206162
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-05 21:52:31 +02:00
Michael Weghorn cd402f7f9a sfx2: Drop unused PanelLayout::DumpAsPropertyTree
This was presumably used by jsdialog in the past,
but support for that one was dropped in

    commit 8a91868e21
    Date:   Tue Jun 2 14:53:19 2026 +0200

        drop JSDialog machinery

Change-Id: Icf14992cc428b0b55adbe5f3b3181c83b4f5607c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206011
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-05 08:00:38 +02:00
Michael Weghorn b30b9b7a23 vcl: Drop unused nLOKWindowId param for Application::CreateInterimBuilder etc.
The param is unused since previous commit

    Change-Id: Iec0a3db8c1777b5520693b29978c837dc490f7c5
    Author: Michael Weghorn <m.weghorn@posteo.de>
    Date:   Wed Jun 3 11:58:29 2026 +0200

        vcl/weld: Drop unused nLOKWindowId param for CreateInterimBuilder

, so clean this up further: Drop the param from
Application::CreateInterimBuilder and the
InterimItemWindow ctor (which only had it to pass
it on to Application::CreateInterimBuilder).

Change-Id: I0a077c4c5b24e8c4662dcf03cbd45cee9045b2c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205951
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-05 07:58:53 +02:00
Michael Weghorn f26084217a weld: Move weld::Button to own header/Rename weld.hxx
In the past, weld.hxx used to contain the class
definitions for weld::Widget and all subclasses.

By now, weld::Widget and almost all subclasses have
been moved to separate headers, to make it easier
to keep the overview and to avoid having to
recompile ~all UI code when one class changes.

By now, only weld::Button is left in weld.hxx.
Rename the header to Button.hxx.
Drop weld.hxx includes and instead add Button.hxx
includes (or weld::Button forward declarations) where
weld::Button is used.
(Don't simply replace all weld.hxx includes with
Button.hxx ones, since many of them were for the
use of other widgets that have since been moved
to their own headers.)

Add further includes where needed now that the
(direct or transitive) includes of weld.hxx were removed.

Change-Id: I8ea6201446a418d5e38b46337059dcd517ee29d7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205937
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-05 07:58:07 +02:00
Michael Weghorn 8b5a46a0e0 weld: Move weld::toId and weld::fromId to weldutils.hxx
In the past, weld.hxx used to contain the class
definitions for weld::Widget and all subclasses,
as well as a few helpers.

By now, weld::Widget and almost all subclasses have
been moved to separate headers, to make it easier
to keep the overview and to avoid having to
recompile ~all UI code when anything in weld.hxx
changes.

Move the weld::toId and weld::fromId helpers from
weld.hxx to weldutils.hxx, in preparation of getting
rid of weld.hxx altogether in an upcomcing commit.

Change-Id: I408fe20a74ff104cbfe07bde3105317a1922ff61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205936
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 14:37:13 +02:00
Michael Weghorn 7c6d496a71 weld: Move weld::TransportAsXWindow to own header/source
This makes it easier to keep an overview and reduces
what needs to be recompiled if the class changes in
the future.

Change-Id: Ie8d0aad9bca3e990f78d4ffc006a04b0a8086fd9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205935
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 14:36:59 +02:00
Xisco Fauli 6f81bce807 loplugin:unusedmethods
Change-Id: I57a535f72e639a9b708c5c7dc1790e354d2d477e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205943
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
2026-06-04 10:00:29 +02:00
Michael Weghorn 0c4f814e72 weld: Move weld::TimeFormatter to own header/source
This makes it easier to keep an overview and reduces
what needs to be recompiled if the class changes in
the future.

Change-Id: I16f988657fb183c9701cd14fd953fae6026e5bd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205931
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-04 08:39:47 +02:00
Michael Weghorn 8f7cf9c32c weld: Move weld::CheckButton to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Add missing includes/forward declarations in places
previously depending on transitive includes that
are now dropped.

Change-Id: I3215b358e0fa45ffce08756218c386e1a4d7ebc6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205928
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-04 08:39:19 +02:00
Michael Weghorn da1c7a5459 weld: Move weld::RadioButton to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Change-Id: I34876c5bef75e30e758029b0fe5afeecc92d509d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205903
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-03 23:19:54 +02:00
Michael Weghorn 911a89ddeb weld: Move weld::WaitObject to own header/source
Move the class out of weld.hxx into its own header and
source file, in order to make it easier to keep an overview
and to avoid having to recompile ~all UI code when the class
is modified.

Change-Id: I91bae842e5b18a83db45de12150c21f75e537fb9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205900
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-06-03 23:19:30 +02:00
Michael Weghorn 243bb112ec weld: Move weld::Container to own header
Move the class out of weld.hxx into its own header, in
order to make it easier to keep an overview and to avoid
having to recompile ~all UI code when the class is
modified.

Adjust includes in files that were implicitly depending
on transitive includes that are no longer present because
the more specific include/weld/Container.hxx is included
further down now instead of include/weld/weld.hxx.

Change-Id: I04e6bb72ce446b746dfdf88b45c7df9d0ccda473
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205899
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
2026-06-03 23:19:22 +02:00
Xisco Fauli 8a91868e21 drop JSDialog machinery
It's no longer needed and not used internally

Change-Id: Iecb0d1055fd6c61d0c34ffb8afc670ab9d5fe899
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205908
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-02 20:15:18 +02:00
Xisco Fauli b42f0ad65b Revert "notebookbar: move slide transition pane"
This reverts commit bb3316dfad.

This was only used by sd/uiconfig/simpress/ui/notebookbar_online.ui
which is gone after

commit fd65cea59c
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Mon Jun 1 17:14:35 2026 +0200

    drop notebookbar_online.ui

Change-Id: Ic95bb218ca33b8c84d97f32f7a69af5fd5960339
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205887
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
2026-06-01 20:45:08 +02:00
Andreas Heinisch 671c60f628 tdf#37654 - Add custom slide names to slide/page name
Change-Id: I5eace83ae8a81d456190dfd721f3d5dc03d0d8e6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205753
Tested-by: Jenkins
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2026-05-29 14:23:27 +02:00
Xisco Fauli 7579bac8e9 drop isLOKTablet
follow-up of
commit f436c1cd89
Author: Xisco Fauli <xiscofauli@libreoffice.org>
Date:   Fri May 29 10:07:20 2026 +0200

    drop isLOKMobilePhone

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

    Remove wordcount-mobile dialog

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

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

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

Change-Id: Ide86f35543468a88288a068cc9f89eaf381ac52f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205763
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2026-05-27 22:24:37 +02:00