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 <lluis@novell.com>2010-04-19 17:00:52 +0400
committerLluis Sanchez <lluis@novell.com>2010-04-19 17:00:52 +0400
commit47db2d5365b0d0ed457c9e30566f2c01680a9698 (patch)
tree2337a1c5b58d41d1f80777a1336792b57535c045 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles
parent075c3b38fdd5758b3dee108b99ebcc3152b4fefe (diff)
* MonoDevelop.Ide.Gui/ProgressMonitors.cs:
* MonoDevelop.Ide.Gui.Components/LogView.cs: * MonoDevelop.Ide.Gui/MonoDevelopStatusBar.cs: * MonoDevelop.Ide.Gui/StatusProgressMonitor.cs: * MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs: * MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs: * MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs: When clicking over the status bar, activate the pad that generated the status message being shown. For example, if the status bar shows "Build: 1 error", show the errors pad when clicking on that. * MonoDevelop.Ide/ProjectOperations.cs: * MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs: Fix warning. * MonoDevelop.Ide.Gui.Pads/TaskListPad.cs: Fix nullref. svn path=/trunk/monodevelop/; revision=155730
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs56
2 files changed, 56 insertions, 10 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
index d60c1f715d..2dccb99227 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
@@ -563,11 +563,10 @@ namespace MonoDevelop.Ide.FindInFiles
DispatchService.BackgroundDispatch (delegate {
DateTime timer = DateTime.Now;
string errorMessage = null;
- IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor (GettextCatalog.GetString ("Searching..."), MonoDevelop.Ide.Gui.Stock.FindInFiles, false);
try {
List<SearchResult> results = new List<SearchResult> ();
- foreach (SearchResult result in find.FindAll (scope, monitor, pattern, replacePattern, options)) {
+ foreach (SearchResult result in find.FindAll (scope, searchMonitor, pattern, replacePattern, options)) {
if (searchMonitor.IsCancelRequested)
return;
results.Add (result);
@@ -585,19 +584,20 @@ namespace MonoDevelop.Ide.FindInFiles
} catch (Exception ex) {
errorMessage = ex.Message;
LoggingService.LogError ("Error while search", ex);
- } finally {
- monitor.Dispose ();
}
string message;
if (errorMessage != null) {
message = GettextCatalog.GetString ("The search could not be finished: {0}", errorMessage);
- } else if (monitor.IsCancelRequested) {
+ searchMonitor.ReportError (message, null);
+ } else if (searchMonitor.IsCancelRequested) {
message = GettextCatalog.GetString ("Search cancelled.");
+ searchMonitor.ReportWarning (message);
} else {
string matches = string.Format (GettextCatalog.GetPluralString ("{0} match found", "{0} matches found", find.FoundMatchesCount), find.FoundMatchesCount);
string files = string.Format (GettextCatalog.GetPluralString ("in {0} file.", "in {0} files.", find.SearchedFilesCount), find.SearchedFilesCount);
message = GettextCatalog.GetString ("Search completed.") + Environment.NewLine + matches + " " + files;
+ searchMonitor.ReportSuccess (message);
}
searchMonitor.ReportStatus (message);
searchMonitor.Log.WriteLine (message);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs
index f040056284..d7dffae6fb 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/SearchProgressMonitor.cs
@@ -33,16 +33,18 @@ using MonoDevelop.Ide.Gui;
namespace MonoDevelop.Ide.FindInFiles
{
- public class SearchProgressMonitor : BaseProgressMonitor, ISearchProgressMonitor
+ class SearchProgressMonitor : BaseProgressMonitor, ISearchProgressMonitor
{
SearchResultPad outputPad;
+ IProgressMonitor statusMonitor;
event EventHandler stopRequested;
- public SearchProgressMonitor (SearchResultPad pad, string title)
+ public SearchProgressMonitor (Pad pad)
{
- pad.AsyncOperation = this.AsyncOperation;
- outputPad = pad;
- outputPad.BeginProgress (title);
+ outputPad = (SearchResultPad) pad.Content;
+ outputPad.AsyncOperation = this.AsyncOperation;
+ outputPad.BeginProgress (pad.Title);
+ statusMonitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor (GettextCatalog.GetString ("Searching..."), Stock.FindIcon, false, true, false, pad);
}
[FreeDispatch]
@@ -81,6 +83,8 @@ namespace MonoDevelop.Ide.FindInFiles
protected override void OnCompleted ()
{
+ statusMonitor.Dispose ();
+
if (outputPad == null) throw GetDisposedException ();
outputPad.WriteText ("\n");
@@ -110,5 +114,47 @@ namespace MonoDevelop.Ide.FindInFiles
if (stopRequested != null)
stopRequested (this, null);
}
+
+ public override void ReportError (string message, Exception ex)
+ {
+ base.ReportError (message, ex);
+ statusMonitor.ReportError (message, ex);
+ }
+
+ public override void ReportSuccess (string message)
+ {
+ base.ReportSuccess (message);
+ statusMonitor.ReportSuccess (message);
+ }
+
+ public override void ReportWarning (string message)
+ {
+ base.ReportWarning (message);
+ statusMonitor.ReportWarning (message);
+ }
+
+ public override void Step (int work)
+ {
+ base.Step (work);
+ statusMonitor.Step (work);
+ }
+
+ public override void BeginStepTask (string name, int totalWork, int stepSize)
+ {
+ base.BeginStepTask (name, totalWork, stepSize);
+ statusMonitor.BeginStepTask (name, totalWork, stepSize);
+ }
+
+ public override void BeginTask (string name, int totalWork)
+ {
+ base.BeginTask (name, totalWork);
+ statusMonitor.BeginTask (name, totalWork);
+ }
+
+ public override void EndTask ()
+ {
+ base.EndTask ();
+ statusMonitor.EndTask ();
+ }
}
} \ No newline at end of file