weld::TreeView and weld::IconView implement the same
logic for signalling about selection changes.
Deduplicate that by moving it to the weld::ItemView
base class.
Change-Id: Ie749ca45cf7da76faf38e8e42eb9a41346f00856
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203368
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Switch the param for the signal and handlers used when
the selection in a weld::IconView changes from weld::IconView&
to the base class, weld::ItemView&.
This is in preparation of moving the logic to the weld::ItemView
base class in an upcoming commit.
This is the IconView equivalent of previous commit
Change-Id: I0bbf8fe1dbd95906a5224155d48d832bcd144532
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Apr 9 13:45:18 2026 +0200
weld: Switch TreeView selection changed signal param to ItemView
Change-Id: I87fad3a129128d4387adfdd75d18e93f05af5e84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203367
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Switch the param for the signal and handlers used when
the selection in a weld::TreeView changes from weld::TreeView&
to the base class, weld::ItemView&.
This is in preparation of moving the logic to the weld::ItemView
base class in an upcoming commit.
Handler implementations that require a weld::TreeView
instance can use the one that the signal is connected
to, e.g. use the class member directly inside of the
implementation instead of using the param (as is done
in most of the places anyway).
Change-Id: I0bbf8fe1dbd95906a5224155d48d832bcd144532
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203366
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
There is nothing specific to weld::TreeView in that
method, so move it to the weld::ItemView base class.
This allows to reuse it for weld::IconView as well,
which also subclasses weld::ItemView.
Change-Id: Ia6ef9e1aee19d99bf82b07d02ded700c1914f450
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203357
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
weld::IconView and weld::TreeView implement the same logic
to subscribe to and emit signals when an item/row is activated.
Deduplicate that by moving the logic to the shared
weld::ItemView base class.
While at it, also adjust the connect_item_activated
doc so far only explaining the TreeView case (for both
implementations, also the IconView one, which was
probably just copy-pasted earlier) to also take
into account the IconView case.
Change-Id: I0281645e99492139d53f6a50403237eff8cde6a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203351
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Rename methods and field related to signalling activation
of a weld::TreeView row to use the same names as the equivalent
ones for signalling activation of an entry in weld::IconView:
* weld::TreeView::m_aRowActivatedHdl -> weld::TreeView::m_aItemActivatedHdl
* weld::TreeView::signal_row_activated -> weld::TreeView::signal_item_activated
* weld::TreeView::connect_row_activated -> weld::TreeView::connect_item_activated
This is in preparation of deduplicating the weld::TreeView
and weld::IconView implementations for these by moving them
to the common weld::ItemView base class in an upcoming commit.
Change-Id: I4ca4dec1295c57cea574b68fd41b89c12144c4f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203350
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Sets default numbering format of subdocuments to be 012_ABC rather than
previous ABC12, which allows for formatting.
1. Introduces a class `PaddedSequentialTokens` to "pad" the number
with leading zeroes
2. Introduces a function `concatFunc` in parameters to customize
format of numbered subdocuments
Change-Id: I95aaf552189a5e1b9bdf7a178cbc3a83c8ab8e16
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187939
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Balance word spacing within the consecutive lines
to get uniform grayness and less rivers for better
readability, enabled by the new paragraph property
com::sun::star::text::ParaComposer
and the following developments:
* Add Paragraph Composer checkbox on Alignment pane of the
paragraph formatting dialog window (not default yet);
* Implement paragraph composer: big word spacing of a
line is decreased by shifting the last word from the
previous line, only if the word spacing is better, than
before, and the increased word spacing in the previous
line doesn't exceed the Maximum word spacing (limited
paragraph composer);
* When Maximum word spacing is not greater than the Desired
word spacing, shifting of the last word is not limited
by the Maximum word spacing (unlimited paragraph composer)
* Add loext:paragraph-composer attribute, as LibreOffice
ODF extension;
* Add ODF unit tests for the limited and not limited
paragraph composer.
Note: "Smart justify" line breaking algorithm chooses
space shrinking (limited by Minimum word spacing)
only if shifting the last word isn't better based
on the desired word spacing. This was still a greedy
line breaking algorithm, resulting big word spacing
in the lines before a longer word.
The paragraph composer shifts the last word (or the
first part of the hyphenated last word) from the previous
line to decrease big word spacing in the actual line.
Note: balancing very big word spacing in narrow consecutive
lines can result vertical rivers. To avoid this, use limited
paragraph composer by setting maximum word spacing.
Follow-up to "smart justify", word spacing, letter spacing
and glyph scaling developments. Selected commits:
commit 529755f091 "tdf#166113
sw smart justify: adjust algorithm for interoperability",
commit 7d08767b89 "tdf#130088
"tdf#119908 smart justify: fix DOCX line count + compat opt.",
commit 7d6696757d "tdf#159923
sw cui offapi xmloff: add custom word spacing",
commit 5a48070f59 "tdf#126154
sw offapi xmloff cui: add min/max word spacing",
commit f83a04c510 "tdf#167648
cui offapi xmloff sw: add DTP-feature maximum letter spacing",
commit 3c53797210 "tdf#167648
sw letter spacing: implement minimum letter spacing",
commit 45ec7bd761 "tdf#168251
cui offapi xmloff sw glyph scaling: extend UNO/UX/ODF".
Change-Id: I727caad70536c86be524bc9d9b52bc71208c202a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203288
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
This is basically the weld::TreeView version of earlier
commit
Change-Id: I8ca62ac32108f01e2055d5ef9301de22eb5b1931
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Apr 8 12:35:25 2026 +0200
weld: Pass activated item in IconView::signal_item_activated
applying an equivalent change for weld::IconView instead
of weld::TreeView. See that commit for more details/background.
For weld::TreeView, the weld::TreeIter refers to
a full row (and columns are handled separately
by a column index in the weld::TreeView API).
As for the above commit:
Initially, leave the logic of the existing signal handlers/callbackes
(in dialog implementations) unchanged. At least some of them
will be simplified in upcoming commits to use the
newly passed weld::TreeIter param directly instead of
determining the current/activated row a different
way.
Change-Id: Ie6a962702d4f7f069b2f7b77a22a78722b2a6408
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203331
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
So far, the IconView::signal_item_activated was called
with the weld::IconView itself as a parameter, i.e.
the information what item was selected wasn't directly
passed to the signal handlers.
Change that to pass a weld::TreeIter param referring to the
activated item instead of the IconView itself.
The information what item was activated is relevant
and this way, there is no need to determine it some
other way in the handlers (e.g. by using the first
selected entry).
This also aligns this more with what UI toolkits
like GTK and Qt provide.
For GTK, the GtkIconView::item-activated signal [1]
has the path of the activated entry.
For Qt, the QAbstractItemView::activated signal [2]
has the QModelIndex of the activated item.
For the vcl implementation in SalInstanceIconView::DoubleClickHdl,
use the cursor/current item.
In LOKTrigger::trigger_item_activated, use the currently selected
entry (retrieved via weld::IconView::get_selected), because the
only caller in jsdialog::ExecuteAction uses weld::IconView::select
first to select an entry before triggering the signal.
Initially, leave the logic of the existing signal handlers/callbackes
(in dialog implementations) unchanged. At least some of them
will be simplified in upcoming commits.
[1] https://docs.gtk.org/gtk3/signal.IconView.item-activated.html
[2] https://doc.qt.io/qt-6/qabstractitemview.html#activated
Change-Id: I8ca62ac32108f01e2055d5ef9301de22eb5b1931
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203317
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Add weld::TreeView::m_rItemView and a corresponding
getter to provide access to the weld::ItemView that the
weld::TreeIter is associated with (i.e. the one by which
it was created and to one of whose items it refers).
This will be used in an upcoming commit switching
the row/item activation signals/handlers for
weld::TreeView (weld::TreeView::m_aRowActivatedHdl)
and weld::IconView::m_aItemActivatedHdl) from passing
only the ItemView as a param to passing a weld::TreeIter
for the activated item as a param.
(With this preparatory commit in place, the ItemView
will still be available from the new weld::TreeView
param where handlers need access to it.)
Change-Id: Ic2fd898e543a5073d44252b1acbc8eb2bc10f0ae
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203316
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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: Id2c40f0fa57a18b797079bf2a1aa8b6f03c77f44
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203314
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Don't have a single handler method for both of the
icon views in SfxCharmapContainer and make a distinction
on the icon view in the handler, but have a separate handler
for each of them.
This prepares for adjusting the IconView::m_aItemActivatedHdl
to pass the weld::TreeIter of the activated entry instead
of just the weld::IconView itself.
Change-Id: I716197d0e4818469b88e53d9198066392d1c975a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203289
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Move the approxDiff heuristic from the sc unnamed namespace to rtl::math and
disable floating-point contraction (FMA) for this function.
On ARM64 (Apple Silicon), the use of Fused Multiply-Add (FMA) results in
higher intermediate precision during floating-point operations. While
mathematically more accurate, this prevents legacy rounding heuristics in
approxDiff and approxValue from detecting and cleaning rounding artifacts
in series generation (e.g., 1.1 - 1.0).
Disabling fp-contract forces intermediate rounding to 64-bit IEEE 754
limits. This ensures the noise expected by the approximation logic is
present, restoring consistency with x86-64 behavior and fixing issues where
values like 6.0 are incorrectly rendered as 6.00000000000001.
Change-Id: I54a0f748be6cf817db1f3bdcfd2b355320c3a617
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203233
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
LO on macOS must run NSApplicationMain() to enable non-blocking JVM
native windowing, as the JVM runs NSApplicationMain() itself if the
callstack isn't already running it. NSApplicationMain() sets up the
Cocoa application, loads the NIB, and eventually runs the event
loop, returning only when the application exits.
If the JVM runs NSApplicationMain(), this blocks the macOS VCL
event loop because NSApplicationMain() grabs all the events
and doesn't return. Because of this, the macOS VCL must run
NSApplicationMain() itself early in startup, which will prevent the
JVM from running it later.
Previously the JVM issue was worked around by running
NSApplicationMain() from early in ImplSVMain(), returning half-way
through, and eventually re-entering ImplSVMain() using condition
variables to only execute the second half on re-entrance. This was
confusing.
Instead, break ImplSVMain() into two parts and allow VCL plugins
to override the second part that actually runs the application.
On macOS instead of re-entering ImplSVMain() after LO has loaded
call the simplified second part of ImplSVMain().
[side-note: the original commit introducing the nested ImplSVMain()
hack (284a7f60ff) mentions running
the JVM in a thread to get around the blocking event loop issue;
but this doesn't work because even if the JVM is loaded and created
in a separate thread, it calls NSApplicationMain() from the main
thread anyway. It must do this because on macOS all UI-related work
must happen from the main thread as Cocoa is not fully re-entrant.]
Change-Id: I2adfef32502b8ad0efaf16d6959df16d937019df
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200714
Tested-by: Jenkins
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Removing trailing/leading spaces or tabs might come as a surprise.
Telling the user what happens and offering access to the options
should make this action more transparent.
The patch adds an infobar with buttons to not show it again via the
AutoCorrLeadTrail variable, and to change the auto correction options.
The dialog is opened at the respective tab per SID_OPEN_AUTOCORROPTIONS,
which is sorted into the sfxresid's to keep similar ID's together.
SID_RULER* and SID_TABLE* ID's were incremented therefore.
Change-Id: I657b44f6d32724749e388f143705d3cfc0f5bbd4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203136
Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
StateChanged and onCreate
This fixes the problem where, for example, removing the first entry in
the notebookbar shortcuts worked visually, but clicking on a button
invoked the command of the button to its right.
Change-Id: If2692e7fffa83fb83d23a2728d0d522ce5978200
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203204
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
This reverts commit 3b43be508d.
Modifies the original implementation to skip parsing font names when
SAL_NON_APPLICATION_FONT_USE=abort. This recovers the original Windows
testsuite execution time, and otherwise doesn't affect tests since that
environment variable is meant to prevent font fallback.
This change had an outsized effect on Windows test execution time, but
does not seem to have a significant effect on Windows desktop
performance. Out of an abundance of caution, this change also includes
some small optimizations which should reduce the amount of I/O which is
done while parsing localized font names.
Change-Id: Idc80f20d859863e02788a301c1f3af15ab0e8a4f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203280
Tested-by: Jenkins
Reviewed-by: Jonathan Clark <jonathan@libreoffice.org>
Add vcl::FontVariation struct and font-variation-settings
parse/serialize utilities, and add getters/setters for font variations
settings through VCL font APIs.
Change-Id: I0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203242
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
The data set is always OUString* in reality by now, so switch
the type accordingly. This allows dropping static_cast'ing
to OUString in multiple places already assuming that the
data is actually OUString*.
Change-Id: I53b06d799802530bbe86c09150ba23447d1a9d08
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203206
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
BuilderBase::get_model_by_name is unused now after
Change-Id: Idaad67704fc7093510d2cca8ca5e5aad7431e780
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Apr 2 23:27:20 2026 +0200
vcl: Drop VclBuilder logic to apply model's <row> data
, so drop it and related data structures.
Change-Id: Iae422c7508ad4caefd362ed9e5d009d0ab2d93fb
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203203
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
So far, the WidgetBuilder::insertObject implementations in
the VclBuilder and QtBuilder subclasses were clearing the properties
passed to them. (QtBuilder currently only uses one of the 3 maps, so
only clears one.) Stop doing it there.
There are 2 places where WidgetBuilder::insertObject is called
inside the WidgetBuilder implementation. Leave the behavior of
the first one effectively unchanged, by clearing the maps after the call
to WidgetBuilder::insertObject (that now no longer clears the
maps itself).
For the second call, don't explicitly clear the maps, so that
the active index can still be extracted and passed to the
WidgetBuilder::insertComboBoxOrListBoxItems call that follows
in case there are entries.
Otherwise, behavior is unchanged there as well, because the
local variables then go out of scope as the end of the
method is reached.
Still being able to extract the "active" property for comboboxes
ensures that the correct entry gets preselected if one
has explicitly been specified in the .ui file.
This can e.g. be seen with the gen vcl plugin
and the qt6 vcl plugin with SAL_VCL_QT_USE_WELDED_WIDGETS=1
for the widget test dialog that can be triggered like this:
* in "Tools" -> "Customize", set a keyboard shortcut for
function/UNO command ".uno:WidgetTestDialog"
* close the dialog and activate the shortcut
Without this commit in place, the first entry ("Test 1")
was preselected in the combobox for both cases.
With this commit in place, the third entry ("Test 3")
is now preselected as expected because that entry
is specified as the active entry:
<object class="GtkComboBoxText" id="combo_box_enable">
<property name="visible">True</property>
<property name="can-focus">False</property>
-> <property name="active">2</property>
<property name="has-entry">True</property>
<items>
<item id="0">Test 1</item>
<item id="0">Test 2</item>
<item id="0">Test 3</item>
<item id="0">Test 4</item>
<item id="0">Test 5</item>
</items>
<child internal-child="entry">
<object class="GtkEntry">
<property name="can-focus">False</property>
</object>
</child>
</object>
This also matches the behavior seen with the gtk3 vcl
plugin (with or without this commit in place, because
WidgetBuilder with its custom .ui file parsing isn't used
for it.)
Change-Id: Ibe36984e5216aca272d4979e9b6109ffa36286d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203201
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Instead of calling BuilderBase::extractActive to identify
the index of the combobox entry to preselect in both,
the VclBuilder and the QtBuilder subclasses, do so in
the common WidgetBuilder base class and only pass that
index instead of the whole map of properties.
Change-Id: I96a95615d2d399780196639507c2d13f5288e3bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203200
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
By now, entry data for the vcl ComboBox and ListBox is always
OUString*, so use that more specific type than void*.
This also allows to drop a static_cast in
SalInstanceComboBox::getEntryData, which was
already assuming that the data is always OUString*.
Change-Id: Ia64f5c061010706a8d0411c38fbb0c3cc632777f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203199
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Following previous commit
Change-Id: I92d12fa4ce0afacc16357e8515fecfb0508a9c0f
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Thu Apr 2 23:02:40 2026 +0200
vcl: Stop processing GtkListStore <row> data in BuilderBase
that stopped evaluating the <row> data in models in
.ui files because the feature is no longer used, also
drop applying the (no longer) previously read data
in VclBuilder to the corresponding vcl widgets
(ComboBox, ListBox, SvTabListBox) to simplify and clean
up code.
This also makes it more obvious that there is no
need to implement similar logic for the qt welding
case (i.e. in QtInstanceBuilder) and will allow
for further vcl code cleanup in an upcoming commit.
Setting weld::ComboBox entries directly in .ui files
via the <items> descendant in a GtkComboBoxText
remains supported (see how `aItems` is filled in
WidgetBuilder::handleObject), as used e.g. in the
widget test dialog (cui/uiconfig/ui/widgettestdialog.ui)
that can be triggered like this:
* in "Tools" -> "Customize", set a keyboard shortcut for
function/UNO command ".uno:WidgetTestDialog"
* close the dialog and activate the shortcut
Change-Id: Idaad67704fc7093510d2cca8ca5e5aad7431e780
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203197
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
In the past, GtkListStore model data, e.g. the entries
for GtkComboBox, objects were sometimes directly
defined in .ui files using <row> children for the GtkListStore.
By now, this is no longer the case, all remaining uses of this
have been switched over (e.g. to use GtkComboBoxText and
defining its <items> instead).
Sample commit:
commit 3906bb7bed
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Mar 17 15:23:14 2026 +0100
tdf#130857 widgettestdialog: Use GtkComboBoxText
Replace GtkComboBox "combo_box_enable" that has
preexisting entries defined in a GtkListStore
with a GtkComboBoxText with corresponding
items predefined directly without
using a separate list store.
That better aligns this with what is done elsewhere
and what e.g.
commit e0218ed419
Date: Thu Sep 26 11:58:15 2019 +0100
weld ORelationDialog and DlgQryJoin
and other commits also switched to elsewhere.
It also makes the entries show up when using the
qt6 VCL plugin with native widgets enabled
(SAL_VCL_QT_USE_WELDED_WIDGETS=1) where support
for the previous way of defining entries isn't
implemented (and it doesn't seem worthwile to
implement such support).
To trigger the dialog:
* in "Tools" -> "Customize", set a keyboard shortcut for
function/UNO command ".uno:WidgetTestDialog"
* close the dialog and activat the shortcut
The `git grep '<row>'` output shows that by now,
only 3 more .ui files use the way of defining
`<row>` in models:
$ git grep '<row>' | grep \\.ui | uniq
dbaccess/uiconfig/ui/relationdialog.ui: <row>
sw/uiconfig/swriter/ui/insertcaption.ui: <row>
vcl/qa/cppunit/builder/demo.ui: <row>
Change-Id: Idce2668b6d1e55ae7dda634ba18e41a07f4735b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201940
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
By now, all remaining `git grep '<row>' | grep \\.ui`
search results have been ported/dropped as well.
Therefore, drop the now no longer used logic to
evaluate the <row> data from BuilderBase as well
and add an assert instead to make sure any attempts
to re-introduce such uses will be detected.
Further code cleanup will happen in upcoming
commits.
Change-Id: I92d12fa4ce0afacc16357e8515fecfb0508a9c0f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203196
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Instead of having empty/dummy implementations in both, the gtk and
qt weld implementations for these methods only relevant for
the LibreOfficeKit/jsdialog scenario, rather have default
implementations directly in the weld::Widget base class.
Change-Id: Ie15770db4ae8002663ef83d053d0b02b06ae4824
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203190
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
This is in preparation of also adding
a source file with default implementation
of some weld::Widget methods.
Change-Id: I5867cbaa108c74f01b381fc7256451245a0fc300
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203189
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Instead of overriding the purely virtual
weld::Dialog::SetInstallLOKNotifierHdl in both, the gtk
and the qt weld implementations, have an empty default
implementation right in the weld::Dialog base class instead.
This method is only relevant for the case where
LibreOfficeKit is used.
Change-Id: If4cafb9d9f00ad497fdd35ee9dfbf400bc18301d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203188
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This reverts commit 5257ad4ec1.
Unfortunately it makes the Windows bots in CI to take more
than two hours to complete a "make build unitcheck slowcheck"
instead of the previous average 55 minutes
Change-Id: I578be5bd2c4fc9c15084d5feb5d66cc89d25c83b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203221
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
... instead of by pointer. This makes a bit more
obvious it's always non-null and therefore safe to
unconditionally dereference inside of the method.
Change-Id: Ibd975c7a0bb5122d825fb57c9e477c4719e29bff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203148
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
In "Tools" -> "Options" -> "LibreOfficeDev" -> "General",
only allow configuring the use of a native color chooser
dialog when the SalInstance/vcl plugin in use actually
provides one. This matches the logic already implemented
for file dialogs.
Change-Id: I4cedf9fe5d028d111b972797571265c221f0651b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/203003
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The package supporting the “pdfium” library has been improved.
Numeric values have been converted to a fixed-size enumeration type.
The changes apply to all occurrences of the older version of this code.
Change-Id: Ie9d0bd98d7c323f890ac3051bb1f08a50d51e046
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/201303
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
The BackgroundShape of a Diagram does have only Fill
attributes, so LineStyle stuff has to be de-activated
when it is selected as SubSelection. Tried to do that
as generic as possible, but may need some more work.
Added code to allow the same DirectTextEdit for
SubSelection shapes as for regular shapes. Needs to be
limited to TextNode shapes. This is
(a) just starting to type when Object with Text is selected
(b) support Double-Clicking it to start TextEdit
Change-Id: I8b5ae618684f915aabed48281aa980227c04266c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202871
Tested-by: Jenkins
Reviewed-by: Armin Le Grand <Armin.Le.Grand@me.com>
This patch was all based on trial and error and Google.
What we currently export is considered corrupt by
modern MS Word (2019, 2024 tested),
but not reported as corrupt by MS Word 2010!
Interacting with google suggests that most of chartexport.cxx
was probably written for PowerPoint (XML_p) and Excel (XML_xdr),
This patch is concerned about Word (XML_wps)
whose mnXmlNamespace came from ShapeExport::WriteGroupShape.
Apparently Word didn't complain about invalid
wps:nvGraphicFramePr for wps:wsp,
but it does complain for wpg:wgp (groupshapes).
Exporting group-shaped charts for Word 2019 has never worked.
Already broken when vmiklos started
import of group-shaped charts in 6.2.5
tdf#124398 DOCX drawingML import: handle charts in group shapes
make CppunitTest_sw_ooxmlexport27 \
CPPUNIT_TEST_NAME=testTdf124398_groupshapeChart
Change-Id: Iea0c1cc727501b540666b17146024dffa149d257
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/202692
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>