Testing-feedback fixes: tab order, label wording, parametric editing, recording default

* Connectivity tab order: Add peer by IP now sits right after Rename peer (before the Discovered
   list), grouped with the connected-peer actions, per Ed's requested order. Dropped the second
   section header (only the lock toggle was under it).
 * Audio I/O labels: "Set volume for all received audio" → "Master volume for received audio" (the
   code never got this rename, only the manual had). Device lists now say "audio": "...for received
   audio" and "WASAPI/ASIO audio inputs/outputs to send". Labels + AccessibleNames updated together.
 * Add EQ band dialog: the spin/edit boxes now select-all on focus, so a typed value REPLACES what's
   there instead of being inserted next to it and reverting (typing 2.5 over 4.0 now works).
 * Parametric bands list: Left/Right arrow nudge the selected band's gain by half a dB, live —
   up/down still move between bands. NVDA re-reads the band's new dB.
 * Recording settings: source list reordered to Both (top, now the default) / Received / Sent;
   display order decoupled from the RecordingSource enum. Default RecordingSettings.Source = Both.
 * Preferences: Colour theme is now first in the General tab order.

Manual updated. Build clean; --selftest passes; deployed to both test folders. Held for next release.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Ednunp
2026-07-08 11:36:02 +01:00
co-authored by Claude Opus 4.8
parent 90a1ab3257
commit e35f2f318a
14 changed files with 339 additions and 101 deletions
+13 -5
View File
@@ -76,14 +76,18 @@ internal sealed class AddBandDialog : Form
Dock = DockStyle.Fill,
Padding = new Padding(12),
ColumnCount = 2,
RowCount = 4,
RowCount = 5,
};
grid.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
grid.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
AddRow(grid, 0, "&Start frequency in Hz (Alt+S)", startFreq);
AddRow(grid, 1, "&End frequency in Hz (Alt+E)", endFreq);
AddRow(grid, 2, "&Gain in dB (Alt+G)", gainDb);
var heading = Theme.Heading("Add EQ band");
grid.Controls.Add(heading, 0, 0);
grid.SetColumnSpan(heading, 2);
AddRow(grid, 1, "&Start frequency in Hz (Alt+S)", startFreq);
AddRow(grid, 2, "&End frequency in Hz (Alt+E)", endFreq);
AddRow(grid, 3, "&Gain in dB (Alt+G)", gainDb);
var okButton = new Button { Text = "OK", AutoSize = true, DialogResult = DialogResult.None, TabIndex = 0 };
var cancelButton = new Button { Text = "Cancel", AutoSize = true, DialogResult = DialogResult.Cancel, TabIndex = 1 };
@@ -99,7 +103,7 @@ internal sealed class AddBandDialog : Form
};
buttonRow.Controls.Add(okButton);
buttonRow.Controls.Add(cancelButton);
grid.Controls.Add(buttonRow, 1, 3);
grid.Controls.Add(buttonRow, 1, 4);
Controls.Add(grid);
AcceptButton = okButton;
@@ -109,6 +113,10 @@ internal sealed class AddBandDialog : Form
{
box.ValueChanged += (_, _) => Preview();
box.TextChanged += (_, _) => Preview();
// Select the whole value when the box gains focus, so a typed number REPLACES what's there
// instead of being inserted next to it (which parsed as junk and reverted). Deferred so it
// runs after focus settles.
box.Enter += (_, _) => box.BeginInvoke(() => box.Select(0, box.Text.Length));
}
Shown += (_, _) =>