fix(mac): place debug menu under Settings

main
Peter Steinberger 2025-12-13 18:10:31 +00:00
parent 40c66b1741
commit 2a71c20ee4
1 changed files with 122 additions and 121 deletions

View File

@ -65,10 +65,34 @@ struct MenuContent: View {
Divider() Divider()
Button("Settings…") { self.open(tab: .general) } Button("Settings…") { self.open(tab: .general) }
.keyboardShortcut(",", modifiers: [.command]) .keyboardShortcut(",", modifiers: [.command])
self.debugMenu
Button("About Clawdis") { self.open(tab: .about) } Button("About Clawdis") { self.open(tab: .about) }
if let updater, updater.isAvailable { if let updater, updater.isAvailable {
Button("Check for Updates…") { updater.checkForUpdates(nil) } Button("Check for Updates…") { updater.checkForUpdates(nil) }
} }
Button("Quit") { NSApplication.shared.terminate(nil) }
}
.task(id: self.state.swabbleEnabled) {
if self.state.swabbleEnabled {
await self.loadMicrophones(force: true)
}
}
.task {
await self.reloadSessionMenu()
}
.task {
VoicePushToTalkHotkey.shared.setEnabled(voiceWakeSupported && self.state.voicePushToTalkEnabled)
}
.onChange(of: self.state.voicePushToTalkEnabled) { _, enabled in
VoicePushToTalkHotkey.shared.setEnabled(voiceWakeSupported && enabled)
}
.onAppear {
self.browserControlEnabled = ClawdisConfigFile.browserControlEnabled()
}
}
@ViewBuilder
private var debugMenu: some View {
if self.state.debugPaneEnabled { if self.state.debugPaneEnabled {
Menu("Debug") { Menu("Debug") {
Menu { Menu {
@ -86,9 +110,7 @@ struct MenuContent: View {
await self.reloadSessionMenu() await self.reloadSessionMenu()
} }
} label: { } label: {
Label( Label(level.capitalized, systemImage: row.thinkingLevel == normalized ? "checkmark" : "")
level.capitalized,
systemImage: row.thinkingLevel == normalized ? "checkmark" : "")
} }
} }
} }
@ -104,9 +126,7 @@ struct MenuContent: View {
await self.reloadSessionMenu() await self.reloadSessionMenu()
} }
} label: { } label: {
Label( Label(level.capitalized, systemImage: row.verboseLevel == normalized ? "checkmark" : "")
level.capitalized,
systemImage: row.verboseLevel == normalized ? "checkmark" : "")
} }
} }
} }
@ -190,25 +210,6 @@ struct MenuContent: View {
} }
} }
} }
Button("Quit") { NSApplication.shared.terminate(nil) }
}
.task(id: self.state.swabbleEnabled) {
if self.state.swabbleEnabled {
await self.loadMicrophones(force: true)
}
}
.task {
await self.reloadSessionMenu()
}
.task {
VoicePushToTalkHotkey.shared.setEnabled(voiceWakeSupported && self.state.voicePushToTalkEnabled)
}
.onChange(of: self.state.voicePushToTalkEnabled) { _, enabled in
VoicePushToTalkHotkey.shared.setEnabled(voiceWakeSupported && enabled)
}
.onAppear {
self.browserControlEnabled = ClawdisConfigFile.browserControlEnabled()
}
} }
private func open(tab: SettingsTab) { private func open(tab: SettingsTab) {