diff options
author | Lluis Sanchez <lluis@novell.com> | 2009-06-26 16:44:00 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@novell.com> | 2009-06-26 16:44:00 +0400 |
commit | 02183f781050008d8dfee6ff3dff472f52aeb937 (patch) | |
tree | 8f70887ffdb14aa8a5e9b8942e06e7ceb4775729 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad | |
parent | 32552dcd6920979cc64bc0fb64a955017bcafb28 (diff) |
* MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs: Allow
dropping files from nautilus/explorer to the project pad.
svn path=/trunk/monodevelop/; revision=136953
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs index dd36b55f02..0ea5cec9a6 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs @@ -140,9 +140,15 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad if (dataObject is ProjectFile) { ProjectFile file = (ProjectFile) dataObject; return Path.GetDirectoryName (file.Name) != targetPath && file.DependsOnFile == null; - } if (dataObject is ProjectFolder) { + } + else if (dataObject is ProjectFolder) { return ((ProjectFolder)dataObject).Path != targetPath; } + else if (dataObject is Gtk.SelectionData) { + SelectionData data = (SelectionData) dataObject; + if (data.Type == "text/uri-list") + return true; + } return false; } @@ -172,14 +178,33 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad } else if (dataObject is ProjectFile) { ProjectFile file = (ProjectFile) dataObject; - source = file.Name; + source = file.FilePath; sourceProject = file.Project; groupedChildren = file.DependentChildren; what = null; ask = false; - } else { + } + else if (dataObject is Gtk.SelectionData) { + SelectionData data = (SelectionData) dataObject; + if (data.Type != "text/uri-list") + return; + source = System.Text.Encoding.UTF8.GetString (data.Data); + string[] files = source.Split (new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); + for (int n=0; n<files.Length; n++) { + Uri uri = new Uri (files[n]); + if (uri.Scheme != "file") + return; + if (Directory.Exists (uri.LocalPath)) + return; + files[n] = uri.LocalPath; + } + + IdeApp.ProjectOperations.AddFilesToProject (targetProject, files, targetPath); + projectsToSave.Add (targetProject); return; } + else + return; if (ask) { string q; |