@@ -146,15 +146,7 @@ fn handle_platform_event(
146
146
Event :: NewEvents ( StartCause :: ResumeTimeReached { .. } ) => {
147
147
gl_window. window ( ) . request_redraw ( ) ;
148
148
}
149
- Event :: UserEvent ( UserEvent :: CliCommand ( command) ) => match command. as_str ( ) {
150
- "show" => show_window ( & gl_window, true ) ,
151
- "hide" => hide_window ( & gl_window) ,
152
- "toggle" => {
153
- let show = !gl_window. window ( ) . is_visible ( ) . unwrap_or ( false ) ;
154
- show_window ( & gl_window, show) ;
155
- }
156
- command => println ! ( "Got command: {command:?}" ) ,
157
- } ,
149
+ Event :: UserEvent ( UserEvent :: CliCommand ( commands) ) => parse_cli ( commands, gl_window, app) ,
158
150
Event :: UserEvent ( UserEvent :: Quit ) => control_flow. set_exit ( ) ,
159
151
Event :: UserEvent ( UserEvent :: ConfigEvent ( event) ) => match event {
160
152
ConfigEvent :: Created => println ! ( "Config file created" ) ,
@@ -187,6 +179,27 @@ fn handle_platform_event(
187
179
}
188
180
}
189
181
182
+ fn parse_cli ( commands : String , gl_window : & GlutinWindowContext , app : & mut app:: App ) {
183
+ let mut commands = commands. split ( ',' ) ;
184
+
185
+ while let Some ( command) = commands. next ( ) {
186
+ match command {
187
+ "show" => show_window ( & gl_window, true ) ,
188
+ "hide" => hide_window ( & gl_window) ,
189
+ "toggle" => {
190
+ let show = !gl_window. window ( ) . is_visible ( ) . unwrap_or ( false ) ;
191
+ show_window ( & gl_window, show) ;
192
+ }
193
+ "set_query" => {
194
+ let query = commands. next ( ) . unwrap_or_default ( ) ;
195
+ app. query = query. into ( ) ;
196
+ gl_window. window ( ) . request_redraw ( ) ;
197
+ }
198
+ command => println ! ( "Got command: {command:?}" ) ,
199
+ }
200
+ }
201
+ }
202
+
190
203
fn hide_window ( gl_window : & GlutinWindowContext ) {
191
204
gl_window. window ( ) . set_visible ( false ) ;
192
205
}
0 commit comments