@@ -19,11 +19,6 @@ let serviceIdentifier = bundleIdentifierBase + ".ExtensionService"
1919@main
2020class AppDelegate : NSObject , NSApplicationDelegate , NSWindowDelegate {
2121 let scheduledCleaner = ScheduledCleaner ( )
22- private let userDefaultsObserver = UserDefaultsObserver (
23- object: UserDefaults . shared,
24- forKeyPaths: [ UserDefaultPreferenceKeys ( ) . realtimeSuggestionToggle. key] ,
25- context: nil
26- )
2722 private var statusBarItem : NSStatusItem !
2823 private var xpcListener : ( NSXPCListener , ServiceDelegate ) ?
2924 private let updateChecker =
@@ -64,19 +59,14 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
6459 let statusBarMenu = NSMenu ( title: " Status Bar Menu " )
6560 statusBarItem. menu = statusBarMenu
6661
67- #if DEBUG
68- let copilotName = NSMenuItem (
69- title: " Copilot for Xcode - DEBUG " ,
70- action: nil ,
71- keyEquivalent: " "
72- )
73- #else
62+ let hostAppName = Bundle . main. object ( forInfoDictionaryKey: " HOST_APP_NAME " ) as? String
63+ ?? " Copilot for Xcode "
64+
7465 let copilotName = NSMenuItem (
75- title: " Copilot for Xcode " ,
66+ title: hostAppName ,
7667 action: nil ,
7768 keyEquivalent: " "
7869 )
79- #endif
8070
8171 let checkForUpdate = NSMenuItem (
8272 title: " Check for Updates " ,
@@ -85,19 +75,16 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
8575 )
8676
8777 let openCopilotForXcode = NSMenuItem (
88- title: " Open Copilot for Xcode " ,
78+ title: " Open \( hostAppName ) " ,
8979 action: #selector( openCopilotForXcode) ,
9080 keyEquivalent: " "
9181 )
9282
93- let toggleRealtimeSuggestions = NSMenuItem (
94- title: " Real-time Suggestions " ,
95- action: #selector( toggleRealtimeSuggestions ) ,
83+ let openGlobalChat = NSMenuItem (
84+ title: " Open Chat " ,
85+ action: #selector( openGlobalChat ) ,
9686 keyEquivalent: " "
9787 )
98- toggleRealtimeSuggestions. state = UserDefaults . shared
99- . value ( for: \. realtimeSuggestionToggle) ? . on : . off
100- toggleRealtimeSuggestions. target = self
10188
10289 let quitItem = NSMenuItem (
10390 title: " Quit " ,
@@ -107,18 +94,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
10794 quitItem. target = self
10895
10996 statusBarMenu. addItem ( copilotName)
110- statusBarMenu. addItem ( checkForUpdate)
111- statusBarMenu. addItem ( . separator( ) )
11297 statusBarMenu. addItem ( openCopilotForXcode)
98+ statusBarMenu. addItem ( checkForUpdate)
11399 statusBarMenu. addItem ( . separator( ) )
114- statusBarMenu. addItem ( toggleRealtimeSuggestions )
100+ statusBarMenu. addItem ( openGlobalChat )
115101 statusBarMenu. addItem ( . separator( ) )
116102 statusBarMenu. addItem ( quitItem)
117-
118- userDefaultsObserver. onChange = {
119- toggleRealtimeSuggestions. state = UserDefaults . shared
120- . value ( for: \. realtimeSuggestionToggle) ? . on : . off
121- }
122103 }
123104
124105 @objc func quit( ) {
@@ -135,32 +116,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
135116 }
136117 }
137118
138- @objc func toggleRealtimeSuggestions( ) {
139- let isOn = !UserDefaults. shared. value ( for: \. realtimeSuggestionToggle)
140- if isOn {
141- if !AXIsProcessTrusted( ) {
142- let alert = NSAlert ( )
143- let image = NSImage (
144- systemSymbolName: " exclamationmark.triangle.fill " ,
145- accessibilityDescription: nil
146- )
147- var config = NSImage . SymbolConfiguration (
148- textStyle: . body,
149- scale: . large
150- )
151- config = config. applying ( . init( hierarchicalColor: . systemYellow) )
152- alert. icon = image? . withSymbolConfiguration ( config)
153- alert. messageText = " Accessibility API Permission Required "
154- alert. informativeText =
155- " Permission not granted to use Accessibility API. Please turn in on in System Settings.app. "
156- alert. addButton ( withTitle: " OK " )
157- alert. addButton ( withTitle: " Cancel " )
158- alert. alertStyle = . warning
159- alert. runModal ( )
160- return
161- }
119+ @objc func openGlobalChat( ) {
120+ Task { @MainActor in
121+ let serviceGUI = GraphicalUserInterfaceController . shared
122+ serviceGUI. openGlobalChat ( )
162123 }
163- UserDefaults . shared. set ( isOn, for: \. realtimeSuggestionToggle)
164124 }
165125
166126 func setupQuitOnUpdate( ) {
0 commit comments