Browse Source

Fixed SD2-683: Class browser doesn't show newly added projects

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1300 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
e0db259c31
  1. 8
      src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs
  2. 4
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
  3. 2
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs
  4. 15
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs
  5. 2
      src/Main/Base/Project/Src/Services/ProjectService/SolutionFolderEventHandler.cs

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

@ -98,14 +98,16 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -98,14 +98,16 @@ namespace ICSharpCode.SharpDevelop.Gui
toolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
contentPanel.Controls.Add(toolStrip);
ProjectService.SolutionLoaded += ProjectServiceSolutionLoaded;
ProjectService.SolutionLoaded += ProjectServiceSolutionChanged;
ProjectService.ProjectAdded += ProjectServiceSolutionChanged; // rebuild view when project is added to solution
ProjectService.SolutionFolderRemoved += ProjectServiceSolutionChanged; // rebuild view when project is removed from solution
ProjectService.SolutionClosed += ProjectServiceSolutionClosed;
ParserService.ParseInformationUpdated += new ParseInformationEventHandler(ParserServiceParseInformationUpdated);
AmbienceService.AmbienceChanged += new EventHandler(AmbienceServiceAmbienceChanged);
if (ProjectService.OpenSolution != null) {
ProjectServiceSolutionLoaded(null, null);
ProjectServiceSolutionChanged(null, null);
}
UpdateToolbars();
}
@ -275,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -275,7 +277,7 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
void ProjectServiceSolutionLoaded(object sender, SolutionEventArgs e)
void ProjectServiceSolutionChanged(object sender, EventArgs e)
{
classBrowserTreeView.Nodes.Clear();
foreach (IProject project in ProjectService.OpenSolution.Projects) {

4
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs

@ -50,9 +50,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -50,9 +50,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
IProject newProject = LanguageBindingService.LoadProject(fileName, Path.GetFileNameWithoutExtension(fileName));
if (newProject != null) {
newProject.Location = FileUtility.GetRelativePath(solutionFolderNode.Solution.Directory, fileName);
ParserService.CreateProjectContentForAddedProject(newProject);
solutionFolderNode.Container.AddFolder(newProject);
solutionFolderNode.Solution.FixSolutionConfiguration(new IProject[] { newProject });
ProjectService.AddProject(solutionFolderNode, newProject);
NodeBuilders.AddProjectNode((TreeNode)solutionFolderNode, newProject).EnsureVisible();
solutionFolderNode.Solution.ApplySolutionConfigurationToProjects();
solutionFolderNode.Solution.ApplySolutionPlatformToProjects();

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

@ -184,7 +184,7 @@ namespace ICSharpCode.Core @@ -184,7 +184,7 @@ namespace ICSharpCode.Core
newContent.Initialize2();
}
public static IProjectContent CreateProjectContentForAddedProject(IProject project)
internal static IProjectContent CreateProjectContentForAddedProject(IProject project)
{
lock (projectContents) {
ParseProjectContent newContent = project.CreateProjectContent();

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

@ -176,6 +176,14 @@ namespace ICSharpCode.SharpDevelop.Project @@ -176,6 +176,14 @@ namespace ICSharpCode.SharpDevelop.Project
CurrentProject = OpenSolution.FindProjectContainingFile(fileName) ?? CurrentProject;
}
public static void AddProject(ISolutionFolderNode solutionFolderNode, IProject newProject)
{
solutionFolderNode.Container.AddFolder(newProject);
ParserService.CreateProjectContentForAddedProject(newProject);
solutionFolderNode.Solution.FixSolutionConfiguration(new IProject[] { newProject });
OnProjectAdded(new ProjectEventArgs(newProject));
}
/// <summary>
/// Adds a project item to the project, raising the ProjectItemAdded event.
/// Make sure you call project.Save() after adding new items!
@ -467,7 +475,14 @@ namespace ICSharpCode.SharpDevelop.Project @@ -467,7 +475,14 @@ namespace ICSharpCode.SharpDevelop.Project
ProjectItemRemoved(null, e);
}
}
static void OnProjectAdded(ProjectEventArgs e)
{
if (ProjectAdded != null) {
ProjectAdded(null, e);
}
}
public static event ProjectEventHandler ProjectAdded;
public static event SolutionFolderEventHandler SolutionFolderRemoved;
public static event EventHandler StartBuild;

2
src/Main/Base/Project/Src/Services/ProjectService/SolutionFolderEventHandler.cs

@ -11,7 +11,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -11,7 +11,7 @@ namespace ICSharpCode.SharpDevelop.Project
{
public delegate void SolutionFolderEventHandler(object sender, SolutionFolderEventArgs e);
public class SolutionFolderEventArgs
public class SolutionFolderEventArgs : EventArgs
{
ISolutionFolder solutionFolder;

Loading…
Cancel
Save