@@ -264,9 +264,9 @@ private void NewButton_Click(object sender, RoutedEventArgs e)
264
264
SMDirectories = new List < string > ( )
265
265
} ;
266
266
Program . Configs . Add ( cfg ) ;
267
- ConfigListBox . Items . Add ( new ListBoxItem
268
- {
269
- Content = Translate ( "NewConfig" )
267
+ ConfigListBox . Items . Add ( new ListBoxItem
268
+ {
269
+ Content = Translate ( "NewConfig" )
270
270
} ) ;
271
271
}
272
272
@@ -621,7 +621,7 @@ private async void RCONTestConnectionButton_Click(object sender, RoutedEventArgs
621
621
errorMsg = ex . Message ;
622
622
}
623
623
624
- End :
624
+ End :
625
625
626
626
if ( ( bool ) dialog ? . IsCanceled )
627
627
{
@@ -650,93 +650,96 @@ private void C_RConCmds_TextChanged(object sender, RoutedEventArgs e)
650
650
651
651
private async void MetroWindow_Closing ( object sender , CancelEventArgs e )
652
652
{
653
- if ( NeedsSMDefInvalidation )
653
+ await Dispatcher . InvokeAsync ( async ( ) =>
654
654
{
655
- foreach ( var config in Program . Configs )
655
+ if ( NeedsSMDefInvalidation )
656
656
{
657
- config . InvalidateSMDef ( ) ;
657
+ foreach ( var config in Program . Configs )
658
+ {
659
+ config . InvalidateSMDef ( ) ;
660
+ }
658
661
}
659
- }
660
662
661
- var configsList = new List < string > ( ) ;
662
- foreach ( ListBoxItem item in ConfigListBox . Items )
663
- {
664
- configsList . Add ( item . Content . ToString ( ) ) ;
665
- }
663
+ var configsList = new List < string > ( ) ;
664
+ foreach ( ListBoxItem item in ConfigListBox . Items )
665
+ {
666
+ configsList . Add ( item . Content . ToString ( ) ) ;
667
+ }
666
668
667
- // Check for empty named configs
668
- if ( configsList . Any ( x => string . IsNullOrEmpty ( x ) ) )
669
- {
670
- e . Cancel = true ;
671
- await this . ShowMessageAsync ( Translate ( "ErrorSavingConfigs" ) ,
672
- Translate ( "EmptyConfigNames" ) , MessageDialogStyle . Affirmative ,
673
- Program . MainWindow . MetroDialogOptions ) ;
674
- return ;
675
- }
669
+ // Check for empty named configs
670
+ if ( configsList . Any ( x => string . IsNullOrEmpty ( x ) ) )
671
+ {
672
+ e . Cancel = true ;
673
+ await this . ShowMessageAsync ( Translate ( "ErrorSavingConfigs" ) ,
674
+ Translate ( "EmptyConfigNames" ) , MessageDialogStyle . Affirmative ,
675
+ Program . MainWindow . MetroDialogOptions ) ;
676
+ return ;
677
+ }
676
678
677
- // Check for duplicate names in the config list
678
- if ( configsList . Count != configsList . Distinct ( ) . Count ( ) )
679
- {
680
- e . Cancel = true ;
681
- await this . ShowMessageAsync ( Translate ( "ErrorSavingConfigs" ) ,
682
- Translate ( "DuplicateConfigNames" ) , MessageDialogStyle . Affirmative ,
683
- Program . MainWindow . MetroDialogOptions ) ;
684
- return ;
685
- }
679
+ // Check for duplicate names in the config list
680
+ if ( configsList . Count != configsList . Distinct ( ) . Count ( ) )
681
+ {
682
+ e . Cancel = true ;
683
+ await this . ShowMessageAsync ( Translate ( "ErrorSavingConfigs" ) ,
684
+ Translate ( "DuplicateConfigNames" ) , MessageDialogStyle . Affirmative ,
685
+ Program . MainWindow . MetroDialogOptions ) ;
686
+ return ;
687
+ }
686
688
687
- Program . MainWindow . FillConfigMenu ( ) ;
688
- await Program . MainWindow . ChangeConfig ( Program . SelectedConfig ) ;
689
- var outString = new StringBuilder ( ) ;
690
- var settings = new XmlWriterSettings
691
- {
692
- Indent = true ,
693
- IndentChars = "\t " ,
694
- NewLineOnAttributes = false ,
695
- OmitXmlDeclaration = true
696
- } ;
697
- using ( var writer = XmlWriter . Create ( outString , settings ) )
698
- {
699
- writer . WriteStartElement ( "Configurations" ) ;
700
- foreach ( var c in Program . Configs )
689
+ Program . MainWindow . FillConfigMenu ( ) ;
690
+ await Program . MainWindow . ChangeConfig ( Program . SelectedConfig ) ;
691
+ var outString = new StringBuilder ( ) ;
692
+ var settings = new XmlWriterSettings
693
+ {
694
+ Indent = true ,
695
+ IndentChars = "\t " ,
696
+ NewLineOnAttributes = false ,
697
+ OmitXmlDeclaration = true
698
+ } ;
699
+ using ( var writer = XmlWriter . Create ( outString , settings ) )
701
700
{
702
- writer . WriteStartElement ( "Config" ) ;
703
- writer . WriteAttributeString ( "Name" , c . Name ) ;
704
- var SMDirOut = new StringBuilder ( ) ;
705
- foreach ( var dir in c . SMDirectories )
701
+ writer . WriteStartElement ( "Configurations" ) ;
702
+ foreach ( var c in Program . Configs )
706
703
{
707
- SMDirOut . Append ( dir . Trim ( ) + ";" ) ;
704
+ writer . WriteStartElement ( "Config" ) ;
705
+ writer . WriteAttributeString ( "Name" , c . Name ) ;
706
+ var SMDirOut = new StringBuilder ( ) ;
707
+ foreach ( var dir in c . SMDirectories )
708
+ {
709
+ SMDirOut . Append ( dir . Trim ( ) + ";" ) ;
710
+ }
711
+
712
+ writer . WriteAttributeString ( "SMDirectory" , SMDirOut . ToString ( ) ) ;
713
+ writer . WriteAttributeString ( "Standard" , c . Standard ? "1" : "0" ) ;
714
+ writer . WriteAttributeString ( "CopyDirectory" , c . CopyDirectory ) ;
715
+ writer . WriteAttributeString ( "AutoCopy" , c . AutoCopy ? "1" : "0" ) ;
716
+ writer . WriteAttributeString ( "AutoUpload" , c . AutoUpload ? "1" : "0" ) ;
717
+ writer . WriteAttributeString ( "AutoRCON" , c . AutoRCON ? "1" : "0" ) ;
718
+ writer . WriteAttributeString ( "ServerFile" , c . ServerFile ) ;
719
+ writer . WriteAttributeString ( "ServerArgs" , c . ServerArgs ) ;
720
+ writer . WriteAttributeString ( "PostCmd" , c . PostCmd ) ;
721
+ writer . WriteAttributeString ( "PreCmd" , c . PreCmd ) ;
722
+ writer . WriteAttributeString ( "OptimizationLevel" , c . OptimizeLevel . ToString ( ) ) ;
723
+ writer . WriteAttributeString ( "VerboseLevel" , c . VerboseLevel . ToString ( ) ) ;
724
+ writer . WriteAttributeString ( "DeleteAfterCopy" , c . DeleteAfterCopy ? "1" : "0" ) ;
725
+ writer . WriteAttributeString ( "FTPHost" , c . FTPHost ) ;
726
+ writer . WriteAttributeString ( "FTPUser" , c . FTPUser ) ;
727
+ writer . WriteAttributeString ( "FTPPassword" , ManagedAES . Encrypt ( c . FTPPassword ) ) ;
728
+ writer . WriteAttributeString ( "FTPDir" , c . FTPDir ) ;
729
+ writer . WriteAttributeString ( "RConIP" , c . RConIP ) ;
730
+ writer . WriteAttributeString ( "RConPort" , c . RConPort . ToString ( ) ) ;
731
+ writer . WriteAttributeString ( "RConPassword" , ManagedAES . Encrypt ( c . RConPassword ) ) ;
732
+ writer . WriteAttributeString ( "RConCommands" , c . RConCommands ) ;
733
+ writer . WriteEndElement ( ) ;
708
734
}
709
735
710
- writer . WriteAttributeString ( "SMDirectory" , SMDirOut . ToString ( ) ) ;
711
- writer . WriteAttributeString ( "Standard" , c . Standard ? "1" : "0" ) ;
712
- writer . WriteAttributeString ( "CopyDirectory" , c . CopyDirectory ) ;
713
- writer . WriteAttributeString ( "AutoCopy" , c . AutoCopy ? "1" : "0" ) ;
714
- writer . WriteAttributeString ( "AutoUpload" , c . AutoUpload ? "1" : "0" ) ;
715
- writer . WriteAttributeString ( "AutoRCON" , c . AutoRCON ? "1" : "0" ) ;
716
- writer . WriteAttributeString ( "ServerFile" , c . ServerFile ) ;
717
- writer . WriteAttributeString ( "ServerArgs" , c . ServerArgs ) ;
718
- writer . WriteAttributeString ( "PostCmd" , c . PostCmd ) ;
719
- writer . WriteAttributeString ( "PreCmd" , c . PreCmd ) ;
720
- writer . WriteAttributeString ( "OptimizationLevel" , c . OptimizeLevel . ToString ( ) ) ;
721
- writer . WriteAttributeString ( "VerboseLevel" , c . VerboseLevel . ToString ( ) ) ;
722
- writer . WriteAttributeString ( "DeleteAfterCopy" , c . DeleteAfterCopy ? "1" : "0" ) ;
723
- writer . WriteAttributeString ( "FTPHost" , c . FTPHost ) ;
724
- writer . WriteAttributeString ( "FTPUser" , c . FTPUser ) ;
725
- writer . WriteAttributeString ( "FTPPassword" , ManagedAES . Encrypt ( c . FTPPassword ) ) ;
726
- writer . WriteAttributeString ( "FTPDir" , c . FTPDir ) ;
727
- writer . WriteAttributeString ( "RConIP" , c . RConIP ) ;
728
- writer . WriteAttributeString ( "RConPort" , c . RConPort . ToString ( ) ) ;
729
- writer . WriteAttributeString ( "RConPassword" , ManagedAES . Encrypt ( c . RConPassword ) ) ;
730
- writer . WriteAttributeString ( "RConCommands" , c . RConCommands ) ;
731
736
writer . WriteEndElement ( ) ;
737
+ writer . Flush ( ) ;
732
738
}
733
739
734
- writer . WriteEndElement ( ) ;
735
- writer . Flush ( ) ;
736
- }
737
-
738
- File . WriteAllText ( PathsHelper . ConfigFilePath , outString . ToString ( ) ) ;
739
- LoggingControl . LogAction ( $ "Configs saved.", 2 ) ;
740
+ File . WriteAllText ( PathsHelper . ConfigFilePath , outString . ToString ( ) ) ;
741
+ LoggingControl . LogAction ( $ "Configs saved.", 2 ) ;
742
+ } ) ;
740
743
}
741
744
742
745
private void Language_Translate ( )
0 commit comments