Browse Source

Fix project templates not installing NuGet packages.

Adding a project template into an existing solution was running the
template actions before the project was added to the solution.
Rename AddExitingProjectToSolution class to AddExistingProjectToSolution.
pull/30/head
Matt Ward 13 years ago
parent
commit
401e6b907e
  1. 16
      src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.cs
  2. 5
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/SolutionNodeCommands.cs
  3. 2
      src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs
  4. 2
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

16
src/Main/Base/Project/Src/Gui/Dialogs/NewProjectDialog.cs

@ -11,12 +11,10 @@ using ICSharpCode.Core; @@ -11,12 +11,10 @@ using ICSharpCode.Core;
using ICSharpCode.Core.WinForms;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Internal.Templates;
using ICSharpCode.SharpDevelop.Project.Commands;
namespace ICSharpCode.SharpDevelop.Project.Dialogs
{
/// <summary>
/// Description of NewProjectDialog.
/// </summary>
public partial class NewProjectDialog : Form
{
protected List<TemplateItem> alltemplates = new List<TemplateItem>();
@ -94,7 +92,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -94,7 +92,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
categoryTreeView.SelectedNode = TreeViewHelper.GetNodeByPath(categoryTreeView, PropertyService.Get("Dialogs.NewProjectDialog.LastSelectedCategory", initialSelectedCategory));
}
void InsertCategories(TreeNode node, IEnumerable<Category> catarray)
{
foreach (Category cat in catarray) {
@ -278,6 +275,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -278,6 +275,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
public string NewProjectLocation;
public string NewSolutionLocation;
public ISolutionFolderNode SolutionFolderNode { get; set; }
string CheckProjectName(string solution, string name, string location)
{
@ -300,14 +298,12 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -300,14 +298,12 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
void OpenEvent(object sender, EventArgs e)
{
if (categoryTreeView.SelectedNode != null) {
PropertyService.Set("Dialogs.NewProjectDialog.LastSelectedCategory", TreeViewHelper.GetPath(categoryTreeView.SelectedNode));
PropertyService.Set("Dialogs.NewProjectDialog.CategoryTreeState", TreeViewHelper.GetViewStateString(categoryTreeView));
PropertyService.Set("Dialogs.NewProjectDialog.LargeImages", largeIconsRadioButton.Checked);
}
string solution = solutionNameTextBox.Text.Trim();
string name = nameTextBox.Text.Trim();
string location = locationTextBox.Text.Trim();
@ -322,7 +318,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -322,7 +318,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
try {
System.IO.Directory.CreateDirectory(NewProjectDirectory);
} catch (Exception) {
MessageService.ShowError("${res:ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.CantCreateDirectoryError}");
return;
}
@ -342,7 +337,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -342,7 +337,6 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
}
cinfo.ProjectBasePath = NewProjectDirectory;
cinfo.SolutionName = solution;
cinfo.ProjectName = name;
@ -350,12 +344,16 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -350,12 +344,16 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
if (NewSolutionLocation == null || NewSolutionLocation.Length == 0) {
return;
}
NewProjectLocation = cinfo.createdProjects.Count > 0 ? cinfo.createdProjects[0].FileName : "";
if (createNewSolution) {
ProjectService.LoadSolution(NewSolutionLocation);
} else {
AddExistingProjectToSolution.AddProject(SolutionFolderNode, NewProjectLocation);
ProjectService.SaveSolution();
}
item.Template.RunOpenActions(cinfo);
NewProjectLocation = cinfo.createdProjects.Count > 0 ? cinfo.createdProjects[0].FileName : "";
DialogResult = DialogResult.OK;
}
}

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

@ -20,6 +20,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -20,6 +20,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
ISolutionFolderNode solutionFolderNode = node as ISolutionFolderNode;
if (node != null) {
using (NewProjectDialog npdlg = new NewProjectDialog(false)) {
npdlg.SolutionFolderNode = solutionFolderNode;
npdlg.InitialProjectLocationDirectory = GetInitialDirectorySuggestion(solutionFolderNode);
// show the dialog to request project type and name
@ -28,8 +29,6 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -28,8 +29,6 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
MessageService.ShowError("No project has been created, there is nothing to add.");
return;
}
AddExitingProjectToSolution.AddProject(solutionFolderNode, npdlg.NewProjectLocation);
ProjectService.SaveSolution();
}
}
}
@ -62,7 +61,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -62,7 +61,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands
}
}
public class AddExitingProjectToSolution : AbstractMenuCommand
public class AddExistingProjectToSolution : AbstractMenuCommand
{
public static void AddProject(ISolutionFolderNode solutionFolderNode, string fileName)
{

2
src/Main/Base/Project/Src/Project/Converter/LanguageConverter.cs

@ -198,7 +198,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter @@ -198,7 +198,7 @@ namespace ICSharpCode.SharpDevelop.Project.Converter
}
while (node != null) {
if (node is ISolutionFolderNode) {
AddExitingProjectToSolution.AddProject((ISolutionFolderNode)node, targetProject.FileName);
AddExistingProjectToSolution.AddProject((ISolutionFolderNode)node, targetProject.FileName);
ProjectService.SaveSolution();
break;
}

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

@ -373,7 +373,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -373,7 +373,7 @@ namespace ICSharpCode.SharpDevelop.Project
"${res:Global.IgnoreButtonText}");
if (res == 0) {
// Add project to solution
Commands.AddExitingProjectToSolution.AddProject((ISolutionFolderNode)ProjectBrowserPad.Instance.SolutionNode, fileName);
Commands.AddExistingProjectToSolution.AddProject((ISolutionFolderNode)ProjectBrowserPad.Instance.SolutionNode, fileName);
SaveSolution();
return;
} else if (res == 1) {

Loading…
Cancel
Save