diff Main.cs @ 5:1bd8febee385

Re #242: Create Qt# UI for WarFoundry * Add logging library * Set up WarFoundry environment * Log load errors
author IBBoard <dev@ibboard.co.uk>
date Mon, 25 Jan 2010 20:54:33 +0000
parents 620c62ba4d07
children 61bc9b44a695
line wrap: on
line diff
--- a/Main.cs	Mon Jan 25 20:44:39 2010 +0000
+++ b/Main.cs	Mon Jan 25 20:54:33 2010 +0000
@@ -2,19 +2,48 @@
 // 
 // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
 using System;
+using System.IO;
+using System.Collections.Generic;
 using Qyoto;
+using log4net;
+using IBBoard;
+using IBBoard.WarFoundry.API;
+using IBBoard.WarFoundry.API.Factories.Xml;
+using IBBoard.WarFoundry.API.Savers;
+
 namespace IBBoard.WarFoundry.GUI.QtSharp
 {
 	class MainClass
 	{
+		private static ILog logger = LogManager.GetLogger(typeof(MainClass));
+		
 		public static void Main (string[] args)
 		{
 			new QApplication (args);
 			
+			SetUpWarFoundryEnvironment ();
+			
 			MainWindow win = new MainWindow ();
 			win.Show ();
 			
 			QApplication.Exec ();
 		}
+		
+		private static void SetUpWarFoundryEnvironment ()
+		{
+			//FIXME: Temporary hack to add paths and factories before we get preferences and plugins
+			WarFoundryLoader.GetDefault().AddLoadDirectory(new DirectoryInfo(Path.Combine(Constants.ExecutablePath, "data")));
+			WarFoundryLoader.GetDefault().RegisterFactory(WarFoundryXmlFactory.GetFactory());
+			WarFoundryLoader.GetDefault().FileLoadingFinished += FileLoadingFinished;
+			WarFoundrySaver.SetFileSaver(new WarFoundryXmlSaver());
+		}		
+
+		private static void FileLoadingFinished (List<FileLoadFailure> failures)
+		{
+			foreach(FileLoadFailure failure in failures)
+			{
+				logger.Warn("Failed to load " + failure.FailedFile.FullName + ": " + failure.Message);
+			}
+		}
 	}
 }