diff FrmMainWindow.cs @ 138:33962c2ef550

Re #326: Make army names and sizes modifiable after creation * Add army editing form * Hook up to events to update main window * Add edit army option to Edit menu
author IBBoard <dev@ibboard.co.uk>
date Tue, 11 Oct 2011 21:05:10 +0100
parents fda46380dd68
children 2b9fabd65309
line wrap: on
line diff
--- a/FrmMainWindow.cs	Tue Oct 11 20:24:11 2011 +0100
+++ b/FrmMainWindow.cs	Tue Oct 11 21:05:10 2011 +0100
@@ -520,6 +520,8 @@
 				oldArmy.UnitAdded -= UnitAddedMethod;
 				oldArmy.UnitRemoved -= UnitRemovedMethod;
 				oldArmy.PointsValueChanged -= PointsValueChangedMethod;
+				oldArmy.NameChanged -= OnArmyNameChanged;
+				oldArmy.MaxPointsValueChanged -= OnMaxPointsValueChanged;
 			}
 
 			unitToWidgetMap.Clear();
@@ -538,6 +540,8 @@
 				newArmy.UnitAdded += UnitAddedMethod;
 				newArmy.UnitRemoved += UnitRemovedMethod;
 				newArmy.PointsValueChanged += PointsValueChangedMethod;
+				newArmy.NameChanged += OnArmyNameChanged;
+				newArmy.MaxPointsValueChanged += OnMaxPointsValueChanged;
 				//TODO: Clear all buttons
 				EnableCategoryButtons();
 
@@ -552,6 +556,7 @@
 			miCloseArmy.Sensitive = nonNullNewArmy;
 			miSaveArmyAs.Sensitive = nonNullNewArmy;
 			miExportArmyAs.Sensitive = nonNullNewArmy;
+			miEditArmy.Sensitive = nonNullNewArmy;
 			hpaned2.Visible = nonNullNewArmy;
 			loadedArmyPath = null;
 			//New army has no changes, so we can't save it
@@ -562,6 +567,16 @@
 			SetPointsPanelText();
 		}
 
+		private void OnArmyNameChanged (WarFoundryObject obj, string oldValue, string newValue)
+		{
+			SetAppTitle();
+		}
+
+		private void OnMaxPointsValueChanged (WarFoundryObject obj, int oldValue, int newValue)
+		{
+			SetPointsPanelText();
+		}
+
 		private void SetArmyTree(Army army)
 		{
 			logger.Debug("Resetting tree");
@@ -1175,12 +1190,20 @@
 			}
 		}
 
-		protected void OnTransformedXmlActionActivated (object sender, System.EventArgs e)
+		protected void OnTransformedXmlActionActivated(object sender, System.EventArgs e)
 		{
 			FrmExportXml form = new FrmExportXml(WarFoundryCore.CurrentArmy);
 			form.Run();
 			form.Hide();
 			form.Dispose();
 		}
+
+		protected void OnMiEditArmyActivated(object sender, System.EventArgs e)
+		{
+			FrmEditArmy form = new FrmEditArmy(commandStack, WarFoundryCore.CurrentArmy);
+			form.Run();
+			form.Hide();
+			form.Dispose();
+		}
 	}
 }