diff --git a/src/Main/Base/Project/Src/Gui/Components/StatusBar/SdStatusBar.cs b/src/Main/Base/Project/Src/Gui/Components/StatusBar/SdStatusBar.cs index b29bfe2b9a..9ebaef84ec 100644 --- a/src/Main/Base/Project/Src/Gui/Components/StatusBar/SdStatusBar.cs +++ b/src/Main/Base/Project/Src/Gui/Components/StatusBar/SdStatusBar.cs @@ -98,7 +98,7 @@ namespace ICSharpCode.SharpDevelop.Gui { if (highlighted) { txtStatusBarPanel.BackColor = SystemColors.Highlight; - txtStatusBarPanel.ForeColor = Color.White; + txtStatusBarPanel.ForeColor = Color.White; } else if (txtStatusBarPanel.BackColor == SystemColors.Highlight) { txtStatusBarPanel.BackColor = SystemColors.Control; txtStatusBarPanel.ForeColor = SystemColors.ControlText; @@ -126,6 +126,7 @@ namespace ICSharpCode.SharpDevelop.Gui { taskName = name; this.totalWork = totalWork; + this.workDone = 0; if (this.IsHandleCreated) { this.BeginInvoke(new MethodInvoker(MakeVisible)); } diff --git a/src/Main/Base/Project/Src/Project/CustomTool.cs b/src/Main/Base/Project/Src/Project/CustomTool.cs index 292354ea89..f3612bbcfc 100644 --- a/src/Main/Base/Project/Src/Project/CustomTool.cs +++ b/src/Main/Base/Project/Src/Project/CustomTool.cs @@ -456,7 +456,7 @@ namespace ICSharpCode.SharpDevelop.Project run.context.MessageView.AppendLine("Custom tool '" + run.baseItem.CustomTool + "' failed."); if (run.showMessageBoxOnErrors) { MessageService.ShowError("Custom tool '" + run.baseItem.CustomTool - + "'failed:" + Environment.NewLine + ex.ToString()); + + "' failed:" + Environment.NewLine + ex.ToString()); } } if (run.context.RunningSeparateThread) { diff --git a/src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs b/src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs index 4cecac7081..8fc86328fd 100644 --- a/src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs +++ b/src/Main/Base/Project/Src/Services/ParserService/ParseProjectContent.cs @@ -10,6 +10,7 @@ using System.Collections.Generic; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Project; +using ICSharpCode.SharpDevelop.Gui; namespace ICSharpCode.SharpDevelop { @@ -41,15 +42,15 @@ namespace ICSharpCode.SharpDevelop return string.Format("[{0}: {1}]", GetType().Name, project.Name); } - internal void Initialize1() + internal void Initialize1(IProgressMonitor progressMonitor) { ICollection items = project.Items; ProjectService.ProjectItemAdded += OnProjectItemAdded; ProjectService.ProjectItemRemoved += OnProjectItemRemoved; UpdateDefaultImports(items); - StatusBarService.ProgressMonitor.BeginTask("Resolving references for " + project.Name, 0, false); + progressMonitor.BeginTask("Resolving references for " + project.Name, 0, false); project.ResolveAssemblyReferences(); - StatusBarService.ProgressMonitor.Done(); + progressMonitor.Done(); foreach (ProjectItem item in items) { if (!initializing) return; // abort initialization if (item.ItemType == ItemType.Reference @@ -63,7 +64,7 @@ namespace ICSharpCode.SharpDevelop OnReferencedContentsChanged(EventArgs.Empty); } - internal void ReInitialize1() + internal void ReInitialize1(IProgressMonitor progressMonitor) { lock (ReferencedContents) { ReferencedContents.Clear(); @@ -73,7 +74,7 @@ namespace ICSharpCode.SharpDevelop ProjectService.ProjectItemAdded -= OnProjectItemAdded; ProjectService.ProjectItemRemoved -= OnProjectItemRemoved; initializing = true; - Initialize1(); + Initialize1(progressMonitor); initializing = false; } @@ -212,20 +213,20 @@ namespace ICSharpCode.SharpDevelop return project.Items.Count; } - internal void ReInitialize2() + internal void ReInitialize2(IProgressMonitor progressMonitor) { if (initializing) return; initializing = true; - Initialize2(); + Initialize2(progressMonitor); } - internal void Initialize2() + internal void Initialize2(IProgressMonitor progressMonitor) { if (!initializing) return; - int progressStart = StatusBarService.ProgressMonitor.WorkDone; + int progressStart = progressMonitor.WorkDone; ParseableFileContentEnumerator enumerator = new ParseableFileContentEnumerator(project); try { - StatusBarService.ProgressMonitor.TaskName = "${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing} " + project.Name + "..."; + progressMonitor.TaskName = "${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing} " + project.Name + "..."; IProjectContent[] referencedContents; lock (this.ReferencedContents) { @@ -242,7 +243,7 @@ namespace ICSharpCode.SharpDevelop while (enumerator.MoveNext()) { int i = enumerator.Index; if ((i % 5) == 2) - StatusBarService.ProgressMonitor.WorkDone = progressStart + i; + progressMonitor.WorkDone = progressStart + i; ParserService.ParseFile(this, enumerator.CurrentFileName, enumerator.CurrentFileContent, true); @@ -250,7 +251,7 @@ namespace ICSharpCode.SharpDevelop } } finally { initializing = false; - StatusBarService.ProgressMonitor.WorkDone = progressStart + enumerator.ItemCount; + progressMonitor.WorkDone = progressStart + enumerator.ItemCount; enumerator.Dispose(); } } diff --git a/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs b/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs index cb270c2dc0..f3f0ce3103 100644 --- a/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs +++ b/src/Main/Base/Project/Src/Services/ParserService/ParserService.cs @@ -154,6 +154,7 @@ namespace ICSharpCode.SharpDevelop static void LoadSolutionProjectsInternal() { + IProgressMonitor progressMonitor = StatusBarService.ProgressMonitor; List createdContents = new List(); foreach (IProject project in ProjectService.OpenSolution.Projects) { try { @@ -173,31 +174,32 @@ namespace ICSharpCode.SharpDevelop foreach (ParseProjectContent newContent in createdContents) { if (abortLoadSolutionProjectsThread) return; try { - newContent.Initialize1(); + newContent.Initialize1(progressMonitor); workAmount += newContent.GetInitializationWorkAmount(); } catch (Exception e) { MessageService.ShowError(e, "Error while initializing project references:" + newContent); } } - StatusBarService.ProgressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", workAmount, false); + progressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", workAmount, false); foreach (ParseProjectContent newContent in createdContents) { if (abortLoadSolutionProjectsThread) break; try { - newContent.Initialize2(); + newContent.Initialize2(progressMonitor); } catch (Exception e) { MessageService.ShowError(e, "Error while initializing project contents:" + newContent); } } - StatusBarService.ProgressMonitor.Done(); + progressMonitor.Done(); } static void InitAddedProject(object state) { ParseProjectContent newContent = (ParseProjectContent)state; - newContent.Initialize1(); - StatusBarService.ProgressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", newContent.GetInitializationWorkAmount(), false); - newContent.Initialize2(); - StatusBarService.ProgressMonitor.Done(); + IProgressMonitor progressMonitor = StatusBarService.ProgressMonitor; + newContent.Initialize1(progressMonitor); + progressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", newContent.GetInitializationWorkAmount(), false); + newContent.Initialize2(progressMonitor); + progressMonitor.Done(); } #region Reparse projects @@ -223,13 +225,14 @@ namespace ICSharpCode.SharpDevelop { bool parsing = false; ParseProjectContent job; + IProgressMonitor progressMonitor = StatusBarService.ProgressMonitor; while (true) { // get next job lock (reParse1) { if (reParse1.Count > 0) { if (parsing) { - StatusBarService.ProgressMonitor.Done(); + progressMonitor.Done(); } parsing = false; job = reParse1.Dequeue(); @@ -239,7 +242,7 @@ namespace ICSharpCode.SharpDevelop foreach (ParseProjectContent ppc in reParse2) { workAmount += ppc.GetInitializationWorkAmount(); } - StatusBarService.ProgressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", workAmount, false); + progressMonitor.BeginTask("${res:ICSharpCode.SharpDevelop.Internal.ParserService.Parsing}...", workAmount, false); } parsing = true; job = reParse2.Dequeue(); @@ -247,7 +250,7 @@ namespace ICSharpCode.SharpDevelop // all jobs done reParseThread = null; if (parsing) { - StatusBarService.ProgressMonitor.Done(); + progressMonitor.Done(); } LoggingService.Info("reParse thread finished all jobs"); return; @@ -257,10 +260,10 @@ namespace ICSharpCode.SharpDevelop // execute job if (parsing) { LoggingService.Info("reparsing code for " + job.Project); - job.ReInitialize2(); + job.ReInitialize2(progressMonitor); } else { LoggingService.Debug("reloading references for " + job.Project); - job.ReInitialize1(); + job.ReInitialize1(progressMonitor); } } }