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:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2014-04-23 03:11:06 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2014-04-23 03:11:06 +0400
commit1212e5945cd664a53e9145cef3d7f23d96d531da (patch)
tree555d073f596f402796dcbdb25452ea70eff6f6ae /main/src/core/MonoDevelop.Ide
parent9091b37d00f18816d95e117c0a40c301aadc8ccd (diff)
[Ide] Try to prevent bad policy names
Disallow creating and loading policies with empty names. BXC19194 - Adding new policy shows error 'System.Reflection.TargetInvocationException'.
Diffstat (limited to 'main/src/core/MonoDevelop.Ide')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs12
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewPolicySetDialog.cs6
3 files changed, 13 insertions, 7 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs
index 91e259e80b..eaac1af0c3 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/DefaultPolicyOptionsDialog.cs
@@ -179,10 +179,10 @@ namespace MonoDevelop.Ide.Projects
NewPolicySetDialog dlg = new NewPolicySetDialog (new List<PolicySet> (esets));
try {
- if (MessageService.RunCustomDialog (dlg, this) == (int) Gtk.ResponseType.Ok) {
+ if (MessageService.RunCustomDialog (dlg, this) == (int) ResponseType.Ok) {
PolicySet pset = new PolicySet ();
pset.CopyFrom (dlg.SourceSet);
- pset.Name = dlg.PolicyName;
+ pset.Name = GetUnusedName (dlg.PolicyName);
sets.Add (pset);
FillPolicySets ();
policiesCombo.Active = sets.IndexOf (pset);
@@ -199,7 +199,7 @@ namespace MonoDevelop.Ide.Projects
if (MessageService.RunCustomDialog (dlg, this) == (int) Gtk.ResponseType.Ok) {
PolicySet pset = new PolicySet ();
pset.CopyFrom (dlg.SelectedItem.Policies);
- pset.Name = GetValidName (dlg.PolicyName);
+ pset.Name = GetUnusedName (dlg.PolicyName);
sets.Add (pset);
FillPolicySets ();
policiesCombo.Active = sets.IndexOf (pset);
@@ -223,7 +223,7 @@ namespace MonoDevelop.Ide.Projects
pset.LoadFromFile (dlg.SelectedFile);
if (string.IsNullOrEmpty (pset.Name))
pset.Name = dlg.SelectedFile.FileNameWithoutExtension;
- pset.Name = GetValidName (pset.Name);
+ pset.Name = GetUnusedName (pset.Name);
sets.Add (pset);
ExportProjectPolicyDialog.DefaultFileDialogPolicyDir = dlg.SelectedFile.ParentDirectory;
FillPolicySets ();
@@ -234,7 +234,7 @@ namespace MonoDevelop.Ide.Projects
}
}
- string GetValidName (string name)
+ string GetUnusedName (string name)
{
string finalName = name;
int n = 1;
@@ -292,7 +292,7 @@ namespace MonoDevelop.Ide.Projects
((ListStore)policiesCombo.Model).Clear ();
policiesCombo.WidthRequest = -1;
- sets.Sort ((p1,p2) => p1.Name.CompareTo(p2.Name));
+ sets.Sort ((p1, p2) => string.Compare (p1.Name, p2.Name, StringComparison.CurrentCulture));
foreach (PolicySet pset in sets) {
policiesCombo.AppendText (pset.Name ?? "");
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs
index 9863154e32..576b13aa4f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs
@@ -96,7 +96,7 @@ namespace MonoDevelop.Ide.Projects
UpdateWidgets ();
}
- protected void OnButtonOkClicked (object sender, System.EventArgs e)
+ protected void OnButtonOkClicked (object sender, EventArgs e)
{
if (radioCustom.Active) {
if (entryName.Text.Length == 0) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewPolicySetDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewPolicySetDialog.cs
index ba0451c16e..43933126e2 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewPolicySetDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewPolicySetDialog.cs
@@ -36,10 +36,16 @@ namespace MonoDevelop.Ide.Projects
public NewPolicySetDialog (List<PolicySet> sets)
{
this.Build ();
+
this.sets = sets;
foreach (var ps in sets)
comboSets.AppendText (ps.Name);
comboSets.Active = 0;
+
+ buttonOk.Sensitive = false;
+ entryName.Changed += delegate {
+ buttonOk.Sensitive = !string.IsNullOrWhiteSpace (entryName.Text);
+ };
}
public string PolicyName {