Drop the unpublished service
"com.sun.star.awt.AccessibleTextField"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Also drop VCLXAccessibleTextField::getImplementationName
as there is no need to report a different implementation name
than the base class implementation.
Change-Id: I1cbce092d21253411d5fe0ff3e0d16732fe10ff0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210032
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Drop the unpublished service
"com.sun.star.awt.AccessibleEdit"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Also drop VCLXAccessibleEdit::getImplementationName
as there is no need to report a different implementation name
than the base class implementation.
Change-Id: Ic48d51794b749e7bb58c788e038d49af726f6ca8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210031
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Previous commits up to
Change-Id: I40514c1fd6f7500247d630b93c03a377e6231521
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Aug 26 13:12:52 2026 +0200
[API CHANGE] a11y: Drop com.sun.star.awt.AccessibleMenu
dropped the UNO services previously implemented by
various OAccessibleMenuBaseComponent subclasses.
Now that no UNO services are supported any more, also stop
implementing/subclassing the XServiceInfo UNO interface
in the base class altogether and drop the corresponding
methods that are not/no longer needed.
Change-Id: Ifac5c21de93558bde2b3eda994e94da50b623c2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210030
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.awt.AccessibleMenu"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Change-Id: I40514c1fd6f7500247d630b93c03a377e6231521
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210029
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.awt.AccessibleMenuBar"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Change-Id: Ibf1ef76b22b605ca84945e89e16d8f73c97b7f00
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210028
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.awt.AccessiblePopupMenu"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Change-Id: Iba7a10799f1bf6d9edd7841ebf5736f11a587ca4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210027
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.awt.AccessibleMenuItem"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Change-Id: I5512dfd28e97b8a2a98a5f54181bdae3fdbf6e44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210026
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop the unpublished service
"com.sun.star.awt.AccessibleMenuSeparator"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
While at it, also drop explicit mentions/references of
some other services in UNO service documentations already
as the plan is to drop them in the future as well.
Change-Id: I78142e00914b26c1abe5549141ed2aa6b8a313c5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210025
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The comment was documenting the earlier implementation,
but is no longer accurate/up to date after that was
changed in
commit f708e783ca
Author: Rüdiger Timm <rt@openoffice.org>
Date: Mon Sep 8 12:01:00 2003 +0000
INTEGRATION: CWS qadev11 (1.3.14); FILE MERGED
2003/09/03 15:29:47 sw 1.3.14.1: #112049#
. Adjust the comment/doc accordingly.
Change-Id: I7bd4c9f97fa1e6013e0f2be933fac1c87b9e1a2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210024
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Drop the unpublished service
"com.sun.star.awt.AccessibleFixedText"
because it's unused. (The IDL file only documents some
internal implementation details of the a11y class
implementing the service.)
Also drop VCLXAccessibleFixedText::getImplementationName
as there is no need to report a different implementation name
than the base class implementation.
Change-Id: I69ea1f87a39470c955ea2dff361e8e995ead9ffa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210023
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Implemented the fix suggested in comment#33 of tdf#99296
Added a new "Enable" checkbox (checkBTN_ENABLE_HF) to
headerfootercontent.ui, placed left of the "Preset" line.
Added ToggleEnableHdl in scuitphfedit.cxx to dynamically disable/gray
menu options when disabled.
Updated "FillItemSet" to utilize a purely boolean toggle.
The changes below were made using AI assistance for code review (Claude Opus 5).
Dropped editeng/ulspitem.hxx, nothing references SvxULSpaceItem.
Used ScResId(STR_HF_ENABLE_HEADER / _FOOTER) instead of string
concatenation.
Removed the SID_HFEDIT disabling in GetStatePageStyle, as on/off is now
set inside the dialog.
Removed m_bHeaderOn, m_bFooterOn and GetPageOnFromPageStyleSet, left
unreachable by the above.
Removed the on/off branching in ExecutePageStyle, as ScHFEditActiveDlg
re-derives the shared left/right setting itself.
Restored two internal-child entry blocks on the font combos that a Glade
re-save had dropped.
Change-Id: I59a56ee74f74375a58fcaad38dae626e071ca5f5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203405
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
The clip a graphic object carries was kept in the model and carried through
save and load, but nothing ever drew it, so a shape a file describes as an
outline still covered its whole frame and hid what sat behind the parts the
outline leaves out. Wrap the shape's content in a mask.
The polygon states the shape's own coordinates, so it is normalised and then
put through the same object matrix as the content, and follows the shape's
rotation and shear along with it. A flip is expressed on the graphic itself
rather than in that matrix, so the clip is mirrored here to follow it - the
picture would otherwise turn round inside an outline that stayed where it
was. The mask covers the fill as well as the graphic, which is what uncovers
the background. The invisible outline stays outside it, leaving bounds and
hit-testing as they were.
A mask clips with an even-odd fill, which is what makes a contour overlapping
another one a hole.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I69c8c6c31f43e87399fb582665904dc81221b32b
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9302
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 120b9ef0b7c50a0e025e7be87e005aa39ab7db8a)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210037
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Converted #define to enum class and o3tl::typed_flags to handle bitwise
operations in the code.
Added a zero flag to PortionAttribute as previous implementation was
comparing with integer value of zero.
Change-Id: I5dc1b06c4c5cb7d59f3dcf9e8b86561280974ef6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208879
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Introduce an SfxPoolItem in the SDR graphic attribute range that
carries a basegfx::B2DPolyPolygon clip outline on SdrGrafObj.
Allocate SDRATTR_GRAFCLIPPOLYPOLYGON between SDRATTR_GRAFCROP and
SDRATTR_GRAF_LAST (which shifts SDRATTR_3D_FIRST and the downstream
ids by one), register the pool default, and surface the value as the
"GraphicClipPolyPolygon" UNO property on the GraphicObjectShape
property map (covering both drawing.GraphicObjectShape and
presentation.GraphicObjectShape via SVXMAP_GRAPHICOBJECT) using the
css::drawing::PolyPolygonBezierCoords type. QueryValue/PutValue
do the round-trip through the existing basegfx helpers.
The new which-id is 1175. The trailing comments in svddef.hxx have
run 2 high since two XATTR items were dropped upstream, so the ones
added here say 1177 to stay consistent with the file.
No reader, writer or render path consumes the property yet; this
is infrastructure for upcoming custGeom round-trip work on empty
picture placeholders.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I17d98cabeb230c25b3de0da4eadd8338ed672ce1
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9190
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit be7f21fc7187bb87129eed4e8ed2f794faf6e757)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210036
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Jenkins
A graphic-object shape with no embedded graphic data exported as
<draw:image><text:p/></draw:image>. Per ODF's draw-image content
model draw:image has a choice between common-draw-data-attlist (the
xlink:href and friends attributes) and office-binary-data, followed
by draw-text (text:p etc.). Without either alternative of the choice
the element is incomplete, and the validator rejects it - the
diagnostic mentions text:p because the parser stops at the missing
choice content before reaching the draw-text part where text:p would
be valid.
Emit an empty <office:binary-data/> placeholder when there is no
xlink:href and no graphic data, satisfying the choice.
Groundwork for the clip polygon that follows, which is written on
exactly such a shape: a picture placeholder that never got an image.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I5bf792c60affd35b33779c91be0a381eb074f00f
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9189
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 6d1cbfc9fb8e9a705b05f6cdddd4a87a630e973d)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210035
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Commit 73f1e76b1760d4e936aa22627623c922dcda964b (cool#15754: Fix PPTX
round-trip of empty picture placeholders, 2026-05-21) covered <p:ph
type="pic"> only. A layout's media placeholder still imported as an
outliner shape, and an empty slide-side one exported as a <p:pic> whose
<a:videoFile> named an empty external relationship - a package the Open
XML SDK validator refuses to open at all.
A media placeholder needs no copy of its own onto the layout, the way a
picture one does: it reaches the file through the page's own shape tree.
Whether it is still waiting for its content is asked of the media, since
nothing marks such a placeholder empty.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I85707ff863a63874c6f493a0f284f25070f26e49
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9188
Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 44a05619224ab206dae4ef076269cbb8ce56f43b)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210009
Tested-by: Xisco Fauli <xiscofauli@libreoffice.org>
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
No Functional Change intended
Don't calculate variables in FindTextImpl
and then _only_ using them for passing into DoSearch.
Instead calculate the values in DoSearch itself,
since it also is passed rSearchOpt
from which all of these boolean values are calculated from.
That makes code reading much easier.
Change-Id: Ied0c59afa62e977b57b5e1b51f6babbe4d528bdb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209949
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
A slide layout is imported as a master page, and the shown text was only set
off a master, so an authored prompt was stored but never displayed or written
back; the export emitted Impress's own localized resource instead. Set it on
a master too, and accept the graphic kind in RestoreDefaultText, which keeps
the object an empty presentation object. Now that the two are
distinguishable, a placeholder that authored no prompt writes no text - its
text body keeps the properties a reader needs, and holds an empty paragraph.
A slide's own placeholder asks its master for that prompt before falling back
to the resource string, so the two no longer disagree about what is really
one placeholder.
This is what degraded in commit 73f1e76b1760d4e936aa22627623c922dcda964b
(cool#15754: Fix PPTX round-trip of empty picture placeholders, 2026-05-21):
mapping a layout <p:ph type="pic"/> to a real presentation service is what
made it reach that text reset, where the previous OutlinerShape mapping had
kept the authored prompt.
Implemented a TODO from commit 67ba6ccd5a
(tdf#140912, tdf#159219: fix import of graphic placeholder with custom
prompt, 2024-01-17). That commit deferred this because marking the object
empty after setting the text crashed the PPTX export; going through
RestoreDefaultText, which does exactly that, no longer does. Its other
objection stands: ODF stores no placeholder prompt, so a save to ODP still
drops it.
Signed-off-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: I1b6f3e38cb24ac737d3de6258559090596817bad
Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/9046
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit b41a780d139ec6ca5a5514db972ccf0e50058dfc)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210008
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
As
commit a545badd65
Author: Stephan Bergmann <sbergman@redhat.com>
Date: Thu Feb 16 18:15:04 2012 +0100
Work around macro redefinition warning
already did for pyuno/source/module/pyuno_dlopenwrapper.c ,
also include the <Python.h> header first
in more pyuno source files.
Quoting from the Python/C API reference manual about include
files [1]:
> Note: Since Python may define some pre-processor definitions
> which affect the standard headers on some systems, you must
> include Python.h before any standard headers are included.
This avoids build errors like the following otherwise seen
on Debian testing after a glibc update from 2.42-17 to 2.43-3:
In file included from /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_struct.cxx:28:
In file included from /home/michi/development/git/libreoffice/pyuno/source/module/pyuno_impl.hxx:26:
In file included from /home/michi/development/git/libreoffice/workdir/UnpackedTarball/python3/Include/Python.h:14:
/home/michi/development/git/libreoffice/workdir/UnpackedTarball/python3/pyconfig.h:1985:9: error: '_POSIX_C_SOURCE' macro redefined [-Werror,-Wmacro-redefined]
1985 | #define _POSIX_C_SOURCE 200809L
| ^
/usr/include/features.h:319:10: note: previous definition is here
319 | # define _POSIX_C_SOURCE 202405L
| ^
[1] https://docs.python.org/3/c-api/intro.html#include-files
Change-Id: I4ae90cfc9b92b559181d3884cdc8d51ee11f922d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209871
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use the standard bool instead of custom
TRUE/FALSE defines.
Also drop the <stdbool.h> include no longer
needed after the program was converted to C++ in
Change-Id: I6621e146999551b98cbc006509a72c86745fcd65
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Aug 24 14:52:21 2026 +0200
solenv concat-deps: Convert from C to C++
Change-Id: I374b8545c80cb0b69bdbebd40a0ac24db880d360
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209831
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Convert concat-deps.c from C to C++:
* rename file suffix from ".c" to ".cxx"
* adjust Makefile to build as a C++ program
* adjust C-style casts to C++ casts and use nullptr
instead of NULL to address clang plugin warnings
otherwise showing up after the conversion
Otherwise, leave the source/logic unchanged. Further
simplification of the program using newly available C++
features would probably be possible now (e.g. looking into
replacing the custom hash logic by a preexisting C++ stdlib
class) be possible, but is outside the scope of this commit.
The original trigger for looking into this initial
conversion from C to C++ was to avoid loplugin:pointerbool and
loplugin:implicitboolconversion clang plugin warnings newly
showing up with the original C sources after upgarding
glibc packages on Debian testing from 2.42-17 to 2.43-3:
[C ] solenv/bin/concat-deps.c
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:175:22: error: possibly unwanted implicit conversion when calling bool param [loplugin:pointerbool]
175 | assert(pool->primary);
| ~~~~~~^~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/usr/include/assert.h:117:40: note: method here [loplugin:pointerbool]
117 | extern _Bool __assert_single_arg (_Bool);
| ~~~~~^
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:1113:12: error: possibly unwanted implicit conversion when calling bool param [loplugin:pointerbool]
1113 | assert(phony_content_buffer); // Don't handle OOM conditions
| ^~~~~~~~~~~~~~~~~~~~
/usr/include/assert.h:117:40: note: method here [loplugin:pointerbool]
117 | extern _Bool __assert_single_arg (_Bool);
| ~~~~~^
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:175:16: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
175 | assert(pool->primary);
| ^~~~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:209:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
209 | assert(primary > 0);
| ^~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:210:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
210 | assert(secondary >= 0);
| ^~~~~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:211:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
211 | assert(size_elem > 0);
| ^~~~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:437:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
437 | assert(size > 0);
| ^~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:615:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
615 | assert(name != NULL);
| ~~~~~~~^~~~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:851:12: error: implicit conversion (IntegralToBoolean) of call argument from 'int' to 'bool' [loplugin:implicitboolconversion]
851 | assert('\0' == *end);
| ^~~~~~~~~~~~
/usr/include/assert.h:157:42: note: expanded from macro 'assert'
157 | ((void) sizeof (__assert_single_arg (__VA_ARGS__)), __extension__ ({ \
| ^~~~~~~~~~~
/home/michi/development/git/libreoffice/solenv/bin/concat-deps.c:1113:12: error: implicit conversion (PointerToBoolean) of call argument from 'char *' to 'bool' [loplugin:implicitboolconversion]
1113 | assert(phony_content_buffer); // Don't handle OOM conditions
| ^~~~~~~~~~~~~~~~~~~~
10 errors generated.
make[1]: *** No rule to make target '/home/michi/development/git/libreoffice/workdir/CObject/solenv/bin/concat-deps.o', needed by '/home/michi/development/git/libreoffice/workdir/LinkTarget/Executable/concat-deps'. Stop.
make: *** [Makefile:137: solenv] Error 2
Change-Id: I6621e146999551b98cbc006509a72c86745fcd65
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209870
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>