Browse Source

Fixed SD2-384 and SD2-386.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@306 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
8da1d5c7cc
  1. 13
      src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Gui/CustomComponentsSideTab.cs
  2. 8
      src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs
  3. 14
      src/Main/Base/Project/Src/Commands/FileMenuCommands.cs
  4. 4
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs
  5. 7
      src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorList.cs
  6. 7
      src/Main/Base/Project/Src/Gui/Pads/OpenTaskView.cs
  7. 6
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs
  8. 2
      src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs
  9. 18
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  10. 13
      src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs
  11. 10
      src/Main/Base/Project/Src/Project/Solution/Solution.cs
  12. 2
      src/Main/Base/Project/Src/Services/File/FileService.cs
  13. 11
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  14. 11
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
  15. 19
      src/Main/Base/Project/Src/Services/ProjectService/SolutionEventHandler.cs

13
src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/Gui/CustomComponentsSideTab.cs

@ -34,14 +34,14 @@ namespace ICSharpCode.FormDesigner.Gui
ArrayList projectAssemblies = new ArrayList(); ArrayList projectAssemblies = new ArrayList();
ArrayList referencedAssemblies = new ArrayList(); ArrayList referencedAssemblies = new ArrayList();
static bool loadReferencedAssemblies = true; static bool loadReferencedAssemblies = true;
///<summary>Load an assembly's controls</summary> ///<summary>Load an assembly's controls</summary>
public CustomComponentsSideTab(AxSideBar sideTab, string name, IToolboxService toolboxService) : base(sideTab,name, toolboxService) public CustomComponentsSideTab(AxSideBar sideTab, string name, IToolboxService toolboxService) : base(sideTab,name, toolboxService)
{ {
ScanProjectAssemblies(); ScanProjectAssemblies();
ProjectService.EndBuild += new EventHandler(RescanProjectAssemblies2); ProjectService.EndBuild += RescanProjectAssemblies;
ProjectService.SolutionLoaded += new SolutionEventHandler(RescanProjectAssemblies); ProjectService.SolutionLoaded += RescanProjectAssemblies;
} }
public static bool LoadReferencedAssemblies { public static bool LoadReferencedAssemblies {
@ -179,12 +179,7 @@ namespace ICSharpCode.FormDesigner.Gui
} }
} }
void RescanProjectAssemblies2(object sender, EventArgs e) void RescanProjectAssemblies(object sender, EventArgs e)
{
RescanProjectAssemblies(sender, null);
}
void RescanProjectAssemblies(object sender, SolutionEventArgs e)
{ {
projectAssemblies.Clear(); projectAssemblies.Clear();
referencedAssemblies.Clear(); referencedAssemblies.Clear();

8
src/AddIns/Misc/NUnitPad/Project/Src/Gui/NUnitPadContent.cs

@ -86,10 +86,10 @@ namespace ICSharpCode.NUnitPad
contentPanel.Controls.Add(testTreeView); contentPanel.Controls.Add(testTreeView);
contentPanel.Controls.Add(toolStrip); contentPanel.Controls.Add(toolStrip);
ProjectService.SolutionLoaded += new SolutionEventHandler(CombineEventHandler); ProjectService.SolutionLoaded += CombineEventHandler;
ProjectService.SolutionClosed += new EventHandler(ProjectServiceCombineClosed); ProjectService.SolutionClosed += ProjectServiceCombineClosed;
ProjectService.StartBuild += new EventHandler(ProjectServiceStartBuild); ProjectService.StartBuild += ProjectServiceStartBuild;
ProjectService.EndBuild += new EventHandler(ProjectServiceEndBuild); ProjectService.EndBuild += ProjectServiceEndBuild;
testTreeView.SetAutoLoadState(autoLoadItems); testTreeView.SetAutoLoadState(autoLoadItems);
} }

14
src/Main/Base/Project/Src/Commands/FileMenuCommands.cs

@ -61,20 +61,14 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
switch (Path.GetExtension(fdiag.FileName).ToUpper()) { switch (Path.GetExtension(fdiag.FileName).ToUpper()) {
case ".CMBX": case ".CMBX":
case ".SLN": case ".SLN":
case ".PRJX": // converter is called by Solution.Load
ProjectService.LoadSolution(fdiag.FileName); ProjectService.LoadSolution(fdiag.FileName);
break; break;
case ".CSPROJ": case ".CSPROJ":
case ".VBPROJ": case ".VBPROJ":
ProjectService.LoadProject(fdiag.FileName); ProjectService.LoadProject(fdiag.FileName);
break; break;
// case ".PRJX":
//
//
// FileUtility.ObservedLoad(new NamedFileOperationDelegate(ProjectService.OpenSolution), fdiag.FileName);
// break;
default: default:
MessageService.ShowError(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine}", new string[,] {{"FileName", fdiag.FileName}})); MessageService.ShowError(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine}", new string[,] {{"FileName", fdiag.FileName}}));
break; break;
} }
@ -87,7 +81,11 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
{ {
public override void Run() public override void Run()
{ {
ProjectService.CloseSolution(); ProjectService.SaveSolutionPreferences();
WorkbenchSingleton.Workbench.CloseAllViews();
if (WorkbenchSingleton.Workbench.ViewContentCollection.Count == 0) {
ProjectService.CloseSolution();
}
} }
} }
} }

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

@ -109,8 +109,8 @@ namespace ICSharpCode.SharpDevelop.Gui
toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
contentPanel.Controls.Add(toolStrip); contentPanel.Controls.Add(toolStrip);
ProjectService.SolutionLoaded += new SolutionEventHandler(ProjectServiceSolutionLoaded); ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded;
ProjectService.SolutionClosed += new EventHandler(ProjectServiceSolutionClosed); ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
ParserService.ParseInformationUpdated += new ParseInformationEventHandler(ParserServiceParseInformationUpdated); ParserService.ParseInformationUpdated += new ParseInformationEventHandler(ParserServiceParseInformationUpdated);

7
src/Main/Base/Project/Src/Gui/Pads/ErrorList/ErrorList.cs

@ -102,10 +102,9 @@ namespace ICSharpCode.SharpDevelop.Gui
TaskService.Added += new TaskEventHandler(TaskServiceAdded); TaskService.Added += new TaskEventHandler(TaskServiceAdded);
TaskService.Removed += new TaskEventHandler(TaskServiceRemoved); TaskService.Removed += new TaskEventHandler(TaskServiceRemoved);
ProjectService.EndBuild += new EventHandler(ProjectServiceEndBuild); ProjectService.EndBuild += ProjectServiceEndBuild;
ProjectService.SolutionLoaded += OnCombineOpen;
ProjectService.SolutionLoaded += new SolutionEventHandler(OnCombineOpen); ProjectService.SolutionClosed += OnCombineClosed;
ProjectService.SolutionClosed += new EventHandler(OnCombineClosed);
ImageList imglist = new ImageList(); ImageList imglist = new ImageList();
imglist.ColorDepth = ColorDepth.Depth32Bit; imglist.ColorDepth = ColorDepth.Depth32Bit;

7
src/Main/Base/Project/Src/Gui/Pads/OpenTaskView.cs

@ -59,10 +59,9 @@ namespace ICSharpCode.SharpDevelop.Gui
TaskService.Added += new TaskEventHandler(TaskServiceAdded); TaskService.Added += new TaskEventHandler(TaskServiceAdded);
TaskService.Removed += new TaskEventHandler(TaskServiceRemoved); TaskService.Removed += new TaskEventHandler(TaskServiceRemoved);
ProjectService.EndBuild += new EventHandler(SelectTaskView); ProjectService.EndBuild += SelectTaskView;
ProjectService.SolutionLoaded += OnCombineOpen;
ProjectService.SolutionLoaded += new SolutionEventHandler(OnCombineOpen); ProjectService.SolutionClosed += OnCombineClosed;
ProjectService.SolutionClosed += new EventHandler(OnCombineClosed);
ImageList imglist = new ImageList(); ImageList imglist = new ImageList();
imglist.ColorDepth = ColorDepth.Depth32Bit; imglist.ColorDepth = ColorDepth.Depth32Bit;

6
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserPad.cs

@ -52,10 +52,10 @@ namespace ICSharpCode.SharpDevelop.Project
public ProjectBrowserPad() public ProjectBrowserPad()
{ {
instance = this; instance = this;
ProjectService.SolutionLoaded += new SolutionEventHandler(ProjectServiceSolutionLoaded); ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded;
ProjectService.SolutionClosed += new EventHandler(ProjectServiceSolutionClosed); ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += new EventHandler(ActiveWindowChanged); WorkbenchSingleton.Workbench.ActiveWorkbenchWindowChanged += ActiveWindowChanged;
if (ProjectService.OpenSolution != null) { if (ProjectService.OpenSolution != null) {
projectBrowserPanel.ViewSolution(ProjectService.OpenSolution); projectBrowserPanel.ViewSolution(ProjectService.OpenSolution);
} }

2
src/Main/Base/Project/Src/Gui/Workbench/DefaultWorkbench.cs

@ -379,6 +379,8 @@ namespace ICSharpCode.SharpDevelop.Gui
{ {
base.OnClosing(e); base.OnClosing(e);
ProjectService.SaveSolutionPreferences();
while (WorkbenchSingleton.Workbench.ViewContentCollection.Count > 0) { while (WorkbenchSingleton.Workbench.ViewContentCollection.Count > 0) {
IViewContent content = WorkbenchSingleton.Workbench.ViewContentCollection[0]; IViewContent content = WorkbenchSingleton.Workbench.ViewContentCollection[0];
content.WorkbenchWindow.CloseWindow(false); content.WorkbenchWindow.CloseWindow(false);

18
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -17,6 +17,7 @@ using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Xml; using System.Xml;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Internal.Templates; using ICSharpCode.SharpDevelop.Internal.Templates;
namespace ICSharpCode.SharpDevelop.Project namespace ICSharpCode.SharpDevelop.Project
@ -392,7 +393,15 @@ namespace ICSharpCode.SharpDevelop.Project
public virtual Properties CreateMemento() public virtual Properties CreateMemento()
{ {
Properties properties = new Properties(); Properties properties = new Properties();
properties.Set<ICSharpCode.SharpDevelop.Bookmarks.SDBookmark[]>("bookmarks", ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.GetProjectBookmarks(this).ToArray()); properties.Set("bookmarks", ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.GetProjectBookmarks(this).ToArray());
List<string> files = new List<string>();
foreach (IViewContent vc in WorkbenchSingleton.Workbench.ViewContentCollection) {
string fileName = vc.FileName;
if (fileName != null && IsFileInProject(fileName)) {
files.Add(fileName);
}
}
properties.Set("files", files.ToArray());
return properties; return properties;
} }
@ -401,9 +410,14 @@ namespace ICSharpCode.SharpDevelop.Project
/// </summary> /// </summary>
public virtual void SetMemento(Properties properties) public virtual void SetMemento(Properties properties)
{ {
foreach (ICSharpCode.SharpDevelop.Bookmarks.SDBookmark mark in properties.Get<ICSharpCode.SharpDevelop.Bookmarks.SDBookmark[]>("bookmarks", new ICSharpCode.SharpDevelop.Bookmarks.SDBookmark[0])) { foreach (ICSharpCode.SharpDevelop.Bookmarks.SDBookmark mark in properties.Get("bookmarks", new ICSharpCode.SharpDevelop.Bookmarks.SDBookmark[0])) {
ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.AddMark(mark); ICSharpCode.SharpDevelop.Bookmarks.BookmarkManager.AddMark(mark);
} }
foreach (string fileName in properties.Get("files", new string[0])) {
if (File.Exists(fileName)) {
FileService.OpenFile(fileName);
}
}
} }
} }
} }

13
src/Main/Base/Project/Src/Project/Converter/CombineToSolution.cs

@ -54,7 +54,18 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
{ {
List<string> projectFiles = new List<string>(); List<string> projectFiles = new List<string>();
ReadProjects(newSolution, fileName, projectFiles); ReadProjects(newSolution, fileName, projectFiles);
Convert(newSolution, projectFiles);
}
public static void ConvertProject(Solution newSolution, string projectFileName)
{
List<string> projectFiles = new List<string>();
projectFiles.Add(projectFileName);
Convert(newSolution, projectFiles);
}
static void Convert(Solution newSolution, List<string> projectFiles)
{
PrjxToSolutionProject.Conversion conversion = new PrjxToSolutionProject.Conversion(); PrjxToSolutionProject.Conversion conversion = new PrjxToSolutionProject.Conversion();
foreach (string path in projectFiles) { foreach (string path in projectFiles) {

10
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -509,13 +509,19 @@ namespace ICSharpCode.SharpDevelop.Project
solutionBeingLoaded = newSolution; solutionBeingLoaded = newSolution;
newSolution.Name = Path.GetFileNameWithoutExtension(fileName); newSolution.Name = Path.GetFileNameWithoutExtension(fileName);
bool loadCombine = Path.GetExtension(fileName).ToUpper() == ".CMBX"; string extension = Path.GetExtension(fileName).ToUpper();
if (loadCombine) { if (extension == ".CMBX") {
if (!MessageService.AskQuestion("Should the SharpDevelop 1.x combine be converted into a SharpDevelop 2.x solution?")) { if (!MessageService.AskQuestion("Should the SharpDevelop 1.x combine be converted into a SharpDevelop 2.x solution?")) {
return null; return null;
} }
newSolution.fileName = Path.ChangeExtension(fileName, ".sln"); newSolution.fileName = Path.ChangeExtension(fileName, ".sln");
ICSharpCode.SharpDevelop.Project.Converter.CombineToSolution.ConvertSolution(newSolution, fileName); ICSharpCode.SharpDevelop.Project.Converter.CombineToSolution.ConvertSolution(newSolution, fileName);
} else if (extension == ".PRJX") {
if (!MessageService.AskQuestion("Should the SharpDevelop 1.x project be converted into a SharpDevelop 2.x project?")) {
return null;
}
newSolution.fileName = Path.ChangeExtension(fileName, ".sln");
ICSharpCode.SharpDevelop.Project.Converter.CombineToSolution.ConvertProject(newSolution, fileName);
} else { } else {
newSolution.fileName = fileName; newSolution.fileName = fileName;
if (!SetupSolution(newSolution, fileName)) { if (!SetupSolution(newSolution, fileName)) {

2
src/Main/Base/Project/Src/Services/File/FileService.cs

@ -43,7 +43,7 @@ namespace ICSharpCode.Core
static FileService() static FileService()
{ {
ProjectService.SolutionLoaded += new SolutionEventHandler(ProjectServiceSolutionLoaded); ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded;
} }
static void ProjectServiceSolutionLoaded(object sender, SolutionEventArgs e) static void ProjectServiceSolutionLoaded(object sender, SolutionEventArgs e)

11
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -64,17 +64,12 @@ namespace ICSharpCode.Core
} }
static ParserService() static ParserService()
{ {
try { parser = (ParserDescriptor[])AddInTree.BuildItems("/Workspace/Parser", null, false).ToArray(typeof(ParserDescriptor));
parser = (ParserDescriptor[])(AddInTree.GetTreeNode("/Workspace/Parser").BuildChildItems(null)).ToArray(typeof(ParserDescriptor));
} catch (TreePathNotFoundException) {
parser = new ParserDescriptor[] {};
}
ProjectService.SolutionLoaded += new SolutionEventHandler(OpenCombine); ProjectService.SolutionLoaded += OpenCombine;
ProjectService.SolutionClosed += new EventHandler(ProjectServiceSolutionClosed); ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
} }
static void ProjectServiceSolutionClosed(object sender, EventArgs e) static void ProjectServiceSolutionClosed(object sender, EventArgs e)

11
src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

@ -228,6 +228,8 @@ namespace ICSharpCode.SharpDevelop.Project
public static void SaveSolutionPreferences() public static void SaveSolutionPreferences()
{ {
if (openSolution == null)
return;
string directory = PropertyService.ConfigDirectory + "preferences"; string directory = PropertyService.ConfigDirectory + "preferences";
if (!Directory.Exists(directory)) { if (!Directory.Exists(directory)) {
Directory.CreateDirectory(directory); Directory.CreateDirectory(directory);
@ -249,7 +251,6 @@ namespace ICSharpCode.SharpDevelop.Project
if (openSolution != null) { if (openSolution != null) {
OnSolutionClosing(new SolutionEventArgs(openSolution)); OnSolutionClosing(new SolutionEventArgs(openSolution));
SaveSolutionPreferences();
openSolution.Dispose(); openSolution.Dispose();
openSolution = null; openSolution = null;
@ -378,11 +379,11 @@ namespace ICSharpCode.SharpDevelop.Project
public static event ProjectConfigurationEventHandler ProjectConfigurationChanged; public static event ProjectConfigurationEventHandler ProjectConfigurationChanged;
public static event SolutionConfigurationEventHandler SolutionConfigurationChanged; public static event SolutionConfigurationEventHandler SolutionConfigurationChanged;
public static event SolutionEventHandler SolutionLoaded; public static event EventHandler<SolutionEventArgs> SolutionLoaded;
public static event SolutionEventHandler SolutionSaved; public static event EventHandler<SolutionEventArgs> SolutionSaved;
public static event SolutionEventHandler SolutionClosing; public static event EventHandler<SolutionEventArgs> SolutionClosing;
public static event EventHandler SolutionClosed; public static event EventHandler SolutionClosed;
public static event ProjectEventHandler CurrentProjectChanged; public static event ProjectEventHandler CurrentProjectChanged;

19
src/Main/Base/Project/Src/Services/ProjectService/SolutionEventHandler.cs

@ -6,11 +6,10 @@
// </file> // </file>
using System; using System;
using System.ComponentModel;
namespace ICSharpCode.SharpDevelop.Project namespace ICSharpCode.SharpDevelop.Project
{ {
public delegate void SolutionEventHandler(object sender, SolutionEventArgs e);
public class SolutionEventArgs : EventArgs public class SolutionEventArgs : EventArgs
{ {
Solution solution; Solution solution;
@ -26,4 +25,20 @@ namespace ICSharpCode.SharpDevelop.Project
this.solution = solution; this.solution = solution;
} }
} }
public class SolutionCancelEventArgs : CancelEventArgs
{
Solution solution;
public Solution Solution {
get {
return solution;
}
}
public SolutionCancelEventArgs(Solution solution)
{
this.solution = solution;
}
}
} }

Loading…
Cancel
Save