Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez Gual <lluis@novell.com>2011-03-31 19:57:44 +0400
committerLluis Sanchez Gual <lluis@novell.com>2011-03-31 19:58:57 +0400
commitf4ce0fd8be6f3e5fe2176b3cb7a54234f79cc599 (patch)
tree202b9202bd39d391e48212e66179d67cc85bbc92 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring
parentd10475bc63a0e69dcab63ca216643e186a4af872 (diff)
Factorized code for showing error dialogs into BaseProgressMonitor.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/BaseProgressMonitor.cs23
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs39
2 files changed, 28 insertions, 34 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/BaseProgressMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/BaseProgressMonitor.cs
index 00713ad836..d143ad00d6 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/BaseProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/BaseProgressMonitor.cs
@@ -34,6 +34,7 @@ using System.IO;
using MonoDevelop.Core;
using MonoDevelop.Core.ProgressMonitoring;
using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Gui.Dialogs;
namespace MonoDevelop.Ide.ProgressMonitoring
{
@@ -326,5 +327,27 @@ namespace MonoDevelop.Ide.ProgressMonitoring
}
}
+ protected void ShowResultDialog ()
+ {
+ if (Errors.Count == 1 && Warnings.Count == 0) {
+ if (ErrorException != null)
+ MessageService.ShowException (ErrorException, Errors[0]);
+ else
+ MessageService.ShowError (Errors[0]);
+ }
+ else if (Errors.Count == 0 && Warnings.Count == 1) {
+ MessageService.ShowWarning (Warnings[0]);
+ }
+ else if (Errors.Count > 0 || Warnings.Count > 0) {
+ MultiMessageDialog resultDialog = new MultiMessageDialog ();
+ foreach (string m in Errors)
+ resultDialog.AddError (m);
+ foreach (string m in Warnings)
+ resultDialog.AddWarning (m);
+ resultDialog.Run ();
+ resultDialog.Destroy ();
+ }
+ }
+
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
index bb8ddbedcf..6b91c23883 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.ProgressMonitoring/MessageDialogProgressMonitor.cs
@@ -39,9 +39,6 @@ namespace MonoDevelop.Ide.ProgressMonitoring
public class MessageDialogProgressMonitor: BaseProgressMonitor
{
- StringCollection errorsMessages = new StringCollection ();
- StringCollection warningMessages = new StringCollection ();
- Exception errorException;
ProgressDialog dialog;
bool hideWhenDone;
bool showDetails;
@@ -121,30 +118,19 @@ namespace MonoDevelop.Ide.ProgressMonitoring
public override void ReportWarning (string message)
{
+ base.ReportWarning (message);
if (dialog != null) {
dialog.WriteText (GettextCatalog.GetString ("WARNING: ") + message + "\n");
RunPendingEvents ();
}
- warningMessages.Add (message);
}
public override void ReportError (string message, Exception ex)
{
- if (message == null && ex != null)
- message = ex.Message;
- else if (message != null && ex != null) {
- if (!message.EndsWith (".")) message += ".";
- message += " " + ex.Message;
- }
-
- errorsMessages.Add (message);
- if (ex != null) {
- LoggingService.LogError (ex.ToString ());
- errorException = ex;
- }
+ base.ReportError (message, ex);
if (dialog != null) {
- dialog.WriteText (GettextCatalog.GetString ("ERROR: ") + message + "\n");
+ dialog.WriteText (GettextCatalog.GetString ("ERROR: ") + Errors [Errors.Count - 1] + "\n");
RunPendingEvents ();
}
}
@@ -158,7 +144,7 @@ namespace MonoDevelop.Ide.ProgressMonitoring
void ShowDialogs ()
{
if (dialog != null) {
- dialog.ShowDone (warningMessages.Count > 0, errorsMessages.Count > 0);
+ dialog.ShowDone (Warnings.Count > 0, Errors.Count > 0);
if (hideWhenDone)
dialog.Destroy ();
}
@@ -166,22 +152,7 @@ namespace MonoDevelop.Ide.ProgressMonitoring
if (showDetails)
return;
- if (errorsMessages.Count > 0) {
- string s = "";
- foreach (string m in errorsMessages)
- s += m + "\n";
- if (errorException != null)
- MessageService.ShowException (errorException, s);
- else
- MessageService.ShowError (s);
- }
-
- if (warningMessages.Count > 0) {
- string s = "";
- foreach (string m in warningMessages)
- s += m + "\n";
- MessageService.ShowError (s);
- }
+ ShowResultDialog ();
}
}
}