Stop implementing the XServiceInfo interface in chart2
a11y implementations as the info provided by that interface
isn't needed anywhere, see also
Change-Id: Id306320710a1718ff10536127427f3a5daf68559
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Jun 20 11:14:19 2025 +0200
svtools ruler a11y: No longer implement XServiceInfo
for more background.
Related to that, drop the unpublished AccessibleChartElement
service.
A search in Google and on Ask [1] didn't give
any results that would suggest this unpublished service
could be relevant for third party code. (Instances.
couldn't be created by external code anyway.)
[1] https://ask.libreoffice.org/
Change-Id: I97056996bc433940c262e9b1060eb37a24a0b00e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186758
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The service is not implemented or used anywhere.
A search in Google and on Ask [1] also didn't give
any results that would suggest this could be relevant
for third party code.
[1] https://ask.libreoffice.org/
Change-Id: I888f891704c2ba9087d91be391f89efbae997e3d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186757
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
In order to get the whole text, the character
count needs to be passed as the end index, since
this is the "past the last character" index, see
also the XAccessibleText::getTextRange doc:
@param nEndIndex
Index of the last character to exclude in the returned string.
The valid range is 0..length.
Change-Id: I45a1cb65b6ce9e6d1005b3b455bc6a0238b83027
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186606
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The unpublished com::sun::star::cui::ColorPicker and
com::sun::star::cui::AsynchronousColorPicker UNO services
were previously used to be able to use ColorPickerDialog
(implemented in cui) from svtools.
That's no longer the case since
commit 0905c23676
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Jun 13 18:27:09 2025 +0200
Stop using UNO abstraction for color picker
, so drop the now unused services and the ColorPicker
class that implemented them.
Change-Id: I9264707df57e46192a393f6736257c413e5d9831
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186538
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Previously, when authoring documents containing multiple languages,
certain characters (e.g. smart quotes) could use the wrong/undesired
font. For example, if a Chinese word is quoted inside English text, the
right quotation mark would use the Chinese font rather than the
intuitively-expected English font. Users had no way to control this
behavior.
With this change, Writer will now set an appropriate style:script-type
hint when the user manually specifies a language for a selection in the
user interface. This can be used to quickly correct instances of the
above problem.
Change-Id: I6f8c924d230e3518272e2abb1cbea5e0e7451e9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186394
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
Several font weights (Ultra Light, Light, and Medium) were incorrectly
saved to file.
ULTRALIGHT and LIGHT were saved as fo:font-weight 150 and 250,
respectively. But, according to ODF spec, the values of the
fo:font-weight attribute are normal, bold, 100, 200, 300, 400, 500, 600,
700, 800 or 900:
https://docs.oasis-open.org/office/v1.2/cd05/OpenDocument-v1.2-cd05-part1.html#a_20_184_fo_font-weight
This change fixes ULTRALIGHT and LIGHT to map to 200 and 300,
respectively.
This change also introduces awt::FontWeight::MEDIUM and gives it an
arbitrary 105% value (the percentage values in awt::FontWeight make no
sense at all, THIN numeric value is 100, so it should be 25% of NORMAL
whose numeric value is 400, but it is 50% in awt::FontWeight), and fix
the mapping to and from awt::FontWeight to handle medium weight
properly, and fixes the numeric weight values saved to file.
The backward compatibility for this change are likely negligible since
we don’t support extended font families on Windows, or Linux for
non-variable fonts.
Change-Id: I80ece7bb05462b0f3aceb7f39409f8135f63e94d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186128
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
This is an important detail. XDispatch::dispatch documentation, which
is referenced from XDispatchHelper, discusses SynchronMode; but it is
unclear that executeDispatch doesn't need that, and it always appends
SynchronMode=true to the passed arguments internally (implementation
is in framework/source/services/dispatchhelper.cxx).
Change-Id: Ie9634db9458f192966de0094e1596bf3dd967784
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186087
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Add a XUITest::getWindow method that allows to get the
XUIObject for a given XWindow.
The XUITest interface is internal/unpublished API used
for UI tests.
The newly introduced method will be used in an upcoming
commit in sw/qa/uitest/table/tdf146145.py to port
that test away from depending on a11y implementation
details that are about to change.
Change-Id: I6fcbee3ce894ad82ec42fa034b85544b50408779
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185773
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This method is now unused since
Change-Id: I055dd19bbec810126d67e7795ffdfab257beeed3
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu May 15 14:45:24 2025 +0200
sd presenter a11y: Drop indirection to set win accessible
, so drop it the same way that XPane2::getAccessible was
dropped earlier in
commit 26bf576f85
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue May 13 21:20:11 2025 +0200
[API CHANGE] a11y: Drop unused XPane2::getAccessible
Change-Id: Id0c185562213baa71de3987eb3b5d12fa24798f7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185366
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Drop the unused method from the unpublished
XPane2 interface that's used inside Draw/Impress.
How accessibility is implemented is an implementation
detail and likely subject to change in the near future.
XPane2::setAccessible is currently used, so remains
for now.
Change-Id: I49c475a795f382a8bf62238f2d6bbd7a95bed97a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185279
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
See ISO/IEC 29500-1:2016(E) 9.2 Relationships in Office Open XML:
> ... a resource is referenced from a source part’s XML using the Id attribute
> of a Relationship tag ...
Change-Id: I3e2e8d3c1c82830c6b6037e9fb114a1a880ad6cf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184747
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
To avoid of rivers and too much hyphenation, add minimum
and maximum word spacing options, similar to XSL-FO/CSS
and DTP software.
Only limiting hyphenation was implemented: hyphenation
of the words are disabled, if it's possible to expand
or shrink the spaces of the line within the values specified
by the maximum and minimum word spacing. First try to apply
the minimum word spacing, and if not possible, then the
maximum word spacing.
Note: maximum allowed shrinking has been applied for the
hyphenated lines instead of the minimum to remove the
hyphenation, yet. With the suggested default word spacing
values, this results no or minimal differences.
New UNO paragraph properties:
com::sun::star::text::ParaWordSpacingMinimum
com::sun::star::text::ParaWordSpacingMaximum
New ODF paragraph attributes:
loext:word-spacing-minimum
loext:word-spacing-maximum
New paragraph settings on Text Align pane:
Minimum word spacing
Maximum word spacing
While the desired word spacing got "Desired" label.
Note: suggested values of minimum, desired and
maximum word spacing are 80%, 100% and 133% (default
values e.g. in Adobe InDesign), in narrow columns e.g.
60%, 100% and 150%.
Follow-up to commit 7d6696757d
"tdf#159923 sw cui offapi xmloff: add custom word spacing".
Change-Id: I7f2a07f7fdb634cb16cdd8c2c937ca911b968405
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184595
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
All XAccessibleExtendedAttributes::getExtendedAttributes
implementations return a OUString wrapped in an Any (or
an empty Any), and all consumers also expect that.
Therefore, change the return type from Any to OUString
to make that clearer and simpler.
Change-Id: Ic6af692f72fd072c4039996f31208ac2098d2750
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184514
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Add com::sun::star::text::ParaWordSpacing UNO
and loext:word-spacing ODF extensions to set
desired word spacing of a justified paragraph
relative to the width of the space character,
like DTP software do.
Add Justification section and "Word spacing"
spin box to the Text Align pane of paragraph settings.
This extends not only the smart justify interoperability
feature for custom shrinking (until 0%), but for custom
expansion, too, until 1000%, like Adobe InDesign do.
Note: this value hasn't been applied in the last
paragraph line, yet.
See also XSL-FO/CSS word-spacing and
commit 7d08767b89
"tdf#130088 tdf#119908 smart justify: fix DOCX line count + compat opt."
Change-Id: I06f771335135e4682a1d1abfc9a247dbe4bc6b66
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184187
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
When calling an Export dialog (PDF, epub, ...) the following
folder will be preselected:
For stored documents:
* Current document directory
* If another directory was chosen for the export,
that directory will be preselected for subsequent exports
(stored only during runtime - per document)
For unstored documents:
* The last used export directory is restored (last used in unsaved doc)
Change-Id: I97595d164cf1d3604166c38aa2a5ed31be56f113
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184062
Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Tested-by: Jenkins
Document inheritance of the previously added paragraph
properties:
com::sun::star::text::ParaHyphenationZoneAlways
com::sun::star::text::ParaHyphenationZoneColumn
com::sun::star::text::ParaHyphenationZonePage
com::sun::star::text::ParaHyphenationZoneSpread
Follow-up to commit 7d384fb1c2
"tdf#165984 sw cui xmloff: add Paragraph/Column/Page/Spread end
zone" (where the new paragraph properties were introduced).
Change-Id: I90e275472e487a566b8e9cbb3fe511ec1e1e7874
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183603
Tested-by: László Németh <nemeth@numbertext.org>
Reviewed-by: László Németh <nemeth@numbertext.org>
Add new hyphenation options to adjust hyphenation, like DTP software do
in accordance with typographic requirements:
– Paragraph/Column/Page/Spread end zone spin boxes to Hyphenate Across
section of Text Flow pane of paragraph settings;
– loext:hyphenation-zone-always, loext:hyphenation-zone-column,
loext:hyphenation-zone-page and loext:hyphenation-zone-spread
ODF extensions;
– widorp.cxx, guess.cxx: handle Column/Page/Spread end zones;
– guess.cxx: handle Paragraph end zone (without portions, yet).
According to their typography, languages with long words need better
adjustment of line break of the last full paragraph/column/page/spread
lines, than simply disabling hyphenation by the recent ODF hyphenation-
keep or its equivalent MS Word OOXML extension. DTP software use
paragraph and column/page/spread end zones to adjust the hyphenation
zones in the last lines, for example, setting Column end zone to the
150% percent of the Hyphenation zone, resulting less hyphenation, also
less short words parts at the end of the columns, pages and spreads,
increasing readability.
Note: the default OOXML hyphenation zone 18 pt (or its MS Word variants,
for example 21.25 pt) disables single letter or narrow 2-letter (li-,
fi-, i.e. fi ligature) hyphenations at 12 pt font height. Setting 27 pt
for Column end zone, all 2-letter hyphenation is disabled in last lines
of columns and pages.
Note: textflow.ui needs multiple adjustment definitions for correct work
of the multiple spin boxes.
Change-Id: I37bbb4da30de0ec75eb8636f70d8e16588c56ed1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183565
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth@numbertext.org>
Introduce a new set of setting under org.openoffice.Office.UI/FilePicker
to control whether the settings dialogs of filters always appears. Add an
"Edit Filter Settings" checkbox to the File Open dialog, using the new API
constant FILEOPEN_READONLY_VERSION_FILTEROPTIONS (TemplateDescription.idl)
to show additional controls: "Read Only", "Filter Options", and "Version"
listbox.
Modify the Calc's Text Import filter settings dialog to include an "Always
Show on Import" checkbox.
Co-authored-by: Mike Kaganski <mike.kaganski@collabora.com>
Change-Id: Ic7bea0036ae2db8f8ab223f48499fb0cc8b18425
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/183055
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
UNO commands may optionally rotate or mirror their icons depending on
context (usually based on writing direction). This approach is an easy
way to provide large numbers of such context-sensitive icons, but
suffers from serious drawbacks in certain cases. For example, icons
which contain asymmetrical symbols or text will be obviously mirrored,
and icon themes which use shading will appear inconsistent next to
non-transformed icons from the same theme.
This code change lets icon themes provide specialized graphics for the
left-right-top-bottom text direction. Such specializations are available
for any command which specifies COMMAND_PROPERTY_MIRROR.
Direction-specialized versions should be placed in the `cmd/rltb`
directory within the icon theme.
Localized specializations may also be nested inside that directory. For
example, icons in `cmd/rltb/en` will be used for English in RTL context.
Change-Id: Ic7a8cf3a6657a171e92123413d1c47e621f1bddd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182761
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Tested-by: Jenkins
As the interface's documentation says:
/** This interface is a collection of functions that were necessary to
implement larger parts of the presenter screen as extension. The
methods of this interface give access to services that could only be
implemented in the Office core, not in an extension.
<p>As the presenter screen is no extension any more, this hack can go again;
it just needs clean-up.</p>
*/
interface XPresenterHelper
Now that all uses of the interface have been replaced
by using the concrete sd::presenter::PresenterHelper
class directly in previous commits (see the
`git log --grep="sd presenter"` output), drop the interface.
Take over method documentation to PresenterHelper.
Now that PresenterHelper no subclasses XPresenterHelper,
further cleanup/simplification is possible in upcoming commits.
Change-Id: Ie7bdad151d28762af1710db896bfaa1026dae65f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182259
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>