Browse Source

Remove more usages of WorkbenchSingleton.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
760a2ae10b
  1. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs
  2. 6
      src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs
  3. 2
      src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs
  4. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditDisplayBinding.cs
  5. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/SaveFileWithEncoding.cs
  6. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/SortSelectionCommand.cs
  7. 10
      src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/CodeView.cs
  8. 6
      src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs
  9. 4
      src/Main/Base/Project/Editor/RepoChangeWatcher.cs
  10. 2
      src/Main/Base/Project/Src/Commands/FileCommands.cs
  11. 2
      src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
  12. 4
      src/Main/Base/Project/Src/Commands/ToolsCommands.cs
  13. 2
      src/Main/Base/Project/Src/Gui/Dialogs/GotoDialog.cs
  14. 4
      src/Main/Base/Project/Src/Gui/FormLocationHelper.cs
  15. 4
      src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs
  16. 2
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs
  17. 3
      src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs
  18. 2
      src/Main/Base/Project/Src/Project/PortableLibrary/PickPortableTargetFramework.cs
  19. 4
      src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs
  20. 2
      src/Main/Base/Project/Src/Services/Debugger/CurrentLineBookmark.cs
  21. 8
      src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs
  22. 4
      src/Main/Base/Project/Src/Services/FileChangeWatcher.cs
  23. 5
      src/Main/SharpDevelop/Logging/ExceptionBox.cs
  24. 39
      src/Main/SharpDevelop/Sda/CallHelper.cs
  25. 2
      src/Main/SharpDevelop/Workbench/AvalonWorkbenchWindow.cs
  26. 9
      src/Main/SharpDevelop/Workbench/SDStatusBar.cs

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs

@ -42,6 +42,8 @@ namespace CSharpBinding.Refactoring
monitor => { monitor => {
remainingIssues = FindAndFixIssues(fileNames, providers, monitor, out fixedIssueCount); remainingIssues = FindAndFixIssues(fileNames, providers, monitor, out fixedIssueCount);
}); });
if (remainingIssues == null)
return; // can happen if issue search is cancelled
string message = string.Format( string message = string.Format(
"{0} issues were fixed automatically." + "{0} issues were fixed automatically." +
"{1} issues are remaining (no automatic fix available).", "{1} issues are remaining (no automatic fix available).",

6
src/AddIns/Debugger/Debugger.AddIn/Pads/BreakPointsPad.cs

@ -2,17 +2,11 @@
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt) // This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
using System; using System;
using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using Debugger;
using Debugger.AddIn.Pads.Controls;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation; using ICSharpCode.Core.Presentation;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging; using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Editor.Bookmarks; using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Services;
namespace ICSharpCode.SharpDevelop.Gui.Pads namespace ICSharpCode.SharpDevelop.Gui.Pads
{ {

2
src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs

@ -610,7 +610,7 @@ namespace ICSharpCode.SharpDevelop.Services
if (CurrentThread == null) if (CurrentThread == null)
return; return;
WorkbenchSingleton.MainWindow.Activate(); SD.Workbench.MainWindow.Activate();
// if (debuggedProcess.IsSelectedFrameForced()) { // if (debuggedProcess.IsSelectedFrameForced()) {
if (CurrentThread != null && CurrentStackFrame.HasSymbols) { if (CurrentThread != null && CurrentStackFrame.HasSymbols) {

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditDisplayBinding.cs

@ -65,7 +65,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public IViewContent CreateContentForFile(OpenedFile file) public IViewContent CreateContentForFile(OpenedFile file)
{ {
ChooseEncodingDialog dlg = new ChooseEncodingDialog(); ChooseEncodingDialog dlg = new ChooseEncodingDialog();
dlg.Owner = WorkbenchSingleton.MainWindow; dlg.Owner = SD.Workbench.MainWindow;
using (Stream stream = file.OpenRead()) { using (Stream stream = file.OpenRead()) {
using (StreamReader reader = FileReader.OpenStream(stream, SD.FileService.DefaultFileEncoding)) { using (StreamReader reader = FileReader.OpenStream(stream, SD.FileService.DefaultFileEncoding)) {
reader.Peek(); // force reader to auto-detect encoding reader.Peek(); // force reader to auto-detect encoding

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/SaveFileWithEncoding.cs

@ -21,7 +21,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands
var codeEditor = vc.GetService<CodeEditor>(); var codeEditor = vc.GetService<CodeEditor>();
if (codeEditor != null) { if (codeEditor != null) {
ChooseEncodingDialog dlg = new ChooseEncodingDialog(); ChooseEncodingDialog dlg = new ChooseEncodingDialog();
dlg.Owner = WorkbenchSingleton.MainWindow; dlg.Owner = SD.Workbench.MainWindow;
dlg.Encoding = codeEditor.PrimaryTextEditor.Encoding; dlg.Encoding = codeEditor.PrimaryTextEditor.Encoding;
if (dlg.ShowDialog() == true) { if (dlg.ShowDialog() == true) {
codeEditor.PrimaryTextEditor.Encoding = dlg.Encoding; codeEditor.PrimaryTextEditor.Encoding = dlg.Encoding;

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Commands/SortSelectionCommand.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Commands
public override void Run() public override void Run()
{ {
SortOptionsDialog dlg = new SortOptionsDialog(); SortOptionsDialog dlg = new SortOptionsDialog();
dlg.Owner = WorkbenchSingleton.MainWindow; dlg.Owner = SD.Workbench.MainWindow;
if (dlg.ShowDialog() == true) { if (dlg.ShowDialog() == true) {
StringComparer comparer = SortOptions.CaseSensitive ? StringComparer.CurrentCulture : StringComparer.CurrentCultureIgnoreCase; StringComparer comparer = SortOptions.CaseSensitive ? StringComparer.CurrentCulture : StringComparer.CurrentCultureIgnoreCase;
if (SortOptions.IgnoreTrailingWhitespaces) if (SortOptions.IgnoreTrailingWhitespaces)

10
src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/CodeView.cs

@ -3,24 +3,14 @@
using System; using System;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.AddIn; using ICSharpCode.AvalonEdit.AddIn;
using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Highlighting; using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.AvalonEdit.Search; using ICSharpCode.AvalonEdit.Search;
using ICSharpCode.Core;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
using ICSharpCode.SharpDevelop.Editor.Bookmarks; using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;

6
src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs

@ -3,9 +3,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.Design;
using System.IO; using System.IO;
using System.Linq;
using System.Threading; using System.Threading;
using ICSharpCode.Core; using ICSharpCode.Core;
@ -16,12 +14,8 @@ using ICSharpCode.ILSpyAddIn.ViewContent;
using ICSharpCode.NRefactory; using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Debugging; using ICSharpCode.SharpDevelop.Debugging;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.AvalonEdit;
using ICSharpCode.SharpDevelop.Editor.Bookmarks; using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.SharpDevelop.Workbench;
using Mono.Cecil; using Mono.Cecil;

4
src/Main/Base/Project/Editor/RepoChangeWatcher.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Editor
watcher.SynchronizingObject = SD.MainThread.SynchronizingObject; watcher.SynchronizingObject = SD.MainThread.SynchronizingObject;
WorkbenchSingleton.MainWindow.Activated += MainWindowActivated; SD.Workbench.MainWindow.Activated += MainWindowActivated;
watcher.Created += FileChanged; watcher.Created += FileChanged;
watcher.Deleted += FileChanged; watcher.Deleted += FileChanged;
@ -92,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Editor
lock (watchers) { lock (watchers) {
actions -= action; actions -= action;
if (actions == null && !disposed) { if (actions == null && !disposed) {
WorkbenchSingleton.MainWindow.Activated -= MainWindowActivated; SD.Workbench.MainWindow.Activated -= MainWindowActivated;
watchers.Remove(watcher.Path); watchers.Remove(watcher.Path);
this.watcher.Dispose(); this.watcher.Dispose();
disposed = true; disposed = true;

2
src/Main/Base/Project/Src/Commands/FileCommands.cs

@ -302,7 +302,7 @@ namespace ICSharpCode.SharpDevelop.Commands
{ {
public override void Run() public override void Run()
{ {
WorkbenchSingleton.MainWindow.Close(); SD.Workbench.MainWindow.Close();
} }
} }

2
src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs

@ -464,7 +464,7 @@ namespace ICSharpCode.SharpDevelop.Commands
item.Command = new BringPadToFrontCommand(padContent); item.Command = new BringPadToFrontCommand(padContent);
if (!string.IsNullOrEmpty(padContent.Shortcut)) { if (!string.IsNullOrEmpty(padContent.Shortcut)) {
var kg = Core.Presentation.MenuService.ParseShortcut(padContent.Shortcut); var kg = Core.Presentation.MenuService.ParseShortcut(padContent.Shortcut);
WorkbenchSingleton.MainWindow.InputBindings.Add( SD.Workbench.MainWindow.InputBindings.Add(
new System.Windows.Input.InputBinding(item.Command, kg) new System.Windows.Input.InputBinding(item.Command, kg)
); );
item.InputGestureText = kg.GetDisplayStringForCulture(Thread.CurrentThread.CurrentUICulture); item.InputGestureText = kg.GetDisplayStringForCulture(Thread.CurrentThread.CurrentUICulture);

4
src/Main/Base/Project/Src/Commands/ToolsCommands.cs

@ -14,7 +14,7 @@ namespace ICSharpCode.SharpDevelop.Commands
{ {
TabbedOptionsDialog o = new TabbedOptionsDialog(node.BuildChildItems<IOptionPanelDescriptor>(null)); TabbedOptionsDialog o = new TabbedOptionsDialog(node.BuildChildItems<IOptionPanelDescriptor>(null));
o.Title = dialogTitle; o.Title = dialogTitle;
o.Owner = WorkbenchSingleton.MainWindow; o.Owner = SD.Workbench.MainWindow;
return o.ShowDialog(); return o.ShowDialog();
} }
@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.Commands
{ {
TreeViewOptionsDialog o = new TreeViewOptionsDialog(node.BuildChildItems<IOptionPanelDescriptor>(null)); TreeViewOptionsDialog o = new TreeViewOptionsDialog(node.BuildChildItems<IOptionPanelDescriptor>(null));
o.Title = dialogTitle; o.Title = dialogTitle;
o.Owner = WorkbenchSingleton.MainWindow; o.Owner = SD.Workbench.MainWindow;
return o.ShowDialog(); return o.ShowDialog();
} }

2
src/Main/Base/Project/Src/Gui/Dialogs/GotoDialog.cs

@ -27,7 +27,7 @@ namespace ICSharpCode.SharpDevelop.Gui
{ {
if (Instance == null) { if (Instance == null) {
Instance = new GotoDialog(); Instance = new GotoDialog();
Instance.Owner = WorkbenchSingleton.MainWindow; Instance.Owner = SD.Workbench.MainWindow;
Instance.Show(); Instance.Show();
} else { } else {
Instance.Activate(); Instance.Activate();

4
src/Main/Base/Project/Src/Gui/FormLocationHelper.cs

@ -83,7 +83,7 @@ namespace ICSharpCode.SharpDevelop.Gui
static Point GetOwnerLocation(Window window) static Point GetOwnerLocation(Window window)
{ {
var owner = window.Owner ?? WorkbenchSingleton.MainWindow; var owner = window.Owner ?? SD.Workbench.MainWindow;
if (owner == null) if (owner == null)
return new Point(0,0); return new Point(0,0);
if (owner.WindowState == System.Windows.WindowState.Maximized) { if (owner.WindowState == System.Windows.WindowState.Maximized) {
@ -140,7 +140,7 @@ namespace ICSharpCode.SharpDevelop.Gui
static Point GetDefaultLocation(Size formSize) static Point GetDefaultLocation(Size formSize)
{ {
var mainWindow = WorkbenchSingleton.MainWindow; var mainWindow = SD.Workbench.MainWindow;
Rect parent = new Rect( Rect parent = new Rect(
mainWindow.Left, mainWindow.Top, mainWindow.Width, mainWindow.Height mainWindow.Left, mainWindow.Top, mainWindow.Width, mainWindow.Height
); );

4
src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs

@ -250,7 +250,7 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </summary> /// </summary>
public void AddCategory(MessageViewCategory category) public void AddCategory(MessageViewCategory category)
{ {
if (WorkbenchSingleton.InvokeRequired) { if (SD.MainThread.InvokeRequired) {
SD.MainThread.InvokeAsync(() => AddCategory(category)).FireAndForget(); SD.MainThread.InvokeAsync(() => AddCategory(category)).FireAndForget();
return; return;
} }
@ -297,7 +297,7 @@ namespace ICSharpCode.SharpDevelop.Gui
SD.MainThread.InvokeAsync(ProcessAppendText).FireAndForget(); SD.MainThread.InvokeAsync(ProcessAppendText).FireAndForget();
waitForMainThread = appendCalls.Count > 2000; waitForMainThread = appendCalls.Count > 2000;
} }
if (waitForMainThread && WorkbenchSingleton.InvokeRequired) { if (waitForMainThread && SD.MainThread.InvokeRequired) {
int sleepLength = 20; int sleepLength = 20;
do { do {
Thread.Sleep(sleepLength); Thread.Sleep(sleepLength);

2
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs

@ -256,7 +256,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
var vm = new AddServiceReferenceViewModel(project); var vm = new AddServiceReferenceViewModel(project);
var dialog = new AddServiceReferenceDialog(); var dialog = new AddServiceReferenceDialog();
dialog.DataContext = vm; dialog.DataContext = vm;
dialog.Owner = WorkbenchSingleton.MainWindow; dialog.Owner = SD.Workbench.MainWindow;
if (dialog.ShowDialog() ?? true) { if (dialog.ShowDialog() ?? true) {
vm.AddServiceReference(); vm.AddServiceReference();
} }

3
src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs

@ -156,8 +156,9 @@ namespace ICSharpCode.SharpDevelop
public void CreatePad() public void CreatePad()
{ {
if (WorkbenchSingleton.InvokeRequired) if (SD.MainThread.InvokeRequired) {
throw new InvalidOperationException("This action could trigger pad creation and is only valid on the main thread!"); throw new InvalidOperationException("This action could trigger pad creation and is only valid on the main thread!");
}
if (!padContentCreated) { if (!padContentCreated) {
padContentCreated = true; padContentCreated = true;
try { try {

2
src/Main/Base/Project/Src/Project/PortableLibrary/PickPortableTargetFramework.cs

@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Project.PortableLibrary
{ {
if (ProfileList.IsPortableLibraryInstalled()) { if (ProfileList.IsPortableLibraryInstalled()) {
SelectProfileDialog dlg = new SelectProfileDialog(ProfileList.Instance); SelectProfileDialog dlg = new SelectProfileDialog(ProfileList.Instance);
dlg.Owner = WorkbenchSingleton.MainWindow; dlg.Owner = SD.Workbench.MainWindow;
if (selectedProjects != null) { if (selectedProjects != null) {
var project = selectedProjects.FirstOrDefault() as CompilableProject; var project = selectedProjects.FirstOrDefault() as CompilableProject;
if (project != null) { if (project != null) {

4
src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs

@ -33,7 +33,7 @@ namespace ICSharpCode.SharpDevelop.Project
SD.MainThread.VerifyAccess(); SD.MainThread.VerifyAccess();
activeWatchers.Add(this); activeWatchers.Add(this);
WorkbenchSingleton.MainWindow.Activated += MainFormActivated; SD.Workbench.MainWindow.Activated += MainFormActivated;
} }
public void Enable() public void Enable()
@ -152,7 +152,7 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
SD.MainThread.VerifyAccess(); SD.MainThread.VerifyAccess();
if (!disposed) { if (!disposed) {
WorkbenchSingleton.MainWindow.Activated -= MainFormActivated; SD.Workbench.MainWindow.Activated -= MainFormActivated;
activeWatchers.Remove(this); activeWatchers.Remove(this);
} }
if (watcher != null) { if (watcher != null) {

2
src/Main/Base/Project/Src/Services/Debugger/CurrentLineBookmark.cs

@ -7,10 +7,8 @@ using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.NRefactory; using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Bookmarks; using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.SharpDevelop.Debugging namespace ICSharpCode.SharpDevelop.Debugging
{ {

8
src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs

@ -4,19 +4,11 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Editor;
using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Bookmarks; using ICSharpCode.SharpDevelop.Editor.Bookmarks;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Parser;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using Mono.Cecil; using Mono.Cecil;

4
src/Main/Base/Project/Src/Services/FileChangeWatcher.cs

@ -72,7 +72,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
if (file == null) if (file == null)
throw new ArgumentNullException("file"); throw new ArgumentNullException("file");
this.file = file; this.file = file;
WorkbenchSingleton.MainWindow.Activated += MainForm_Activated; SD.Workbench.MainWindow.Activated += MainForm_Activated;
file.FileNameChanged += file_FileNameChanged; file.FileNameChanged += file_FileNameChanged;
activeWatchers.Add(this); activeWatchers.Add(this);
SetWatcher(); SetWatcher();
@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
SD.MainThread.VerifyAccess(); SD.MainThread.VerifyAccess();
activeWatchers.Remove(this); activeWatchers.Remove(this);
if (file != null) { if (file != null) {
WorkbenchSingleton.MainWindow.Activated -= MainForm_Activated; SD.Workbench.MainWindow.Activated -= MainForm_Activated;
file.FileNameChanged -= file_FileNameChanged; file.FileNameChanged -= file_FileNameChanged;
file = null; file = null;
} }

5
src/Main/SharpDevelop/Logging/ExceptionBox.cs

@ -89,11 +89,12 @@ namespace ICSharpCode.SharpDevelop.Logging
LoggingService.Warn("Error tracking exception", ex); LoggingService.Warn("Error tracking exception", ex);
} }
using (ExceptionBox box = new ExceptionBox(exception, message, mustTerminate)) { using (ExceptionBox box = new ExceptionBox(exception, message, mustTerminate)) {
if (ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.InvokeRequired) if (SD.MainThread.InvokeRequired) {
box.ShowDialog(); box.ShowDialog();
else } else {
box.ShowDialog(SD.WinForms.MainWin32Window); box.ShowDialog(SD.WinForms.MainWin32Window);
} }
}
} catch (Exception ex) { } catch (Exception ex) {
LoggingService.Warn("Error showing ExceptionBox", ex); LoggingService.Warn("Error showing ExceptionBox", ex);
MessageBox.Show(exception.ToString(), message, MessageBoxButtons.OK, MessageBox.Show(exception.ToString(), message, MessageBoxButtons.OK,

39
src/Main/SharpDevelop/Sda/CallHelper.cs

@ -189,11 +189,7 @@ namespace ICSharpCode.SharpDevelop.Sda
public List<Document> OpenDocuments { public List<Document> OpenDocuments {
get { get {
List<Document> l = new List<Document>(); List<Document> l = new List<Document>();
if (WorkbenchSingleton.InvokeRequired) { SD.MainThread.InvokeIfRequired(() => GetOpenDocuments(l));
SD.MainThread.InvokeIfRequired(() => new Action<List<Document>>(GetOpenDocuments)(l));
} else {
GetOpenDocuments(l);
}
return l; return l;
} }
} }
@ -212,12 +208,9 @@ namespace ICSharpCode.SharpDevelop.Sda
/// </summary> /// </summary>
public Document OpenDocument(string fileName) public Document OpenDocument(string fileName)
{ {
if (WorkbenchSingleton.InvokeRequired) {
return SD.MainThread.InvokeIfRequired(() => OpenDocumentInternal(fileName)); return SD.MainThread.InvokeIfRequired(() => OpenDocumentInternal(fileName));
} else {
return OpenDocumentInternal(fileName);
}
} }
Document OpenDocumentInternal(string fileName) Document OpenDocumentInternal(string fileName)
{ {
return Document.FromWindow(FileService.OpenFile(fileName)); return Document.FromWindow(FileService.OpenFile(fileName));
@ -225,15 +218,7 @@ namespace ICSharpCode.SharpDevelop.Sda
public void OpenProject(string fileName) public void OpenProject(string fileName)
{ {
if (WorkbenchSingleton.InvokeRequired) { SD.MainThread.InvokeIfRequired(() => Project.ProjectService.LoadSolutionOrProject(fileName));
SD.MainThread.InvokeIfRequired(() => OpenProjectInternal(fileName));
} else {
OpenProjectInternal(fileName);
}
}
void OpenProjectInternal(string fileName)
{
Project.ProjectService.LoadSolutionOrProject(fileName);
} }
[SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")]
@ -244,11 +229,7 @@ namespace ICSharpCode.SharpDevelop.Sda
public bool CloseWorkbench(bool force) public bool CloseWorkbench(bool force)
{ {
if (WorkbenchSingleton.InvokeRequired) {
return SD.MainThread.InvokeIfRequired(() => CloseWorkbenchInternal(force)); return SD.MainThread.InvokeIfRequired(() => CloseWorkbenchInternal(force));
} else {
return CloseWorkbenchInternal(force);
}
} }
bool CloseWorkbenchInternal(bool force) bool CloseWorkbenchInternal(bool force)
{ {
@ -256,7 +237,7 @@ namespace ICSharpCode.SharpDevelop.Sda
if (!window.CloseWindow(force)) if (!window.CloseWindow(force))
return false; return false;
} }
WorkbenchSingleton.MainWindow.Close(); SD.Workbench.MainWindow.Close();
return true; return true;
} }
@ -268,27 +249,19 @@ namespace ICSharpCode.SharpDevelop.Sda
public bool WorkbenchVisible { public bool WorkbenchVisible {
get { get {
if (WorkbenchSingleton.InvokeRequired) {
return SD.MainThread.InvokeIfRequired<bool>(GetWorkbenchVisibleInternal); return SD.MainThread.InvokeIfRequired<bool>(GetWorkbenchVisibleInternal);
} else {
return GetWorkbenchVisibleInternal();
}
} }
set { set {
if (WorkbenchSingleton.InvokeRequired) {
SD.MainThread.InvokeIfRequired(() => SetWorkbenchVisibleInternal(value)); SD.MainThread.InvokeIfRequired(() => SetWorkbenchVisibleInternal(value));
} else {
SetWorkbenchVisibleInternal(value);
}
} }
} }
bool GetWorkbenchVisibleInternal() bool GetWorkbenchVisibleInternal()
{ {
return WorkbenchSingleton.MainWindow.Visibility == Visibility.Visible; return SD.Workbench.MainWindow.Visibility == Visibility.Visible;
} }
void SetWorkbenchVisibleInternal(bool value) void SetWorkbenchVisibleInternal(bool value)
{ {
WorkbenchSingleton.MainWindow.Visibility = value ? Visibility.Visible : Visibility.Hidden; SD.Workbench.MainWindow.Visibility = value ? Visibility.Visible : Visibility.Hidden;
} }
} }
} }

2
src/Main/SharpDevelop/Workbench/AvalonWorkbenchWindow.cs

@ -111,7 +111,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
/// </summary> /// </summary>
public IViewContent ActiveViewContent { public IViewContent ActiveViewContent {
get { get {
WorkbenchSingleton.DebugAssertMainThread(); SD.MainThread.VerifyAccess();
if (viewTabControl != null && viewTabControl.SelectedIndex >= 0 && viewTabControl.SelectedIndex < ViewContents.Count) { if (viewTabControl != null && viewTabControl.SelectedIndex >= 0 && viewTabControl.SelectedIndex < ViewContents.Count) {
return ViewContents[viewTabControl.SelectedIndex]; return ViewContents[viewTabControl.SelectedIndex];
} else if (ViewContents.Count == 1) { } else if (ViewContents.Count == 1) {

9
src/Main/SharpDevelop/Workbench/SDStatusBar.cs

@ -76,11 +76,12 @@ namespace ICSharpCode.SharpDevelop.Workbench
} }
txtStatusBarPanel.Content = message; txtStatusBarPanel.Content = message;
}; };
if (WorkbenchSingleton.InvokeRequired) if (SD.MainThread.InvokeRequired) {
SD.MainThread.InvokeAsync(setMessageAction).FireAndForget(); SD.MainThread.InvokeAsync(setMessageAction).FireAndForget();
else } else {
setMessageAction(); setMessageAction();
} }
}
// Displaying progress // Displaying progress
@ -113,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
taskbarProgressState = TaskbarItemProgressState.Normal; taskbarProgressState = TaskbarItemProgressState.Normal;
} }
TaskbarItemInfo taskbar = WorkbenchSingleton.MainWindow.TaskbarItemInfo; TaskbarItemInfo taskbar = SD.Workbench.MainWindow.TaskbarItemInfo;
if (taskbar != null) { if (taskbar != null) {
taskbar.ProgressState = taskbarProgressState; taskbar.ProgressState = taskbarProgressState;
taskbar.ProgressValue = workDone; taskbar.ProgressValue = workDone;
@ -173,7 +174,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
if (!statusProgressBarIsVisible) { if (!statusProgressBarIsVisible) {
statusProgressBarItem.Visibility = Visibility.Collapsed; statusProgressBarItem.Visibility = Visibility.Collapsed;
jobNamePanel.Content = currentTaskName = ""; jobNamePanel.Content = currentTaskName = "";
var taskbar = WorkbenchSingleton.MainWindow.TaskbarItemInfo; var taskbar = SD.Workbench.MainWindow.TaskbarItemInfo;
if (taskbar != null) if (taskbar != null)
taskbar.ProgressState = TaskbarItemProgressState.None; taskbar.ProgressState = TaskbarItemProgressState.None;
StopHideProgress(); StopHideProgress();

Loading…
Cancel
Save