Improve: make filler widget size in toolbars user settable (#9332)

#### Brief overview of PR changes/additions
Replace code that tried to offset the first button in a toolbar by one
extra "space" every time it is saved by a settable variable that can add
zero to one less than the number of rows/columns that a toolbar has.

The maximum value for this and the control in the editor is
automatically set to be that one less every time the number of
rows/columns is changed, and the control disabled should the other one
be set to less that 2. It seems that it is possible to set the number of
rows/columns to zero and it looks as though, many years ago, it was
possible to use that zero value to disable the use of a `QGridLayout`
for the toolbar and instead allow the buttons to have a manually/custom
layout. The code with reproducing the manual layout seems to have
persisted but that to allow it to be modified looks to have disappeared.
That bares further investigation.

#### Motivation for adding to Mudlet
With the introduction of autosaving in the editor it is no longer
reasonable to change the layout every time something in a toolbar is
edited causing things to be saved - and relying on the end-user not ever
touching the arrangement in the editor window. Instead this knob can be
used to set it explicitly.

There is no provision in the Lua API for this "knob" in this PR because
the current Button/Menu/Toolbar implementation in the Lua subsystem is
seriously borked/incomplete. A major overhaul of that is intended for a
future PR!

#### Other info (issues closed, discussion etc)
Also:
* Make members of `TAction` class that have getters/setters `private:`.
* Make the text in the editor for toolbars: "Number of columns/rows
(depending on orientation):" actually change to match the setting for
the selected orientation.
* Move the `QLineEdit` to show the file name for the button icon into
the appropriate `QGroupBox` and add a `QLabel` for it - but keep them
hidden for now. This feature was disabled (without reason?) in
4e651d55fd which removed the button that
was used to select a file to provide an icon however the reproduction of
icons on buttons and menus was never removed. Previously the `QLineEdit`
was used in a read-only mode to display (until it was shrunk to a zero
size before this change) the file chosen.

I intend to re-enable this functionality in the future.

---------

Signed-off-by: Stephen Lyons <slysven@virginmedia.com>
This commit is contained in:
Stephen Lyons 2026-08-04 23:18:32 +01:00 committed by GitHub
parent c5df316ab9
commit dd487dc94b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 402 additions and 166 deletions

View file

@ -281,7 +281,7 @@ QString EditorModifyPropertyCommand::generateText(EditorViewType viewType, const
return QObject::tr("modify key \"%1\"").arg(itemName);
case EditorViewType::cmActionView:
//: Undo/redo menu text for modifying a button's properties
return QObject::tr("modify button \"%1\"").arg(itemName);
return QObject::tr("modify button/menu/toolbar \"%1\"").arg(itemName);
default:
//: Undo/redo menu text for modifying an unknown item's properties
return QObject::tr("modify item \"%1\"").arg(itemName);