Now after
Change-Id: I3593630b4758d0547264c0ed63fec7ac111ccfd7
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Oct 6 17:30:24 2026 +0200
svtools: Drop ValueSetItemType::ImageAndText and related logic
, the `rRendercontext` param for ValueSet::ImplFormatItem
is unused, so drop it, and also the then unused
corresponding ValueSet::Format param.
Change-Id: Ibc8afabf147974da1ed67ef903abc13c054c4c12
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211911
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
No single caller passes any explicit value for that
param, so the default of `false` is always used.
Drop the param and simplify the implementation a bit.
This will also allow for further cleanup in an upcoming
commit.
Change-Id: I0d2f691eecfac013bc8ad3e506484d958d18ce0a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211909
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The last caller of that method was ported from ValueSet
to weld::IconView in previous commit
Change-Id: I28d86251b70149574535dc7b583660dbe42e9a0d
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Oct 6 15:01:52 2026 +0200
svx: Port ExtrusionLightingWindow from ValueSet to weld::IconView
Change-Id: I232f3767268a4fde206515f2a6d92e35c664ccd1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211904
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
After
Change-Id: I0150e699602a625874e5a09b8df38110f52c0c03
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Oct 6 12:15:49 2026 +0200
svtools: Drop now unused WB_NAMEFIELD logic from ValueSet
, that member is only written to, but never read, so drop
it completely.
Change-Id: I974183e725e3c530162152debd29bbf207b21b6b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211899
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The last case where that style flag was set was ported
away from ValueSet to use weld::IconView instead in earlier
commit
Change-Id: I1c23a305322105608d0152bcd0b0fa195be14eff
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Oct 6 11:48:21 2026 +0200
cui: Port Callout tab page from ValueSet to weld::IconView
Therefore, drop the logic in ValueSet handling that
flag, to simplify the code.
This also means that the `pItem` param for ValueSet::ImplDrawSelect
is now unused, so drop that one, too.
Change-Id: I0150e699602a625874e5a09b8df38110f52c0c03
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211898
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Drop ValueSet forward declarations from headers
not actually using the class.
Forward-declare the class in cui/source/inc/numpages.hxx
which actually uses it, but didn't forward-declare it
or include the header yet, but previously got the forward-declaration
from an included header.
Change-Id: I8876ad47eb362f581aa41ee4a61a85c4093a1dd0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211881
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The last caller of ValueSet::SetItemData and
ValueSet::GetItemData was ported away from
using ValueSet in
Change-Id: I423e80bba9e81a98e80652f6486970d40286362e
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Oct 2 12:36:17 2026 +0200
svx: Switch to weld::TreeView in LineWidthPopup
. Drop the now unused methods and the corresponding
ValueSetItem::mpData member that could previously be used
to store custom data in an item.
Similar logic still exists in weld::IconView
and weld::TreeView, which should generally be preferred
over using the custom ValueSet widget.
Change-Id: I7d58ff933cb78a1157d3628096a17f68ddf2034d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211737
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Let FontNameBox::LoadMRUEntries simply return the
entries loaded from the file instead of applying
them to the combobox right away.
Let the only caller FontNameBox::Fill do the insertion,
which also unifies the two different code paths of
either reinserting the existing entries or setting
the ones loaded from the file a bit more.
While at it, also rename the local `rEntries`
variable to `aEntries`, to make clear this is
not actually a reference (as the `r` prefix
previously suggested).
Change-Id: I89c14f2bcd34c4b6b4decf33e98bef54e7b31cf0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211536
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The list of sheets is already available via right clic on any activated button
in the navigation bar. However, it is somehow hidden for the user.
This change added (for LTR and RTL UI) a hamburger button which show the list
with a simple left click.
Change-Id: Ic21b1e4d345a10bf86f2e97d1f7749bbcacc7a6e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210677
Tested-by: Jenkins
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Move QueryDialog from cui to a public svtools header.
This is in preparation of using the class directly
and dropping the AbstractQueryDialog abstraction
altogether.
The dialog can e.g. be triggered like this:
* start Writer
* Ctrl+Shift+S for "Save As"
* select "Text (.txt)" for the file type
* press OK
(Resetting the profile ensures the dialog gets shown
in case the "Don't show again" checkbox has been ticked
previously.)
Change-Id: I57bdade32c21c7ab40c5a4c90bd86e8dea5d2fad
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210136
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tools > Options > LibreOffice > Accessibility > High Contrast
has three possible values. Changing this setting requires a
restart to take effect, but no restart dialog was shown.
Add a new RESTART_REASON_HIGH_CONTRAST reason and wire it up
in SvxAccessibilityOptionsTabPage::FillItemSet() following the
same pattern used for Skia and Threaded Calculation settings.
Also call save_value() in Reset() so that
get_value_changed_from_saved() correctly detects whether the
user actually changed the combo-box value before showing the
dialog.
Change-Id: I1d628ce04bc8f7cf6f1b4e4a8bb7a44a0a653c0c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208996
Reviewed-by: Hossein <hossein@libreoffice.org>
Tested-by: Jenkins
Tested-by: Hossein <hossein@libreoffice.org>
vcl::WindowData is used to manage/store various state
information for windows. It can be (de)serialized to/from string.
So far, both the weld::Window API to get/set window state
as well as the SvtViewOptions API were based on the string
representation.
Switch those and various related places to using vcl::WindowData
instead to use a stronger/more specific type than just OUString
in various places across the code base.
Do the string (de)serialization where necessary, but otherwise
prefer to use vcl::WindowData directly.
Calling weld::Window::set_window_state with a WindowData
param that doesn't indicate that anything should be set
(i.e. whose mask is vcl::WindowDataMask::NONE) should
have no effect, so drop extra checks that were previously
checking whether the string representation was empty
and skipping the call to weld::Window::set_window_state in
that case.
No change in user-observable behavior intended or
seen in a quick test.
Change-Id: I5bc4caeb49d0ab2bbc4fa597a5ef19d86d3aac2c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208125
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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>
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>
Colors were introduced as ThemeColors since they are not entirely application
colors (but also not really UI-related) and because svtools:: is not accessiblke
in vcl. This patch makes the colors hard-coded therefore, still allowing to
disable it but only via expert setting NotebookbarColorTransparency.
It also enables the colors on macOS following the positive feedback.
Change-Id: Iece63d440349b0c42ea6dbc1dad36f0b1e7120a0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207476
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
The Character dialog registered a change only when the family name
differed, so picking an extended style of the same family (say a width
such as "Condensed") updated weight/italic but never stored the chosen
subfamily.
Store the chosen style as the text's typographic subfamily, and detect
style-name-only changes too. R/I/B/BI styles stay weight/italic-only, so
common case is unaffected. Since the style box is localized, we map it
back to the font’s own style name to keep the stored subfamily
locale-independent, and show it again on reset.
Change-Id: I9cef7071af1c62829572253f7c9f6cee36ad8266
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207330
Tested-by: Jenkins
Reviewed-by: Khaled Hosny <khaled@libreoffice.org>
I saw some warnings and got suspicious, so I converted
the OSL_ENSURE to assert, and then found that we
have two copies of the s_nRefCount static field, which
obviously causes trouble.
I tried to fix this by removing usage of this dubious
template class, but the templates classes are intertwined,
and that lead to a very large patch with weird failures.
So this is a hacky minimal fix, using explicit template
instantiation to force the code to only be emitted
in a single library.
Change-Id: I634afb8b40570f2e7e0f8da541b8a2b6325fdc29
Reviewed-on: https://gerrit.collaboraoffice.com/c/core/+/904
Reviewed-by: Noel Grandin <noel.grandin@collabora.com>
Tested-by: Jenkins CPCI <releng@collaboraoffice.com>
(cherry picked from commit af69817a343ccf1411f6f8980c94ed1f696769b4)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207023
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
Use more concrete OAccessible instead of the
abstract XAccessible UNO interface.
Change-Id: I46a5bd0af8c731a1da39f1960664152ee9c7c16c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206731
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Return the more concrete OAccessible class instead of the
abstract XAccessible UNO interface.
Change-Id: Ifc50ac7f74bf1743e849f905af3b9b66b7a98eba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206730
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Return the more concrete OAccessible class instead of the
abstract XAccessible UNO interface.
Change-Id: I6e8b74c9bc06a72ab316ba97d76172529e9ab85b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206729
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Use the more concrete OAccessible class instead of the
abstract XAccessible UNO interface.
Change-Id: I475ff467c5e430825e265d27972629a3f2f111f8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206728
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
After
Change-Id: Iddf8cb3f8b8b0c81d469c0cd4b5d473634f7bac9
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Jun 9 15:07:39 2026 +0200
svtools: Drop ValueSet's WB_NONEFIELD flag
, ValueSet::mpNoneItem isn't assigned anywhere, so
is always null. Drop it and corresponding logic altogether
and also the then unused ValueSet::maNoneItemRect.
Change-Id: I2e12d4664418d40df85a1f791893109695c31398
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206255
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
It's known to always be non-null. (The only caller already
unconditinally dereferences the ValueSetItem* it passes
in the line above.)
Switch the param to reference to make more obvious it's always
non-null.
Change-Id: I60c66d6b5950fac6d9cd067106c7cdc05fce60f6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206254
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The last user of that flag/feature was dropped in
previous commit
Change-Id: I32fb82cf0d2a631e20265847b8387075738ad813
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Tue Jun 9 14:51:15 2026 +0200
sc: Use separate button for "Default" in tab bg color dialog
Therefore, drop the feature/implementation that would
only be relevant if there was still any user left.
In a first step (this commit), drop code checking for that
flag more or less directly. Further cleanup will follow
in separate commits.
the `nOff` local variable in ValueSet::Format can also be
dropped: It is assigned a value in any case, but the value
would only have been read of the WB_NONEFIELD case
further down.
Change-Id: Iddf8cb3f8b8b0c81d469c0cd4b5d473634f7bac9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206252
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
weld::Widget::connect_get_property_tree
was relevant for Collabora Online/jsdialog,
but Collabora Online no longer uses this repo and
jsdialog support was dropped in
commit 8a91868e21
Date: Tue Jun 2 14:53:19 2026 +0200
drop JSDialog machinery
, so drop the method and some related logic as well.
Further simplification/cleanup will follow in
upcoming commits.
Change-Id: Id027e83e23ebb72a1cb62a36f27410fad6d698e3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/206009
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
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
This makes it easier to keep an overview and reduces
what needs to be recompiled if the class changes in
the future.
Change-Id: If29ec68d2d28dfaf1b11d46c7efc72e128857ccd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205934
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This makes it easier to keep an overview and reduces
what needs to be recompiled if the class changes in
the future.
Change-Id: I8cea078c992204327686c65f9f7ec2e70f689388
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205930
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.
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
Move the class definition and implementation out of weld.hxx
and weldutils.cxx 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: I97768bf75dac492e32e1d387853d123481aa643a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205902
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use a weld::TreeView inset of the custom ValueSet widget
for the SvtLineListBox that can be used to select a line
style.
Show the name of the line style in a column next to the
icon, which makes this more consistent with the popup used
to set a line style for Calc cells in the "Properties"
sidebar deck, section "Cell Appearance".
Using weld::TreeView also helps to be more consistent with
other platform/toolkit widgets and reduces use of custom
widget logic (implemented in the ValueSet class).
Some notes:
* ValueSet uses a 1-based ID for its items. weld::TreeView
uses a 0-based index, so adjust places using those
accordingly.
* Use the weld::TreeView handler for item activation
(set with weld::TreeView::connect_item_activated) instead
of the ValueSet selection handler (set with
ValueSet::SetSelectHdl) and activate single-click activation
(using the GtkTreeView::activate-on-single-click property
in the UI file) so that a single click on an item still activates
it but keyboard navigation using the arrow keys doesn't.
SvtLineListBox gets used e.g. in the control to pick the line style
in Writer's "Format" -> "Page Style" dialog, tab "Borders".
Adjust a UI test accordingly (use TreeView widget, use
new 0-based indices and press the Return key after selection,
to activate selected entry).
Change-Id: I54fb1d2a49774c6c64eda0ad5de7af36c3603cee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205821
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: Ide86f35543468a88288a068cc9f89eaf381ac52f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205763
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: Ic0ca052460c3c84ca00bc392c81c1c9fa7bde6b8
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205464
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Shades the background of Notebookbars with module-specific
colors if theming is enabled. The patch adds four *NOTEBOOKBARCOLOR
colors in the UI theming section.
To deal with light/dark system themes, the color is merged with the
background at a transparency of 150 by default, which can be changed
via the expert setting common::Misc::NotebookbarColorTransparency.
MacOS is excluded since it draws the whole Notebookbar and has
no extra colors for the background.
Change-Id: Ia016499a9657793ebcbe07f7a50281195ab08c43
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205153
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Tested-by: Jenkins
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: If7cb4403f1861c465f44a1cae4065b0bf8dfad48
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/205323
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>