fix(bank_panel): restore Re-capture + Cancel RT buttons to top toolbar

This commit is contained in:
2026-07-26 23:04:48 -04:00
parent 8f4a84ac79
commit f8fffabf15
+11 -6
View File
@@ -724,10 +724,11 @@ struct ActionBarRow {
};
// The TOP toolbar inventory: Capture (item / track / batch items / batch razor / RT) then
// Placement (insert / insert-conform). Capture scopes come from captureActionTable()
// (render_settings, pure); the rest are the registered M11/M6 commands. RECONCILED against the
// actually-REGISTERED commands — "resample-and-mute" / "null-test verify" are not registered
// commands and drag-out is a mouse gesture, so none are placed. Built once per draw/click.
// Placement (insert / insert-conform) then Maintenance (re-capture from source / cancel RT).
// Capture scopes come from captureActionTable() (render_settings, pure); the rest are the
// registered M11/M10/M8 commands. RECONCILED against the actually-REGISTERED commands —
// "resample-and-mute" / "null-test verify" are not registered commands and drag-out is a
// mouse gesture, so none are placed. Built once per draw/click.
std::vector<ActionBarRow> topBarRows() {
std::vector<ActionBarRow> rows;
// Capture cluster — the primary gesture, leftmost.
@@ -743,6 +744,10 @@ std::vector<ActionBarRow> topBarRows() {
// Placement cluster — the second act (still a distinct on-demand act; no auto-insert).
rows.push_back({"INSERT_SELECTED", "Insert", ActionCluster::Placement});
rows.push_back({"INSERT_SELECTED_CONFORM", "Insert Conform", ActionCluster::Placement});
// Maintenance cluster — rarer upkeep: re-capture from source (M10) and cancel an
// in-flight realtime capture (M8). Capture-adjacent, so they live in the top toolbar.
rows.push_back({"RECAPTURE_FROM_SOURCE", "Re-capture", ActionCluster::Maintenance});
rows.push_back({"CANCEL_REALTIME_CAPTURE", "Cancel RT", ActionCluster::Maintenance});
return rows;
}
@@ -769,8 +774,8 @@ std::vector<ActionBarRow> bottomBarRows() {
// The cluster button-count specs for a given row set, in the row list's cluster order (so the
// pure action_bar's flat index lines up with the row list). Handles all five cluster kinds;
// empty clusters contribute a 0-count spec (action_bar skips them, emitting no gap). The spec
// order follows each toolbar's fixed layout order (top: Capture, Placement; bottom: Tagging,
// Switching); Maintenance is retained for completeness though no current toolbar uses it.
// order follows each toolbar's fixed layout order (top: Capture, Placement, Maintenance;
// bottom: Tagging, Switching).
std::vector<ClusterSpec> actionBarClusters(const std::vector<ActionBarRow>& rows) {
int nCap = 0, nPlace = 0, nMaint = 0, nTag = 0, nSwitch = 0;
for (const ActionBarRow& r : rows) {