diff --git a/samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs b/samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs index 6beb045f2d..3f0a192660 100644 --- a/samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs +++ b/samples/PortSD4AddInToSD5/WorkbenchSingletonIssueProvider.cs @@ -11,6 +11,7 @@ using System.Collections.Generic; using System.Linq; using ICSharpCode.NRefactory.CSharp; using ICSharpCode.NRefactory.CSharp.Refactoring; +using ICSharpCode.NRefactory.Semantics; using ICSharpCode.NRefactory.CSharp.Resolver; using ICSharpCode.SharpDevelop; @@ -25,6 +26,35 @@ namespace PortSD4AddInToSD5 { public IEnumerable GetIssues (BaseRefactoringContext context) { + foreach (var mre in context.RootNode.Descendants.OfType()) { + var rr = context.Resolve(mre); + var mrr = rr as MemberResolveResult; + if (mrr == null) + continue; + switch (mrr.Member.FullName) { + case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window": + yield return Issue( + mre, + script => { + script.Replace(mre, new IdentifierExpression("SD").Member("WinForms").Member("MainWin32Window")); + }); + break; + case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.Workbench": + yield return Issue( + mre, + script => { + script.Replace(mre, new IdentifierExpression("SD").Member("Workbench")); + }); + break; + case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.StatusBar": + yield return Issue( + mre, + script => { + script.Replace(mre, new IdentifierExpression("SD").Member("StatusBar")); + }); + break; + } + } foreach (var invocationExpression in context.RootNode.Descendants.OfType()) { var rr = context.Resolve(invocationExpression); var irr = rr as CSharpInvocationResolveResult; @@ -40,34 +70,36 @@ namespace PortSD4AddInToSD5 }); break; case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.SafeThreadAsyncCall": - if (invocationExpression.Arguments.Count == 1) { + { // SD.MainThread.InvokeAsync(argument).FireAndForget(); + Expression arg = invocationExpression.Arguments.First().Clone(); + if (invocationExpression.Arguments.Count > 1) + arg = new LambdaExpression { Body = arg.Invoke(invocationExpression.Arguments.Skip(1).Select(a => a.Clone())) }; yield return Issue( invocationExpression, script => { script.Replace(invocationExpression, new IdentifierExpression("SD").Member("MainThread") - .Invoke("InvokeAsync", invocationExpression.Arguments.Single().Clone()) + .Invoke("InvokeAsync", arg) .Invoke("FireAndForget")); }); - } else { - yield return Issue(invocationExpression); + break; } - break; case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.SafeThreadCall": case "ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.SafeThreadFunction": - if (invocationExpression.Arguments.Count == 1) { + { // SD.MainThread.InvokeIfRequired(argument); + Expression arg = invocationExpression.Arguments.First().Clone(); + if (invocationExpression.Arguments.Count > 1) + arg = new LambdaExpression { Body = arg.Invoke(invocationExpression.Arguments.Skip(1).Select(a => a.Clone())) }; yield return Issue( invocationExpression, script => { - script.Replace(invocationExpression.Target, - new IdentifierExpression("SD").Member("MainThread").Member("InvokeIfRequired")); + script.Replace(invocationExpression, + new IdentifierExpression("SD").Member("MainThread").Invoke("InvokeIfRequired", arg)); }); - } else { - yield return Issue(invocationExpression); + break; } - break; } } } diff --git a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs index 7b067b8e80..ec4cc45da9 100644 --- a/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs +++ b/src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/SearchForIssuesCommand.cs @@ -204,7 +204,7 @@ namespace CSharpBinding.Refactoring } if (document == null) { documentWasLoadedFromDisk = true; - document = new TextDocument(SD.FileService.GetFileContent(fileName)); + document = new TextDocument(SD.FileService.GetFileContent(fileName)) { FileName = fileName }; } var parseInfo = SD.ParserService.Parse(fileName, document, cancellationToken: cancellationToken) as CSharpFullParseInformation; if (parseInfo == null) diff --git a/src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs b/src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs index c1c8ac2c59..636c15754c 100644 --- a/src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs +++ b/src/AddIns/BackendBindings/FSharpBinding/FSharpInteractive.cs @@ -138,7 +138,7 @@ namespace FSharpBinding { public override void Run() { - PadDescriptor pad = WorkbenchSingleton.Workbench.GetPad(typeof(FSharpInteractive)); + PadDescriptor pad = SD.Workbench.GetPad(typeof(FSharpInteractive)); pad.BringPadToFront(); FSharpInteractive fsharpInteractive = (FSharpInteractive)pad.PadContent; if (fsharpInteractive.foundCompiler) { diff --git a/src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlLanguageBinding.cs b/src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlLanguageBinding.cs index a5b9a90a7f..851a700c63 100644 --- a/src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlLanguageBinding.cs +++ b/src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlLanguageBinding.cs @@ -4,6 +4,7 @@ using System; using ICSharpCode.AvalonEdit.Document; using ICSharpCode.AvalonEdit.Rendering; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Gui; @@ -30,7 +31,7 @@ namespace ICSharpCode.XamlBinding // if editor is not an AvalonEdit.TextEditor // GetService returns null if (textView != null) { - if (WorkbenchSingleton.Workbench != null) { + if (SD.Workbench != null) { // if (XamlBindingOptions.UseAdvancedHighlighting) { // colorizer = new XamlColorizer(editor, textView); // // attach the colorizer diff --git a/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs b/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs index b67f95442f..19125348a2 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs +++ b/src/AddIns/Debugger/Debugger.AddIn/Service/DebuggeeExceptionForm.cs @@ -69,7 +69,7 @@ namespace ICSharpCode.SharpDevelop.Services form.btnContinue.Enabled = !isUnhandled; form.Exception = exception; - form.Show(WorkbenchSingleton.MainWin32Window); + form.Show(SD.WinForms.MainWin32Window); } void ExceptionViewDoubleClick(object sender, EventArgs e) diff --git a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs index ce2dc24b8a..e431b4014e 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs +++ b/src/AddIns/Debugger/Debugger.AddIn/Service/WindowsDebugger.cs @@ -192,7 +192,7 @@ namespace ICSharpCode.SharpDevelop.Services public void ShowAttachDialog() { using (AttachToProcessForm attachForm = new AttachToProcessForm()) { - if (attachForm.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (attachForm.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { Attach(attachForm.Process); } } @@ -460,7 +460,7 @@ namespace ICSharpCode.SharpDevelop.Services } catch (GetValueException e) { string errorMessage = "Error while evaluating breakpoint condition " + code + ":\n" + e.Message + "\n"; DebuggerService.PrintDebugMessage(errorMessage); - WorkbenchSingleton.SafeThreadAsyncCall(MessageService.ShowWarning, errorMessage); + SD.MainThread.InvokeAsync(() => MessageService.ShowWarning(errorMessage)).FireAndForget(); return true; } } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs index 196766c69c..693bde3ed1 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsRenderer.cs @@ -54,12 +54,12 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions this.delayMoveTimer = new DispatcherTimer() { Interval = TimeSpan.FromMilliseconds(delayMoveMilliseconds) }; this.delayMoveTimer.Stop(); this.delayMoveTimer.Tick += TimerMoveTick; - WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchSingleton_Workbench_ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged += WorkbenchSingleton_Workbench_ActiveViewContentChanged; } public void Dispose() { - WorkbenchSingleton.Workbench.ActiveViewContentChanged -= WorkbenchSingleton_Workbench_ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged -= WorkbenchSingleton_Workbench_ActiveViewContentChanged; ClosePopup(); } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs index 31222afb19..021beed142 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/HiddenDefinition/HiddenDefinitionRenderer.cs @@ -4,6 +4,7 @@ using System; using System.Windows.Controls.Primitives; using ICSharpCode.Core.Presentation; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Gui; @@ -19,14 +20,14 @@ namespace ICSharpCode.AvalonEdit.AddIn.HiddenDefinition { this.editor = editorView; control = new HiddenDefinitionControl(); - WorkbenchSingleton.Workbench.ActiveContentChanged += WorkbenchSingleton_Workbench_ActiveContentChanged; + SD.Workbench.ActiveContentChanged += WorkbenchSingleton_Workbench_ActiveContentChanged; } public BracketSearchResult BracketSearchResult { get; set; } public void Dispose() { - WorkbenchSingleton.Workbench.ActiveContentChanged -= WorkbenchSingleton_Workbench_ActiveContentChanged; + SD.Workbench.ActiveContentChanged -= WorkbenchSingleton_Workbench_ActiveContentChanged; ClosePopup(); popup = null; } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/NewLineConsistencyCheck.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/NewLineConsistencyCheck.cs index f65f8382e1..681a6454df 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/NewLineConsistencyCheck.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/NewLineConsistencyCheck.cs @@ -62,7 +62,7 @@ namespace ICSharpCode.AvalonEdit.AddIn // don't allow mac-style newlines; accept either unix or windows-style newlines but avoid mixing them bool isConsistent = (numCR == 0) && (numLF == 0 || numCRLF == 0); if (!isConsistent) { - SharpDevelop.Gui.WorkbenchSingleton.SafeThreadAsyncCall(ShowInconsistentWarning, numLF > numCRLF); + SD.MainThread.InvokeAsync(() => ShowInconsistentWarning(numLF > numCRLF)).FireAndForget(); } } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/PrintPreviewViewContent.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/PrintPreviewViewContent.cs index de161085e8..fe67b7d31e 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/PrintPreviewViewContent.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/PrintPreviewViewContent.cs @@ -12,6 +12,7 @@ using System.Windows.Media; using System.Windows.Xps; using System.Windows.Xps.Packaging; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Workbench; @@ -110,12 +111,12 @@ namespace ICSharpCode.AvalonEdit.AddIn public static void ShowDocument(IDocumentPaginatorSource document, string description) { - PrintPreviewViewContent vc = WorkbenchSingleton.Workbench.ViewContentCollection.OfType().FirstOrDefault(); + PrintPreviewViewContent vc = SD.Workbench.ViewContentCollection.OfType().FirstOrDefault(); if (vc != null) { vc.WorkbenchWindow.SelectWindow(); } else { vc = new PrintPreviewViewContent(); - WorkbenchSingleton.Workbench.ShowView(vc); + SD.Workbench.ShowView(vc); } vc.Document = document; vc.Description = description; diff --git a/src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/ILSpyController.cs b/src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/ILSpyController.cs index ae02b7baf3..7636a95d51 100644 --- a/src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/ILSpyController.cs +++ b/src/AddIns/DisplayBindings/ILSpyAddIn/LaunchILSpy/ILSpyController.cs @@ -70,7 +70,7 @@ namespace ICSharpCode.ILSpyAddIn if (askReason != null) { using(SetILSpyPathDialog dialog = new SetILSpyPathDialog(path, askReason)) { - if (dialog.ShowDialog(WorkbenchSingleton.MainWin32Window) != DialogResult.OK || !File.Exists(dialog.SelectedFile)) { + if (dialog.ShowDialog(SD.WinForms.MainWin32Window) != DialogResult.OK || !File.Exists(dialog.SelectedFile)) { return null; } diff --git a/src/AddIns/DisplayBindings/ILSpyAddIn/NavigateToDecompiledEntityService.cs b/src/AddIns/DisplayBindings/ILSpyAddIn/NavigateToDecompiledEntityService.cs index ed1f2d6300..42a72ee007 100644 --- a/src/AddIns/DisplayBindings/ILSpyAddIn/NavigateToDecompiledEntityService.cs +++ b/src/AddIns/DisplayBindings/ILSpyAddIn/NavigateToDecompiledEntityService.cs @@ -45,14 +45,14 @@ namespace ICSharpCode.ILSpyAddIn if (string.IsNullOrEmpty(typeName)) throw new ArgumentException("typeName is null or empty"); - foreach (var viewContent in WorkbenchSingleton.Workbench.ViewContentCollection.OfType()) { + foreach (var viewContent in SD.Workbench.ViewContentCollection.OfType()) { if (viewContent.AssemblyFile == assemblyFile && typeName == viewContent.FullTypeName) { viewContent.WorkbenchWindow.SelectWindow(); viewContent.JumpToEntity(entityIdString); return; } } - WorkbenchSingleton.Workbench.ShowView(new DecompiledViewContent(assemblyFile, typeName, entityIdString)); + SD.Workbench.ShowView(new DecompiledViewContent(assemblyFile, typeName, entityIdString)); } /* diff --git a/src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs b/src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs index fed3961c5c..b00f99ebd2 100644 --- a/src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs +++ b/src/AddIns/DisplayBindings/ILSpyAddIn/ViewContent/DecompiledViewContent.cs @@ -139,7 +139,7 @@ namespace ICSharpCode.ILSpyAddIn StringWriter writer = new StringWriter(); RunDecompiler(assemblyFile, fullTypeName, new DebuggerTextOutput(new PlainTextOutput(writer)), cancellation.Token); if (!cancellation.IsCancellationRequested) { - WorkbenchSingleton.SafeThreadAsyncCall(OnDecompilationFinished, writer); + SD.MainThread.InvokeAsync(() => OnDecompilationFinished(writer)).FireAndForget(); } } catch (OperationCanceledException) { // ignore cancellation @@ -154,7 +154,7 @@ namespace ICSharpCode.ILSpyAddIn writer.WriteLine(string.Format("Exception while decompiling {0} ({1})", fullTypeName, assemblyFile)); writer.WriteLine(); writer.WriteLine(ex.ToString()); - WorkbenchSingleton.SafeThreadAsyncCall(OnDecompilationFinished, writer); + SD.MainThread.InvokeAsync(() => OnDecompilationFinished(writer)).FireAndForget(); } } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs index 89cb8cc1c3..6c1ea81d18 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/AssignStylesheetCommand.cs @@ -1,10 +1,11 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using ICSharpCode.SharpDevelop.Gui; using System; using System.Windows.Forms; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Gui; namespace ICSharpCode.XmlEditor { @@ -48,7 +49,7 @@ namespace ICSharpCode.XmlEditor dialog.FilterIndex = 1; } - if (dialog.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (dialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { return dialog.FileName; } } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RemoveXPathHighlightingCommand.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RemoveXPathHighlightingCommand.cs index df3b26bd77..e7082d6d87 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RemoveXPathHighlightingCommand.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RemoveXPathHighlightingCommand.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.XmlEditor } public RemoveXPathHighlightingCommand() - : this(WorkbenchSingleton.Workbench) + : this(SD.Workbench) { } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RunXslTransformCommand.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RunXslTransformCommand.cs index 27a6ddcb08..291e54489d 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RunXslTransformCommand.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/RunXslTransformCommand.cs @@ -57,7 +57,7 @@ namespace ICSharpCode.XmlEditor /// static XmlView GetAssociatedXmlView(string stylesheetFileName) { - foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent content in SD.Workbench.ViewContentCollection) { XmlView view = XmlView.ForViewContent(content); if (view != null && !string.IsNullOrEmpty(view.StylesheetFileName)) { if (FileUtility.IsEqualFileName(view.StylesheetFileName, stylesheetFileName)) { diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs index 490d63e94d..64574d1606 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XPathQueryPad.cs @@ -4,6 +4,7 @@ using System; using System.Windows.Forms; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Workbench; @@ -20,7 +21,7 @@ namespace ICSharpCode.XmlEditor public XPathQueryPad() { xpathQueryControl = new XPathQueryControl(); - WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; Properties properties = PropertyService.NestedProperties(XPathQueryControlProperties); xpathQueryControl.SetMemento(properties); instance = this; @@ -41,7 +42,7 @@ namespace ICSharpCode.XmlEditor { if (!disposed) { disposed = true; - WorkbenchSingleton.Workbench.ActiveViewContentChanged -= ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged -= ActiveViewContentChanged; Properties properties = xpathQueryControl.CreateMemento(); PropertyService.SetNestedProperties(XPathQueryControlProperties, properties); xpathQueryControl.Dispose(); diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeNodeClipboardCommand.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeNodeClipboardCommand.cs index 96e9df93cb..070ba408ad 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeNodeClipboardCommand.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlTreeNodeClipboardCommand.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.WinForms; @@ -22,7 +23,7 @@ namespace ICSharpCode.XmlEditor IClipboardHandler GetClipboardHandler() { - return WorkbenchSingleton.Workbench.ActiveContent as IClipboardHandler; + return SD.Workbench.ActiveContent as IClipboardHandler; } protected abstract bool GetEnabled(IClipboardHandler editable); diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs index f3ff305f9c..8d9d039d76 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs @@ -110,7 +110,7 @@ namespace ICSharpCode.XmlEditor } public static XmlView ActiveXmlView { - get { return XmlView.ForViewContent(WorkbenchSingleton.Workbench.ActiveViewContent); } + get { return XmlView.ForViewContent(SD.Workbench.ActiveViewContent); } } public void GoToSchemaDefinition() @@ -166,7 +166,7 @@ namespace ICSharpCode.XmlEditor static void ShowErrorList() { if (ErrorListPad.ShowAfterBuild && TaskService.SomethingWentWrong) { - WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); + SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); } } @@ -449,7 +449,7 @@ namespace ICSharpCode.XmlEditor public void RunXslTransform(string xsl) { try { - WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); + SD.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); TaskService.ClearExceptCommentTasks(); @@ -519,7 +519,7 @@ namespace ICSharpCode.XmlEditor bool IsValidXsl(string xml) { try { - WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); + SD.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); StringReader reader = new StringReader(xml); XPathDocument doc = new XPathDocument(reader); @@ -544,7 +544,7 @@ namespace ICSharpCode.XmlEditor /// static void ShowOutputWindow() { - WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); + SD.Workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); } /// diff --git a/src/AddIns/Misc/AddInManager/Project/Src/ManagerForm.cs b/src/AddIns/Misc/AddInManager/Project/Src/ManagerForm.cs index 0c2e81c044..08a3149744 100644 --- a/src/AddIns/Misc/AddInManager/Project/Src/ManagerForm.cs +++ b/src/AddIns/Misc/AddInManager/Project/Src/ManagerForm.cs @@ -31,7 +31,7 @@ namespace ICSharpCode.AddInManager #if STANDALONE instance.Show(); #else - instance.Show(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window); + instance.Show(SD.WinForms.MainWin32Window); #endif } else { instance.Activate(); diff --git a/src/AddIns/Misc/AddinScout/Project/Src/AddInScoutCommand.cs b/src/AddIns/Misc/AddinScout/Project/Src/AddInScoutCommand.cs index 960f3b47e2..e3b0510de7 100644 --- a/src/AddIns/Misc/AddinScout/Project/Src/AddInScoutCommand.cs +++ b/src/AddIns/Misc/AddinScout/Project/Src/AddInScoutCommand.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; namespace AddInScout @@ -12,7 +13,7 @@ namespace AddInScout public override void Run() { AddInScoutViewContent vw = new AddInScoutViewContent(); - WorkbenchSingleton.Workbench.ShowView(vw); + SD.Workbench.ShowView(vw); } } } diff --git a/src/AddIns/Misc/HelpViewer/Source/Commands.cs b/src/AddIns/Misc/HelpViewer/Source/Commands.cs index a0ade3ed43..87e2a3a502 100644 --- a/src/AddIns/Misc/HelpViewer/Source/Commands.cs +++ b/src/AddIns/Misc/HelpViewer/Source/Commands.cs @@ -49,7 +49,7 @@ namespace MSHelpSystem.Commands { if (Help3Service.Config.ExternalHelp) DisplayHelp.Catalog(); else { - PadDescriptor toc = WorkbenchSingleton.Workbench.GetPad(typeof(Help3TocPad)); + PadDescriptor toc = SD.Workbench.GetPad(typeof(Help3TocPad)); if (toc != null) toc.BringPadToFront(); } } @@ -59,7 +59,7 @@ namespace MSHelpSystem.Commands { public override void Run() { - PadDescriptor search = WorkbenchSingleton.Workbench.GetPad(typeof(Help3SearchPad)); + PadDescriptor search = SD.Workbench.GetPad(typeof(Help3SearchPad)); if (search != null) search.BringPadToFront(); } } diff --git a/src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs b/src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs index 12c108ff53..9899b59450 100644 --- a/src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs +++ b/src/AddIns/Misc/HelpViewer/Source/Core/DisplayHelp.cs @@ -203,19 +203,19 @@ namespace MSHelpSystem.Core static BrowserPane ActiveHelp3Browser() { - IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; + IWorkbenchWindow window = SD.Workbench.ActiveWorkbenchWindow; if (window != null) { BrowserPane browser = window.ActiveViewContent as BrowserPane; if (browser != null && browser.Url.Scheme == "http") return browser; } - foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) + foreach (IViewContent view in SD.Workbench.ViewContentCollection) { BrowserPane browser = view as BrowserPane; if (browser != null && browser.Url.Scheme == "http") return browser; } BrowserPane tmp = new BrowserPane(); - WorkbenchSingleton.Workbench.ShowView(tmp); + SD.Workbench.ShowView(tmp); return tmp; } } diff --git a/src/AddIns/Misc/RegExpTk/Project/Src/Commands/MenuCommand.cs b/src/AddIns/Misc/RegExpTk/Project/Src/Commands/MenuCommand.cs index 27ad4c7987..b6b9fe6115 100644 --- a/src/AddIns/Misc/RegExpTk/Project/Src/Commands/MenuCommand.cs +++ b/src/AddIns/Misc/RegExpTk/Project/Src/Commands/MenuCommand.cs @@ -3,6 +3,7 @@ using System; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; namespace Plugins.RegExpTk { @@ -12,7 +13,7 @@ namespace Plugins.RegExpTk { public override void Run() { RegExpTkDialog dialog = new RegExpTkDialog(); - dialog.Show(WorkbenchSingleton.MainWin32Window); + dialog.Show(SD.WinForms.MainWin32Window); } } } diff --git a/src/AddIns/Misc/RegExpTk/Project/Src/Dialogs/MainWindow.cs b/src/AddIns/Misc/RegExpTk/Project/Src/Dialogs/MainWindow.cs index 8e9db2f35b..799b466234 100644 --- a/src/AddIns/Misc/RegExpTk/Project/Src/Dialogs/MainWindow.cs +++ b/src/AddIns/Misc/RegExpTk/Project/Src/Dialogs/MainWindow.cs @@ -14,6 +14,7 @@ using System.Windows.Forms; using ICSharpCode.Core; using ICSharpCode.Core.WinForms; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui.XmlForms; @@ -127,7 +128,7 @@ namespace Plugins.RegExpTk { void showGroupForm(Match match) { GroupForm groupform = new GroupForm(match); - groupform.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window); + groupform.ShowDialog(SD.WinForms.MainWin32Window); } void GroupListView_MouseUp(object sender, MouseEventArgs e) @@ -249,7 +250,7 @@ namespace Plugins.RegExpTk { sfd.DefaultExt = "dll"; sfd.CheckPathExists = true; - if (sfd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (sfd.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { ((TextBox)ControlDictionary["AssemblyFileCompileFileTextBox"]).Text = sfd.FileName; } } diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchLocation.cs b/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchLocation.cs index 39027d4428..9ab65862c7 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchLocation.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchLocation.cs @@ -57,7 +57,7 @@ namespace SearchAndReplace files.Add(editor.FileName); break; case SearchTarget.AllOpenFiles: - foreach (var vc in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (var vc in SD.Workbench.ViewContentCollection) { editor = vc.GetService(); if (editor != null) files.Add(editor.FileName); diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs b/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs index 66cb585d60..87ff97b13c 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchManager.cs @@ -70,13 +70,13 @@ namespace SearchAndReplace try { foreach (FileName name in viewContentFileNamesCollection) { if (FileUtility.IsEqualFileName(name, fileName)) { - ITextSource buffer = WorkbenchSingleton.SafeThreadFunction(ReadFile, fileName); + ITextSource buffer = SD.MainThread.InvokeIfRequired(() => ReadFile(fileName)); if (buffer != null) return buffer; } } using (Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { - if (MimeTypeDetection.FindMimeType(stream).StartsWith("text/")) { + if (MimeTypeDetection.FindMimeType(stream).StartsWith("text/", StringComparison.Ordinal)) { stream.Position = 0; return new StringTextSource(ICSharpCode.AvalonEdit.Utils.FileReader.ReadFileContent(stream, SD.FileService.DefaultFileEncoding)); } @@ -430,7 +430,7 @@ namespace SearchAndReplace if (fileName != null) { viewContent = FileService.OpenFile(fileName, switchToOpenedView); } else { - viewContent = WorkbenchSingleton.Workbench.ActiveViewContent; + viewContent = SD.Workbench.ActiveViewContent; } if (viewContent != null) { diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplaceDialog.cs b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplaceDialog.cs index a640a6b827..f8098f2d0a 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplaceDialog.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplaceDialog.cs @@ -31,7 +31,7 @@ namespace SearchAndReplace { if (Instance == null) { Instance = new SearchAndReplaceDialog(searchAndReplaceMode); - Instance.Show(WorkbenchSingleton.MainWin32Window); + Instance.Show(SD.WinForms.MainWin32Window); } else { if (searchAndReplaceMode == SearchAndReplaceMode.Search) { Instance.searchButton.PerformClick(); diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs index b25752aa76..6c38c7f246 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs @@ -100,7 +100,7 @@ namespace SearchAndReplace void FindAllButtonClicked(object sender, EventArgs e) { WritebackOptions(); - using (var monitor = WorkbenchSingleton.StatusBar.CreateProgressMonitor()) { + using (var monitor = SD.StatusBar.CreateProgressMonitor()) { monitor.TaskName = StringParser.Parse("${res:AddIns.SearchReplace.SearchProgressTitle}"); try { var location = new SearchLocation(SearchOptions.SearchTarget, SearchOptions.LookIn, SearchOptions.LookInFiletypes, SearchOptions.IncludeSubdirectories, SearchOptions.SearchTarget == SearchTarget.CurrentSelection ? SearchManager.GetActiveSelection(false) : null); @@ -116,7 +116,7 @@ namespace SearchAndReplace void BookmarkAllButtonClicked(object sender, EventArgs e) { WritebackOptions(); - using (var monitor = WorkbenchSingleton.StatusBar.CreateProgressMonitor()) { + using (var monitor = SD.StatusBar.CreateProgressMonitor()) { monitor.TaskName = StringParser.Parse("${res:AddIns.SearchReplace.SearchProgressTitle}"); try { var location = new SearchLocation(SearchOptions.SearchTarget, SearchOptions.LookIn, SearchOptions.LookInFiletypes, SearchOptions.IncludeSubdirectories, SearchOptions.SearchTarget == SearchTarget.CurrentSelection ? SearchManager.GetActiveSelection(false) : null); diff --git a/src/AddIns/Misc/StartPage/Project/Src/ShowStartPageCommand.cs b/src/AddIns/Misc/StartPage/Project/Src/ShowStartPageCommand.cs index 3f91bb7172..b5a1685dc2 100644 --- a/src/AddIns/Misc/StartPage/Project/Src/ShowStartPageCommand.cs +++ b/src/AddIns/Misc/StartPage/Project/Src/ShowStartPageCommand.cs @@ -16,7 +16,7 @@ namespace ICSharpCode.StartPage { ProjectService.SolutionLoaded += delegate { // close all start pages when loading a solution - foreach (IViewContent v in WorkbenchSingleton.Workbench.ViewContentCollection.ToArray()) { + foreach (IViewContent v in SD.Workbench.ViewContentCollection.ToArray()) { if (v is StartPageViewContent) { v.WorkbenchWindow.CloseWindow(true); } @@ -26,13 +26,13 @@ namespace ICSharpCode.StartPage public override void Run() { - foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent view in SD.Workbench.ViewContentCollection) { if (view is StartPageViewContent) { view.WorkbenchWindow.SelectWindow(); return; } } - WorkbenchSingleton.Workbench.ShowView(new StartPageViewContent()); + SD.Workbench.ShowView(new StartPageViewContent()); } } } diff --git a/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs b/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs index 320f7057ab..3afd3e979b 100644 --- a/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs +++ b/src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs @@ -47,7 +47,7 @@ namespace ICSharpCode.GitAddIn string path = GetPathFromRegistry("ProcPath"); if (path == null) { using (var dlg = new ToolNotFoundDialog(StringParser.Parse("${res:AddIns.Git.TortoiseGitRequired}"), "http://code.google.com/p/tortoisegit/")) { - dlg.ShowDialog(WorkbenchSingleton.MainWin32Window); + dlg.ShowDialog(SD.WinForms.MainWin32Window); } } else { try { diff --git a/src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs b/src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs index f38f74e0ba..e8e323c884 100644 --- a/src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs +++ b/src/AddIns/VersionControl/GitAddIn/Src/RegisterEventsCommand.cs @@ -35,7 +35,7 @@ namespace ICSharpCode.GitAddIn void AddFile(string fileName) { Git.Add(fileName, - exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, fileName) + exitcode => SD.MainThread.InvokeAsync(() => ClearStatusCacheAndEnqueueFile(fileName)).FireAndForget() ); } @@ -43,16 +43,16 @@ namespace ICSharpCode.GitAddIn { if (GitStatusCache.GetFileStatus(fileName) == GitStatus.Added) { Git.Remove(fileName, true, - exitcode => WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, fileName)); + exitcode => SD.MainThread.InvokeAsync(() => ClearStatusCacheAndEnqueueFile(fileName)).FireAndForget()); } } void RenameFile(string sourceFileName, string targetFileName) { Git.Add(targetFileName, - exitcode => WorkbenchSingleton.SafeThreadAsyncCall(RemoveFile, sourceFileName) + exitcode => SD.MainThread.InvokeAsync(() => RemoveFile(sourceFileName)).FireAndForget() ); - WorkbenchSingleton.SafeThreadAsyncCall(ClearStatusCacheAndEnqueueFile, targetFileName); + SD.MainThread.InvokeAsync(() => ClearStatusCacheAndEnqueueFile(targetFileName)).FireAndForget(); } void TreeNodeCreated(object sender, TreeViewEventArgs e) diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewPanel.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewPanel.cs index 29ac56dcb3..d8c0707842 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewPanel.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/HistoryViewPanel.cs @@ -98,7 +98,7 @@ namespace ICSharpCode.Svn // if exceptions aren't caught here, they force SD to exit if (ex is SvnClientException || ex is System.Runtime.InteropServices.SEHException) { LoggingService.Warn(ex); - WorkbenchSingleton.SafeThreadAsyncCall(infoPanel.ShowError, ex); + SD.MainThread.InvokeAsync(() => infoPanel.ShowError(ex)).FireAndForget(); } else { MessageService.ShowException(ex); } @@ -108,7 +108,7 @@ namespace ICSharpCode.Svn void ReceiveLogMessage(LogMessage logMessage) { if (infoPanel != null) { - WorkbenchSingleton.SafeThreadAsyncCall(infoPanel.AddLogMessage, logMessage); + SD.MainThread.InvokeAsync(() => infoPanel.AddLogMessage(logMessage)).FireAndForget(); } // if (diffPanel != null) { // WorkbenchSingleton.SafeThreadAsyncCall(diffPanel.AddLogMessage, logMessage); diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/InfoPanel.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/InfoPanel.cs index 95fd2a6c2b..180eae00de 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/InfoPanel.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/HistoryViewDisplayBinding/InfoPanel.cs @@ -157,7 +157,7 @@ namespace ICSharpCode.Svn } loadChangedPathsItem = null; isLoadingChangedPaths = false; - WorkbenchSingleton.SafeThreadAsyncCall(this.RevisionListViewSelectionChanged, null, EventArgs.Empty); + SD.MainThread.InvokeAsync(() => this.RevisionListViewSelectionChanged(null, EventArgs.Empty)).FireAndForget(); } catch (Exception ex) { MessageService.ShowException(ex); } @@ -170,7 +170,7 @@ namespace ICSharpCode.Svn void ReceiveAllChangedPaths(LogMessage logMessage) { - WorkbenchSingleton.SafeThreadAsyncCall(this.ReceiveAllChangedPathsInvoked, logMessage); + SD.MainThread.InvokeAsync(() => this.ReceiveAllChangedPathsInvoked(logMessage)).FireAndForget(); } void ReceiveAllChangedPathsInvoked(LogMessage logMessage) diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/ProjectBrowserVisitor/OverlayIconManager.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/ProjectBrowserVisitor/OverlayIconManager.cs index a72b12f7b2..bac731d8f6 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/ProjectBrowserVisitor/OverlayIconManager.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/ProjectBrowserVisitor/OverlayIconManager.cs @@ -184,10 +184,7 @@ namespace ICSharpCode.Svn client = new SvnClientWrapper(); } catch (Exception ex) { subversionDisabled = true; - SharpDevelop.Gui.WorkbenchSingleton.SafeThreadAsyncCall( - MessageService.ShowWarning, - "Error initializing Subversion library:\n" + ex.ToString() - ); + SD.MainThread.InvokeAsync(() => MessageService.ShowWarning("Error initializing Subversion library:\n" + ex.ToString())).FireAndForget(); return StatusKind.None; } } diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/SvnGuiWrapper.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/SvnGuiWrapper.cs index a5413e5504..e63343a6a0 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/SvnGuiWrapper.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Gui/SvnGuiWrapper.cs @@ -5,7 +5,9 @@ using System; using System.Diagnostics; using System.Text; using System.Windows.Forms; + using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using Microsoft.Win32; @@ -46,7 +48,7 @@ namespace ICSharpCode.Svn string path = GetPathFromRegistry("ProcPath"); if (path == null) { using (TortoiseSvnNotFoundForm form = new TortoiseSvnNotFoundForm()) { - form.ShowDialog(WorkbenchSingleton.MainWin32Window); + form.ShowDialog(SD.WinForms.MainWin32Window); } } else { try { diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs index 5e46d9f93a..c7609eb2f2 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/SvnClientWrapper.cs @@ -1,7 +1,6 @@ // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -using SharpSvn.UI; using System; using System.Collections.Generic; using System.IO; @@ -9,10 +8,13 @@ using System.Runtime.Serialization; using System.Text; using System.Threading; using System.Windows.Forms; + using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.Svn.Gui; using SharpSvn; +using SharpSvn.UI; namespace ICSharpCode.Svn { @@ -135,7 +137,7 @@ namespace ICSharpCode.Svn CheckNotDisposed(); if (!allowInteractiveAuthorization) { allowInteractiveAuthorization = true; - SvnUI.Bind(client, WorkbenchSingleton.MainWin32Window); + SvnUI.Bind(client, SD.WinForms.MainWin32Window); } } diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/StaticFieldInGenericTypeIssue.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/StaticFieldInGenericTypeIssue.cs index 2d1cfedb74..184ef6fbd5 100644 --- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/StaticFieldInGenericTypeIssue.cs +++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/StaticFieldInGenericTypeIssue.cs @@ -52,7 +52,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring public override void VisitTypeDeclaration(TypeDeclaration typeDeclaration) { var typeResolveResult = ctx.Resolve(typeDeclaration); - var newTypeParameters = typeResolveResult.Type.GetDefinition().TypeParameters; + var typeDefinition = typeResolveResult.Type.GetDefinition(); + if (typeDefinition == null) + return; + var newTypeParameters = typeDefinition.TypeParameters; var oldTypeParameters = availableTypeParameters; availableTypeParameters = Concat(availableTypeParameters, newTypeParameters); diff --git a/src/Main/Base/Project/Editor/RepoChangeWatcher.cs b/src/Main/Base/Project/Editor/RepoChangeWatcher.cs index c8aaef21aa..bf8e0da0da 100644 --- a/src/Main/Base/Project/Editor/RepoChangeWatcher.cs +++ b/src/Main/Base/Project/Editor/RepoChangeWatcher.cs @@ -62,7 +62,7 @@ namespace ICSharpCode.SharpDevelop.Editor if (!alreadyCalled) { alreadyCalled = true; LoggingService.Info(e.Name + " changed!" + e.ChangeType); - if (WorkbenchSingleton.Workbench.IsActiveWindow) { + if (SD.Workbench.IsActiveWindow) { WorkbenchSingleton.CallLater( TimeSpan.FromSeconds(2), () => { MainWindowActivated(this, EventArgs.Empty); } diff --git a/src/Main/Base/Project/Editor/Search/SearchResultsPad.cs b/src/Main/Base/Project/Editor/Search/SearchResultsPad.cs index 8faa6fa515..b789d85bb2 100644 --- a/src/Main/Base/Project/Editor/Search/SearchResultsPad.cs +++ b/src/Main/Base/Project/Editor/Search/SearchResultsPad.cs @@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Search public static SearchResultsPad Instance { get { if (instance == null) { - WorkbenchSingleton.Workbench.GetPad(typeof(SearchResultsPad)).CreatePad(); + SD.Workbench.GetPad(typeof(SearchResultsPad)).CreatePad(); } return instance; } diff --git a/src/Main/Base/Project/Src/Commands/BuildCommands.cs b/src/Main/Base/Project/Src/Commands/BuildCommands.cs index 85d10e3a72..85d0aa234d 100644 --- a/src/Main/Base/Project/Src/Commands/BuildCommands.cs +++ b/src/Main/Base/Project/Src/Commands/BuildCommands.cs @@ -85,7 +85,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public static void AddNoSingleFileCompilationError() { TaskService.Add(new SDTask(null, StringParser.Parse("${res:BackendBindings.ExecutionManager.NoSingleFileCompilation}"), 0, 0, TaskType.Error)); - WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); + SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); } } @@ -279,7 +279,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public override void Run() { using (SolutionConfigurationEditor sce = new SolutionConfigurationEditor()) { - sce.ShowDialog(WorkbenchSingleton.MainWin32Window); + sce.ShowDialog(SD.WinForms.MainWin32Window); ProjectService.SaveSolution(); ProjectService.OpenSolution.ApplySolutionConfigurationAndPlatformToProjects(); ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView(); diff --git a/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs b/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs index d50c8f9c65..0bcb96d683 100644 --- a/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs +++ b/src/Main/Base/Project/Src/Commands/CustomStringTagProvider.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop.Commands { string GetCurrentItemPath() { - return WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName; + return SD.Workbench.ActiveViewContent.PrimaryFileName; } string GetCurrentTargetPath() diff --git a/src/Main/Base/Project/Src/Commands/EditCommands.cs b/src/Main/Base/Project/Src/Commands/EditCommands.cs index 009201dc4e..f63c67e70a 100644 --- a/src/Main/Base/Project/Src/Commands/EditCommands.cs +++ b/src/Main/Base/Project/Src/Commands/EditCommands.cs @@ -12,7 +12,7 @@ namespace ICSharpCode.SharpDevelop.Commands public override void Run() { using (WordCountDialog wcd = new WordCountDialog()) { - wcd.ShowDialog(WorkbenchSingleton.MainWin32Window); + wcd.ShowDialog(SD.WinForms.MainWin32Window); } } } diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs index eaf0ce6277..8db0301cc9 100644 --- a/src/Main/Base/Project/Src/Commands/FileCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs @@ -42,7 +42,7 @@ namespace ICSharpCode.SharpDevelop.Commands } using (NewFileDialog nfd = new NewFileDialog(null)) { - nfd.ShowDialog(WorkbenchSingleton.MainWin32Window); + nfd.ShowDialog(SD.WinForms.MainWin32Window); } } } @@ -51,8 +51,8 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null) { - WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.CloseWindow(false); + if (SD.Workbench.ActiveWorkbenchWindow != null) { + SD.Workbench.ActiveWorkbenchWindow.CloseWindow(false); } } } @@ -61,7 +61,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - Save(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow); + Save(SD.Workbench.ActiveWorkbenchWindow); } internal static void Save(IWorkbenchWindow window) @@ -107,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - IViewContent content = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent content = SD.Workbench.ActiveViewContent; if (content == null) return; OpenedFile file = content.PrimaryFile; @@ -133,7 +133,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - Save(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow); + Save(SD.Workbench.ActiveWorkbenchWindow); } internal static void Save(IWorkbenchWindow window) @@ -176,7 +176,7 @@ namespace ICSharpCode.SharpDevelop.Commands } } - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { string fileName = fdiag.FileName; if (!FileService.CheckFileName(fileName)) { return; @@ -194,7 +194,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public static void SaveAll() { - foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent content in SD.Workbench.ViewContentCollection) { var customizedCommands = content.GetService(); if (customizedCommands != null && content.IsDirty) { customizedCommands.SaveCommand(); @@ -226,7 +226,7 @@ namespace ICSharpCode.SharpDevelop.Commands // search filter like in the current open file if (!foundFilter) { - IViewContent content = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent content = SD.Workbench.ActiveViewContent; if (content != null) { string extension = Path.GetExtension(content.PrimaryFileName); if (string.IsNullOrEmpty(extension) == false) { @@ -248,7 +248,7 @@ namespace ICSharpCode.SharpDevelop.Commands fdiag.Multiselect = true; fdiag.CheckFileExists = true; - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { OpenFiles(Array.ConvertAll(fdiag.FileNames, FileName.Create)); } } @@ -289,7 +289,7 @@ namespace ICSharpCode.SharpDevelop.Commands if (defaultCodonIndex < 0) defaultCodonIndex = 0; using (OpenWithDialog dlg = new OpenWithDialog(codons, defaultCodonIndex, Path.GetExtension(fileNames[0]))) { - if (dlg.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (dlg.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { foreach (var fileName in fileNames) { SD.FileService.OpenFileWith(fileName, dlg.SelectedBinding.Binding, true); } diff --git a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs index 17737ec7da..7381609601 100644 --- a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs @@ -14,7 +14,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands public override void Run() { using (NewProjectDialog npdlg = new NewProjectDialog(true)) { - npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window); + npdlg.ShowDialog(SD.WinForms.MainWin32Window); } } } @@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands fdiag.Filter = ProjectService.GetAllProjectsFilter(this, true); fdiag.Multiselect = false; fdiag.CheckFileExists = true; - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { ProjectService.LoadSolutionOrProject(fdiag.FileName); } } @@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands { if (!ProjectService.IsClosingCanceled()) { ProjectService.SaveSolutionPreferences(); - if (WorkbenchSingleton.Workbench.CloseAllSolutionViews()) { + if (SD.Workbench.CloseAllSolutionViews()) { ProjectService.CloseSolution(); } } diff --git a/src/Main/Base/Project/Src/Commands/FileTabStripCommands.cs b/src/Main/Base/Project/Src/Commands/FileTabStripCommands.cs index f0aef63085..deddc91276 100644 --- a/src/Main/Base/Project/Src/Commands/FileTabStripCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileTabStripCommands.cs @@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Commands.TabStrip public override void Run() { IWorkbenchWindow thisWindow = Owner as IWorkbenchWindow; - foreach (IWorkbenchWindow window in WorkbenchSingleton.Workbench.WorkbenchWindowCollection.ToArray()) { + foreach (IWorkbenchWindow window in SD.Workbench.WorkbenchWindowCollection.ToArray()) { if (window != thisWindow) { if (!window.CloseWindow(false)) break; diff --git a/src/Main/Base/Project/Src/Commands/HelpCommands.cs b/src/Main/Base/Project/Src/Commands/HelpCommands.cs index 58ced8d346..bf53c22fb6 100644 --- a/src/Main/Base/Project/Src/Commands/HelpCommands.cs +++ b/src/Main/Base/Project/Src/Commands/HelpCommands.cs @@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Commands public override void Run() { using (CommonAboutDialog ad = new CommonAboutDialog()) { - ad.ShowDialog(WorkbenchSingleton.MainWin32Window); + ad.ShowDialog(SD.WinForms.MainWin32Window); } } } diff --git a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs index ae23fde03d..1bcb3f2365 100644 --- a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs +++ b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs @@ -279,16 +279,16 @@ namespace ICSharpCode.SharpDevelop.Commands { public IEnumerable BuildItems(Codon codon, object owner) { - int windowCount = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count; + int windowCount = SD.Workbench.WorkbenchWindowCollection.Count; if (windowCount == 0) { return new object[] {}; } var items = new object[windowCount + 1]; items[0] = new System.Windows.Controls.Separator(); for (int i = 0; i < windowCount; ++i) { - IWorkbenchWindow window = WorkbenchSingleton.Workbench.WorkbenchWindowCollection[i]; + IWorkbenchWindow window = SD.Workbench.WorkbenchWindowCollection [i]; var item = new System.Windows.Controls.MenuItem() { - IsChecked = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == window, + IsChecked = SD.Workbench.ActiveWorkbenchWindow == window, IsCheckable = true, Header = StringParser.Parse(window.Title).Replace("_", "__") }; @@ -454,7 +454,7 @@ namespace ICSharpCode.SharpDevelop.Commands public IEnumerable BuildItems(Codon codon, object owner) { List list = new List(); - foreach (PadDescriptor padContent in WorkbenchSingleton.Workbench.PadContentCollection) { + foreach (PadDescriptor padContent in SD.Workbench.PadContentCollection) { if (padContent.Category == Category) { var item = new System.Windows.Controls.MenuItem(); item.Header = ICSharpCode.Core.Presentation.MenuService.ConvertLabel(StringParser.Parse(padContent.Title)); diff --git a/src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs b/src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs index 6939edfd22..483ae95025 100644 --- a/src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs +++ b/src/Main/Base/Project/Src/Commands/ProjectMenuCommands.cs @@ -26,7 +26,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands if (project == null) { return; } - foreach (IViewContent viewContent in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent viewContent in SD.Workbench.ViewContentCollection) { ProjectOptionsView projectOptions = viewContent as ProjectOptionsView; if (projectOptions != null && projectOptions.Project == project) { projectOptions.WorkbenchWindow.SelectWindow(); @@ -36,7 +36,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands try { AddInTreeNode projectOptionsNode = AddInTree.GetTreeNode("/SharpDevelop/BackendBindings/ProjectOptions/" + project.Language); ProjectOptionsView projectOptions = new ProjectOptionsView(projectOptionsNode, project); - WorkbenchSingleton.Workbench.ShowView(projectOptions); + SD.Workbench.ShowView(projectOptions); } catch (TreePathNotFoundException) { MessageService.ShowError("${res:Dialog.ProjectOptions.NoPanelsInstalledForProject}"); } @@ -106,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands StringParser.Parse("${res:ProjectComponent.ContextMenu.GenerateDocumentation.SHFBNotFound}"), "http://www.codeplex.com/SHFB/", null)) { - dlg.ShowDialog(WorkbenchSingleton.MainWin32Window); + dlg.ShowDialog(SD.WinForms.MainWin32Window); } return; } diff --git a/src/Main/Base/Project/Src/Commands/ToolsCommands.cs b/src/Main/Base/Project/Src/Commands/ToolsCommands.cs index 139e52f52c..3f384b71cf 100644 --- a/src/Main/Base/Project/Src/Commands/ToolsCommands.cs +++ b/src/Main/Base/Project/Src/Commands/ToolsCommands.cs @@ -42,7 +42,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - WorkbenchSingleton.Workbench.FullScreen = !WorkbenchSingleton.Workbench.FullScreen; + SD.Workbench.FullScreen = !SD.Workbench.FullScreen; } } } diff --git a/src/Main/Base/Project/Src/Commands/WindowCommands.cs b/src/Main/Base/Project/Src/Commands/WindowCommands.cs index eec4d7e93d..fa7243d843 100644 --- a/src/Main/Base/Project/Src/Commands/WindowCommands.cs +++ b/src/Main/Base/Project/Src/Commands/WindowCommands.cs @@ -11,12 +11,12 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || - WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count == 0) { + if (SD.Workbench.ActiveWorkbenchWindow == null || + SD.Workbench.WorkbenchWindowCollection.Count == 0) { return; } - int index = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.IndexOf(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow); - WorkbenchSingleton.Workbench.WorkbenchWindowCollection[(index + 1) % WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count].SelectWindow(); + int index = SD.Workbench.WorkbenchWindowCollection.IndexOf(SD.Workbench.ActiveWorkbenchWindow); + SD.Workbench.WorkbenchWindowCollection [(index + 1) % SD.Workbench.WorkbenchWindowCollection.Count].SelectWindow(); } } @@ -24,12 +24,12 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || - WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count == 0) { + if (SD.Workbench.ActiveWorkbenchWindow == null || + SD.Workbench.WorkbenchWindowCollection.Count == 0) { return; } - int index = WorkbenchSingleton.Workbench.WorkbenchWindowCollection.IndexOf(WorkbenchSingleton.Workbench.ActiveWorkbenchWindow); - WorkbenchSingleton.Workbench.WorkbenchWindowCollection[(index + WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count - 1) % WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count].SelectWindow(); + int index = SD.Workbench.WorkbenchWindowCollection.IndexOf(SD.Workbench.ActiveWorkbenchWindow); + SD.Workbench.WorkbenchWindowCollection [(index + SD.Workbench.WorkbenchWindowCollection.Count - 1) % SD.Workbench.WorkbenchWindowCollection.Count].SelectWindow(); } } @@ -37,7 +37,7 @@ namespace ICSharpCode.SharpDevelop.Commands { public override void Run() { - WorkbenchSingleton.Workbench.CloseAllViews(); + SD.Workbench.CloseAllViews(); } } diff --git a/src/Main/Base/Project/Src/Editor/Commands/ShowColorDialog.cs b/src/Main/Base/Project/Src/Editor/Commands/ShowColorDialog.cs index 358a8795a3..ec622ab852 100644 --- a/src/Main/Base/Project/Src/Editor/Commands/ShowColorDialog.cs +++ b/src/Main/Base/Project/Src/Editor/Commands/ShowColorDialog.cs @@ -18,7 +18,7 @@ namespace ICSharpCode.SharpDevelop.Editor.Commands return; using (SharpDevelopColorDialog cd = new SharpDevelopColorDialog()) { - if (cd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (cd.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { string ext = Path.GetExtension(textEditor.FileName).ToLowerInvariant(); string colorstr; if (ext == ".cs" || ext == ".vb" || ext == ".boo") { diff --git a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/BrowserCommands.cs b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/BrowserCommands.cs index f7782c0688..e70c776bd0 100644 --- a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/BrowserCommands.cs +++ b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/BrowserCommands.cs @@ -77,7 +77,7 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding { public override void Run() { - WorkbenchSingleton.Workbench.ShowView(new BrowserPane()); + SD.Workbench.ShowView(new BrowserPane()); } } } diff --git a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs index f0404d560a..64ec591259 100644 --- a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs +++ b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs @@ -138,12 +138,12 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding void NewWindow(object sender, NewWindowExtendedEventArgs e) { e.Cancel = true; - WorkbenchSingleton.Workbench.ShowView(new BrowserPane(e.Url)); + SD.Workbench.ShowView(new BrowserPane(e.Url)); } void WebBrowserStatusTextChanged(object sender, EventArgs e) { - IWorkbenchWindow workbench = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; + IWorkbenchWindow workbench = SD.Workbench.ActiveWorkbenchWindow; if (workbench == null) return; BrowserPane browser = workbench.ActiveViewContent as BrowserPane; if (browser == null) return; diff --git a/src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs b/src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs index ca2acff1a2..12c8c4d521 100644 --- a/src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs +++ b/src/Main/Base/Project/Src/Gui/Components/LocalizedPropertyGrid/LocalizedObject.cs @@ -69,7 +69,7 @@ namespace ICSharpCode.SharpDevelop.Gui protected void ReFilterProperties() { globalizedProps = null; - if (WorkbenchSingleton.Workbench != null) { + if (SD.Workbench != null) { SD.MainThread.InvokeAsync(delegate { PropertyPad.RefreshItem(this); }).FireAndForget(); diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.cs index 9f2c07e169..304cb00b7f 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.cs @@ -101,7 +101,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels fdiag.CheckFileExists = true; fdiag.Filter = StringParser.Parse(ExecutableFilesFilter); - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { ControlDictionary["commandTextBox"].Text = fdiag.FileName; } } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AddWebReferenceDialog.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AddWebReferenceDialog.cs index 3c9d4beb46..7f31ae734e 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AddWebReferenceDialog.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AddWebReferenceDialog.cs @@ -680,7 +680,7 @@ namespace ICSharpCode.SharpDevelop.Gui StartDiscovery(uri, credential); } else { using (UserCredentialsDialog credentialsForm = new UserCredentialsDialog(uri.ToString(), authenticationType)) { - if (DialogResult.OK == credentialsForm.ShowDialog(WorkbenchSingleton.MainWin32Window)) { + if (DialogResult.OK == credentialsForm.ShowDialog(SD.WinForms.MainWin32Window)) { StartDiscovery(uri, credentialsForm.Credential); } } diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs index 4a6e4587e4..9fae30a9e4 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/AssemblyReferencePanel.cs @@ -36,7 +36,7 @@ namespace ICSharpCode.SharpDevelop.Gui fdiag.Multiselect = true; fdiag.CheckFileExists = true; - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { foreach (string file in fdiag.FileNames) { ReferenceProjectItem assemblyReference = new ReferenceProjectItem(selectDialog.ConfigureProject); assemblyReference.Include = Path.GetFileNameWithoutExtension(file); diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/WordCountDialog.cs b/src/Main/Base/Project/Src/Gui/Dialogs/WordCountDialog.cs index 26ec1b6b47..3f167fb70e 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/WordCountDialog.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/WordCountDialog.cs @@ -96,7 +96,7 @@ namespace ICSharpCode.SharpDevelop.Gui switch (((ComboBox)ControlDictionary["locationComboBox"]).SelectedIndex) { case 0: {// current file - IViewContent viewContent = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent viewContent = SD.Workbench.ActiveViewContent; if (viewContent != null) { IEditable editable = viewContent.GetService(); if (editable == null) { @@ -109,9 +109,9 @@ namespace ICSharpCode.SharpDevelop.Gui break; } case 1: {// all open files - if (WorkbenchSingleton.Workbench.ViewContentCollection.Count > 0) { + if (SD.Workbench.ViewContentCollection.Count > 0) { total = new Report(StringParser.Parse("${res:Dialog.WordCountDialog.TotalText}"), 0, 0, 0); - foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent content in SD.Workbench.ViewContentCollection) { IEditable editable = content.GetService(); if (editable != null) { Report r = GetReport(content, editable.CreateSnapshot().CreateReader()); diff --git a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs index 3fc7aea7ca..fef0747e9b 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs @@ -48,7 +48,7 @@ namespace ICSharpCode.SharpDevelop.Gui static void InitializeInstance() { - WorkbenchSingleton.Workbench.GetPad(typeof(CompilerMessageView)).CreatePad(); + SD.Workbench.GetPad(typeof(CompilerMessageView)).CreatePad(); } #region MessageViewLinkElementGenerator @@ -251,7 +251,7 @@ namespace ICSharpCode.SharpDevelop.Gui public void AddCategory(MessageViewCategory category) { if (WorkbenchSingleton.InvokeRequired) { - WorkbenchSingleton.SafeThreadAsyncCall((Action)AddCategory, category); + SD.MainThread.InvokeAsync(() => (Action)AddCategory(category)).FireAndForget(); return; } messageCategories.Add(category); diff --git a/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs b/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs index a0e9d60342..dfcdd1b60a 100755 --- a/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/DefinitionViewPad.cs @@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Gui Task ResolveAtCaretAsync(ParserUpdateStepEventArgs e) { - IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow; + IWorkbenchWindow window = SD.Workbench.ActiveWorkbenchWindow; if (window == null) return Task.FromResult(null); IViewContent viewContent = window.ActiveViewContent; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs index b816205fdb..083eb2c2e1 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs @@ -128,7 +128,7 @@ namespace ICSharpCode.SharpDevelop.Gui void ProjectServiceEndBuild(object sender, EventArgs e) { if (TaskService.TaskCount > 0 && ShowAfterBuild) { - WorkbenchSingleton.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); + SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); } UpdateToolstripStatus(); } diff --git a/src/Main/Base/Project/Src/Gui/Pads/OutlinePad.cs b/src/Main/Base/Project/Src/Gui/Pads/OutlinePad.cs index dd371cedd6..c743cc127f 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/OutlinePad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/OutlinePad.cs @@ -36,13 +36,13 @@ namespace ICSharpCode.SharpDevelop.Gui public OutlinePad() { - WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; + SD.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; WorkbenchActiveContentChanged(null, null); } void WorkbenchActiveContentChanged(object sender, EventArgs e) { - IViewContent view = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent view = SD.Workbench.ActiveViewContent; if (view != null) { IOutlineContentHost content = view.GetService(typeof(IOutlineContentHost)) as IOutlineContentHost; if (content != null) { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs index ce04c6d05e..7e576fe810 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs @@ -185,7 +185,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands fdiag.CheckFileExists = true; fdiag.Title = StringParser.Parse("${res:ProjectComponent.ContextMenu.AddExistingFiles}"); - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { List> fileNames = new List>(fdiag.FileNames.Length); foreach (string fileName in fdiag.FileNames) { fileNames.Add(new KeyValuePair(fileName, "")); @@ -282,7 +282,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands using (FolderBrowserDialog dlg = new FolderBrowserDialog()) { dlg.SelectedPath = node.Directory; dlg.ShowNewFolderButton = false; - if (dlg.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (dlg.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { string folderName = dlg.SelectedPath; string copiedFolderName = Path.Combine(node.Directory, Path.GetFileName(folderName)); if (!FileUtility.IsEqualFileName(folderName, copiedFolderName)) { @@ -351,7 +351,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands List addedItems = new List(); using (NewFileDialog nfd = new NewFileDialog(node.Directory)) { - if (nfd.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (nfd.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { bool additionalProperties = false; foreach (KeyValuePair createdFile in nfd.CreatedFiles) { FileProjectItem item = node.AddNewFile(createdFile.Key); diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs index 512abed577..f1dfc62e5e 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ReferenceFolderNodeCommands.cs @@ -27,7 +27,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands } LoggingService.Info("Show add reference dialog for " + project.FileName); using (SelectReferenceDialog selDialog = new SelectReferenceDialog(project)) { - if (selDialog.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (selDialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { foreach (ReferenceProjectItem reference in selDialog.ReferenceInformations) { ProjectService.AddProjectItem(project, reference); } @@ -91,7 +91,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands } catch (WebException ex) { if (protocol.IsAuthenticationRequired) { using (UserCredentialsDialog dialog = new UserCredentialsDialog(url, protocol.GetAuthenticationHeader().AuthenticationType)) { - if (dialog.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (dialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { credential = dialog.Credential; } else { retry = false; @@ -114,7 +114,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands if (node != null && node.Project != null) { using (AddWebReferenceDialog refDialog = new AddWebReferenceDialog(node.Project)) { refDialog.NamespacePrefix = node.Project.RootNamespace; - if (refDialog.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (refDialog.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { // Do not overwrite existing web references. refDialog.WebReference.Name = WebReference.GetReferenceName(refDialog.WebReference.WebReferencesDirectory, refDialog.WebReference.Name); refDialog.WebReference.Save(); diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs index 291da236d1..6e3700ce96 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs @@ -23,7 +23,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands npdlg.InitialProjectLocationDirectory = GetInitialDirectorySuggestion(solutionFolderNode); // show the dialog to request project type and name - if (npdlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (npdlg.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { if (npdlg.NewProjectLocation.Length == 0) { MessageService.ShowError("No project has been created, there is nothing to add."); return; @@ -95,7 +95,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands fdiag.Multiselect = true; fdiag.CheckFileExists = true; fdiag.InitialDirectory = AddNewProjectToSolution.GetInitialDirectorySuggestion(solutionFolderNode); - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { foreach (string fileName in fdiag.FileNames) { AddProject(solutionFolderNode, FileName.Create(fileName)); } @@ -118,7 +118,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands fdiag.Filter = StringParser.Parse("${res:SharpDevelop.FileFilter.AllFiles}|*.*"); fdiag.Multiselect = true; fdiag.CheckFileExists = true; - if (fdiag.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { foreach (string fileName in fdiag.FileNames) { solutionFolderNode.AddItem(fileName); } diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs index 36f8c2e20a..4f5a9cc077 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs @@ -19,7 +19,7 @@ namespace ICSharpCode.SharpDevelop.Project public static ProjectBrowserPad Instance { get { if (instance == null) { - PadDescriptor pad = WorkbenchSingleton.Workbench.GetPad(typeof(ProjectBrowserPad)); + PadDescriptor pad = SD.Workbench.GetPad(typeof(ProjectBrowserPad)); if (pad != null) { pad.CreatePad(); } else { @@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Project ProjectService.SolutionClosed += ProjectServiceSolutionClosed; ProjectService.SolutionPreferencesSaving += ProjectServiceSolutionPreferencesSaving; - WorkbenchSingleton.Workbench.ActiveContentChanged += ActiveContentChanged; + SD.Workbench.ActiveContentChanged += ActiveContentChanged; if (ProjectService.OpenSolution != null) { this.LoadSolution(ProjectService.OpenSolution); } @@ -158,11 +158,11 @@ namespace ICSharpCode.SharpDevelop.Project void ActiveContentChangedInvoked() { activeContentChangedEnqueued = false; - if (WorkbenchSingleton.Workbench.ActiveContent == this) { + if (SD.Workbench.ActiveContent == this) { projectBrowserPanel.ProjectBrowserControl.PadActivated(); } else { // we don't use ActiveViewContent here as this is the ActiveContent change event handler - IViewContent content = WorkbenchSingleton.Workbench.ActiveContent as IViewContent; + IViewContent content = SD.Workbench.ActiveContent as IViewContent; if (content == null) return; string fileName = content.PrimaryFileName; @@ -263,7 +263,7 @@ namespace ICSharpCode.SharpDevelop.Project public static void RefreshViewAsync() { SD.MainThread.VerifyAccess(); - if (refreshViewEnqueued || WorkbenchSingleton.Workbench == null) + if (refreshViewEnqueued || SD.Workbench == null) return; refreshViewEnqueued = true; SD.MainThread.InvokeAsync(delegate { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs index 8c7bc9a05a..db4b671a48 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/TreeNodes/AbstractProjectBrowserTreeNode.cs @@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Project public virtual void ShowProperties() { - WorkbenchSingleton.Workbench.GetPad(typeof(PropertyPad)).BringPadToFront(); + SD.Workbench.GetPad(typeof(PropertyPad)).BringPadToFront(); } public static bool IsSomewhereBelow(string path, ProjectItem item) diff --git a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyContainer.cs b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyContainer.cs index 558bd5df49..10e95a3f60 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyContainer.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyContainer.cs @@ -40,8 +40,8 @@ namespace ICSharpCode.SharpDevelop.Gui internal PropertyContainer(bool createPadOnConstruction) { - if (createPadOnConstruction && WorkbenchSingleton.Workbench != null) { - PadDescriptor desc = WorkbenchSingleton.Workbench.GetPad(typeof(PropertyPad)); + if (createPadOnConstruction && SD.Workbench != null) { + PadDescriptor desc = SD.Workbench.GetPad(typeof(PropertyPad)); if (desc != null) desc.CreatePad(); } } diff --git a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs index 6cf514c9b6..0b54a976b2 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs @@ -129,14 +129,14 @@ namespace ICSharpCode.SharpDevelop.Gui void WorkbenchActiveContentChanged(object sender, EventArgs e) { - var activeViewOrPad = WorkbenchSingleton.Workbench.ActiveContent; + var activeViewOrPad = SD.Workbench.ActiveContent; IHasPropertyContainer c = activeViewOrPad != null ? activeViewOrPad.GetService() : null; if (c == null) { if (previousContent == null) { c = SD.GetActiveViewContentService(); } else { // if the previous content is no longer visible, we have to remove the active container - if (previousContent is IViewContent && previousContent != WorkbenchSingleton.Workbench.ActiveViewContent) { + if (previousContent is IViewContent && previousContent != SD.Workbench.ActiveViewContent) { c = null; } else { c = previousContent; @@ -190,11 +190,11 @@ namespace ICSharpCode.SharpDevelop.Gui grid.ContextMenuStrip = SD.WinForms.MenuService.CreateContextMenu(this, "/SharpDevelop/Views/PropertyPad/ContextMenu"); LoggingService.Debug("PropertyPad created"); - WorkbenchSingleton.Workbench.ActiveContentChanged += WorkbenchActiveContentChanged; + SD.Workbench.ActiveContentChanged += WorkbenchActiveContentChanged; // it is possible that ActiveContent changes fires before ActiveViewContent. // if the new content is not a IHasPropertyContainer and we listen only to ActiveContentChanged, // we might display the PropertyPad of a no longer active view content - WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; + SD.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; WorkbenchActiveContentChanged(null, null); } diff --git a/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs b/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs index c93911e829..284e828b56 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs @@ -72,9 +72,9 @@ namespace ICSharpCode.SharpDevelop.Gui TaskService.Removed += new TaskEventHandler(TaskServiceRemoved); TaskService.InUpdateChanged += new EventHandler(TaskServiceInUpdateChanged); - WorkbenchSingleton.Workbench.ActiveViewContentChanged += new EventHandler(WorkbenchActiveViewContentChanged); + SD.Workbench.ActiveViewContentChanged += new EventHandler(WorkbenchActiveViewContentChanged); - if (WorkbenchSingleton.Workbench.ActiveViewContent != null) { + if (SD.Workbench.ActiveViewContent != null) { UpdateItems(); WorkbenchActiveViewContentChanged(null, null); } @@ -200,10 +200,10 @@ namespace ICSharpCode.SharpDevelop.Gui return ProjectService.CurrentProject != null && ProjectService.CurrentProject.FindFile(item.FileName) != null; case 2: // All open documents - return WorkbenchSingleton.Workbench.ViewContentCollection.Select(vc => vc.GetService()).Any(editor => editor != null && item.FileName == editor.FileName); + return SD.Workbench.ViewContentCollection.Select(vc => vc.GetService()).Any(editor => editor != null && item.FileName == editor.FileName); case 3: // Document - return WorkbenchSingleton.Workbench.ActiveViewContent != null && WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName == item.FileName; + return SD.Workbench.ActiveViewContent != null && SD.Workbench.ActiveViewContent.PrimaryFileName == item.FileName; case 4: // Namespace return current != null && itemClass != null && current.Namespace == itemClass.Namespace; @@ -217,12 +217,12 @@ namespace ICSharpCode.SharpDevelop.Gui IUnresolvedTypeDefinition GetCurrentClass() { - if (WorkbenchSingleton.Workbench.ActiveViewContent == null) + if (SD.Workbench.ActiveViewContent == null) return null; - IUnresolvedFile parseInfo = SD.ParserService.GetExistingUnresolvedFile(WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName); + IUnresolvedFile parseInfo = SD.ParserService.GetExistingUnresolvedFile(SD.Workbench.ActiveViewContent.PrimaryFileName); if (parseInfo != null) { - IPositionable positionable = WorkbenchSingleton.Workbench.ActiveViewContent.GetService(); + IPositionable positionable = SD.Workbench.ActiveViewContent.GetService(); if (positionable != null) { var c = parseInfo.GetInnermostTypeDefinition(positionable.Line, positionable.Column); if (c != null) return c; diff --git a/src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs b/src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs index 74368631c8..adb0c7809e 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ToolsPad.cs @@ -35,7 +35,7 @@ namespace ICSharpCode.SharpDevelop.Gui public ToolsPad() { - WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; + SD.Workbench.ActiveViewContentChanged += WorkbenchActiveContentChanged; WorkbenchActiveContentChanged(null, null); } diff --git a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs index fc17f2c099..08448d0358 100644 --- a/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs +++ b/src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs @@ -80,7 +80,7 @@ namespace ICSharpCode.SharpDevelop.Gui var applicationStateInfoService = SD.GetService(); if (applicationStateInfoService != null) { - applicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return WorkbenchSingleton.Workbench.ActiveContent; }); + applicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return SD.Workbench.ActiveContent; }); } OnWorkbenchCreated(); diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveContentExtensionEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveContentExtensionEvaluator.cs index 5296b5f3f4..6c06036b65 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveContentExtensionEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveContentExtensionEvaluator.cs @@ -21,11 +21,11 @@ namespace ICSharpCode.SharpDevelop { public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || WorkbenchSingleton.Workbench.ActiveViewContent == null) { + if (SD.Workbench == null || SD.Workbench.ActiveWorkbenchWindow == null || SD.Workbench.ActiveViewContent == null) { return false; } try { - string name = WorkbenchSingleton.Workbench.ActiveViewContent.PrimaryFileName; + string name = SD.Workbench.ActiveViewContent.PrimaryFileName; if (name == null) { return false; diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveViewContentUntitledEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveViewContentUntitledEvaluator.cs index 4a2da60d17..c41420c6c7 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveViewContentUntitledEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveViewContentUntitledEvaluator.cs @@ -23,11 +23,11 @@ namespace ICSharpCode.SharpDevelop { public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { return false; } - IViewContent viewContent = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent viewContent = SD.Workbench.ActiveViewContent; if (viewContent == null || viewContent.PrimaryFile == null) { return false; } diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveWindowStateEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveWindowStateEvaluator.cs index 5e77619b0e..337eecbcce 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveWindowStateEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/ActiveWindowStateEvaluator.cs @@ -23,8 +23,8 @@ namespace ICSharpCode.SharpDevelop { public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null || - WorkbenchSingleton.Workbench.ActiveViewContent == null) { + if (SD.Workbench == null || + SD.Workbench.ActiveViewContent == null) { return false; } @@ -35,13 +35,13 @@ namespace ICSharpCode.SharpDevelop bool isWindowStateOk = false; if (windowState != WindowState.None) { if ((windowState & WindowState.Dirty) > 0) { - isWindowStateOk |= WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContents.Any(vc => vc.IsDirty); + isWindowStateOk |= SD.Workbench.ActiveWorkbenchWindow.ViewContents.Any(vc => vc.IsDirty); } if ((windowState & WindowState.Untitled) > 0) { - isWindowStateOk |= IsUntitled(WorkbenchSingleton.Workbench.ActiveViewContent); + isWindowStateOk |= IsUntitled(SD.Workbench.ActiveViewContent); } if ((windowState & WindowState.ViewOnly) > 0) { - isWindowStateOk |= WorkbenchSingleton.Workbench.ActiveViewContent.IsViewOnly; + isWindowStateOk |= SD.Workbench.ActiveViewContent.IsViewOnly; } } else { isWindowStateOk = true; @@ -49,15 +49,15 @@ namespace ICSharpCode.SharpDevelop if (nowindowState != WindowState.None) { if ((nowindowState & WindowState.Dirty) > 0) { - isWindowStateOk &= !WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ViewContents.Any(vc => vc.IsDirty); + isWindowStateOk &= !SD.Workbench.ActiveWorkbenchWindow.ViewContents.Any(vc => vc.IsDirty); } if ((nowindowState & WindowState.Untitled) > 0) { - isWindowStateOk &= !IsUntitled(WorkbenchSingleton.Workbench.ActiveViewContent); + isWindowStateOk &= !IsUntitled(SD.Workbench.ActiveViewContent); } if ((nowindowState & WindowState.ViewOnly) > 0) { - isWindowStateOk &= !WorkbenchSingleton.Workbench.ActiveViewContent.IsViewOnly; + isWindowStateOk &= !SD.Workbench.ActiveViewContent.IsViewOnly; } } return isWindowStateOk; diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/OpenWindowStateEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/OpenWindowStateEvaluator.cs index 4285bbd303..103cd158c9 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/OpenWindowStateEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/OpenWindowStateEvaluator.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.SharpDevelop public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { return false; } @@ -72,7 +72,7 @@ namespace ICSharpCode.SharpDevelop nowindowState = condition.Properties.Get("noopenwindowstate", WindowState.None); - foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent view in SD.Workbench.ViewContentCollection) { if (IsStateOk(view)) { return true; } diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs index 06903f5cab..68100a191f 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowActiveEvaluator.cs @@ -25,21 +25,21 @@ namespace ICSharpCode.SharpDevelop { public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { return false; } string activewindow = condition.Properties["activewindow"]; if (activewindow == "*") { - return WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null; + return SD.Workbench.ActiveWorkbenchWindow != null; } - if (WorkbenchSingleton.Workbench.ActiveWorkbenchWindow == null || WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ActiveViewContent == null) { + if (SD.Workbench.ActiveWorkbenchWindow == null || SD.Workbench.ActiveWorkbenchWindow.ActiveViewContent == null) { return false; } - Type currentType = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow.ActiveViewContent.GetType(); + Type currentType = SD.Workbench.ActiveWorkbenchWindow.ActiveViewContent.GetType(); if (currentType.FullName == activewindow) return true; foreach (Type interf in currentType.GetInterfaces()) { diff --git a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs index 65c70e70f4..890a10cad9 100644 --- a/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs +++ b/src/Main/Base/Project/Src/Internal/ConditionEvaluators/WindowOpenEvaluator.cs @@ -26,17 +26,17 @@ namespace ICSharpCode.SharpDevelop { public bool IsValid(object caller, Condition condition) { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { return false; } string openwindow = condition.Properties["openwindow"]; if (openwindow == "*") { - return WorkbenchSingleton.Workbench.ActiveWorkbenchWindow != null; + return SD.Workbench.ActiveWorkbenchWindow != null; } - foreach (IViewContent view in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent view in SD.Workbench.ViewContentCollection) { Type currentType = view.GetType(); if (currentType.ToString() == openwindow) { return true; diff --git a/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs b/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs index cabf09b0df..5e0d04286f 100644 --- a/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs +++ b/src/Main/Base/Project/Src/Internal/Doozers/PadDescriptor.cs @@ -177,7 +177,7 @@ namespace ICSharpCode.SharpDevelop { CreatePad(); if (padContent == null) return; - WorkbenchSingleton.Workbench.WorkbenchLayout.ActivatePad(this); + SD.Workbench.WorkbenchLayout.ActivatePad(this); } public override string ToString() diff --git a/src/Main/Base/Project/Src/Project/AbstractProject.cs b/src/Main/Base/Project/Src/Project/AbstractProject.cs index 3c290adb61..ec0c530fa0 100644 --- a/src/Main/Base/Project/Src/Project/AbstractProject.cs +++ b/src/Main/Base/Project/Src/Project/AbstractProject.cs @@ -107,7 +107,7 @@ namespace ICSharpCode.SharpDevelop.Project SD.MainThread.VerifyAccess(); Debug.Assert(FileUtility.IsUrl(value) || Path.IsPathRooted(value)); - if (WorkbenchSingleton.Workbench == null) + if (SD.Workbench == null) watcher = new MockProjectChangeWatcher(); if (watcher == null) { diff --git a/src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs b/src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs index 19581e4e76..a2acd2758b 100644 --- a/src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs +++ b/src/Main/Base/Project/Src/Project/Converter/UpgradeViewContent.cs @@ -25,14 +25,14 @@ namespace ICSharpCode.SharpDevelop.Project.Converter public static UpgradeViewContent Show(Solution solution) { - foreach (UpgradeViewContent vc in WorkbenchSingleton.Workbench.ViewContentCollection.OfType()) { + foreach (UpgradeViewContent vc in SD.Workbench.ViewContentCollection.OfType()) { if (vc.Solution == solution) { vc.WorkbenchWindow.SelectWindow(); return vc; } } var newVC = new UpgradeViewContent(solution); - WorkbenchSingleton.Workbench.ShowView(newVC); + SD.Workbench.ShowView(newVC); return newVC; } diff --git a/src/Main/Base/Project/Src/Project/CustomTool.cs b/src/Main/Base/Project/Src/Project/CustomTool.cs index 65c405ec75..1faa9e7a76 100644 --- a/src/Main/Base/Project/Src/Project/CustomTool.cs +++ b/src/Main/Base/Project/Src/Project/CustomTool.cs @@ -208,7 +208,7 @@ namespace ICSharpCode.SharpDevelop.Project { RunAsync(delegate { CodeCompileUnit ccu = func(); - WorkbenchSingleton.SafeThreadAsyncCall(WriteCodeDomToFile, baseItem, outputFileName, ccu); + SD.MainThread.InvokeAsync(() => WriteCodeDomToFile(baseItem, outputFileName, ccu)).FireAndForget(); }); } diff --git a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs index e9963b40b7..5ab9b1b7cd 100644 --- a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs +++ b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs @@ -109,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Project LoggingService.Debug("Project file " + e.Name + " was changed externally: {1}" + e.ChangeType); if (!wasChangedExternally) { wasChangedExternally = true; - if (WorkbenchSingleton.Workbench.IsActiveWindow) { + if (SD.Workbench.IsActiveWindow) { // delay reloading message a bit, prevents showing two messages // when the file changes twice in quick succession; and prevents // trying to reload the file while it is still being written diff --git a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs index 1e7e918a30..63e32077cd 100644 --- a/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs +++ b/src/Main/Base/Project/Src/Services/AmbienceService/AmbienceService.cs @@ -68,7 +68,7 @@ namespace ICSharpCode.SharpDevelop } catch (TreePathNotFoundException) { ambience = null; } - if (ambience == null && Gui.WorkbenchSingleton.MainWin32Window != null) { + if (ambience == null && SD.WinForms.MainWin32Window != null) { MessageService.ShowError("${res:ICSharpCode.SharpDevelop.Services.AmbienceService.AmbienceNotFoundError}"); } return ambience ?? new DefaultAmbience(); diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs index 877a8bd47c..d63459ae18 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs @@ -113,7 +113,7 @@ namespace ICSharpCode.SharpDevelop.Debugging static void OnDebugStarting(object sender, EventArgs e) { - WorkbenchSingleton.Workbench.WorkbenchLayout.SwitchLayout("Debug"); + SD.Workbench.WorkbenchLayout.SwitchLayout("Debug"); debugFeature = SD.AnalyticsMonitor.TrackFeature("Debugger"); @@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Debugging debugFeature.EndTracking(); RemoveCurrentLineMarker(); - WorkbenchSingleton.Workbench.WorkbenchLayout.SwitchLayout("Default"); + SD.Workbench.WorkbenchLayout.SwitchLayout("Default"); if (DebugStopped != null) DebugStopped(null, e); } diff --git a/src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs b/src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs index da96bba580..7aedda6291 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DefaultDebugger.cs @@ -73,8 +73,7 @@ namespace ICSharpCode.SharpDevelop.Debugging attachedProcess.Exited -= new EventHandler(AttachedProcessExited); attachedProcess.Dispose(); attachedProcess = null; - WorkbenchSingleton.SafeThreadAsyncCall(new Action(OnDebugStopped), - EventArgs.Empty); + SD.MainThread.InvokeAsync(() => new Action(OnDebugStopped)(EventArgs.Empty)).FireAndForget(); } public void StartWithoutDebugging(ProcessStartInfo processStartInfo) diff --git a/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs b/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs index 603086b320..54f656aade 100644 --- a/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs +++ b/src/Main/Base/Project/Src/Services/FileChangeWatcher.cs @@ -169,7 +169,7 @@ namespace ICSharpCode.SharpDevelop.Workbench LoggingService.Debug("File " + file.FileName + " was changed externally: " + e.ChangeType); if (!wasChangedExternally) { wasChangedExternally = true; - if (WorkbenchSingleton.Workbench.IsActiveWindow) { + if (SD.Workbench.IsActiveWindow) { // delay reloading message a bit, prevents showing two messages // when the file changes twice in quick succession; and prevents // trying to reload the file while it is still being written diff --git a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs index a40edeab40..4c0073f09d 100644 --- a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs +++ b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs @@ -66,11 +66,11 @@ namespace ICSharpCode.SharpDevelop public static void InitializeService() { if (!serviceInitialized) { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { throw new InvalidOperationException("Initializing the NavigationService requires that the WorkbenchSingleton has already created a Workbench."); } // trap changes in the secondary tab via the workbench's ActiveViewContentChanged event - WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; // ignore files opened as part of loading a solution. ProjectService.SolutionLoading += ProjectService_SolutionLoading; @@ -222,10 +222,10 @@ namespace ICSharpCode.SharpDevelop // Unit test covered but the test does not yet verify the results. public static INavigationPoint Log() { - if (WorkbenchSingleton.Workbench == null) { + if (SD.Workbench == null) { return null; } - IViewContent view = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent view = SD.Workbench.ActiveViewContent; if (view == null) { return null; } @@ -400,7 +400,7 @@ namespace ICSharpCode.SharpDevelop /// static void ActiveViewContentChanged(object sender, EventArgs e) { - IViewContent vc = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent vc = SD.Workbench.ActiveViewContent; if (vc == null) return; LoggingService.DebugFormatted("NavigationService\n\tActiveViewContent: {0}\n\t Subview: {1}", vc.TitleName, diff --git a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs index bcba4f591a..aa6416fdb9 100644 --- a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs +++ b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs @@ -71,7 +71,7 @@ namespace ICSharpCode.SharpDevelop.Project { if (!initialized) { initialized = true; - WorkbenchSingleton.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; + SD.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; FileService.FileRenamed += FileServiceFileRenamed; FileService.FileRemoved += FileServiceFileRemoved; @@ -191,7 +191,7 @@ namespace ICSharpCode.SharpDevelop.Project static void ActiveViewContentChanged(object sender, EventArgs e) { - IViewContent viewContent = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent viewContent = SD.Workbench.ActiveViewContent; if (OpenSolution == null || viewContent == null) { return; } @@ -250,7 +250,7 @@ namespace ICSharpCode.SharpDevelop.Project { if (openSolution != null && !IsClosingCanceled()) { SaveSolutionPreferences(); - WorkbenchSingleton.Workbench.CloseAllViews(); + SD.Workbench.CloseAllViews(); CloseSolution(); } } diff --git a/src/Main/Base/Project/Src/Util/NativeMethods.cs b/src/Main/Base/Project/Src/Util/NativeMethods.cs index 7863af9697..7ef0ba9843 100644 --- a/src/Main/Base/Project/Src/Util/NativeMethods.cs +++ b/src/Main/Base/Project/Src/Util/NativeMethods.cs @@ -83,7 +83,7 @@ namespace ICSharpCode.SharpDevelop if (!File.Exists(fileName) && !Directory.Exists(fileName)) throw new FileNotFoundException("File not found.", fileName); SHFILEOPSTRUCT info = new SHFILEOPSTRUCT(); - info.hwnd = Gui.WorkbenchSingleton.MainWin32Window.Handle; + info.hwnd = SD.WinForms.MainWin32Window.Handle; info.wFunc = FO_FUNC.FO_DELETE; info.fFlags = FILEOP_FLAGS.FOF_ALLOWUNDO | FILEOP_FLAGS.FOF_NOCONFIRMATION; info.lpszProgressTitle = "Delete " + Path.GetFileName(fileName); diff --git a/src/Main/Base/Project/Workbench/IWorkbench.cs b/src/Main/Base/Project/Workbench/IWorkbench.cs index 2c73562f95..21d6c87f25 100644 --- a/src/Main/Base/Project/Workbench/IWorkbench.cs +++ b/src/Main/Base/Project/Workbench/IWorkbench.cs @@ -21,7 +21,7 @@ namespace ICSharpCode.SharpDevelop.Workbench /// /// The main window as IWin32Window. /// - [Obsolete("Use SD.WinForms.ShowDialog() instead to display a WinForms dialog")] + [Obsolete("Use SD.WinForms.MainWin32Window instead")] IWin32Window MainWin32Window { get; } /// diff --git a/src/Main/SharpDevelop/Logging/ExceptionBox.cs b/src/Main/SharpDevelop/Logging/ExceptionBox.cs index bada51bed5..c722b21c14 100644 --- a/src/Main/SharpDevelop/Logging/ExceptionBox.cs +++ b/src/Main/SharpDevelop/Logging/ExceptionBox.cs @@ -92,7 +92,7 @@ namespace ICSharpCode.SharpDevelop.Logging if (ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.InvokeRequired) box.ShowDialog(); else - box.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window); + box.ShowDialog(SD.WinForms.MainWin32Window); } } catch (Exception ex) { LoggingService.Warn("Error showing ExceptionBox", ex); diff --git a/src/Main/SharpDevelop/Parser/LoadSolutionProjects.cs b/src/Main/SharpDevelop/Parser/LoadSolutionProjects.cs index 984eeb8509..9b54ca9b93 100644 --- a/src/Main/SharpDevelop/Parser/LoadSolutionProjects.cs +++ b/src/Main/SharpDevelop/Parser/LoadSolutionProjects.cs @@ -164,7 +164,7 @@ namespace ICSharpCode.SharpDevelop.Parser if (actions.Count > 0) { actions.Dequeue(); // dequeue the null if (actions.Count > 0) - WorkbenchSingleton.SafeThreadAsyncCall(StartRunningIfRequired); + SD.MainThread.InvokeAsync(StartRunningIfRequired).FireAndForget(); else loadSolutionProjects.RaiseThreadEnded(); } else { diff --git a/src/Main/SharpDevelop/Sda/CallHelper.cs b/src/Main/SharpDevelop/Sda/CallHelper.cs index 8a76825703..bf0736d490 100644 --- a/src/Main/SharpDevelop/Sda/CallHelper.cs +++ b/src/Main/SharpDevelop/Sda/CallHelper.cs @@ -190,7 +190,7 @@ namespace ICSharpCode.SharpDevelop.Sda get { List l = new List(); if (WorkbenchSingleton.InvokeRequired) { - WorkbenchSingleton.SafeThreadCall(new Action>(GetOpenDocuments), l); + SD.MainThread.InvokeIfRequired(() => new Action>(GetOpenDocuments)(l)); } else { GetOpenDocuments(l); } @@ -199,7 +199,7 @@ namespace ICSharpCode.SharpDevelop.Sda } void GetOpenDocuments(List l) { - foreach (IViewContent vc in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent vc in SD.Workbench.ViewContentCollection) { Document d = Document.FromWindow(vc); if (d != null) { l.Add(d); @@ -213,7 +213,7 @@ namespace ICSharpCode.SharpDevelop.Sda public Document OpenDocument(string fileName) { if (WorkbenchSingleton.InvokeRequired) { - return WorkbenchSingleton.SafeThreadFunction(OpenDocumentInternal, fileName); + return SD.MainThread.InvokeIfRequired(() => OpenDocumentInternal(fileName)); } else { return OpenDocumentInternal(fileName); } @@ -226,7 +226,7 @@ namespace ICSharpCode.SharpDevelop.Sda public void OpenProject(string fileName) { if (WorkbenchSingleton.InvokeRequired) { - WorkbenchSingleton.SafeThreadCall(OpenProjectInternal, fileName); + SD.MainThread.InvokeIfRequired(() => OpenProjectInternal(fileName)); } else { OpenProjectInternal(fileName); } @@ -245,14 +245,14 @@ namespace ICSharpCode.SharpDevelop.Sda public bool CloseWorkbench(bool force) { if (WorkbenchSingleton.InvokeRequired) { - return WorkbenchSingleton.SafeThreadFunction(CloseWorkbenchInternal, force); + return SD.MainThread.InvokeIfRequired(() => CloseWorkbenchInternal(force)); } else { return CloseWorkbenchInternal(force); } } bool CloseWorkbenchInternal(bool force) { - foreach (IWorkbenchWindow window in WorkbenchSingleton.Workbench.WorkbenchWindowCollection.ToArray()) { + foreach (IWorkbenchWindow window in SD.Workbench.WorkbenchWindowCollection.ToArray()) { if (!window.CloseWindow(force)) return false; } @@ -276,7 +276,7 @@ namespace ICSharpCode.SharpDevelop.Sda } set { if (WorkbenchSingleton.InvokeRequired) { - WorkbenchSingleton.SafeThreadCall(SetWorkbenchVisibleInternal, value); + SD.MainThread.InvokeIfRequired(() => SetWorkbenchVisibleInternal(value)); } else { SetWorkbenchVisibleInternal(value); } diff --git a/src/Main/SharpDevelop/WinForms/WinFormsService.cs b/src/Main/SharpDevelop/WinForms/WinFormsService.cs index bac843a6ba..945ff28881 100644 --- a/src/Main/SharpDevelop/WinForms/WinFormsService.cs +++ b/src/Main/SharpDevelop/WinForms/WinFormsService.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.SharpDevelop.WinForms using (PrintDialog ppd = new PrintDialog()) { ppd.Document = pdoc; ppd.AllowSomePages = true; - if (ppd.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { // fixed by Roger Rubin + if (ppd.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { // fixed by Roger Rubin pdoc.Print(); } } @@ -41,7 +41,7 @@ namespace ICSharpCode.SharpDevelop.WinForms PrintPreviewDialog ppd = new PrintPreviewDialog(); ppd.TopMost = true; ppd.Document = pdoc; - ppd.Show(WorkbenchSingleton.MainWin32Window); + ppd.Show(SD.WinForms.MainWin32Window); } else { MessageService.ShowError("${res:ICSharpCode.SharpDevelop.Commands.Print.CreatePrintDocumentError}"); } diff --git a/src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs b/src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs index 48ca5d25b7..1b8d60817d 100644 --- a/src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs +++ b/src/Main/SharpDevelop/Workbench/ChooseLayoutComboBox.cs @@ -142,7 +142,7 @@ namespace ICSharpCode.SharpDevelop.Workbench frm.StartPosition = FormStartPosition.CenterParent; frm.ShowInTaskbar = false; - if (frm.ShowDialog(WorkbenchSingleton.MainWin32Window) == DialogResult.OK) { + if (frm.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { IList oldNames = new List(CustomLayoutNames); IList newNames = ed.GetList(); // add newly added layouts diff --git a/src/Main/SharpDevelop/Workbench/FileService.cs b/src/Main/SharpDevelop/Workbench/FileService.cs index f3a3dd633f..d7dcc7bf4c 100644 --- a/src/Main/SharpDevelop/Workbench/FileService.cs +++ b/src/Main/SharpDevelop/Workbench/FileService.cs @@ -337,7 +337,7 @@ namespace ICSharpCode.SharpDevelop.Workbench IViewContent newContent = binding.CreateContentForFile(file); if (newContent != null) { DisplayBindingService.AttachSubWindows(newContent, false); - WorkbenchSingleton.Workbench.ShowView(newContent, switchToOpenedView); + SD.Workbench.ShowView(newContent, switchToOpenedView); } } finally { file.CloseIfAllViewsClosed(); @@ -375,7 +375,7 @@ namespace ICSharpCode.SharpDevelop.Workbench DisplayBindingService.AttachSubWindows(newContent, false); - WorkbenchSingleton.Workbench.ShowView(newContent); + SD.Workbench.ShowView(newContent); return newContent; } @@ -383,7 +383,7 @@ namespace ICSharpCode.SharpDevelop.Workbench public IReadOnlyList OpenPrimaryFiles { get { List fileNames = new List(); - foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent content in SD.Workbench.ViewContentCollection) { FileName contentName = content.PrimaryFileName; if (contentName != null && !fileNames.Contains(contentName)) fileNames.Add(contentName); @@ -396,7 +396,7 @@ namespace ICSharpCode.SharpDevelop.Workbench public IViewContent GetOpenFile(FileName fileName) { if (fileName != null) { - foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) { + foreach (IViewContent content in SD.Workbench.ViewContentCollection) { string contentName = content.PrimaryFileName; if (contentName != null) { if (FileUtility.IsEqualFileName(fileName, contentName)) diff --git a/src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs b/src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs index 10a56d7a0f..17cbc3185d 100644 --- a/src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs +++ b/src/Main/SharpDevelop/Workbench/FileServiceOpenedFile.cs @@ -67,9 +67,9 @@ namespace ICSharpCode.SharpDevelop.Workbench registeredViews.Add(view); - if (WorkbenchSingleton.Workbench != null) { - WorkbenchSingleton.Workbench.ActiveViewContentChanged += WorkbenchActiveViewContentChanged; - if (WorkbenchSingleton.Workbench.ActiveViewContent == view) { + if (SD.Workbench != null) { + SD.Workbench.ActiveViewContentChanged += WorkbenchActiveViewContentChanged; + if (SD.Workbench.ActiveViewContent == view) { SwitchedToView(view); } } @@ -84,8 +84,8 @@ namespace ICSharpCode.SharpDevelop.Workbench throw new ArgumentNullException("view"); Debug.Assert(registeredViews.Contains(view)); - if (WorkbenchSingleton.Workbench != null) { - WorkbenchSingleton.Workbench.ActiveViewContentChanged -= WorkbenchActiveViewContentChanged; + if (SD.Workbench != null) { + SD.Workbench.ActiveViewContentChanged -= WorkbenchActiveViewContentChanged; } #if DEBUG view.Disposed -= ViewDisposed; @@ -136,7 +136,7 @@ namespace ICSharpCode.SharpDevelop.Workbench void WorkbenchActiveViewContentChanged(object sender, EventArgs e) { - IViewContent newView = WorkbenchSingleton.Workbench.ActiveViewContent; + IViewContent newView = SD.Workbench.ActiveViewContent; if (!registeredViews.Contains(newView)) return; diff --git a/src/Main/SharpDevelop/Workbench/WpfWorkbench.cs b/src/Main/SharpDevelop/Workbench/WpfWorkbench.cs index 2a85cda283..398a3a80aa 100644 --- a/src/Main/SharpDevelop/Workbench/WpfWorkbench.cs +++ b/src/Main/SharpDevelop/Workbench/WpfWorkbench.cs @@ -576,8 +576,8 @@ namespace ICSharpCode.SharpDevelop.Workbench // save preferences Project.ProjectService.SaveSolutionPreferences(); - while (WorkbenchSingleton.Workbench.WorkbenchWindowCollection.Count > 0) { - IWorkbenchWindow window = WorkbenchSingleton.Workbench.WorkbenchWindowCollection[0]; + while (SD.Workbench.WorkbenchWindowCollection.Count > 0) { + IWorkbenchWindow window = SD.Workbench.WorkbenchWindowCollection [0]; if (!window.CloseWindow(false)) { e.Cancel = true; return;