diff MainWindow.cs @ 33:be876c03054f

Re #245: Create unit tab implementation * Add stub widget * Record which unit tabs are open * Remove two default tabs
author IBBoard <dev@ibboard.co.uk>
date Sat, 07 Aug 2010 15:40:37 +0000
parents e405b43a405b
children
line wrap: on
line diff
--- a/MainWindow.cs	Sat Aug 07 13:39:35 2010 +0000
+++ b/MainWindow.cs	Sat Aug 07 15:40:37 2010 +0000
@@ -16,6 +16,7 @@
 using IBBoard.WarFoundry.API.Savers;
 using IBBoard.WarFoundry.GUI.QtSharp.Handler;
 using IBBoard.WarFoundry.API.Commands;
+using IBBoard.WarFoundry.GUI.QtSharp.Widgets;
 
 namespace IBBoard.WarFoundry.GUI.QtSharp
 {
@@ -32,6 +33,8 @@
 		private Preferences preferences;
 		private QAction[] categoryActions;
 		private Dictionary<string, QStandardItem> treeNodes;
+		private Dictionary<Unit, UnitWidget> openUnitWidgets;
+		
 		
 		public MainWindow ()
 		{
@@ -40,6 +43,7 @@
 			WindowIcon = new QIcon("icons/App.png");
 			Preferences = new Preferences("WarFoundryQt");
 			treeNodes = new Dictionary<string, QStandardItem>();
+			openUnitWidgets = new Dictionary<Unit, UnitWidget>();
 			
 			try
 			{
@@ -553,7 +557,18 @@
 
 		private void OpenUnitDialog(Unit unit)
 		{
+			UnitWidget currentWidget = DictionaryUtils.GetValue(openUnitWidgets, unit);
 			
+			if (currentWidget != null)
+			{
+				layout.unitTabs.SetCurrentWidget(currentWidget);
+			}
+			else
+			{
+				UnitWidget unitWidget = new UnitWidget(unit);
+				openUnitWidgets.Add(unit, unitWidget);
+				layout.unitTabs.AddTab(unitWidget, unit.Name);
+			}
 		}
 
 		void EnableCategoryButtons ()