From 918582348c85065968c97b3ba91ababdd54af213 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Fri, 29 Mar 2013 01:50:27 +0100 Subject: [PATCH] Fix compiler warnings. --- .../AspNet.Mvc/Project/Src/WebBehavior.cs | 2 +- ...lderCannotBuildNonWixProjectTestFixture.cs | 3 -- .../Visualizers/Utils/DebuggerHelpers.cs | 2 +- .../Project/FocusNavigator.cs | 2 -- .../Src/PackageManagementProjectService.cs | 5 +-- .../Project/Gui/SearchAndReplacePanel.cs | 9 +++-- .../Project/Src/RecentProjectsControl.xaml.cs | 5 +-- .../Src/Commands/ProjectBrowserCommands.cs | 2 +- .../Highlighting/HighlightingEngine.cs | 3 ++ .../Utils/CompressingTreeList.cs | 4 +-- .../CodeCompletionDataUsageCache.cs | 2 +- .../Project/Parser/ProjectContentContainer.cs | 8 ++--- .../Configuration/ConfigurationMapping.cs | 34 +++++++++++++++++++ .../Base/Project/Src/Commands/FileCommands.cs | 4 +-- .../Project/Src/Commands/FileMenuCommands.cs | 2 +- .../Project/Src/Commands/MenuItemBuilders.cs | 4 +-- .../CompilerMessageView.cs | 4 +-- .../Src/Gui/Pads/ErrorList/ErrorListPad.cs | 4 +-- .../ProjectBrowser/ProjectBrowserControl.cs | 2 +- .../Pads/ProjectBrowser/ProjectBrowserPad.cs | 4 +-- .../Src/Gui/Pads/PropertyPad/PropertyPad.cs | 4 +-- .../Src/Gui/Pads/TaskList/TaskListPad.cs | 6 ++-- .../Src/Project/ProjectChangeWatcher.cs | 2 +- .../Src/Services/Debugger/DebuggerService.cs | 2 +- .../NavigationService/NavigationService.cs | 4 +-- .../Project/Src/Services/Tasks/TaskService.cs | 4 +-- .../Project/Workbench/File/IRecentOpen.cs | 9 ++--- ...onConfigurationOrPlatformNameCollection.cs | 12 ++----- .../SharpDevelop/Project/ProjectService.cs | 1 - src/Main/SharpDevelop/Sda/CallHelper.cs | 5 ++- .../SharpDevelop/Startup/SharpDevelopMain.cs | 2 +- src/Main/SharpDevelop/Workbench/RecentOpen.cs | 30 ++++++---------- .../Workbench/WorkbenchStartup.cs | 2 +- 33 files changed, 100 insertions(+), 88 deletions(-) diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs index fd84edaebf..1fb2c1b0bf 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/WebBehavior.cs @@ -150,7 +150,7 @@ namespace ICSharpCode.AspNet.Mvc DisposeProcessMonitor(); this.monitor = new ProcessMonitor(processName); this.monitor.ProcessCreated += delegate { - WorkbenchSingleton.SafeThreadCall((Action)(() => OnProcessCreated(properties, withDebugging))); + SD.MainThread.InvokeAsyncAndForget(() => OnProcessCreated(properties, withDebugging)); }; this.monitor.Start(); } diff --git a/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs index 71a3b1bee9..f0ebd7c0f7 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/Project/WixBuilderCannotBuildNonWixProjectTestFixture.cs @@ -4,12 +4,9 @@ using System; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; -using ICSharpCode.SharpDevelop.Internal.Templates; using ICSharpCode.SharpDevelop.Project; using ICSharpCode.WixBinding; using NUnit.Framework; -using Rhino.Mocks; -using Rhino.Mocks; using WixBinding.Tests.Utils; namespace WixBinding.Tests.Project diff --git a/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs b/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs index 4bdf58d767..ce43a67a04 100644 --- a/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs +++ b/src/AddIns/Debugger/Debugger.AddIn/Visualizers/Utils/DebuggerHelpers.cs @@ -95,7 +95,7 @@ namespace Debugger.AddIn.Visualizers.Utils Value valueHashCode; try { valueHashCode = Eval.InvokeMethod(WindowsDebugger.EvalThread, hashCodeMethod, null, new Value[]{value}); - } catch(InvalidComObjectException ex) { + } catch(InvalidComObjectException) { // debuggee was restarted hashCodeMethod = findDebuggeeHashCodeMethod(value); valueHashCode = Eval.InvokeMethod(WindowsDebugger.EvalThread, hashCodeMethod, null, new Value[]{value}); diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs index 07ef5c4b2d..c38d3515dc 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/FocusNavigator.cs @@ -106,7 +106,6 @@ namespace ICSharpCode.WpfDesign.Designer /// /// Checks if focus navigation should be for down-the-tree be done. /// - /// Design Surface bool CanMoveFocusForward() { var designSurface = _surface; @@ -158,7 +157,6 @@ namespace ICSharpCode.WpfDesign.Designer /// /// Checks if focus navigation for the up-the-tree should be done. /// - /// Design Surface bool CanMoveFocusBack() { var designSurface = _surface; diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs index adcdee27db..83c3e80b21 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageManagementProjectService.cs @@ -33,10 +33,7 @@ namespace ICSharpCode.PackageManagement public void RefreshProjectBrowser() { - SD.MainThread.InvokeIfRequired(() => { - var refreshCommand = new RefreshProjectBrowser(); - refreshCommand.Run(); - }); + SD.MainThread.InvokeAsyncAndForget(ProjectBrowserPad.RefreshViewAsync); } void InvokeIfRequired(Action action) diff --git a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs index 461a2a8671..20eee2c2a0 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs +++ b/src/AddIns/Misc/SearchAndReplace/Project/Gui/SearchAndReplacePanel.cs @@ -73,11 +73,10 @@ namespace SearchAndReplace void LookInBrowseButtonClicked(object sender, EventArgs e) { ComboBox lookinComboBox = Get("lookIn"); - using (FolderBrowserDialog dlg = FileService.CreateFolderBrowserDialog("${res:Dialog.NewProject.SearchReplace.LookIn.SelectDirectory}", lookinComboBox.Text)) { - if (dlg.ShowDialog() == DialogResult.OK) { - lookinComboBox.SelectedIndex = customDirectoryIndex; - lookinComboBox.Text = dlg.SelectedPath; - } + string path = SD.FileService.BrowseForFolder("${res:Dialog.NewProject.SearchReplace.LookIn.SelectDirectory}", lookinComboBox.Text); + if (path != null) { + lookinComboBox.SelectedIndex = customDirectoryIndex; + lookinComboBox.Text = path; } } diff --git a/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs b/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs index 161b828214..a0839adb80 100644 --- a/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs +++ b/src/AddIns/Misc/StartPage/Project/Src/RecentProjectsControl.xaml.cs @@ -12,6 +12,7 @@ using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; +using ICSharpCode.Core; using ICSharpCode.Core.Presentation; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; @@ -89,7 +90,7 @@ namespace ICSharpCode.StartPage { RecentOpenItem item = (RecentOpenItem)lastProjectsListView.SelectedItem; if (item != null) { - ProjectService.LoadSolutionOrProject(item.Path); + SD.ProjectService.OpenSolutionOrProject(FileName.Create(item.Path)); } } @@ -103,7 +104,7 @@ namespace ICSharpCode.StartPage void listViewHyperlinkClick(object sender, RoutedEventArgs e) { RecentOpenItem item = (RecentOpenItem)((Hyperlink)sender).Tag; - ProjectService.LoadSolutionOrProject(item.Path); + SD.ProjectService.OpenSolutionOrProject(FileName.Create(item.Path)); } void openSolutionClick(object sender, RoutedEventArgs e) diff --git a/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs b/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs index 50359279dc..321448bcce 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs +++ b/src/AddIns/VersionControl/SubversionAddIn/Src/Commands/ProjectBrowserCommands.cs @@ -155,7 +155,7 @@ namespace ICSharpCode.Svn.Commands "${res:ICSharpCode.SharpDevelop.Project.ReloadSolution}", "${res:ICSharpCode.SharpDevelop.Project.KeepOldSolution}") == 0) { - ProjectService.LoadSolution(solution.FileName); + SD.ProjectService.OpenSolution(solution.FileName); } } } diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs index bd279a21d4..b60473d454 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingEngine.cs @@ -20,6 +20,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting readonly HighlightingRuleSet mainRuleSet; SpanStack spanStack = SpanStack.Empty; + /// + /// Creates a new HighlightingEngine instance. + /// public HighlightingEngine(HighlightingRuleSet mainRuleSet) { if (mainRuleSet == null) diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs index 24a66b60b0..0ba831cc0a 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CompressingTreeList.cs @@ -113,8 +113,8 @@ namespace ICSharpCode.AvalonEdit.Utils /// /// Creates a new CompressingTreeList instance. /// - /// A function that checks two values for equality. If this - /// function returns true, a single node may be used to store the two values. + /// The equality comparer used for comparing consequtive values. + /// A single node may be used to store the multiple values that are considered equal. public CompressingTreeList(IEqualityComparer equalityComparer) { if (equalityComparer == null) diff --git a/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs b/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs index 74b1749dc9..4ec70a373c 100644 --- a/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs +++ b/src/Main/Base/Project/Editor/CodeCompletion/CodeCompletionDataUsageCache.cs @@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.Editor.CodeCompletion static void LoadCache() { dict = new Dictionary(); - ProjectService.SolutionClosed += delegate { SaveCache(); }; + SD.ProjectService.SolutionClosed += delegate { SaveCache(); }; string cacheFileName = CodeCompletionDataUsageCache.CacheFilename; if (string.IsNullOrEmpty(cacheFileName) || !File.Exists(cacheFileName)) return; diff --git a/src/Main/Base/Project/Parser/ProjectContentContainer.cs b/src/Main/Base/Project/Parser/ProjectContentContainer.cs index a0aba4cf12..8e64f610a2 100644 --- a/src/Main/Base/Project/Parser/ProjectContentContainer.cs +++ b/src/Main/Base/Project/Parser/ProjectContentContainer.cs @@ -56,8 +56,8 @@ namespace ICSharpCode.SharpDevelop.Parser this.cacheFileName = GetCacheFileName(project.FileName); - ProjectService.ProjectItemAdded += OnProjectItemAdded; - ProjectService.ProjectItemRemoved += OnProjectItemRemoved; + SD.ProjectService.ProjectItemAdded += OnProjectItemAdded; + SD.ProjectService.ProjectItemRemoved += OnProjectItemRemoved; var parserService = SD.ParserService; List filesToParse = new List(); @@ -76,8 +76,8 @@ namespace ICSharpCode.SharpDevelop.Parser public void Dispose() { - ProjectService.ProjectItemAdded -= OnProjectItemAdded; - ProjectService.ProjectItemRemoved -= OnProjectItemRemoved; + SD.ProjectService.ProjectItemAdded -= OnProjectItemAdded; + SD.ProjectService.ProjectItemRemoved -= OnProjectItemRemoved; IProjectContent pc; bool serializeOnDispose; lock (lockObj) { diff --git a/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs b/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs index 2c9c7ef429..05ae85d09a 100644 --- a/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs +++ b/src/Main/Base/Project/Project/Configuration/ConfigurationMapping.cs @@ -25,6 +25,11 @@ namespace ICSharpCode.SharpDevelop.Project { this.Config = config; } + + public Entry Clone() + { + return (Entry)MemberwiseClone(); + } } /// @@ -142,5 +147,34 @@ namespace ICSharpCode.SharpDevelop.Project if (result) Changed(this, EventArgs.Empty); } + + /// + /// Copies an entry. + /// + public void CopySolutionConfiguration(ConfigurationAndPlatform sourceSolutionConfiguration, ConfigurationAndPlatform targetSolutionConfiguration) + { + lock (dict) { + Entry entry; + if (dict.TryGetValue(sourceSolutionConfiguration, out entry)) { + dict[targetSolutionConfiguration] = entry.Clone(); + } + } + Changed(this, EventArgs.Empty); + } + + /// + /// Renames an entry. + /// + public void RenameSolutionConfiguration(ConfigurationAndPlatform sourceSolutionConfiguration, ConfigurationAndPlatform targetSolutionConfiguration) + { + lock (dict) { + Entry entry; + if (dict.TryGetValue(sourceSolutionConfiguration, out entry)) { + dict.Remove(sourceSolutionConfiguration); + dict.Add(targetSolutionConfiguration, entry); + } + } + Changed(this, EventArgs.Empty); + } } } diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs index 1f2c0ce2e1..084b4871fa 100644 --- a/src/Main/Base/Project/Src/Commands/FileCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs @@ -177,11 +177,11 @@ namespace ICSharpCode.SharpDevelop.Commands } if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { - string fileName = fdiag.FileName; + FileName fileName = FileName.Create(fdiag.FileName); if (!FileService.CheckFileName(fileName)) { return; } - if (FileUtility.ObservedSave(new NamedFileOperationDelegate(file.SaveToDisk), FileName.Create(fileName)) == FileOperationResult.OK) { + if (FileUtility.ObservedSave(new NamedFileOperationDelegate(file.SaveToDisk), fileName) == FileOperationResult.OK) { SD.FileService.RecentOpen.AddRecentFile(fileName); MessageService.ShowMessage(fileName, "${res:ICSharpCode.SharpDevelop.Commands.SaveFile.FileSaved}"); } diff --git a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs index 470e993519..2d0b0540fe 100644 --- a/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileMenuCommands.cs @@ -29,7 +29,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands fdiag.Multiselect = false; fdiag.CheckFileExists = true; if (fdiag.ShowDialog(SD.WinForms.MainWin32Window) == DialogResult.OK) { - ProjectService.LoadSolutionOrProject(fdiag.FileName); + SD.ProjectService.OpenSolutionOrProject(FileName.Create(fdiag.FileName)); } } } diff --git a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs index 118a0eef51..6cd2acc683 100644 --- a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs +++ b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs @@ -173,13 +173,13 @@ namespace ICSharpCode.SharpDevelop.Commands for (int i = 0; i < recentOpen.RecentProjects.Count; ++i) { // variable inside loop, so that anonymous method refers to correct recent file - string recentProject = recentOpen.RecentProjects[i]; + FileName recentProject = recentOpen.RecentProjects[i]; string accelaratorKeyPrefix = i < 10 ? "_" + ((i + 1) % 10) + " " : ""; items[i] = new System.Windows.Controls.MenuItem() { Header = accelaratorKeyPrefix + recentProject }; items[i].Click += delegate { - ProjectService.LoadSolution(recentProject); + SD.ProjectService.OpenSolutionOrProject(recentProject); }; } return items; 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 c0b1dc4217..2175acc880 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/CompilerMessageView/CompilerMessageView.cs @@ -223,12 +223,12 @@ namespace ICSharpCode.SharpDevelop.Gui SetWordWrap(); DisplayActiveCategory(); - ProjectService.SolutionLoaded += SolutionLoaded; + SD.ProjectService.CurrentSolutionChanged += OnSolutionLoaded; textEditor.TextArea.DefaultInputHandler.NestedInputHandlers.Add(new SearchInputHandler(textEditor.TextArea)); } - void SolutionLoaded(object sender, SolutionEventArgs e) + void OnSolutionLoaded(object sender, EventArgs e) { foreach (MessageViewCategory category in messageCategories) { category.ClearText(); 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 c3b88c0b1f..0b903f9c21 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorListPad.cs @@ -89,8 +89,8 @@ namespace ICSharpCode.SharpDevelop.Gui }; SD.BuildService.BuildFinished += ProjectServiceEndBuild; - ProjectService.SolutionLoaded += OnSolutionOpen; - ProjectService.SolutionClosed += OnSolutionClosed; + SD.ProjectService.SolutionOpened += OnSolutionOpen; + SD.ProjectService.SolutionClosed += OnSolutionClosed; taskView.CreateControl(); contentPanel.Controls.Add(taskView); diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs index 581a743b67..212b724c30 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs @@ -84,7 +84,7 @@ namespace ICSharpCode.SharpDevelop.Project FileService.FileRenamed += FileServiceFileRenamed; FileService.FileRemoved += FileServiceFileRemoved; - ProjectService.ProjectItemAdded += ProjectServiceProjectItemAdded; + SD.ProjectService.ProjectItemAdded += ProjectServiceProjectItemAdded; treeView.DrawNode += TreeViewDrawNode; treeView.DragDrop += TreeViewDragDrop; } 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 536e8cb407..fd4d94c950 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs @@ -76,8 +76,8 @@ namespace ICSharpCode.SharpDevelop.Project public ProjectBrowserPad() { instance = this; - ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded; - ProjectService.SolutionClosed += ProjectServiceSolutionClosed; + SD.ProjectService.SolutionOpened += ProjectServiceSolutionLoaded; + SD.ProjectService.SolutionClosed += ProjectServiceSolutionClosed; SD.Workbench.ActiveContentChanged += ActiveContentChanged; if (ProjectService.OpenSolution != null) { 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 a6cc362f74..264fddc805 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/PropertyPad/PropertyPad.cs @@ -184,7 +184,7 @@ namespace ICSharpCode.SharpDevelop.Gui panel.Controls.Add(comboBox); SD.WinForms.SetContent(contentControl, panel); - ProjectService.SolutionClosed += SolutionClosedEvent; + SD.ProjectService.SolutionClosed += SolutionClosedEvent; grid.PropertyValueChanged += new PropertyValueChangedEventHandler(PropertyChanged); grid.ContextMenuStrip = SD.WinForms.MenuService.CreateContextMenu(this, "/SharpDevelop/Views/PropertyPad/ContextMenu"); @@ -391,7 +391,7 @@ namespace ICSharpCode.SharpDevelop.Gui base.Dispose(); if (grid != null) { this.ideContainer.Disconnect(); - ProjectService.SolutionClosed -= SolutionClosedEvent; + SD.ProjectService.SolutionClosed -= SolutionClosedEvent; try { grid.SelectedObjects = null; } catch {} 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 4cd1938568..353e8e2ab2 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/TaskList/TaskListPad.cs @@ -79,9 +79,9 @@ namespace ICSharpCode.SharpDevelop.Gui WorkbenchActiveViewContentChanged(null, null); } - ProjectService.SolutionLoaded += OnSolutionOpen; - ProjectService.SolutionClosed += OnSolutionClosed; - ProjectService.CurrentProjectChanged += ProjectServiceCurrentProjectChanged; + SD.ProjectService.SolutionOpened += OnSolutionOpen; + SD.ProjectService.SolutionClosed += OnSolutionClosed; + SD.ProjectService.CurrentProjectChanged += ProjectServiceCurrentProjectChanged; this.isInitialized = true; } diff --git a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs index 480a21a54f..7a534922cf 100644 --- a/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs +++ b/src/Main/Base/Project/Src/Project/ProjectChangeWatcher.cs @@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Project showingMessageBox = false; wasChangedExternally = false; if (result == 0) - ProjectService.LoadSolution(ProjectService.OpenSolution.FileName); + SD.ProjectService.OpenSolutionOrProject(ProjectService.OpenSolution.FileName); else if (result == 2) new CloseSolution().Run(); } else { diff --git a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs index 094129002d..2c71ea75f6 100644 --- a/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs +++ b/src/Main/Base/Project/Src/Services/Debugger/DebuggerService.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.SharpDevelop.Debugging static DebuggerService() { - ProjectService.SolutionLoaded += delegate { + SD.ProjectService.SolutionOpened += delegate { ClearDebugMessages(); }; diff --git a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs index 369e3cfdf4..31bd0d258f 100644 --- a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs +++ b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs @@ -72,8 +72,8 @@ namespace ICSharpCode.SharpDevelop // trap changes in the secondary tab via the workbench's ActiveViewContentChanged event SD.Workbench.ActiveViewContentChanged += ActiveViewContentChanged; - FileService.FileRenamed += FileService_FileRenamed; - ProjectService.SolutionClosed += ProjectService_SolutionClosed; + SD.FileService.FileRenamed += FileService_FileRenamed; + SD.ProjectService.SolutionClosed += ProjectService_SolutionClosed; serviceInitialized = true; } } diff --git a/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs b/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs index 379d74f63c..eff73bfbc6 100644 --- a/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs +++ b/src/Main/Base/Project/Src/Services/Tasks/TaskService.cs @@ -79,8 +79,8 @@ namespace ICSharpCode.SharpDevelop // avoid trouble with double initialization SD.ParserService.ParseInformationUpdated -= ParserService_ParseInformationUpdated; SD.ParserService.ParseInformationUpdated += ParserService_ParseInformationUpdated; - ProjectService.SolutionClosed -= ProjectServiceSolutionClosed; - ProjectService.SolutionClosed += ProjectServiceSolutionClosed; + SD.ProjectService.SolutionClosed -= ProjectServiceSolutionClosed; + SD.ProjectService.SolutionClosed += ProjectServiceSolutionClosed; } static void ParserService_ParseInformationUpdated(object sender, ParseInformationEventArgs e) diff --git a/src/Main/Base/Project/Workbench/File/IRecentOpen.cs b/src/Main/Base/Project/Workbench/File/IRecentOpen.cs index a2a0094fe0..8007b7d106 100644 --- a/src/Main/Base/Project/Workbench/File/IRecentOpen.cs +++ b/src/Main/Base/Project/Workbench/File/IRecentOpen.cs @@ -3,18 +3,19 @@ using System; using System.Collections.Generic; +using ICSharpCode.Core; namespace ICSharpCode.SharpDevelop.Workbench { /// public interface IRecentOpen { - IReadOnlyList RecentFiles { get; } - IReadOnlyList RecentProjects { get; } + IReadOnlyList RecentFiles { get; } + IReadOnlyList RecentProjects { get; } void ClearRecentFiles(); void ClearRecentProjects(); - void AddRecentFile(string fileName); - void AddRecentProject(string fileName); + void AddRecentFile(FileName fileName); + void AddRecentProject(FileName fileName); } } diff --git a/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs b/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs index 831aba036b..6044b789ac 100644 --- a/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs +++ b/src/Main/SharpDevelop/Project/Configuration/SolutionConfigurationOrPlatformNameCollection.cs @@ -96,9 +96,7 @@ namespace ICSharpCode.SharpDevelop.Project foreach (string otherName in isPlatform ? solution.ConfigurationNames : solution.PlatformNames) { var sourceSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, copyFrom) : new ConfigurationAndPlatform(copyFrom, otherName); var newSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, newName) : new ConfigurationAndPlatform(newName, otherName); - mapping.SetProjectConfiguration(newSolutionConfig, mapping.GetProjectConfiguration(sourceSolutionConfig)); - mapping.SetBuildEnabled(newSolutionConfig, mapping.IsBuildEnabled(sourceSolutionConfig)); - mapping.SetDeployEnabled(newSolutionConfig, mapping.IsDeployEnabled(sourceSolutionConfig)); + mapping.CopySolutionConfiguration(sourceSolutionConfig, newSolutionConfig); } } } @@ -150,13 +148,7 @@ namespace ICSharpCode.SharpDevelop.Project foreach (string otherName in isPlatform ? solution.ConfigurationNames : solution.PlatformNames) { var oldSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, oldName) : new ConfigurationAndPlatform(oldName, otherName); var newSolutionConfig = isPlatform ? new ConfigurationAndPlatform(otherName, newName) : new ConfigurationAndPlatform(newName, otherName); - var projectConfig = mapping.GetProjectConfiguration(oldSolutionConfig); - var buildEnabled = mapping.IsBuildEnabled(oldSolutionConfig); - var deployEnabled = mapping.IsDeployEnabled(oldSolutionConfig); - mapping.Remove(oldSolutionConfig); - mapping.SetProjectConfiguration(newSolutionConfig, projectConfig); - mapping.SetBuildEnabled(newSolutionConfig, buildEnabled); - mapping.SetDeployEnabled(newSolutionConfig, deployEnabled); + mapping.RenameSolutionConfiguration(oldSolutionConfig, newSolutionConfig); } } } diff --git a/src/Main/SharpDevelop/Project/ProjectService.cs b/src/Main/SharpDevelop/Project/ProjectService.cs index 7dc817f9f5..3bf70e4895 100644 --- a/src/Main/SharpDevelop/Project/ProjectService.cs +++ b/src/Main/SharpDevelop/Project/ProjectService.cs @@ -8,7 +8,6 @@ using System.Windows.Input; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Gui; -using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.SharpDevelop.Project diff --git a/src/Main/SharpDevelop/Sda/CallHelper.cs b/src/Main/SharpDevelop/Sda/CallHelper.cs index 817391075f..4363c812d8 100644 --- a/src/Main/SharpDevelop/Sda/CallHelper.cs +++ b/src/Main/SharpDevelop/Sda/CallHelper.cs @@ -217,13 +217,12 @@ namespace ICSharpCode.SharpDevelop.Sda public void OpenProject(string fileName) { - SD.MainThread.InvokeIfRequired(() => Project.ProjectService.LoadSolutionOrProject(fileName)); + SD.MainThread.InvokeIfRequired(() => SD.ProjectService.OpenSolutionOrProject(FileName.Create(fileName))); } - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] public bool IsSolutionOrProject(string fileName) { - return Project.ProjectService.HasProjectLoader(fileName); + return SD.ProjectService.IsSolutionOrProjectFile(FileName.Create(fileName)); } public bool CloseWorkbench(bool force) diff --git a/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs b/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs index 23e3480a71..e81f475481 100644 --- a/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs +++ b/src/Main/SharpDevelop/Startup/SharpDevelopMain.cs @@ -218,7 +218,7 @@ namespace ICSharpCode.SharpDevelop.Startup { try { foreach (string file in fileList) { - if (ProjectService.HasProjectLoader(file)) { + if (SD.ProjectService.IsSolutionOrProjectFile(FileName.Create(file))) { return false; } } diff --git a/src/Main/SharpDevelop/Workbench/RecentOpen.cs b/src/Main/SharpDevelop/Workbench/RecentOpen.cs index 0bfb20aa3f..ee677ac58b 100644 --- a/src/Main/SharpDevelop/Workbench/RecentOpen.cs +++ b/src/Main/SharpDevelop/Workbench/RecentOpen.cs @@ -24,15 +24,15 @@ namespace ICSharpCode.SharpDevelop /// int MAX_LENGTH = 10; - ObservableCollection recentFiles = new ObservableCollection(); - ObservableCollection recentProjects = new ObservableCollection(); + ObservableCollection recentFiles = new ObservableCollection(); + ObservableCollection recentProjects = new ObservableCollection(); Properties properties; - public IReadOnlyList RecentFiles { + public IReadOnlyList RecentFiles { get { return recentFiles; } } - public IReadOnlyList RecentProjects { + public IReadOnlyList RecentProjects { get { return recentProjects; } } @@ -41,17 +41,13 @@ namespace ICSharpCode.SharpDevelop // don't check whether files exist because that might be slow (e.g. if file is on network // drive that's unavailable) this.properties = p; - recentFiles.AddRange(p.GetList("Files")); - recentProjects.AddRange(p.GetList("Projects")); + recentFiles.AddRange(p.GetList("Files").Select(FileName.Create)); + recentProjects.AddRange(p.GetList("Projects").Select(FileName.Create)); } - public void AddRecentFile(string name) + public void AddRecentFile(FileName name) { - for (int i = 0; i < recentFiles.Count; ++i) { - if (recentFiles[i].Equals(name, StringComparison.OrdinalIgnoreCase)) { - recentFiles.RemoveAt(i); - } - } + recentFiles.Remove(name); // remove if the filename is already in the list while (recentFiles.Count >= MAX_LENGTH) { recentFiles.RemoveAt(recentFiles.Count - 1); @@ -73,13 +69,9 @@ namespace ICSharpCode.SharpDevelop properties.SetList("Projects", recentProjects); } - public void AddRecentProject(string name) + public void AddRecentProject(FileName name) { - for (int i = 0; i < recentProjects.Count; ++i) { - if (recentProjects[i].ToString().Equals(name, StringComparison.OrdinalIgnoreCase)) { - recentProjects.RemoveAt(i); - } - } + recentProjects.Remove(name); while (recentProjects.Count >= MAX_LENGTH) { recentProjects.RemoveAt(recentProjects.Count - 1); @@ -107,7 +99,7 @@ namespace ICSharpCode.SharpDevelop string file = recentFiles[i].ToString(); if (e.SourceFile == file) { recentFiles.RemoveAt(i); - recentFiles.Insert(i, e.TargetFile); + recentFiles.Insert(i, FileName.Create(e.TargetFile)); break; } } diff --git a/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs b/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs index 85e0f78ff6..4bf21b7a0b 100644 --- a/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs +++ b/src/Main/SharpDevelop/Workbench/WorkbenchStartup.cs @@ -106,7 +106,7 @@ namespace ICSharpCode.SharpDevelop.Workbench // load previous solution if (!didLoadSolutionOrFile && PropertyService.Get("SharpDevelop.LoadPrevProjectOnStartup", false)) { if (SD.FileService.RecentOpen.RecentProjects.Count > 0) { - ProjectService.LoadSolution(SD.FileService.RecentOpen.RecentProjects[0]); + SD.ProjectService.OpenSolutionOrProject(SD.FileService.RecentOpen.RecentProjects[0]); didLoadSolutionOrFile = true; } }