@@ -249,7 +249,7 @@ private bool PuTTY_Connected_CanExecute(object view)
249
249
250
250
return false ;
251
251
}
252
-
252
+
253
253
public ICommand PuTTY_ReconnectCommand => new RelayCommand ( PuTTY_ReconnectAction ) ;
254
254
255
255
private void PuTTY_ReconnectAction ( object view )
@@ -376,16 +376,7 @@ private async Task Connect(string host = null)
376
376
await _dialogCoordinator . HideMetroDialogAsync ( this , customDialog ) ;
377
377
ConfigurationManager . Current . FixAirspace = false ;
378
378
379
- // Add host to history
380
- AddHostToHistory ( instance . Host ) ;
381
- AddSerialLineToHistory ( instance . SerialLine ) ;
382
- AddPortToHistory ( instance . Port . ToString ( ) ) ;
383
- AddBaudToHistory ( instance . Baud . ToString ( ) ) ;
384
- AddUsernameToHistory ( instance . Username ) ;
385
- AddPrivateKeyToHistory ( instance . PrivateKeyFile ) ;
386
- AddProfileToHistory ( instance . Profile ) ;
387
-
388
- // Create Profile info
379
+ // Create profile info
389
380
var info = new PuTTYSessionInfo
390
381
{
391
382
HostOrSerialLine = instance . ConnectionMode == ConnectionMode . Serial ? instance . SerialLine : instance . Host ,
@@ -401,6 +392,17 @@ private async Task Connect(string host = null)
401
392
AdditionalCommandLine = instance . AdditionalCommandLine
402
393
} ;
403
394
395
+ // Add to history
396
+ // Note: The history can only be updated after the values have been read.
397
+ // Otherwise, in some cases, incorrect values are taken over.
398
+ AddHostToHistory ( instance . Host ) ;
399
+ AddSerialLineToHistory ( instance . SerialLine ) ;
400
+ AddPortToHistory ( instance . Port ) ;
401
+ AddBaudToHistory ( instance . Baud ) ;
402
+ AddUsernameToHistory ( instance . Username ) ;
403
+ AddPrivateKeyToHistory ( instance . PrivateKeyFile ) ;
404
+ AddProfileToHistory ( instance . Profile ) ;
405
+
404
406
Connect ( info ) ;
405
407
} , async instance =>
406
408
{
@@ -454,86 +456,58 @@ public void AddTab(string host)
454
456
// Modify history list
455
457
private static void AddHostToHistory ( string host )
456
458
{
457
- // Create the new list
458
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_HostHistory . ToList ( ) , host , SettingsManager . Current . General_HistoryListEntries ) ;
459
+ if ( string . IsNullOrEmpty ( host ) )
460
+ return ;
459
461
460
- // Clear the old items
461
- SettingsManager . Current . PuTTY_HostHistory . Clear ( ) ;
462
-
463
- // Fill with the new items
464
- list . ForEach ( x => SettingsManager . Current . PuTTY_HostHistory . Add ( x ) ) ;
462
+ SettingsManager . Current . PuTTY_HostHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_HostHistory . ToList ( ) , host , SettingsManager . Current . General_HistoryListEntries ) ) ;
465
463
}
466
464
467
465
private static void AddSerialLineToHistory ( string serialLine )
468
466
{
469
- // Create the new list
470
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_SerialLineHistory . ToList ( ) , serialLine , SettingsManager . Current . General_HistoryListEntries ) ;
471
-
472
- // Clear the old items
473
- SettingsManager . Current . PuTTY_SerialLineHistory . Clear ( ) ;
467
+ if ( string . IsNullOrEmpty ( serialLine ) )
468
+ return ;
474
469
475
- // Fill with the new items
476
- list . ForEach ( x => SettingsManager . Current . PuTTY_SerialLineHistory . Add ( x ) ) ;
470
+ SettingsManager . Current . PuTTY_SerialLineHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_SerialLineHistory . ToList ( ) , serialLine , SettingsManager . Current . General_HistoryListEntries ) ) ;
477
471
}
478
472
479
- private static void AddPortToHistory ( string port )
473
+ private static void AddPortToHistory ( int port )
480
474
{
481
- // Create the new list
482
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_PortHistory . ToList ( ) , port , SettingsManager . Current . General_HistoryListEntries ) ;
475
+ if ( port == 0 )
476
+ return ;
483
477
484
- // Clear the old items
485
- SettingsManager . Current . PuTTY_PortHistory . Clear ( ) ;
486
-
487
- // Fill with the new items
488
- list . ForEach ( x => SettingsManager . Current . PuTTY_PortHistory . Add ( x ) ) ;
478
+ SettingsManager . Current . PuTTY_PortHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_PortHistory . ToList ( ) , port . ToString ( ) , SettingsManager . Current . General_HistoryListEntries ) ) ;
489
479
}
490
480
491
- private static void AddBaudToHistory ( string baud )
481
+ private static void AddBaudToHistory ( int baud )
492
482
{
493
- // Create the new list
494
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_BaudHistory . ToList ( ) , baud , SettingsManager . Current . General_HistoryListEntries ) ;
495
-
496
- // Clear the old items
497
- SettingsManager . Current . PuTTY_BaudHistory . Clear ( ) ;
483
+ if ( baud == 0 )
484
+ return ;
498
485
499
- // Fill with the new items
500
- list . ForEach ( x => SettingsManager . Current . PuTTY_BaudHistory . Add ( x ) ) ;
486
+ SettingsManager . Current . PuTTY_BaudHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_BaudHistory . ToList ( ) , baud . ToString ( ) , SettingsManager . Current . General_HistoryListEntries ) ) ;
501
487
}
502
488
503
489
private static void AddUsernameToHistory ( string username )
504
490
{
505
- // Create the new list
506
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_UsernameHistory . ToList ( ) , username , SettingsManager . Current . General_HistoryListEntries ) ;
507
-
508
- // Clear the old items
509
- SettingsManager . Current . PuTTY_UsernameHistory . Clear ( ) ;
491
+ if ( string . IsNullOrEmpty ( username ) )
492
+ return ;
510
493
511
- // Fill with the new items
512
- list . ForEach ( x => SettingsManager . Current . PuTTY_UsernameHistory . Add ( x ) ) ;
494
+ SettingsManager . Current . PuTTY_UsernameHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_UsernameHistory . ToList ( ) , username , SettingsManager . Current . General_HistoryListEntries ) ) ;
513
495
}
514
496
515
- private static void AddPrivateKeyToHistory ( string host )
497
+ private static void AddPrivateKeyToHistory ( string privateKey )
516
498
{
517
- // Create the new list
518
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_PrivateKeyFileHistory . ToList ( ) , host , SettingsManager . Current . General_HistoryListEntries ) ;
499
+ if ( string . IsNullOrEmpty ( privateKey ) )
500
+ return ;
519
501
520
- // Clear the old items
521
- SettingsManager . Current . PuTTY_PrivateKeyFileHistory . Clear ( ) ;
522
-
523
- // Fill with the new items
524
- list . ForEach ( x => SettingsManager . Current . PuTTY_PrivateKeyFileHistory . Add ( x ) ) ;
502
+ SettingsManager . Current . PuTTY_PrivateKeyFileHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_PrivateKeyFileHistory . ToList ( ) , privateKey , SettingsManager . Current . General_HistoryListEntries ) ) ;
525
503
}
526
504
527
- private static void AddProfileToHistory ( string host )
505
+ private static void AddProfileToHistory ( string profile )
528
506
{
529
- // Create the new list
530
- var list = ListHelper . Modify ( SettingsManager . Current . PuTTY_ProfileHistory . ToList ( ) , host , SettingsManager . Current . General_HistoryListEntries ) ;
531
-
532
- // Clear the old items
533
- SettingsManager . Current . PuTTY_ProfileHistory . Clear ( ) ;
507
+ if ( string . IsNullOrEmpty ( profile ) )
508
+ return ;
534
509
535
- // Fill with the new items
536
- list . ForEach ( x => SettingsManager . Current . PuTTY_ProfileHistory . Add ( x ) ) ;
510
+ SettingsManager . Current . PuTTY_ProfileHistory = new ObservableCollection < string > ( ListHelper . Modify ( SettingsManager . Current . PuTTY_ProfileHistory . ToList ( ) , profile , SettingsManager . Current . General_HistoryListEntries ) ) ;
537
511
}
538
512
539
513
private void StartDelayedSearch ( )
0 commit comments