Fix settings menu action and bind settings shortcut to Cmd+Plus

This commit is contained in:
h3p 2026-02-24 23:07:48 +01:00
parent 8bada3411f
commit 960e1e8466
4 changed files with 91 additions and 18 deletions

View file

@ -361,7 +361,7 @@
CODE_SIGNING_ALLOWED = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 333;
CURRENT_PROJECT_VERSION = 334;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = CS727NF72U;
ENABLE_APP_SANDBOX = YES;
@ -442,7 +442,7 @@
CODE_SIGNING_ALLOWED = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 333;
CURRENT_PROJECT_VERSION = 334;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = CS727NF72U;
ENABLE_APP_SANDBOX = YES;

View file

@ -366,7 +366,7 @@ struct NeonVisionEditorApp: App {
Button("Settings…") {
showSettingsWindow()
}
.keyboardShortcut(",", modifiers: .command)
.keyboardShortcut("+", modifiers: .command)
}
CommandGroup(replacing: .newItem) {
@ -497,8 +497,10 @@ struct NeonVisionEditorApp: App {
Divider()
Button("Show Welcome Tour") {
Button {
postWindowCommand(.showWelcomeTourRequested)
} label: {
Label("Show Welcome Tour", systemImage: "sparkles.rectangle.stack")
}
}
@ -635,11 +637,13 @@ struct NeonVisionEditorApp: App {
private func showSettingsWindow() {
#if os(macOS)
NSApp.activate(ignoringOtherApps: true)
if !NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil) {
if !NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil) {
postWindowCommand(.showSettingsRequested)
}
let handledBySystemSettings = NSApp.sendAction(Selector(("showSettingsWindow:")), to: nil, from: nil)
|| NSApp.sendAction(Selector(("showPreferencesWindow:")), to: nil, from: nil)
if !handledBySystemSettings {
postWindowCommand(.showSettingsRequested)
return
}
postWindowCommand(.showSettingsRequested)
#endif
}
@ -648,17 +652,12 @@ struct NeonVisionEditorApp: App {
guard !settingsShortcutMonitorInstalled else { return }
settingsShortcutMonitorInstalled = true
settingsShortcutMonitorToken = NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in
guard event.modifierFlags.intersection(.deviceIndependentFlagsMask).contains(.command) else {
let flags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)
guard flags.contains(.command) else {
return event
}
let chars = event.characters ?? ""
let charsIgnoringModifiers = event.charactersIgnoringModifiers ?? ""
if chars == "+"
|| chars == "="
|| chars == ","
|| charsIgnoringModifiers == "+"
|| charsIgnoringModifiers == "="
|| charsIgnoringModifiers == "," {
if chars == "+" {
showSettingsWindow()
return nil
}

View file

@ -207,8 +207,8 @@ extension ContentView {
Button(action: { showSettingsSheet = true }) {
Image(systemName: "gearshape")
}
.help("Settings (Cmd+,)")
.keyboardShortcut(",", modifiers: .command)
.help("Settings (Cmd+)")
.keyboardShortcut("+", modifiers: .command)
}
@ViewBuilder

View file

@ -157,3 +157,77 @@
"The application does not automatically transmit full project folders, unrelated files, entire file system contents, contact data, location data, or device-specific identifiers." = "Die Anwendung überträgt nicht automatisch ganze Projektordner, nicht zusammenhängende Dateien, vollständige Dateisysteminhalte, Kontaktdaten, Standortdaten oder gerätespezifische Kennungen.";
"Authentication credentials (API keys) for external AI providers are stored securely in the system keychain and are transmitted only to the user-selected provider for the purpose of completing the AI request." = "Authentifizierungsdaten (API-Schlüssel) für externe KI-Anbieter werden sicher im System-Schlüsselbund gespeichert und nur an den vom Benutzer gewählten Anbieter zur Bearbeitung der KI-Anfrage übertragen.";
"All external communication is performed over encrypted HTTPS connections. If AI completion is disabled, the application performs no external AI-related network requests." = "Sämtliche externe Kommunikation erfolgt über verschlüsselte HTTPS-Verbindungen. Wenn KI-Vervollständigung deaktiviert ist, führt die Anwendung keine externen KI-bezogenen Netzwerkanfragen aus.";
"Welcome Tour" = "Willkommens-Tour";
"Show Welcome Tour" = "Willkommens-Tour anzeigen";
"Settings…" = "Einstellungen…";
"Check for Updates…" = "Auf Updates prüfen…";
"New Window" = "Neues Fenster";
"New Tab" = "Neuer Tab";
"Open File..." = "Datei öffnen...";
"Save As..." = "Sichern unter...";
"Rename" = "Umbenennen";
"Close Tab" = "Tab schließen";
"API Settings…" = "API-Einstellungen…";
"Toggle Sidebar" = "Seitenleiste ein-/ausblenden";
"Toggle Project Structure Sidebar" = "Projektstruktur-Seitenleiste ein-/ausblenden";
"Brain Dump Mode" = "Brain-Dump-Modus";
"Toggle Translucent Window Background" = "Transparenten Fensterhintergrund ein-/ausblenden";
"Quick Open…" = "Schnell öffnen…";
"Toggle Vim Mode" = "Vim-Modus ein-/ausblenden";
"Tools" = "Werkzeuge";
"Suggest Code" = "Code vorschlagen";
"Use Apple Intelligence" = "Apple Intelligence verwenden";
"Diag" = "Diagnose";
"Inspect Whitespace Scalars at Caret" = "Whitespace-Scalars an der Cursorposition prüfen";
"Run AI Check" = "KI-Prüfung ausführen";
"Undo" = "Rückgängig";
"Redo" = "Wiederholen";
"Settings (Cmd+)" = "Einstellungen (Cmd+)";
"Insert Template for Current Language" = "Vorlage für aktuelle Sprache einfügen";
"Enable Wrap / Disable Wrap (Cmd+Opt+L)" = "Zeilenumbruch aktivieren/deaktivieren (Cmd+Opt+L)";
"Open File… (Cmd+O)" = "Datei öffnen… (Cmd+O)";
"Undo (Cmd+Z)" = "Rückgängig (Cmd+Z)";
"Save File" = "Datei speichern";
"Save File (Cmd+S)" = "Datei speichern (Cmd+S)";
"Find & Replace (Cmd+F)" = "Suchen & Ersetzen (Cmd+F)";
"Performance Mode" = "Performance-Modus";
"Save As…" = "Sichern unter…";
"Hide Keyboard" = "Tastatur ausblenden";
"Blue Toolbar Icons" = "Blaue Toolbar-Symbole";
"More Actions" = "Mehr Aktionen";
"Insert Template" = "Vorlage einfügen";
"Enable Wrap / Disable Wrap" = "Zeilenumbruch aktivieren/deaktivieren";
"Settings" = "Einstellungen";
"Markdown Preview" = "Markdown-Vorschau";
"Toggle Markdown Preview" = "Markdown-Vorschau ein-/ausblenden";
"Default" = "Standard";
"Docs" = "Doks";
"Article" = "Artikel";
"Compact" = "Kompakt";
"Preview Style" = "Vorschau-Stil";
"Markdown Preview Template" = "Markdown-Vorlage für Vorschau";
"Open" = "Öffnen";
"Open File…" = "Datei öffnen…";
"Clear Editor" = "Editor leeren";
"Check for Updates" = "Auf Updates prüfen";
"New Tab (Cmd+T)" = "Neuer Tab (Cmd+T)";
"New Window (Cmd+N)" = "Neues Fenster (Cmd+N)";
"Font -" = "Schrift -";
"Decrease Font Size" = "Schriftgröße verringern";
"Font +" = "Schrift +";
"Increase Font Size" = "Schriftgröße erhöhen";
"Clear" = "Leeren";
"Template" = "Vorlage";
"Toggle Sidebar (Cmd+Opt+S)" = "Seitenleiste ein-/ausblenden (Cmd+Opt+S)";
"Sidebar" = "Seitenleiste";
"Project" = "Projekt";
"Brackets" = "Klammern";
"Code Completion" = "Code-Vervollständigung";
"Keyboard Snippet Bar" = "Tastatur-Snippet-Leiste";
"Hide Bracket Helper Bar" = "Klammer-Hilfeleiste ausblenden";
"Show Bracket Helper Bar" = "Klammer-Hilfeleiste anzeigen";
"Bracket Helper Bar" = "Klammer-Hilfeleiste";
"Brain Dump" = "Brain Dump";
"Open Folder…" = "Ordner öffnen…";
"Refresh Folder Tree" = "Ordnerbaum aktualisieren";