SvxBrushItem::GetGraphic wants the name of the document the brush came
from, so take it as an argument and hand in SwDoc::GetLinkReferer
wherever a document is at hand, the Writer style, frame and background
shell paths included.
The dialog and example-window callers pass the name of the active
document shell through a new svx helper getActiveDocumentLinkReferer.
The hand-rolled copies of the GetPersist, HasName, GetMedium GetName
sequence elsewhere in sw now call SwDoc::GetLinkReferer too.
Change-Id: I8693d27869baed79962b2d5bdcb7b7e2c63227bb
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8200
Reviewed-by: Stephan Bergmann <stephan.bergmann@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 18f91ac71710027479dfe9f206ae2207bad8f2b7)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209827
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
Nothing told a horizontal rule apart from an ordinary rectangle, so it could
not be laid out the way Word does; the marker is that distinction, and its
absence is what keeps documents written before it rendering unchanged.
The UNO property reports DEFAULT_VALUE while false, since ODF export only
writes direct values - else every shape and graphic style would carry it.
Also let the RTF import build a rectangle for a rule, as the VML import
already does, so both filters produce one model object.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Id2facd7bdc272197273462f0ad581537551234bc
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/8657
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit dbe7dca2951640990d3febaf12a9c3118e15ec22)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209328
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
In case of mirrored pages the gutter cannot be left or right but
inner or outer. To make the dialog easier to understand the modifier
checkbox for Left turning this into Right was changed to radio buttons.
Change-Id: I71b32d89f9a9054f5351e3c0d51ba348b66c1f0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209072
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
The word “outline” in LibreOffice can refer to either the lines of the
shape of something or an overview of something. When the string is quite
short it’s difficult for translators to know which meaning is intended.
There seems to be quite a lot of cases where the translators have got
this wrong. In order to help them this patch adds translator comments to
a bunch of the strings to explain which meaning should be used.
Change-Id: I4b75cc829128633bc9382817fc574d55a09af8a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209037
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Width and height of page/slide size is shown in a tooltip
while hovering the Format listbox in sidebar
Add a local function to convert FieldUnit to MapUnit
Tooltip appears on one or two lines according to VCL plugin
Change-Id: Id743491b81f0def195004ffa98437a71df6ec958
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208492
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
This change restores the system gallery theme ID to bullets.thm, which
restores language and localization-independent lookup in the gallery UI.
This field was unintentionally removed by a prior update to the file
contents. Updating these .thm files is unnecessarily fragile. There does
not appear to be any way to set an ID other than by using a hex editor,
and the ID field is only retained if updates are incremental. In order
to make this somewhat easier, this change also adds an --id <id>
parameter to gengal. This parameter can be used to manually set the
correct ID when a new .thm file is generated (however, it will not
change the ID for an existing .thm file that is being updated).
Regression from commit 480ef73dee
Author: Heiko Tietze <heiko.tietze@documentfoundation.org>
Date: Mon Oct 27 12:37:09 2025 +0100
Revert^2 "tdf#139076 update Bullet icons with sexy .svg icons"
Change-Id: Idccdffb987606a1863c745c96bc0f8ba5cb6565f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208701
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
The document-wide link update permission is decided when the document is
loaded. But media files that the users interactively inserts should be
automatically allowed.
Remember on the media object that the user picked the reference and
allow it on its own, the same way a presentation sound the user picks is
allowed. A reference that arrived with the document still needs the
document-wide permission.
since:
commit f0768394c14f928d47547408fc1195368be81f86
Date: Tue Jul 14 19:12:01 2026 +0100
put slideshow media links under link control
see also:
commit 0aa870b7b5a6bda50bab50c7a0a41d28fdf4f6ab
Date: Wed Jun 17 09:37:23 2026 +0000
bring external presentation sounds under link management
Change-Id: Id9fd49245fbfe2d62d767e3cb04370b2e5197fe1
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/7939
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Michael Stahl <michael.stahl@collabora.com>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/7961
(cherry picked from commit 82f3a17f461fb2d0057cc81625f7ae1e301db3ad)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208739
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
using the same std::variant style as the similar:
commit 7925b4de3f
Date: Mon Jun 20 12:54:44 2022 +0200
use std::monostate in std::variant
also.
a: use TOOLS_WARN_EXCEPTION for getVisualAreaSize/setVisualAreaSize
exceptions
b: Assert in the calc and impress tiled-rendering tests that the shape,
slide-background and master-page-background fillbitmap links are
registered in their LinkManagers similar to how the existing writer test
does.
Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Change-Id: If1e47f1c656f064b442a49991ba5a523b6076176
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/3693
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit 1fc1bf4a76066307373cead6faea789ac945adad)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208581
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
That makes clear it's non-null and therefore
the unconditional dereferencing done previously
was unproblematic.
Change-Id: I85e5f1a226396865cc6a835bc63170ccfc479162
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208379
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Switch the parameter from a pointer to a reference.
The only 2 callers in SfxChildWindow::CreateChildWindow
always pass a non-null param.
Using a reference makes clear that the param is always
non-null and makes clear that those implementations previously
unconditionally dereferencing the pointer were unproblematic.
Change-Id: Ia2b893aac6c94c3b0e1024cc5500da2463bf9996
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208312
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Switch the parameter from a pointer to a reference.
The only 2 callers in SfxChildWindow::CreateChildWindow
always pass a non-null param.
Using a reference makes clear that the param is always
non-null, allows dropping some null checks and makes
clear that those implementations previously unconditionally
dereferencing the pointer were unproblematic.
Change-Id: I6734dfe6fe4fa1cb6aa80f4e67eb69603e8d86fc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208300
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Copy the value from the status bar.
According to the checkboxes selected in the submenu.
If “None” is selected, choosing “Copy Value...” saves
an empty string to the clipboard.
This effectively clears the clipboard.
Support for multiple national languages has been added.
Change-Id: I662e8be8feaeac5bf2e4d69f557a8fec2420ff47
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207385
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
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>
Just launch Writer for example and notice this log on console:
warn:svx.dialog:651266:651266:svx/source/dialog/rlrcitem.cxx:75: SvxTabStopItem expected
Pb is SID_SVX_START + 946 is already used in include/svx/svxids.hrc with SID_ATTR_TABSTOP_VERTICAL
So use another free slot, SID_SVX_START + 1069
(which was indeed free contrary to what the comment said in include/svx/svxids.hrc)
Like this I suppose since 69e902d085
tdf#162120 Implement style:writing-mode-automatic (end of 2025)
Change-Id: I65c766ec1b8574fe7db5eca35bfd2c91735f3e2a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207697
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Every time the user called a different command (find/findprev/findall)
the 'replace backwards' checkbox was being reset
to some seemingly random state.
That random state was 'whatever the checkbox was
the last time that "Replace" was called'.
Instead, it should retain the last state that the user provided.
[Fortunately, I found a couple of examples to guide me.
since m_pSearchOpt isn't reliable
as the 'Find Previous' button can also SetBackward.]
With this patch, the user's selection is:
-the sole controller of the checkbox
-saved and restored between sessions (wasn't restored earlier)
[ClickHdl_Impl calls SaveToModule_Impl - so immediately saved]
Change-Id: I1364c97f6a853989cb9b2706ec4a03a5e4c0ca13
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207696
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
Return the ColorWindow by ref, which also
allows to drop a null check in
ColorListBox::ToggleHdl.
Change-Id: Ife262e607eb090bee39fda1a9f497bdf1baf263d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207333
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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>
This reverts commit e20d2de783
* DeepL is just one platform, and not open
* The function requires an account
* Implementation is experimental and not maintained
* Better solution via extension exists
* Decision to revert made at ESC on 2026/Jun/11
Change-Id: I74974671b1fbed6b3299f3532bd6f9263d65927f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206367
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
A custom shape that has no matching OOXML preset is exported as
<a:custGeom>. Until now that path baked every coordinate to a fixed
number and wrote empty <a:avLst> and <a:ahLst>, so the shape lost its
adjustment values and adjust handles: it became frozen and could no
longer be edited by its control points after saving to docx/pptx/xlsx.
Convert the shape's ODF "Equations" to DrawingML guide formulas by
walking the parsed expression tree (FunctionParser::parseFunction). At
that level the original structure is intact, which lets the export:
- emit <a:gdLst> guides for the equations, keeping width/height symbolic
("w"/"h") so the geometry scales correctly on resize;
- express the trigonometric functions (sin/cos/tan): the angle-conversion
idiom (X*pi/180 or pi*X/10800000) is recognised and reconciled to
OOXML's 60000ths of a degree, for both trig arguments and standalone
angle values such as arc parameters;
- declare the referenced adjustment values in <a:avLst> ("adj1", ...) so
the guides stay driven by the shape's handles;
- emit an <a:ahXY> handle for each ODF handle that drives an adjustment
value, referencing the matching adjustment guide;
- reference an equation from a path coordinate (or handle) by the token
that holds its value.
svx gains two small ExpressionNode accessors (getChild/getIndex) so the
expression tree can be walked from the export filter.
Equations or handles that cannot be expressed yet (raw-radians angles
without the pi/const idiom, atan2/cat2/sat2, ellipse, polar handles) fall
back to resolved coordinates, as before.
Also update the now-outdated comment in ShapeExport that claimed ODF
equations cannot be converted to DrawingML. Adds a test on a symbol shape
(tdf#142603) and a circular arrow (tdf#157289 trig guides), and updates
testFlipAndRotateCustomShape / testEquationGuidesExport for the new
parametric output.
Signed-off-by: Andras Timar <andras.timar@collabora.com>
Change-Id: I21cf73df018417fcfe9c2f9ecd185c0ac29a198d
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/4464
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 40967878aeaee989216b6e0cfd6cf81af4a8b1d8)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206685
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Since
Change-Id: Ia997dfa48f4239046a1b821f40ed402128111b23
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Jun 10 10:25:27 2026 +0200
tdf#130857 sc: Port tab color dialog to ColorIconView
, the class is only used in SvxColorValueSet_docking in
svx itself, so there is no more need to have it defined in a
global header.
Change-Id: Idf9763049faf5d2dcf25151fdbcfbc4c0f128304
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206307
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Similar to
commit a4d5983b4e
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Jun 5 11:48:54 2026 +0200
tdf#130857 Port ColorWindow from SvxColorValueSet to ColorIconView
, also port ScTabBgColorDlg from using SvxColorValueSet
to use ColorIconView instead.
This helps to be more consistent with other platform/toolkit
widgets, reduces custom logic and prepares for enabling
support for that dialog with native Qt widgets
(SAL_VCL_QT_USE_WELDED_WIDGETS=1) in an upcoming commit.
Extend ColorIconView to also allow setting a handler that
gets called when the selection changes and make use of that
in ScTabBgColorDlg.
The custom ScTabBgColorValueSet::ScTabBgColorValueSet
subclass for SvxColorValueSet was used to allow automatically
closing the dialog when the space or Return keys were pressed
while the widget to select the color had focus.
This is now covered by the handler for item activation,
ScTabBgColorValueSet::TabBgColorActivatedHdl, so no
separate class is needed for that any more.
The dialog can be triggered like this:
* start Calc
* "Sheet" -> "Sheet Tab Color"
Change-Id: Ia997dfa48f4239046a1b821f40ed402128111b23
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206285
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
This fixes auto font color not changing to white when the slide
background is dark and the table cell has no explicit fill.
When resolving automatic font color for text in table cells, the
code previously used the table object's own fill (either on object
or from style). This fill is not rendered behind cell text at all,
so it shouldn't affect the text color.
Add GetActiveTextBackgroundColor() method on SdrTextObj that returns
the object's fill color for auto color resolution. SdrTableObj
uses it's own version that checks the specific cell's fill first,
then falls back to the page/master-page background, skipping the
table object's own fill entirely.
Change-Id: I06c1b23bc1876d2f8c69d8219958a46212b0f793
Signed-off-by: Tomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/2435
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
(cherry picked from commit 21aade416e94db7d31244166a349f3590d3aa7f1)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206336
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This used to be used to test SvxColorValueSet
in UI tests before
commit 701cea2393
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Apr 17 09:45:29 2026 +0200
tdf#130857 Introduce ColorIconView, port "Area" page's "Color" section to it
and
Change-Id: Ib6676629433d6df56367320ddcc721ee62f2434f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Jun 5 11:48:54 2026 +0200
tdf#130857 Port ColorWindow from SvxColorValueSet to ColorIconView
and
Change-Id: Ib4f5c7bcf7d6cf01e802c1e57aab1fa938e105b5
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jun 8 14:00:33 2026 +0200
Use ColorIconView for SvxDefaultColorOptPage
replaced the SvxColorValueSet widgets being tested by
ColorIconView widgets.
Drop the now unused test class.
While the SvxColorValueSet widget is still
used in a few more places in the code base
(but not UI tests using this now dropped class), the
plan is to replace those with ColorIconView as well.
Change-Id: I028e2719845875c2017317465d316ab848f0991d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203822
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>