OSDN Git Service

MainForm lets LogForm handles the InvokeNeeded
authorDouglas R. Miles <logicmoo@gmail.com>
Thu, 10 Sep 2009 01:25:04 +0000 (01:25 +0000)
committerDouglas R. Miles <logicmoo@gmail.com>
Thu, 10 Sep 2009 01:25:04 +0000 (01:25 +0000)
git-svn-id: https://radegast.googlecode.com/svn/trunk@217 f7a694da-4d33-11de-9ad6-1127a62b9fcd

Radegast/Core/RadegastLogger.cs
Radegast/GUI/Dialogs/DebugLog.Designer.cs
Radegast/GUI/Dialogs/DebugLog.cs
Radegast/GUI/Dialogs/MainForm.cs

index 46e3b5e..3328e19 100644 (file)
@@ -85,6 +85,8 @@ namespace Radegast
 \r
                 lock (this)\r
                 {\r
+                    // No need to have ArgumemntNullException in File.AppendText\r
+                    if (RadegastInstance.GlobalInstance.GlobalLogFile==null) return;\r
                     StreamWriter logfile = File.AppendText(RadegastInstance.GlobalInstance.GlobalLogFile);\r
                     logfile.WriteLine(loggingMessage);\r
                     logfile.Close();\r
index b74f625..d8e08c0 100644 (file)
@@ -28,6 +28,8 @@
 //\r
 // $Id$\r
 //\r
+using System.Windows.Forms;\r
+\r
 namespace Radegast\r
 {\r
     partial class frmDebugLog\r
@@ -36,7 +38,7 @@ namespace Radegast
         /// Required designer variable.\r
         /// </summary>\r
         private System.ComponentModel.IContainer components = null;\r
-\r
+        \r
         /// <summary>\r
         /// Clean up any resources being used.\r
         /// </summary>\r
@@ -47,6 +49,11 @@ namespace Radegast
             {\r
                 components.Dispose();\r
             }\r
+            if (rtbLog.InvokeRequired)\r
+            {\r
+                rtbLog.BeginInvoke(new MethodInvoker(() => base.Dispose(disposing)));\r
+            }\r
+            else\r
             base.Dispose(disposing);\r
         }\r
 \r
index 13a4d02..0a1b66f 100644 (file)
@@ -37,6 +37,15 @@ namespace Radegast
     {\r
         private RadegastInstance instance;\r
 \r
+        new public void Close()\r
+        {\r
+            if (rtbLog.InvokeRequired)\r
+            {\r
+                rtbLog.BeginInvoke(new MethodInvoker(Close));\r
+            } else\r
+            base.Close(); \r
+        }\r
+\r
         public frmDebugLog(RadegastInstance instance)\r
         {\r
             InitializeComponent();\r
@@ -50,9 +59,9 @@ namespace Radegast
 \r
         public void AddLogMessage(string msg, log4net.Core.Level level)\r
         {\r
-            if (InvokeRequired)\r
+            if (rtbLog.InvokeRequired)\r
             {\r
-                BeginInvoke(new MethodInvoker(delegate() { AddLogMessage(msg, level); }));\r
+                rtbLog.BeginInvoke(new MethodInvoker(delegate() { AddLogMessage(msg, level); }));\r
                 return;\r
             }\r
 \r
index c4526a1..35ae526 100644 (file)
@@ -494,9 +494,10 @@ namespace Radegast
 \r
         public void AddLogMessage(string msg, log4net.Core.Level level)\r
         {\r
-            if (debugLogForm != null)\r
-            {\r
-                BeginInvoke(new MethodInvoker(delegate() { debugLogForm.AddLogMessage(msg, level); }));\r
+            if (debugLogForm != null && !debugLogForm.IsDisposed)\r
+            {            \r
+                // Log form handlles the InvokeNeeded                                      \r
+                debugLogForm.AddLogMessage(msg, level);\r
             }\r
         }\r
 \r