@@ -325,19 +325,24 @@ private void LoadSettings()
325325 Globals . Instance . LoadSettings ( ) ;
326326 FixAssignments ( ) ;
327327 Globals . Instance . SaveSettings ( ) ;
328+
328329 Settings . ApplicationProfileAssignments . Sort ( a => a . Position , ListSortDirection . Ascending ) ;
329330 Settings . ApplicationProfileAssignments . CollectionChanged += ApplicationProfileAssigments_CollectionChanged ;
330331 Settings . ApplicationProfiles . CollectionChanged += ApplicationProfiles_CollectionChanged ;
331332 Settings . ActionShortcuts . CollectionChanged += ActionShortcuts_CollectionChanged ;
332333 Settings . Displays . CollectionChanged += Monitors_CollectionChanged ;
333334
335+
336+
334337 Settings . PropertyChanged += Settings_PropertyChanged ;
335338
336339 ApplicationProfileAssigments_CollectionChanged (
337340 Settings . ApplicationProfileAssignments , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , Settings . ApplicationProfileAssignments . ToList ( ) ) ) ;
338341
339342 ApplicationProfiles_CollectionChanged ( Settings . ApplicationProfiles , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , Settings . ApplicationProfiles . ToList ( ) ) ) ;
340343
344+
345+
341346 Monitors_CollectionChanged ( Settings . Displays , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , Settings . Displays . ToList ( ) ) ) ;
342347
343348
@@ -616,6 +621,10 @@ private void ApplicationProfiles_CollectionChanged(object sender, NotifyCollecti
616621 profile . ApplicationStarted . CollectionChanged += ProfileActions_CollectionChanged ;
617622 profile . ApplicationLostFocus . CollectionChanged += ProfileActions_CollectionChanged ;
618623 profile . ApplicationGotFocus . CollectionChanged += ProfileActions_CollectionChanged ;
624+ ProfileActions_CollectionChanged ( profile . ApplicationClosed , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , profile . ApplicationClosed . ToList ( ) ) ) ;
625+ ProfileActions_CollectionChanged ( profile . ApplicationStarted , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , profile . ApplicationStarted . ToList ( ) ) ) ;
626+ ProfileActions_CollectionChanged ( profile . ApplicationLostFocus , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , profile . ApplicationLostFocus . ToList ( ) ) ) ;
627+ ProfileActions_CollectionChanged ( profile . ApplicationGotFocus , new NotifyCollectionChangedEventArgs ( NotifyCollectionChangedAction . Add , profile . ApplicationGotFocus . ToList ( ) ) ) ;
619628 profile . PropertyChanged += SaveSettingsOnPropertyChanged ;
620629 }
621630 break ;
@@ -631,6 +640,8 @@ private void ApplicationProfiles_CollectionChanged(object sender, NotifyCollecti
631640 }
632641 break ;
633642 }
643+
644+
634645 Globals . Instance . SaveSettings ( ) ;
635646
636647 }
@@ -663,6 +674,24 @@ private void ActionShortcuts_CollectionChanged(object sender, NotifyCollectionCh
663674
664675 private void ProfileActions_CollectionChanged ( object sender , NotifyCollectionChangedEventArgs e )
665676 {
677+ switch ( e . Action )
678+ {
679+
680+ case NotifyCollectionChangedAction . Add :
681+ foreach ( IProfileAction action in e . NewItems )
682+ {
683+ Globals . Logs . Add ( $ "Action added: { action . ActionDescription } ", false ) ;
684+ ( ( BaseViewModel ) action ) . PropertyChanged += SaveSettingsOnPropertyChanged ;
685+ }
686+ break ;
687+ case NotifyCollectionChangedAction . Remove :
688+ foreach ( IProfileAction action in e . OldItems )
689+ {
690+ Globals . Logs . Add ( $ "Action removed: { action . ActionDescription } ", false ) ;
691+ ( ( BaseViewModel ) action ) . PropertyChanged -= SaveSettingsOnPropertyChanged ;
692+ }
693+ break ;
694+ }
666695 Globals . Instance . SaveSettings ( ) ;
667696 }
668697
0 commit comments