Mixer kann beim Start von Onyx mitlaufen

Ein Häkchen im Mixer selbst. Standardmäßig aus: der Mixer greift in den
Tonweg der geregelten Programme ein, und das soll niemandem ungefragt
passieren — beim ersten Start soll nichts umgeleitet werden, was der Nutzer
nicht angeschaltet hat.

Das Häkchen steht in beiden Zuständen: eingeschaltet, um es wieder
abzuwählen, ausgeschaltet, um es gleich mit zu setzen. Sonst müsste man den
Mixer erst einschalten, um sagen zu können, dass er von selbst einschalten
soll.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-08-13 13:47:17 +02:00
parent d7125e28f6
commit cfbbf91068
4 changed files with 59 additions and 0 deletions

View File

@@ -68,6 +68,8 @@ public struct MixerView: View {
.fixedSize(horizontal: false, vertical: true)
}
autostartToggle
// Der Notausschalter gehört sichtbar dazu, nicht in ein Menü:
// wenn der Ton weg ist, ist das der Knopf, den man sucht.
Button { mixer.disable() } label: {
@@ -79,6 +81,7 @@ public struct MixerView: View {
.padding(.top, 2)
} else {
OffState(mixer: mixer, compact: compact)
autostartToggle
}
}
.frame(maxWidth: .infinity, alignment: .leading)
@@ -86,6 +89,22 @@ public struct MixerView: View {
}
}
extension MixerView {
/// Das Häkchen steht in **beiden** Zuständen: eingeschaltet, um es wieder
/// abzuwählen, ausgeschaltet, um es gleich mit zu setzen.
@ViewBuilder
var autostartToggle: some View {
Toggle(isOn: Binding(get: { mixer.startsAutomatically },
set: { mixer.startsAutomatically = $0 })) {
Text("mixer.autostart", bundle: .module)
.font(Onyx.Font.caption)
.foregroundStyle(Onyx.Color.textSecondary)
}
.toggleStyle(.checkbox)
.controlSize(.small)
}
}
/// Der ausgeschaltete Zustand erklärt, worauf man sich einlässt in zwei
/// Sätzen, nicht in einem Absatz. Wer vier Zeilen lesen muss, bevor er einen
/// Regler sieht, liest sie nicht.