Author: mkrueger
Date: 2007-05-24 07:51:04 -0400 (Thu, 24 May 2007)
New Revision: 77905
Added:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Core.Gui/MonoDevelop.Core.Gui.mdp
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/Makefile.am
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/DirectoryNodeBuilder.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNode.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNodeBuilder.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionProjectNodeBuilder.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IProject.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectService.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectDescriptor.cs
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp
branches/mkrueger/monodevelop/Extras/CSharpBinding/CSharpBackendBinding.cs
Log:
Worked on project browser. Generalized the IProject interface a bit.
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Core.Gui/MonoDevelop.Core.Gui.mdp
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Core.Gui/MonoDevelop.Core.Gui.mdp
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Core.Gui/MonoDevelop.Core.Gui.mdp
2007-05-24 11:51:04 UTC (rev 77905)
@@ -92,7 +92,7 @@
<File name="./icons/Icons.16x16.ToggleBookmark" subtype="Code"
buildaction="EmbedAsResource" />
<File name="./icons/Icons.16x16.WebSearchIcon" subtype="Code"
buildaction="EmbedAsResource" />
<File name="./icons/Icons.16x16.XMLFileIcon" subtype="Code"
buildaction="EmbedAsResource" />
- <File name="./icons/Icons.16x16.ClosedDashedFolder" subtype="Code"
buildaction="EmbedAsResource" />
+ <File name="./icons/Icons.16x16.ClosedDashedFolder" subtype="Code"
buildaction="EmbedAsResource" />
<File name="./icons/Icons.16x16.DashedFile" subtype="Code"
buildaction="EmbedAsResource" />
<File name="./icons/Icons.16x16.OpenDashedFolderBitmap" subtype="Code"
buildaction="EmbedAsResource" />
<File name="./icons/Icons.32x32.CombineIcon" subtype="Code"
buildaction="EmbedAsResource" />
@@ -214,4 +214,4 @@
<DeploymentInformation strategy="File">
<excludeFiles />
</DeploymentInformation>
-</Project>
+</Project>
\ No newline at end of file
Modified: branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/Makefile.am
===================================================================
--- branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/Makefile.am
2007-05-24 11:18:14 UTC (rev 77904)
+++ branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/Makefile.am
2007-05-24 11:51:04 UTC (rev 77905)
@@ -166,6 +166,8 @@
MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionItemNodeBuilder.cs \
MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionNodeBuilder.cs \
MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionProjectNodeBuilder.cs \
+ MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs \
+ MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs \
MonoDevelop.Ide.Gui.Pads/DefaultMonitorPad.cs \
MonoDevelop.Ide.Gui.Pads/DragOperation.cs \
MonoDevelop.Ide.Gui.Pads/ErrorListPad.cs \
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Commands/ProjectCommands.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -33,6 +33,7 @@
AddNewFiles,
AddFiles,
NewFolder,
+ ExcludeFromProject,
IncludeToProject,
Build,
BuildSolution,
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/DirectoryNodeBuilder.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/DirectoryNodeBuilder.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/DirectoryNodeBuilder.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -111,8 +111,12 @@
foreach (string fileName in
Directory.GetFiles(basePath)) {
bool isInProject =
IsFileInProject(directoryNode.Project.Project, fileName);
- if (ProjectSolutionPad.Instance.ShowAllFiles ||
isInProject)
- ctx.AddChild (new FileNode
(directoryNode.Project, fileName, isInProject));
+ if (ProjectSolutionPad.Instance.ShowAllFiles ||
isInProject) {
+ if (isInProject)
+ ctx.AddChild (new FileNode
(directoryNode.Project, fileName));
+ else
+ ctx.AddChild (new
SystemFileNode (directoryNode.Project, fileName));
+ }
}
foreach (string directoryName in
Directory.GetDirectories(basePath)) {
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNode.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNode.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNode.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -39,7 +39,6 @@
{
SolutionProject solutionProject;
string fileName;
- bool isInProject;
public SolutionProject Project {
get {
@@ -47,23 +46,16 @@
}
}
- public bool IsInProject {
- get {
- return isInProject;
- }
- }
-
public string FileName {
get {
return this.fileName;
}
}
- public FileNode (SolutionProject solutionProject, string
fileName, bool isInProject)
+ public FileNode (SolutionProject solutionProject, string
fileName)
{
this.solutionProject = solutionProject;
this.fileName = fileName;
- this.isInProject = isInProject;
}
}
}
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNodeBuilder.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNodeBuilder.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/FileNodeBuilder.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -34,6 +34,7 @@
using MonoDevelop.Core;
using MonoDevelop.Ide.Commands;
using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Gui.Dialogs;
using MonoDevelop.Core.Gui;
using MonoDevelop.Core.Gui.Utils;
using MonoDevelop.Components.Commands;
@@ -52,6 +53,10 @@
get { return typeof(FileNode); }
}
+ public override string ContextMenuAddinPath {
+ get { return
"/SharpDevelop/Views/ProjectBrowser/ContextMenu/ProjectFileNode"; }
+ }
+
public override Type CommandHandlerType {
get { return typeof(FileNodeCommandHandler); }
}
@@ -80,15 +85,11 @@
if (fileNode == null)
return;
label = Path.GetFileName (fileNode.FileName);
- if (fileNode.IsInProject) {
- string ic = Services.Icons.GetImageForFile
(fileNode.FileName);
- if (ic != Stock.MiscFiles || !File.Exists
(fileNode.FileName))
- icon = Context.GetIcon (ic);
- else
- icon = FileIconLoader.GetPixbufForFile
(fileNode.FileName, 16);
- } else {
- icon = Context.GetIcon (Stock.DashedFileIcon);
- }
+ string ic = Services.Icons.GetImageForFile
(fileNode.FileName);
+ if (ic != Stock.MiscFiles || !File.Exists
(fileNode.FileName))
+ icon = Context.GetIcon (ic);
+ else
+ icon = FileIconLoader.GetPixbufForFile
(fileNode.FileName, 16);
}
public override void BuildChildNodes (ITreeBuilder ctx, object
dataObject)
@@ -110,6 +111,63 @@
public class FileNodeCommandHandler: NodeCommandHandler
{
+ public override void RenameItem (string newName)
+ {
+ FileNode fileNode = CurrentNode.DataItem as FileNode;
+ if (fileNode == null)
+ return;
+
+ string oldPath = fileNode.FileName;
+ string newPath = Path.Combine (Path.GetDirectoryName
(oldPath), newName);
+
+ if (oldPath != newPath) {
+ try {
+ if (Runtime.FileService.IsValidFileName
(newPath)) {
+ Runtime.FileService.RenameFile
(oldPath, newName);
+ ProjectService.SaveSolution ();
+ }
+ } catch (System.IO.IOException) { // assume
duplicate file
+ Services.MessageService.ShowError
(GettextCatalog.GetString ("File or directory name is already in use, choose a
different one."));
+ } catch (System.ArgumentException) { // new
file name with wildcard (*, ?) characters in it
+ Services.MessageService.ShowError
(GettextCatalog.GetString ("The file name you have chosen contains illegal
characters. Please choose a different file name."));
+ }
+ }
+ }
+
+ [CommandHandler (EditCommands.Delete)]
+ public void RemoveItem ()
+ {
+ FileNode fileNode = CurrentNode.DataItem as FileNode;
+ if (fileNode == null)
+ return;
+ DeleteFileDialog deleteDialog = new DeleteFileDialog
(GettextCatalog.GetString ("Are you sure you want to remove file {0} from
project {1}?", Path.GetFileName (fileNode.FileName), fileNode.Project.Name));
+ try {
+ bool dialogResult = deleteDialog.Run ();
+ if (!dialogResult)
+ return;
+ Runtime.FileService.DeleteFile
(fileNode.FileName);
+ ProjectService.SaveSolution ();
+ } finally {
+ deleteDialog.Destroy ();
+ }
+ }
+
+ [CommandHandler (ProjectCommands.ExcludeFromProject)]
+ public void ExcludeFromProject ()
+ {
+ FileNode fileNode = CurrentNode.DataItem as FileNode;
+ if (fileNode == null)
+ return;
+ foreach (ProjectItem item in
fileNode.Project.Project.Items) {
+ string fileName = Path.GetFullPath
(Path.Combine (fileNode.Project.Project.BasePath, SolutionProject.NormalizePath
(item.Include)));
+ if (fileName == fileNode.FileName) {
+ fileNode.Project.Project.Items.Remove
(item);
+ ProjectService.SaveProject
(fileNode.Project.Project);
+ break;
+ }
+ }
+ }
+
public override void ActivateItem ()
{
FileNode fileNode = CurrentNode.DataItem as FileNode;
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionProjectNodeBuilder.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionProjectNodeBuilder.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SolutionProjectNodeBuilder.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -98,8 +98,12 @@
foreach (string fileName in
Directory.GetFiles(basePath)) {
bool isInProject =
DirectoryNodeBuilder.IsFileInProject(solutionProject.Project, fileName);
- if (ProjectSolutionPad.Instance.ShowAllFiles ||
isInProject)
- ctx.AddChild (new FileNode
(solutionProject, fileName, isInProject));
+ if (ProjectSolutionPad.Instance.ShowAllFiles ||
isInProject) {
+ if (isInProject)
+ ctx.AddChild (new FileNode
(solutionProject, fileName));
+ else
+ ctx.AddChild (new
SystemFileNode (solutionProject, fileName));
+ }
}
foreach (string directoryName in
Directory.GetDirectories(basePath)) {
Added:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -0,0 +1,61 @@
+//
+// SystemFileNode.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.IO;
+
+using MonoDevelop.Ide.Projects;
+using MonoDevelop.Ide.Projects.Item;
+
+namespace MonoDevelop.Ide.Gui.Pads.SolutionViewPad
+{
+ public class SystemFileNode
+ {
+ SolutionProject solutionProject;
+ string fileName;
+
+ public SolutionProject Project {
+ get {
+ return this.solutionProject;
+ }
+ }
+
+ public string FileName {
+ get {
+ return this.fileName;
+ }
+ }
+
+ public SystemFileNode (SolutionProject solutionProject, string
fileName)
+ {
+ this.solutionProject = solutionProject;
+ this.fileName = fileName;
+ }
+ }
+}
Added:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -0,0 +1,107 @@
+//
+// SystemFileNodeBuilder.cs
+//
+// Author:
+// Mike Krüger <[EMAIL PROTECTED]>
+//
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Collections;
+using System.IO;
+
+using MonoDevelop.Ide.Projects;
+using MonoDevelop.Core;
+using MonoDevelop.Ide.Commands;
+using MonoDevelop.Ide.Gui;
+using MonoDevelop.Ide.Gui.Dialogs;
+using MonoDevelop.Core.Gui;
+using MonoDevelop.Core.Gui.Utils;
+using MonoDevelop.Components.Commands;
+using MonoDevelop.Ide.Gui.Search;
+using MonoDevelop.Ide.Projects.Item;
+
+namespace MonoDevelop.Ide.Gui.Pads.SolutionViewPad
+{
+ public class SystemFileNodeBuilder : TypeNodeBuilder
+ {
+ public SystemFileNodeBuilder ()
+ {
+ }
+
+ public override Type NodeDataType {
+ get { return typeof(SystemFileNode); }
+ }
+
+ public override string ContextMenuAddinPath {
+ get { return
"/SharpDevelop/Views/ProjectBrowser/ContextMenu/SystemFileNode"; }
+ }
+
+ public override Type CommandHandlerType {
+ get { return typeof(SystemFileNodeCommandHandler); }
+ }
+
+ public override string GetNodeName (ITreeNavigator thisNode,
object dataObject)
+ {
+ SystemFileNode systemFileNode = dataObject as
SystemFileNode;
+ if (systemFileNode == null)
+ return "FileNode";
+
+ return Path.GetFileName (systemFileNode.FileName);
+ }
+
+ public override void GetNodeAttributes (ITreeNavigator
treeNavigator, object dataObject, ref NodeAttributes attributes)
+ {
+ attributes |= NodeAttributes.AllowRename;
+ }
+
+ public override void BuildNode (ITreeBuilder treeBuilder,
object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf
closedIcon)
+ {
+ SystemFileNode systemFileNode = dataObject as
SystemFileNode;
+ if (systemFileNode == null)
+ return;
+ label = Path.GetFileName (systemFileNode.FileName);
+ icon = Context.GetIcon (Stock.DashedFileIcon);
+ }
+ }
+
+ public class SystemFileNodeCommandHandler: FileNodeCommandHandler
+ {
+ [CommandHandler (ProjectCommands.IncludeToProject)]
+ public void IncludeToProject ()
+ {
+ FileNode fileNode = CurrentNode.DataItem as FileNode;
+ if (fileNode == null)
+ return;
+ foreach (ProjectItem item in
fileNode.Project.Project.Items) {
+ string fileName = Path.GetFullPath
(Path.Combine (fileNode.Project.Project.BasePath, SolutionProject.NormalizePath
(item.Include)));
+ if (fileName == fileNode.FileName) {
+ fileNode.Project.Project.Items.Remove
(item);
+ ProjectService.SaveProject
(fileNode.Project.Project);
+ break;
+ }
+ }
+ }
+ }
+}
+
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IProject.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IProject.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/IProject.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -57,41 +57,6 @@
get;
}
- string Configuration {
- get;
- set;
- }
-
- string Platform {
- get;
- set;
- }
-
- string AssemblyName {
- get;
- set;
- }
-
- string RootNamespace {
- get;
- set;
- }
-
- string OutputType {
- get;
- set;
- }
-
- string OutputPath {
- get;
- set;
- }
-
- string DefineConstants {
- get;
- set;
- }
-
void Save ();
}
}
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectService.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectService.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ProjectService.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -45,7 +45,8 @@
{
public static class ProjectService
{
- static Solution solution;
+ static Solution solution;
+ static string solutionFileName;
static SolutionProject activeProject;
public static Solution Solution {
@@ -67,8 +68,8 @@
public static IAsyncOperation OpenSolution (string fileName)
{
+ solutionFileName = fileName;
solution = Solution.Load (fileName);
- Console.WriteLine ("loaded : " + solution);
ActiveProject = null;
OnSolutionOpened (new SolutionEventArgs (solution));
return NullAsyncOperation.Success;
@@ -84,6 +85,17 @@
}
}
+ public static void SaveProject (IProject project)
+ {
+ project.Save ();
+ }
+
+ public static void SaveSolution ()
+ {
+ if (Solution != null)
+ Solution.Save (solutionFileName);
+ }
+
public static bool IsSolution (string fileName)
{
return Path.GetExtension (fileName) == ".sln";
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectDescriptor.cs
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectDescriptor.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.Templates/ProjectDescriptor.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -78,7 +78,7 @@
}
//Project_ project =
Services.ProjectService.CreateProject (projectType, projectCreateInformation,
projectOptions);
- IProject project = new MSBuildProject ();
+ MSBuildProject project = new MSBuildProject ();
if (project == null) {
Services.MessageService.ShowError
(GettextCatalog.GetString ("Can't create project with type : {0}",
projectType));
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml
===================================================================
---
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml
2007-05-24 11:18:14 UTC (rev 77904)
+++
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.addin.xml
2007-05-24 11:51:04 UTC (rev 77905)
@@ -339,6 +339,8 @@
icon = "md-new-folder-icon" />
<Command id =
"MonoDevelop.Ide.Commands.ProjectCommands.IncludeToProject"
_label = "Include To Project" />
+ <Command id =
"MonoDevelop.Ide.Commands.ProjectCommands.ExcludeFromProject"
+ _label = "Exclude From Project" />
<Command id =
"MonoDevelop.Ide.Commands.ProjectCommands.BuildSolution"
defaultHandler =
"MonoDevelop.Ide.Commands.BuildSolutionHandler"
_label = "Buil_d Solution"
@@ -723,16 +725,18 @@
<CommandItem id =
"MonoDevelop.Ide.Commands.ViewCommands.OpenWithList" />
</ItemSet>
<SeparatorItem id = "OpenSeparator" />
+ <!--
<ItemSet id = "Include" _label = "Include">
<CommandItem id =
"MonoDevelop.Ide.Commands.ProjectCommands.IncludeInBuild" />
<CommandItem id =
"MonoDevelop.Ide.Commands.ProjectCommands.IncludeInDeploy" />
- </ItemSet>
- <SeparatorItem id = "IncludeSeparator" />
+ </ItemSet>
+ <SeparatorItem id = "IncludeSeparator" /> -->
<CommandItem id = "MonoDevelop.Ide.Commands.EditCommands.Copy"
/>
<CommandItem id = "MonoDevelop.Ide.Commands.EditCommands.Cut" />
<SeparatorItem id = "CutSeparator" />
<CommandItem id =
"MonoDevelop.Ide.Commands.EditCommands.Delete" />
<CommandItem id =
"MonoDevelop.Ide.Commands.EditCommands.Rename" />
+ <CommandItem id =
"MonoDevelop.Ide.Commands.ProjectCommands.ExcludeFromProject" />
</Extension>
<Extension path =
"/SharpDevelop/Views/ProjectBrowser/ContextMenu/SystemFileNode"
extension-nodes="CommandItem, SeparatorItem, ItemSet, LinkItem,
LocalCommandItem" description="Context menu for a file (not belonging to a
project) in the solution pad.">
@@ -834,6 +838,7 @@
<NodeBuilder class =
"MonoDevelop.Ide.Gui.Pads.SolutionViewPad.DirectoryNodeBuilder"/>
+ <NodeBuilder class =
"MonoDevelop.Ide.Gui.Pads.SolutionViewPad.SystemFileNodeBuilder"/>
<NodeBuilder class =
"MonoDevelop.Ide.Gui.Pads.SolutionViewPad.FileNodeBuilder"/>
<NodeBuilder class =
"MonoDevelop.Ide.Gui.Pads.SolutionViewPad.ReferenceFolderNodeBuilder"/>
Modified:
branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp
===================================================================
--- branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp
2007-05-24 11:18:14 UTC (rev 77904)
+++ branches/mkrueger/monodevelop/Core/src/MonoDevelop.Ide/MonoDevelop.Ide.mdp
2007-05-24 11:51:04 UTC (rev 77905)
@@ -331,6 +331,8 @@
<File name="./MonoDevelop.Ide.Gui.Pads.SolutionPad/ReferenceFolderNode.cs"
subtype="Code" buildaction="Compile" />
<File
name="./MonoDevelop.Ide.Gui.Pads.SolutionPad/ReferenceProjectItemNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
<File name="./MonoDevelop.Ide.Projects/BeforeCompileAction.cs"
subtype="Code" buildaction="Compile" />
+ <File name="./MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNode.cs"
subtype="Code" buildaction="Compile" />
+ <File
name="./MonoDevelop.Ide.Gui.Pads.SolutionPad/SystemFileNodeBuilder.cs"
subtype="Code" buildaction="Compile" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="False" refto="gecko-sharp,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=ccf7d78a55e9f021" />
Modified:
branches/mkrueger/monodevelop/Extras/CSharpBinding/CSharpBackendBinding.cs
===================================================================
--- branches/mkrueger/monodevelop/Extras/CSharpBinding/CSharpBackendBinding.cs
2007-05-24 11:18:14 UTC (rev 77904)
+++ branches/mkrueger/monodevelop/Extras/CSharpBinding/CSharpBackendBinding.cs
2007-05-24 11:51:04 UTC (rev 77905)
@@ -96,8 +96,9 @@
return ".dll";
}
- public override CompilerResult Compile (IProject project,
IProgressMonitor monitor)
+ public override CompilerResult Compile (IProject prj,
IProgressMonitor monitor)
{
+ MSBuildProject project = prj as MSBuildProject;
string responseFileName = Path.GetTempFileName ();
Console.WriteLine (responseFileName);
StreamWriter writer = new StreamWriter
(responseFileName);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches