@@ -17,7 +17,7 @@ struct ViewCommands: Commands {
1717 @AppSettings ( \. general. dimEditorsWithoutFocus)
1818 var dimEditorsWithoutFocus
1919
20- @State var windowController : CodeEditWindowController ?
20+ @State private var windowController : CodeEditWindowController ?
2121
2222 private let documentController : CodeEditDocumentController = CodeEditDocumentController ( )
2323
@@ -27,20 +27,7 @@ struct ViewCommands: Commands {
2727 @FocusedBinding ( \. inspectorVisibility)
2828 var inspectorVisibility
2929
30- var navigatorCollapsed : Bool {
31- windowController? . navigatorCollapsed ?? false
32- }
33-
34- var inspectorCollapsed : Bool {
35- windowController? . navigatorCollapsed ?? false
36- }
37-
38- var toolbarCollapsed : Bool {
39- windowController? . toolbarCollapsed ?? false
40- }
41-
4230 var body : some Commands {
43-
4431 CommandGroup ( after: . toolbar) {
4532 Button ( " Show Command Palette " ) {
4633 NSApp . sendAction ( #selector( CodeEditWindowController . openCommandPalette ( _: ) ) , to: nil , from: nil )
@@ -85,32 +72,13 @@ struct ViewCommands: Commands {
8572
8673 Divider ( )
8774
88- Button ( " \( navigatorCollapsed ? " Show " : " Hide " ) Navigator " ) {
89- windowController? . toggleFirstPanel ( )
90- }
91- . disabled ( windowController == nil )
92- . keyboardShortcut ( " 0 " , modifiers: [ . command] )
93- . onReceive ( NSApp . publisher ( for: \. keyWindow) ) { window in
94- windowController = window? . windowController as? CodeEditWindowController
95- }
96-
97- Button ( " \( inspectorCollapsed ? " Show " : " Hide " ) Inspector " ) {
98- windowController? . toggleLastPanel ( )
99- }
100- . disabled ( windowController == nil )
101- . keyboardShortcut ( " i " , modifiers: [ . control, . command] )
102-
103- Button ( " \( inspectorCollapsed ? " Show " : " Hide " ) Utility Area " ) {
104- CommandManager . shared. executeCommand ( " open.drawer " )
105- }
106- . disabled ( windowController == nil )
107- . keyboardShortcut ( " y " , modifiers: [ . shift, . command] )
108-
109- Button ( " \( navigatorCollapsed ? " Show " : " Hide " ) Toolbar " ) {
110- windowController? . toggleToolbar ( )
111- }
112- . disabled ( windowController == nil )
113- . keyboardShortcut ( " t " , modifiers: [ . option, . command] )
75+ HideCommands (
76+ windowController: windowController ?? CodeEditWindowController ( window: nil , workspace: nil ) ,
77+ utilityAreaModel: windowController? . workspace? . utilityAreaModel ?? UtilityAreaViewModel ( )
78+ )
79+ . onReceive ( NSApp . publisher ( for: \. keyWindow) ) { window in
80+ windowController = window? . windowController as? CodeEditWindowController
81+ }
11482
11583 Divider ( )
11684
@@ -130,6 +98,53 @@ struct ViewCommands: Commands {
13098 }
13199}
132100
101+ struct HideCommands : View {
102+ @ObservedObject var windowController : CodeEditWindowController
103+ @ObservedObject var utilityAreaModel : UtilityAreaViewModel
104+
105+ var navigatorCollapsed : Bool {
106+ windowController. navigatorCollapsed
107+ }
108+
109+ var inspectorCollapsed : Bool {
110+ windowController. inspectorCollapsed
111+ }
112+
113+ var utilityAreaCollapsed : Bool {
114+ utilityAreaModel. isCollapsed
115+ }
116+
117+ var toolbarCollapsed : Bool {
118+ windowController. toolbarCollapsed
119+ }
120+
121+ var body : some View {
122+ Button ( " \( navigatorCollapsed ? " Show " : " Hide " ) Navigator " ) {
123+ windowController. toggleFirstPanel ( )
124+ }
125+ . disabled ( windowController. window == nil )
126+ . keyboardShortcut ( " 0 " , modifiers: [ . command] )
127+
128+ Button ( " \( inspectorCollapsed ? " Show " : " Hide " ) Inspector " ) {
129+ windowController. toggleLastPanel ( )
130+ }
131+ . disabled ( windowController. window == nil )
132+ . keyboardShortcut ( " i " , modifiers: [ . control, . command] )
133+
134+ Button ( " \( utilityAreaCollapsed ? " Show " : " Hide " ) Utility Area " ) {
135+ CommandManager . shared. executeCommand ( " open.drawer " )
136+ }
137+ . disabled ( windowController. window == nil )
138+ . keyboardShortcut ( " y " , modifiers: [ . shift, . command] )
139+
140+ Button ( " \( toolbarCollapsed ? " Show " : " Hide " ) Toolbar " ) {
141+ windowController. toggleToolbar ( )
142+ }
143+ . disabled ( windowController. window == nil )
144+ . keyboardShortcut ( " t " , modifiers: [ . option, . command] )
145+ }
146+ }
147+
133148extension ViewCommands {
134149 struct NavigatorCommands : View {
135150 @ObservedObject var model : NavigatorSidebarViewModel
0 commit comments