Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <ward.matt@gmail.com>2015-05-12 13:18:15 +0300
committerMatt Ward <ward.matt@gmail.com>2015-05-12 13:18:15 +0300
commitfac118140b0e5facd808df00693e15821da1c3e6 (patch)
tree82d9b0a38c87c743a7300814fa238b557774f211 /main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects
parent0c38cde1f37efacb5359223f3b258796e1b06e30 (diff)
[Ide] Show .git folder in new project dialog preview.
Fixed bug #29950 - New Project Dialog: Dimmed rows in right-hand tree for hidden files and folders https://bugzilla.xamarin.com/show_bug.cgi?id=29950 Show .git folder when Use git for version control option is checked. Show .git and .gitignore icons slightly transparent to indicate they are hidden files. Show .git and .gitignore text in light grey to indicate they are hidden.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectFolderPreviewWidget.cs44
2 files changed, 42 insertions, 3 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs
index 157bdd6cf6..09a2c87f13 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectConfigurationWidget.cs
@@ -127,6 +127,7 @@ namespace MonoDevelop.Ide.Projects
{
projectConfiguration.UseGit = useGitCheckBox.Active;
createGitIgnoreFileCheckBox.Sensitive = projectConfiguration.IsGitIgnoreEnabled;
+ projectFolderPreviewWidget.ShowGitFolder ();
projectFolderPreviewWidget.ShowGitIgnoreFile ();
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectFolderPreviewWidget.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectFolderPreviewWidget.cs
index a1b51173b9..ef127652bf 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectFolderPreviewWidget.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/GtkProjectFolderPreviewWidget.cs
@@ -28,7 +28,7 @@ using System;
using Gdk;
using Gtk;
using MonoDevelop.Components;
-using MonoDevelop.Ide.Templates;
+using MonoDevelop.Core;
namespace MonoDevelop.Ide.Projects
{
@@ -39,12 +39,14 @@ namespace MonoDevelop.Ide.Projects
const string FileIconId = "md-empty-file-icon";
const int TextColumn = 1;
+ const int ImageColumn = 2;
TreeStore folderTreeStore;
TreeIter locationNode;
TreeIter projectFolderNode;
TreeIter projectNode;
TreeIter solutionFolderNode;
TreeIter solutionNode;
+ TreeIter gitFolderNode;
TreeIter gitIgnoreNode;
FinalProjectConfigurationPage projectConfiguration;
@@ -58,7 +60,7 @@ namespace MonoDevelop.Ide.Projects
void CreateFolderTreeViewColumns ()
{
- folderTreeStore = new TreeStore (typeof(string), typeof(string));
+ folderTreeStore = new TreeStore (typeof(string), typeof(string), typeof (Xwt.Drawing.Image));
folderTreeView.Model = folderTreeStore;
folderTreeView.ShowExpanders = false;
folderTreeView.LevelIndentation = 10;
@@ -68,6 +70,7 @@ namespace MonoDevelop.Ide.Projects
var iconRenderer = new CellRendererImage ();
column.PackStart (iconRenderer, false);
column.AddAttribute (iconRenderer, "stock-id", column: 0);
+ column.AddAttribute (iconRenderer, "image", ImageColumn);
var textRenderer = new CellRendererText ();
textRenderer.Ellipsize = Pango.EllipsizeMode.Middle;
@@ -115,6 +118,7 @@ namespace MonoDevelop.Ide.Projects
solutionNode = folderTreeStore.AppendValues (solutionFolderNode, FileIconId, projectConfiguration.DefaultPreviewSolutionFileName);
projectFolderNode = folderTreeStore.AppendValues (solutionFolderNode, FolderIconId, projectConfiguration.DefaultPreviewProjectName);
+ gitFolderNode = AddGitFolderToTree ();
gitIgnoreNode = AddGitIgnoreToTree ();
projectNode = folderTreeStore.AppendValues (projectFolderNode, FileIconId, projectConfiguration.DefaultPreviewProjectFileName);
}
@@ -124,6 +128,7 @@ namespace MonoDevelop.Ide.Projects
UpdateLocation ();
UpdateSolutionName ();
UpdateProjectName ();
+ ShowGitFolder ();
ShowGitIgnoreFile ();
}
@@ -140,6 +145,7 @@ namespace MonoDevelop.Ide.Projects
solutionNode = folderTreeStore.AppendValues (projectFolderNode, FileIconId, projectConfiguration.DefaultPreviewSolutionFileName);
}
+ gitFolderNode = AddGitFolderToTree ();
gitIgnoreNode = AddGitIgnoreToTree ();
}
@@ -162,17 +168,37 @@ namespace MonoDevelop.Ide.Projects
solutionNode = folderTreeStore.AppendValues (solutionFolderNode, FileIconId, projectConfiguration.DefaultPreviewSolutionFileName);
projectFolderNode = TreeIter.Zero;
+ gitFolderNode = TreeIter.Zero;
gitIgnoreNode = TreeIter.Zero;
projectNode = TreeIter.Zero;
}
+ TreeIter AddGitFolderToTree ()
+ {
+ TreeIter parent = solutionFolderNode;
+ if (parent.Equals (TreeIter.Zero)) {
+ parent = projectFolderNode;
+ }
+ return folderTreeStore.InsertWithValues (parent, 0, IconId.Null, GetLightTextMarkup (".git"), GetTransparentIcon (FolderIconId));
+ }
+
+ static Xwt.Drawing.Image GetTransparentIcon (IconId iconId)
+ {
+ return ImageService.GetIcon (iconId, IconSize.Menu).WithAlpha (0.3);
+ }
+
TreeIter AddGitIgnoreToTree ()
{
TreeIter parent = solutionFolderNode;
if (parent.Equals (TreeIter.Zero)) {
parent = projectFolderNode;
}
- return folderTreeStore.InsertWithValues (parent, 0, FileIconId, ".gitignore");
+ return folderTreeStore.InsertWithValues (parent, 1, IconId.Null, GetLightTextMarkup (".gitignore"), GetTransparentIcon (FileIconId));
+ }
+
+ static string GetLightTextMarkup (string text)
+ {
+ return String.Format ("<span color='#AAAAAA'>{0}</span>", text);
}
public void UpdateLocation ()
@@ -216,6 +242,18 @@ namespace MonoDevelop.Ide.Projects
UpdateTextColumn (solutionNode, solutionFileName);
}
+ public void ShowGitFolder ()
+ {
+ if (projectConfiguration.IsUseGitEnabled && projectConfiguration.UseGit && projectConfiguration.IsNewSolution) {
+ if (gitFolderNode.Equals (TreeIter.Zero)) {
+ gitFolderNode = AddGitFolderToTree ();
+ }
+ } else if (!gitFolderNode.Equals (TreeIter.Zero)) {
+ folderTreeStore.Remove (ref gitFolderNode);
+ gitFolderNode = TreeIter.Zero;
+ }
+ }
+
public void ShowGitIgnoreFile ()
{
if (projectConfiguration.IsGitIgnoreEnabled && projectConfiguration.CreateGitIgnoreFile && projectConfiguration.IsNewSolution) {