# HG changeset patch # User IBBoard # Date 1346512368 -3600 # Node ID b57a7cf844f894cfc71260e9eb8f591b2be45cda # Parent 3aacaa74587f071a89491e5bece715302b21cd61 Fixes #426: Changing unit size doesn't trigger all validation * Hook validation in to army composition changed event * Make sure we're ignoring old armies and listening to the new one diff -r 3aacaa74587f -r b57a7cf844f8 FrmMain.cs --- a/FrmMain.cs Sun Aug 26 11:26:50 2012 +0100 +++ b/FrmMain.cs Sat Sep 01 16:12:48 2012 +0100 @@ -54,6 +54,7 @@ public StringValChangedDelegate ArmyNameChangedMethod; public DoubleValChangedDelegate PointsValueChangedMethod; public IntValChangedDelegate MaxPointsValueChangedMethod; + public MethodInvoker ArmyCompositionChangedMethod; private FrmArmyTree armyTree; private string loadedFilePath; @@ -156,6 +157,7 @@ ArmyNameChangedMethod = new StringValChangedDelegate(FrmMain_ArmyNameChangedMethod); PointsValueChangedMethod = new DoubleValChangedDelegate(FrmMain_PointsValueChangedMethod); MaxPointsValueChangedMethod = new IntValChangedDelegate(FrmMain_MaxPointsValueChangedMethod); + ArmyCompositionChangedMethod = FrmMain_ArmyCompositionChanged; sbErrorPanel.Color = Color.Red; SetPointsPanelToolTipText(); @@ -935,13 +937,14 @@ private void FrmMain_ArmyChanged(Army oldArmy, Army newArmy) { + IgnoreArmy(oldArmy); + ListenToArmy(newArmy); CommandStack.Reset(); ValidateArmy(); loadedFilePath = null; miSaveArmy.Enabled = false; bttnSaveArmy.Enabled = false; miEditArmy.Enabled = (CurrentArmy != null); - //TODO: Subscribe to an "army changed" event here SetPointsPanelText(); SetAppTitle(); } @@ -974,6 +977,7 @@ oldArmy.NameChanged -= ArmyNameChangedMethod; oldArmy.PointsValueChanged -= PointsValueChangedMethod; oldArmy.MaxPointsValueChanged -= MaxPointsValueChangedMethod; + oldArmy.ArmyCompositionChanged -= ArmyCompositionChangedMethod; } } @@ -998,6 +1002,7 @@ newArmy.NameChanged += ArmyNameChangedMethod; newArmy.PointsValueChanged += PointsValueChangedMethod; newArmy.MaxPointsValueChanged += MaxPointsValueChangedMethod; + newArmy.ArmyCompositionChanged += ArmyCompositionChangedMethod; } } @@ -1328,6 +1333,11 @@ OpenArmy(); } + private void FrmMain_ArmyCompositionChanged() + { + ValidateArmy(); + } + private void FrmMain_ArmyNameChangedMethod(WarFoundryObject obj, string oldString, string newString) { SetAppTitle();