Qt plugin automatically orders buttons for each platform based on
the button's role, which we derive from the Gtk .ui file's
action-widget response code. But to do that conversion from response
code to Qt button role, we need a standard response.
Without a standard response, the button has no role, and gets ordered
to the right of OK/Cancel buttons on Mac. With the correct role, it
is correctly placed far-left along with the Help button.
Change-Id: I16d3126d4999649e7aa6e72ec5e7b1a25f48c2a3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210223
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Reviewed-by: Dan Williams <dcbw@libreoffice.org>
Tested-by: Jenkins
* Makes the title show as "Slide Properties" instead of "Page
Properties".
* Makes the label for the resize all slides checkbox show as "Resize all
slides" instead of "Resize all pages"
Change-Id: Idda0bdf6ef6215696ae4189549f62c05ef0076c4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209996
Reviewed-by: Ilmari Lauhakangas <ilmari.lauhakangas@libreoffice.org>
Tested-by: Jenkins
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>
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
If the caller of the dialog doesn’t request the
SID_ATTR_RESIZE_ALL_PAGES attribute then the checkbox to configure
whether to resize all pages will now be hidden. This fixes the problem
that the checkbox was shown in Writer and Calc but it actually only has
any effect in Draw and Impress.
Change-Id: I47a0d5320071c00830f5e95ad3d6753c56ecc0f1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209413
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Tested-by: Jenkins
After 2016 Gsoc rework of color tab, UpdateModified is:
- useless since the color pick isn't relied with m_pColorList
- wrong since there's no case where color pick button should be disabled.
So when starting a brand new odp and right click on Area, color pick button should be enabled.
Change-Id: I5b1b0f0c3eb7e100a69379ca014eeb1b14263611
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/209317
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
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>
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>
The dialog for choosing a UI has a button at the bottom to apply the
setting only to the current module and it has the text “Apply to
%MODULE” where %MODULE gets replaced with a non-translatable name for
the module.
For better or worse, some translations (such as Esperanto) have
different names for the modules. For example Writer is Verkilo. For the
sake of consistency, it would be nice to be able to translate these
strings.
It is also difficult translate this string in languages that have a lot
of grammatical cases. For example, in Slovakian the translator might
ideally want to translate the string as “Použiť vo Writeri” and “Použiť
v Calcu” etc, but they currently can’t do this because they would need
to be able to add a different suffix depending on which module is being
used.
In order to fix both problems there is now a specific string with the
whole text for each module.
Change-Id: I7c478790d89bf33f26b53642a076f9e308d1e64a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208800
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
The part of GetCurrentApp that gets the enum of the current app is now
split out into a separate function so that it can be used in a later
patch.
Change-Id: Iee2d00cc8384c6c05cd36c5ebcfe5df3174dfd21
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208859
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
This fixes an initial import copy paste typo.
Without the fix, the user would first need to select another choice,
close the format dialog with an OK, and then open it up again
where this time it allows the choice of 'Without' to stick.
Change-Id: I3f63d68002135b8aed9370ba829b74c6f72753b5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208873
Tested-by: Jenkins
Reviewed-by: Justin Luth <jluth@mail.com>
This class is unused now after
Change-Id: If15d1519cea179596bd72aaf5354d01f89ccb9e7
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jul 27 13:38:37 2026 +0200
tdf#172275 tdf#172831 cui: Drop unused SvxConfigPage::m_s{App,File}Name
Drop it.
Change-Id: Ic670d1db42f2262ee67d87b84819bf0aab8d9c30
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208673
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
The getters for these members are no longer used since
Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jul 27 13:12:52 2026 +0200
tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage
and the members are not used inside the class (except for assigning
a value to them) either, so drop them.
Change-Id: If15d1519cea179596bd72aaf5354d01f89ccb9e7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208672
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
These are unused now after
Change-Id: I3a07781df97cec9bc4f449aaee758dc73fa97157
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jul 27 13:31:37 2026 +0200
tdf#172275 tdf#172831 Drop more unused CustomNotebookbarGenerator methods
Change-Id: Ia2fe4b814d15be96cd68b3b425c6deed16a664a9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208671
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
These methods are no longer needed after
Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jul 27 13:12:52 2026 +0200
tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage
Change-Id: I3a07781df97cec9bc4f449aaee758dc73fa97157
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208670
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
CustomNotebookbarGenerator::modifyCustomizedUIFile is unused now
after
Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Mon Jul 27 13:12:52 2026 +0200
tdf#172275 tdf#172831 Drop unused SvxNotebookbarConfigPage
. Drop it, and also the then also unused
CustomNotebookbarGenerator::getSystemPath and static
local helper functions.
Change-Id: Ia231effca982405e5e8b88af1c6e6805de7bd770
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208669
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
SvxNotebookbarConfigPage is unused since
commit 7312d7d3c9
Date: Wed May 20 15:28:42 2026 +0200
Relates tdf#166641 - Add category labels to Writer's Tabbed Notebookbar
* gla11y-conform
* consistent IDs (gd*/lb* and btn*/bx*)
* consistent layout with grids
* defined spacing of 3px
* defined margins of 6px
* category labels
* redundant Insert sections from Home and Forms from Tools removed
* customization of Notebookbars removed since the new position
of commands is not properly found
and its ctor was dropped in
commit 00aebb5e88
Date: Fri Jun 26 18:55:24 2026 +0200
loplugin:unusedmethods
. Drop the class altogether, along with the code
commented out since the above commit that would
have used it.
Change-Id: I45bcbdcbf89d8f50b18512cde81d7af26e52a2a2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208668
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This comment just repeats the mapping that the code
underneath it implements.
Drop it, to deduplicate this.
Change-Id: I60497fbd52b057986f76b88cef82d4a991927c7b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208600
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
This vector can be passed by const reference. Also use
an "r" prefix; this is not a pointer.
Change-Id: I5c96a3701a24096a045c58a99d81ad6b49145c4e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208599
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
The browse node factory had a wrapper using XAggregation that wraps
every XBrowseNode. As far as I can tell this was used to replace the
implementation of getChildNodes with one that checks for exceptions from
the underlying provider and then sorts all of the resulting nodes by
name. The trouble with this is that it prevents the script providers
from detecting when a node is one from the same script provider and thus
makes it difficult to implement the XCopyableBrowseNode interface. The
documentation for XAggregation mentions this problem and also states
that the interface is deprecated.
To avoid this overhead, this patch replaces the aggregation with a
helper function in comphelper that should be used to retrieve children
from a browse node. That takes care of catching exceptions and sorting
the results.
Change-Id: I319888fee1b84ddcef397317d2cf7e72bd2867cd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208160
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
No Functional Change intended
This function is used very specifically for only UI stuff.
It is very different from any regular stuff.
So help to differentiate it by requiring the bool value.
To make sure I got all of them, I tested by requiring
a bogus OUString variable as well - make sure it compiled.
Change-Id: I4879427a806324d9fb9c033ef6b66ad24ba0bd54
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208234
Reviewed-by: Justin Luth <jluth@mail.com>
Tested-by: Jenkins
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>
Adds copy and paste buttons to the Macro Manager dialog so that script
files can be copied with script providers that support the
XCopyableBrowseNode interface. The “copy” button selects the file to be
copied and then the “paste” button works when a destination is selected.
Change-Id: I058b7ed53c837d17723b5f1b4e69f0bc7ae2594f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207738
Tested-by: Jenkins
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Implementations of XBrowseNode have a bunch of extra methods which are
accessed by using XPropertySet::getPropertyValue to determine if the
action is possible and then XInvocation::invoke to invoke it. This patch
adds wrappers around checking and invoking these methods. The idea is to
abstract away the actual implementation so that the approach can be
changed in a later patch.
Change-Id: I117ab848391dbb1277f9331d6a93f71c2cb556ea
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207343
Reviewed-by: Neil Roberts <nroberts@libreoffice.org>
Tested-by: Jenkins
`nCnt` starts with a value of 0 and is incremented
`nEntries` times (unless there is an early return
in the loop, in which case the value is irrelevant).
That means that the value of `nCnt` is the same
as `nEntries` after the loop.
Just use `nEntries` directly and drop `nCnt` to
simplify this.
Change-Id: If9667875cc2b8bffb421cbf78badd404080e8d71
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207963
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use the usual "m_" prefix for class members to
distinguish them from local variables.
Change-Id: I9194e72223df84c8fbd896b8b6f93baa3de8b185
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207962
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
Instead of passing `this` as the first param in
all callers, convert the static helper into a
class method and drop the extra param.
Change-Id: I4141c1eac68e483f520db880f435c4b64efe8e4b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207960
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
SvxLinguTabPage::FillItemSet basically implements
the same logic 4 times, just using a different
table + service name each time.
Extract logic to a new helper method and pass
those as parameters.
Change-Id: If929ee97be7da38de55c735104e5ce296f03a4b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207959
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Use the usual "m_" prefix for class member names,
to distinguish them from local variables.
Change-Id: Ieec720a8420ba11bac20915bcf2a15a2722223d2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207957
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>
Use OfaLanguagesTabPage::m_xDatePatternsED instead of the
callback param, as the callback is only connected
for that member.
This prepares for an upcoming commit that will
change the callback param to weld::TextWidget& to
unify/deduplicate the weld::Entry and weld::TextView
implementations.
Change-Id: I186e6f1958d744c78e3ba60fd5fc6f56633407b9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207935
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
To solve the trade-off between better spacing and less hyphenation,
support hyphenation level and its user interface, the hyphenation
slider, like DTP software do.
Add new paragraph property com::sun::star::text::ParaHyphenationLevel
The hyphenation slider is the basic interface of DTP software to adjust
single (or all) paragraphs using better word spacing (i.e. more
hyphenation) or less hyphenation (i.e. worse word spacing). It allows 1)
to choose the best from the near equally good layouts and 2) to solve an
extreme bad layout (caused by words without hyphenation or other corner
cases).
– 50% hyphenation level means disabled hyphenation, if minimum
and maximum word spacing settings allow to break the line within
words (default interoperability value).
– 100% hyphenation level means using extra hyphenation only if that
results better word spacing in the line, than breaking within words.
– Between 50% and 100% hyphenation level, use extra hyphenation only if
its weighted word spacing is better, than breaking the line between
words (weighting grows with the hyphenation level).
– Between 0% and 50% hyphenation level it means disabled hyphenation
with increased desired and maximum word spacing, depending on the
hyphenation level. At %0, the desired word spacing is enlarged to the
original maximum word spacing, while maximum word spacing is enlarged
by a single space.
For example, the original 4-page unit test document with the default 50%
hyphenation level contains 14 hyphenations. 100% hyphenation level
results in 22 hyphenations, while 0% only results in 8 hyphenations.
– sw/qa/extras/layout/data/tdf167648_minimum.fodt,
sw/qa/extras/layout/data/tdf169168_minimum.fodt: set maximum
word-spacing to 100% from 101% to limit the original unit test only
for minimum letter spacing.
More information: LO/COOL Book & Typography projects:
https://www.numbertext.org/typography/https://www.numbertext.org/book/
Follow-up to commit cf104be5cb "tdf#119908
tdf#166113 cool#15973 sw smart justify: fix DOCX hyphenation",
commit d572576dd6
"tdf#119908 cool#15973 sw smart justify: fix "smart" hyphenation",
commit 529755f091
"tdf#166113 sw smart justify: adjust algorithm for interoperability" and
commit 7d08767b89 "tdf#130088 tdf#119908
smart justify: fix DOCX line count + compat opt."
Change-Id: I84b3893ea6c5cd4eff74a73514722285e7071392
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207545
Reviewed-by: László Németh <nemeth@numbertext.org>
Tested-by: Jenkins
Rename weld::TreeView::connect_column_clicked
and weld::TreeView::signal_column_clicked to make
clear that they are not about a click anywhere in a
column, but about the column *header* being clicked.
The GTK 4 doc for the corresponding
GtkTreeViewColumn::clicked signal [1] by which the API
was apparently inspired is clear about this:
> Emitted when the column’s header has been clicked.
[1] https://docs.gtk.org/gtk4/signal.TreeViewColumn.clicked.html
Change-Id: I0b4b337b5ca938bb1526d9857ed2b0b244daf23c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207591
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>
Probably introduced to avoid nonsense values like km all settings
was rejected and mm used. We should allow users to full configuration
and km was removed from the list anyway.
Change-Id: I4e71218334f2ba7cb52b5663c12c7314b6c7a063
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207354
Tested-by: Jenkins
Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org>
Update comment according the the refactor/rename done in
commit 7cc0abf8c4
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Fri Feb 21 17:42:54 2025 +0100
cui: Simplify and rename SvxLinguTabPage::HideGroups
Change-Id: I33304c4ad495aaaede607672318b9e694f8ae41b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207313
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
Tested-by: Jenkins
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>
Similar to previous
Change-Id: I9dcf3911ed252902df0a89adde73f8ce466ea6ca
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Jun 24 17:27:55 2026 +0200
tdf#130857 Simplify toggle button handling in Java options page
, simplify the handling of toggle buttons in the treeview
also for the "Fonts" option page.
The special toggle button column at index -1, enabled
by the call to weld::TreeView::enable_toggle_columns
isn't actually used, so drop that call and the corresponding
renderer and model columns in the .ui file.
Before
Change-Id: Ic5bbe4ab71ba255ba16bb0a9176ee4c3a8827fe8
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Jun 24 16:36:20 2026 +0200
tdf#130857 gtk weld: Don't interpret toggle renderer by itself as expander col
, a single toggle renderer in the first column would
have been interpreted as enabling the special expander toggle
column feature for the gtk3 implementation and thus it couldn't
have been used for the weld API column index 0, but that is
possible now without requiring another dummy renderer in the .ui file.
Change-Id: I2a4cb2b1b41ae341c6a559598a2e4f416e9b0fde
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207257
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
As outlined in previous commit
Change-Id: Ic5bbe4ab71ba255ba16bb0a9176ee4c3a8827fe8
Author: Michael Weghorn <m.weghorn@posteo.de>
Date: Wed Jun 24 16:36:20 2026 +0200
tdf#130857 gtk weld: Don't interpret toggle renderer by itself as expander col
:
> This will be used in upcoming commits to simplify/streamline
> existing UI like the one in the Java options page
> (SvxJavaOptionsPage) where the .ui file
> (cui/uiconfig/ui/optadvancedpage.ui) contains
> two toggle renderers in the first column, but only
> one of them is actually used and the implementation
> in SvxJavaOptionsPage only makes use of column indices
> -1 (for the special toggle column), 1 (for the "Vendor"
> column) and 2 (for the "Version" column) and the
> other renderer is not used in practice.
> Presumably, the special toggle button feature was only
> used because using it was mandatory in the past to be
> able to use radio buttons at all.
> That is no longer the case since
>
> Change-Id: I098feb474162d61c5452c3496293a420118e2f4f
> Author: Michael Weghorn <m.weghorn@posteo.de>
> Date: Wed Jun 24 15:42:40 2026 +0200
>
> tdf#130857 weld: Have separate method to set treeview toggle button type
>
> , so move forward with the intention to make the whole
> mapping between cell renderers in the .ui file, columns
> in the .ui file and column indices in the weld API
> more straightforward/less confusing
> (e.g. by being able to drop renderers in the .ui file
> that have no actual equivalent in the implementation
> of the UI using the treeview).
Drop the extra toggle renderer, stop calling
weld::TreeView::enable_toggle_columns and and use a column
index of 0 for the first column instead of the special
index of -1 for the "expander toggle column" that was
previously enabled using weld::TreeView::enable_toggle_columns.
(The use of toggle buttons is now solely enabled by
calling
weld::TreeView::set_toggle_button_type(weld::ColumnToggleType::Radio),
so the call to weld::TreeView::enable_toggle_columns is no longer
needed for that.
Dropping the extra toggle renderer from the first column
also avoids triggering the
"Using the same role multiple times in one column is not supported"
assert in QtBuilder::enableTreeViewColumnDataRole
previously seen when experimenting with adding support for this
Java options dialog for native widgets with the qt6 vcl plugin.
The dialog tab page can be triggered like this:
* "Tools" -> "Options"
* "LibreOfficeDev" -> "Advanced"
Change-Id: I9dcf3911ed252902df0a89adde73f8ce466ea6ca
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/207255
Tested-by: Jenkins
Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>