Repository navigation
Virtual Console
Setting up and editing the Virtual Console: choosing what a widget controls, and moving, cutting, copying and pasting widgets and undoing those edits. The edit mode fixes came from widgets going missing in regular use (a cut Solo Frame that never came back, widgets vanishing after a move or an undo). In most cases the widget wasn't actually deleted: it ended up outside its frame's visible area (frames clip their contents), on a frame page that is never shown, or somewhere the UI can't reach.
Nothing on this page has been merged upstream yet.
-
Channel selection panel for Level mode Sliders. (Fork #94) Picking the channels a Slider controls used to open the Fixtures page tree: every fixture of the show collapsed, no view of what the Slider already controls, and no way to remove a channel without finding it again in the tree. The ☰ button next to Channels now opens a dedicated panel:
- Controlled channels at the top: fixture, channel and DMX address, with a remove button per row and a "remove all". The list grows with its content up to half of the panel.
- Add channels below: a search field matching fixture and channel names, type filters (All / Dimmer / Colour / Position / Beam), "Add all" for everything currently listed, and "Apply to fixtures of the same type" as before.
- Fixture ticks show partial selections: a tick when all of the fixture's listed channels are selected, a dash when only some are (clicking it selects the rest), empty when none are. An "n sel." count on each fixture includes channels hidden by the filters.
- Expand all / Collapse all buttons. While searching, fixtures with a matching channel name open automatically and close again when the search no longer matches them, unless you opened them yourself.
- The Channels field on the properties page shows the channel's name when there is only one, otherwise "N selected".

➖ Upstream: not yet sent individually
-
Widgets no longer lost by edit mode moves, cut/paste and undo. (Fork #93) Each problem below was reproduced on unmodified upstream in a headless session before fixing, apart from the ones marked code review:
- Crash pasting a frame into its own child: pasting a cut frame into one of the frames inside it copied endlessly and crashed the app. That paste is now skipped, and the cut frame is kept.
- Undo after loading a project: the VC pages dropped out of the widget lookup whenever a project was loaded. Undoing the deletion of a widget placed directly on a page did nothing, so the widget was gone for good, and undoing a move from a page into a frame left the widget in the frame. New widgets could also get the same ID as a page.
- Undo after a move: starting a drag saved a temporary page position into the widget and recorded it as its own undo step. One Undo of a move put the widget back in its old frame at that position, usually outside the frame, so it disappeared.
- Drops outside a frame: releasing a drag over the right panel (or anywhere no frame accepts it) left the widget detached: it disappeared or stopped scrolling with the page, then jumped to the wrong place later. It now goes back to where it was.
- Pasting into multi-page frames: a pasted widget kept the page number of the widget it was copied from, so it could land on a page that isn't showing, or doesn't exist, and was unreachable after a reload. It now goes on the page currently showing. Copying a multi-page frame also set the wrong page setting.
- Selection: switching VC page kept the selection, so paste/cut/delete acted on widgets of the page just left, and after a paste or delete the UI kept showing widgets as selected (code review).
- Undo after deleting a frame: the frame's widgets came back twice, the copies stacked exactly on top of each other.
- Pasted and restored widgets: they weren't placed inside their frame's contents, so on the page they didn't scroll, and inside a frame they couldn't be clicked until the page was redrawn (code review). They also ignored controllers and keyboard shortcuts until the project was reloaded (code review).
- What a copy keeps: keyboard shortcuts and the Solo Frame mixing settings were dropped by copy/paste, and so by cut/paste too (code review).
- Collapsed frames: after collapsing and expanding a frame, its size no longer followed undo or property changes (code review).
Redo also redoing the next step, and undone steps being replayed, were fixed separately by #81 (see AI Code Scan Bugfixes); #93 relies on it.
Still to fix: undoing a move into a multi-page frame puts the widget on that frame's current page rather than its original one; IDs of deleted widgets are reused, so a clipboard or undo entry can refer to a different widget; each VC page switch creates new items without freeing the old ones.
➖ Upstream: not yet sent individually
-
Fixed a hang loading a Virtual Console with no pages. (Fork #103) Opening a project whose Virtual Console has no pages at all (no
<Frame>in the file) left QLC+ at 100% CPU with a blank window. QLC+ always saves at least one page itself, so this only hits projects written by hand or by other tools, but it failed silently instead of with an error. Such a project now opens with one empty page.➖ Upstream: not yet sent individually