88using System . Collections . Generic ;
99using System . Collections . Specialized ;
1010using System . ComponentModel ;
11- using System . Globalization ;
1211using System . Linq ;
1312using System . Runtime . CompilerServices ;
1413using System . Threading ;
@@ -84,28 +83,27 @@ private static AvalonEdit.CottleHighlighting GetHighlighting ( IEnumerable<MetaV
8483 ) ;
8584 }
8685
87- public ConfigurationWindow ( )
86+ public ConfigurationWindow ( SpeechResponder speechResponder )
8887 {
89- var speechResponder = EDDI . Instance . ObtainResponder ( Properties . SpeechResponder . ResourceManager . GetString ( "name" , CultureInfo . InvariantCulture ) ) ;
9088 if ( speechResponder is null ) { return ; }
91- SpeechResponder = ( SpeechResponder ) speechResponder ;
89+ this . SpeechResponder = speechResponder ;
9290 customFunctionNames = ScriptResolver . GetCustomFunctions ( ) . Select ( f => f . name ) ;
93- DataContext = speechResponder ;
9491 Task . Run ( GetStandardVariables ) ;
9592
9693 InitializeComponent ( ) ;
94+ DataContext = speechResponder ;
9795
9896 // Set up the scripts view
99- InitializeView ( SpeechResponder . CurrentPersonality . Scripts . Values ) ;
97+ InitializeView ( speechResponder . CurrentPersonality . Scripts . Values ) ;
10098
10199 // Set up other preferences
102- subtitlesCheckbox . IsChecked = SpeechResponder . Configuration ? . Subtitles ?? false ;
103- subtitlesOnlyCheckbox . IsChecked = SpeechResponder . Configuration ? . SubtitlesOnly ?? false ;
100+ subtitlesCheckbox . IsChecked = speechResponder . Configuration ? . Subtitles ?? false ;
101+ subtitlesOnlyCheckbox . IsChecked = speechResponder . Configuration ? . SubtitlesOnly ?? false ;
104102
105103 SpeechResponder . PersonalityChanged += PersonalityChanged ;
106- SpeechResponder . Personalities . CollectionChanged += PersonalitiesCollectionChanged ;
104+ speechResponder . Personalities . CollectionChanged += PersonalitiesCollectionChanged ;
107105
108- CheckForScriptRecovery ( SpeechResponder ) ;
106+ CheckForScriptRecovery ( speechResponder ) ;
109107 }
110108
111109 private void CheckForScriptRecovery ( SpeechResponder speechResponder )
@@ -327,27 +325,26 @@ private void deleteScript(object sender, RoutedEventArgs e)
327325 var messageBoxText = string . Format ( Properties . SpeechResponder . delete_script_message , script . Name ) ;
328326 var caption = Properties . SpeechResponder . delete_script_caption ;
329327 var result = MessageBox . Show ( messageBoxText , caption , MessageBoxButton . YesNo , MessageBoxImage . Warning ) ;
330- if ( result == MessageBoxResult . Yes )
328+ switch ( result )
331329 {
332- // Remove the script from the list
333- SpeechResponder . CurrentPersonality . Scripts . Remove ( script . Name ) ;
330+ case MessageBoxResult . Yes :
331+ // Remove the script from the list
332+ SpeechResponder . CurrentPersonality . Scripts . Remove ( script . Name ) ;
334333
335- // Remove any references to the removed script in the `includes` scring of other scripts
336- SpeechResponder . CurrentPersonality . Scripts . AsParallel ( ) . ForAll ( kv =>
337- kv . Value . includes = kv . Value . includes is null
338- ? string . Empty
339- : string . Join ( "; " ,
340- kv . Value . includes . Split ( ';' ) . Select ( s => s . Trim ( ) )
341- . Except ( [ script . Name ] ) ) ) ;
334+ // Remove any references to the removed script in the `includes` scring of other scripts
335+ SpeechResponder . CurrentPersonality . Scripts . AsParallel ( ) . ForAll ( kv =>
336+ kv . Value . includes = kv . Value . includes is null
337+ ? string . Empty
338+ : string . Join ( "; " ,
339+ kv . Value . includes . Split ( ';' ) . Select ( s => s . Trim ( ) )
340+ . Except ( [ script . Name ] ) ) ) ;
342341
343- SpeechResponder . SavePersonality ( ) ;
344- scriptsView . Refresh ( ) ;
345- e . Handled = true ;
342+ SpeechResponder . SavePersonality ( ) ;
343+ scriptsView . Refresh ( ) ;
344+ break ;
346345 }
347-
348346 EDDI . Instance . SpeechResponderModalWait = false ;
349347 }
350-
351348 private void resetScript ( object sender , RoutedEventArgs e )
352349 {
353350 if ( SpeechResponder ? . CurrentPersonality ? . Scripts is null ) { return ; }
@@ -359,13 +356,14 @@ private void resetScript(object sender, RoutedEventArgs e)
359356 var messageBoxText = string . Format ( Properties . SpeechResponder . reset_script_message , script . Name ) ;
360357 var caption = Properties . SpeechResponder . reset_script_button ;
361358 var result = MessageBox . Show ( messageBoxText , caption , MessageBoxButton . YesNo , MessageBoxImage . Warning ) ;
362- if ( result == MessageBoxResult . Yes )
359+ switch ( result )
363360 {
364- script . Value = script . defaultValue ;
365- SpeechResponder . CurrentPersonality . Scripts [ script . Name ] = script ;
366- SpeechResponder . SavePersonality ( ) ;
367- scriptsData . Items . Refresh ( ) ;
368- e . Handled = true ;
361+ case MessageBoxResult . Yes :
362+ script . Value = script . defaultValue ;
363+ SpeechResponder . CurrentPersonality . Scripts [ script . Name ] = script ;
364+ SpeechResponder . SavePersonality ( ) ;
365+ scriptsData . Items . Refresh ( ) ;
366+ break ;
369367 }
370368 }
371369 }
@@ -396,7 +394,7 @@ private void newScriptClicked(object sender, RoutedEventArgs e)
396394
397395 private void copyPersonalityClicked ( object sender , RoutedEventArgs e )
398396 {
399- if ( SpeechResponder . Personalities is null ) { return ; }
397+ if ( SpeechResponder ? . Personalities is null ) { return ; }
400398 EDDI . Instance . SpeechResponderModalWait = true ;
401399 var window = new CopyPersonalityWindow ( SpeechResponder . Personalities )
402400 {
@@ -418,7 +416,7 @@ private void copyPersonalityClicked(object sender, RoutedEventArgs e)
418416
419417 private void deletePersonalityClicked ( object sender , RoutedEventArgs e )
420418 {
421- if ( SpeechResponder . Personalities is null ) { return ; }
419+ if ( SpeechResponder ? . Personalities is null ) { return ; }
422420 EDDI . Instance . SpeechResponderModalWait = true ;
423421 var messageBoxText = string . Format ( Properties . SpeechResponder . delete_personality_message , SpeechResponder . CurrentPersonality . Name ) ;
424422 var caption = Properties . SpeechResponder . delete_personality_caption ;
0 commit comments