diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2012-03-30 06:13:58 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2012-03-30 06:26:13 +0400 |
commit | 5b54683434e802294ca9bad6cc810c9dac91d275 (patch) | |
tree | 3bc11a7ae453358de5bdecec9db2b91caf7cbf0e | |
parent | cb2e011faae0fed555eea802ab7ed45b2ce0b167 (diff) |
[Ide] Improve validation in import/export policy dialogs
Still not perfect - would be good to have more validation messages -
but at least we avoid a lot of error dialogs now.
5 files changed, 583 insertions, 399 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ApplyPolicyDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ApplyPolicyDialog.cs index 52b5965279..cf73fb24a5 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ApplyPolicyDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ApplyPolicyDialog.cs @@ -37,11 +37,17 @@ namespace MonoDevelop.Ide.Projects { IPolicyProvider policyProvider; + PoliciesListSummaryTree tree; + public ApplyPolicyDialog (IPolicyProvider policyProvider) { - this.Build (); this.policyProvider = policyProvider; + this.Build (); + tree = new PoliciesListSummaryTree (); + policiesScroll.Add (tree); + tree.Show (); + foreach (PolicySet pset in PolicyService.GetPolicySets ()) if (pset.Visible) combPolicies.AppendText (pset.Name); @@ -63,11 +69,22 @@ namespace MonoDevelop.Ide.Projects protected void OnButtonOkClicked (object sender, System.EventArgs e) { - PolicySet pset = GetPolicySet (true); - if (pset != null) { + PolicySet pset = null; + try { + pset = GetPolicySet (true); policyProvider.Policies.Import (pset, false); - Respond (Gtk.ResponseType.Ok); + } catch (Exception ex) { + string msg; + if (pset == null) { + msg = GettextCatalog.GetString ("The policy set could not be loaded"); + } else { + msg = GettextCatalog.GetString ("The policy set could not be applied"); + } + MessageService.ShowException (ex, msg); + Respond (Gtk.ResponseType.Cancel); + return; } + Respond (Gtk.ResponseType.Ok); } PolicySet GetPolicySet (bool notifyErrors) @@ -75,44 +92,39 @@ namespace MonoDevelop.Ide.Projects if (radioCustom.Active) { return PolicyService.GetPolicySet (combPolicies.ActiveText); } - else { - if (string.IsNullOrEmpty (fileEntry.Path)) { - if (notifyErrors) - MessageService.ShowError (GettextCatalog.GetString ("File name not specified")); - return null; - } - try { - PolicySet pset = new PolicySet (); - pset.LoadFromFile (fileEntry.Path); - ExportProjectPolicyDialog.DefaultFileDialogPolicyDir = System.IO.Path.GetDirectoryName (fileEntry.Path); - return pset; - } catch (Exception ex) { - if (notifyErrors) - MessageService.ShowException (ex, GettextCatalog.GetString ("The policy set could not be loaded")); - return null; - } + + var f = fileEntry.Path; + if (string.IsNullOrEmpty (f) || !System.IO.File.Exists (f)) { + return null; } + + var pset = new PolicySet (); + pset.LoadFromFile (fileEntry.Path); + ExportProjectPolicyDialog.DefaultFileDialogPolicyDir = System.IO.Path.GetDirectoryName (fileEntry.Path); + return pset; } void UpdateContentLabels () { PolicySet pset = GetPolicySet (false); - if (pset == null) { - labelChangesTitle.Hide (); - if (radioFile.Active) { - if (string.IsNullOrEmpty (fileEntry.Path) || !System.IO.File.Exists (fileEntry.Path)) { - labelChanges.Text = GettextCatalog.GetString ("Please select a valid policy file"); - } - else { - labelChanges.Text = GettextCatalog.GetString ("The selected file is not a valid policies file"); - } - } - else - labelChanges.Text = string.Empty; + tree.SetPolicies (pset); + if (tree.HasPolicies) { + buttonOk.Sensitive = true; return; } - labelChangesTitle.Show (); - labelChanges.Text = GetPoliciesDescription (pset); + + if (pset != null) { + tree.Message = GettextCatalog.GetString ("The selected policy is empty"); + } else if (radioFile.Active) { + if (string.IsNullOrEmpty (fileEntry.Path) || !System.IO.File.Exists (fileEntry.Path)) { + tree.Message = GettextCatalog.GetString ("Please select a valid policy file"); + } else { + tree.Message = GettextCatalog.GetString ("The selected file is not a valid policies file"); + } + } else { + tree.Message = GettextCatalog.GetString ("Please select a policy"); + } + buttonOk.Sensitive = false; } public static string GetPoliciesDescription (PolicyContainer pset) @@ -163,5 +175,104 @@ namespace MonoDevelop.Ide.Projects UpdateContentLabels (); } } -} - + + internal class PoliciesListSummaryTree : Gtk.TreeView + { + Gtk.ListStore store; + string message; + + public PoliciesListSummaryTree () : base (new Gtk.ListStore (typeof (string))) + { + CanFocus = false; + HeadersVisible = false; + store = (Gtk.ListStore) Model; + this.AppendColumn ("", new Gtk.CellRendererText (), "text", 0); + } + + protected override bool OnExposeEvent (Gdk.EventExpose evnt) + { + if (HasPolicies) { + return base.OnExposeEvent (evnt); + } + + var win = evnt.Window; + win.Clear (); + if (string.IsNullOrEmpty (message)) { + return true; + } + + using (var layout = Mono.TextEditor.PangoUtil.CreateLayout (this)) { + layout.SetMarkup ("<i>" + GLib.Markup.EscapeText (message) + "</i>"); + int w, h; + layout.GetPixelSize (out w, out h); + var a = Allocation; + var x = (a.Width - w) / 2; + var y = (a.Height - h ) / 2; + win.DrawLayout (Style.TextGC (Gtk.StateType.Normal), x, y, layout); + } + return true; + } + + public bool HasPolicies { get; private set; } + + /// <summary> + /// Message to be shown if there are no policies. + /// </summary> + public string Message { + get { return message; } + set { + message = value; + if (!HasPolicies) { + QueueDraw (); + } + } + } + + public void SetPolicies (PolicyContainer pset) + { + if (pset == null) { + store.Clear (); + HasPolicies = false; + return; + } + + var content = new Dictionary<string, List<string>> (); + foreach (var p in pset.DirectGetAll ()) { + string name = PolicyService.GetPolicyTypeDescription (p.PolicyType); + List<string> scopes; + if (!content.TryGetValue (name, out scopes)) + scopes = content [name] = new List<string> (); + scopes.Add (p.Scope ?? ""); + } + + var sorted = content.ToList (); + sorted.Sort ((x, y) => x.Key.CompareTo(y.Key)); + + store.Clear (); + + var sb = new StringBuilder (); + foreach (var pol in sorted) { + sb.Append (pol.Key); + if (pol.Value.Count != 1 || pol.Value[0].Length != 0) { + sb.Append (" ("); + bool first = true; + if (pol.Value.Remove ("")) { + sb.Append (GettextCatalog.GetString ("default settings")); + first = false; + } + foreach (var s in pol.Value) { + if (!first) + sb.Append (", "); + sb.Append (s); + first = false; + } + sb.Append (")"); + } + store.AppendValues (sb.ToString ()); + sb.Length = 0; + } + + HasPolicies = sorted.Count > 0; + } + } +}
\ No newline at end of file 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 5fe2a5e33a..911420094f 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/ExportProjectPolicyDialog.cs @@ -34,6 +34,7 @@ namespace MonoDevelop.Ide.Projects partial class ExportProjectPolicyDialog : Gtk.Dialog { IPolicyProvider policyProvider; + PoliciesListSummaryTree tree; public ExportProjectPolicyDialog (IPolicyProvider policyProvider) { @@ -49,9 +50,24 @@ namespace MonoDevelop.Ide.Projects fileEntry.FileFilters.AddFilter (GettextCatalog.GetString ("MonoDevelop policy files"), "*.mdpolicy"); fileEntry.FileFilters.AddAllFilesFilter (); - UpdateWidgets (); + fileEntry.PathChanged += delegate { + UpdateWidgets (); + }; + entryName.Changed += delegate { + UpdateWidgets (); + }; + + tree = new PoliciesListSummaryTree (); + policiesScroll.Add (tree); + tree.Show (); + + tree.SetPolicies (policyProvider.Policies); + if (!tree.HasPolicies) { + tree.Message = GettextCatalog.GetString ("No policies"); + buttonOk.Sensitive = false; + } - labelPolicies.Text = ApplyPolicyDialog.GetPoliciesDescription (policyProvider.Policies); + UpdateWidgets (); } public static FilePath DefaultFileDialogPolicyDir { @@ -61,8 +77,18 @@ namespace MonoDevelop.Ide.Projects void UpdateWidgets () { - boxCustom.Sensitive = radioCustom.Active; - boxFile.Sensitive = !radioCustom.Active; + bool custom = radioCustom.Active; + boxCustom.Sensitive = custom; + boxFile.Sensitive = !custom; + + bool valid; + if (custom) { + valid = !string.IsNullOrWhiteSpace (entryName.Text); + } else { + valid = !string.IsNullOrWhiteSpace (fileEntry.Path); + } + + buttonOk.Sensitive = tree.HasPolicies && valid; } protected void OnRadioCustomToggled (object sender, System.EventArgs e) diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs index 1aebeecc01..25c9f4c331 100644 --- a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs +++ b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ApplyPolicyDialog.cs @@ -5,6 +5,7 @@ namespace MonoDevelop.Ide.Projects internal partial class ApplyPolicyDialog { private global::Gtk.VBox vbox3; + private global::Gtk.VBox vbox2; private global::Gtk.RadioButton radioCustom; private global::Gtk.Alignment boxCustom; private global::Gtk.HBox hbox1; @@ -15,9 +16,9 @@ namespace MonoDevelop.Ide.Projects private global::Gtk.HBox hbox2; private global::Gtk.Label label3; private global::MonoDevelop.Components.FileEntry fileEntry; - private global::Gtk.HSeparator hseparator1; + private global::Gtk.VBox vbox4; private global::Gtk.Label labelChangesTitle; - private global::Gtk.Label labelChanges; + private global::Gtk.ScrolledWindow policiesScroll; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; @@ -35,21 +36,25 @@ namespace MonoDevelop.Ide.Projects // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox3 = new global::Gtk.VBox (); this.vbox3.Name = "vbox3"; - this.vbox3.Spacing = 6; + this.vbox3.Spacing = 16; this.vbox3.BorderWidth = ((uint)(12)); // Container child vbox3.Gtk.Box+BoxChild + this.vbox2 = new global::Gtk.VBox (); + this.vbox2.Name = "vbox2"; + this.vbox2.Spacing = 6; + // Container child vbox2.Gtk.Box+BoxChild this.radioCustom = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Apply stock or custom policy set")); this.radioCustom.CanFocus = true; this.radioCustom.Name = "radioCustom"; this.radioCustom.DrawIndicator = true; this.radioCustom.UseUnderline = true; this.radioCustom.Group = new global::GLib.SList (global::System.IntPtr.Zero); - this.vbox3.Add (this.radioCustom); - global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.radioCustom])); + this.vbox2.Add (this.radioCustom); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.radioCustom])); w2.Position = 0; w2.Expand = false; w2.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild + // Container child vbox2.Gtk.Box+BoxChild this.boxCustom = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.boxCustom.Name = "boxCustom"; this.boxCustom.LeftPadding = ((uint)(42)); @@ -75,24 +80,24 @@ namespace MonoDevelop.Ide.Projects w4.Expand = false; w4.Fill = false; this.boxCustom.Add (this.hbox1); - this.vbox3.Add (this.boxCustom); - global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.boxCustom])); + this.vbox2.Add (this.boxCustom); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.boxCustom])); w6.Position = 1; w6.Expand = false; w6.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild + // Container child vbox2.Gtk.Box+BoxChild this.radioFile = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Apply policies from file")); this.radioFile.CanFocus = true; this.radioFile.Name = "radioFile"; this.radioFile.DrawIndicator = true; this.radioFile.UseUnderline = true; this.radioFile.Group = this.radioCustom.Group; - this.vbox3.Add (this.radioFile); - global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.radioFile])); + this.vbox2.Add (this.radioFile); + global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.radioFile])); w7.Position = 2; w7.Expand = false; w7.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild + // Container child vbox2.Gtk.Box+BoxChild this.boxFile = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.boxFile.Name = "boxFile"; this.boxFile.LeftPadding = ((uint)(42)); @@ -117,47 +122,50 @@ namespace MonoDevelop.Ide.Projects global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.fileEntry])); w9.Position = 1; this.boxFile.Add (this.hbox2); - this.vbox3.Add (this.boxFile); - global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.boxFile])); + this.vbox2.Add (this.boxFile); + global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.boxFile])); w11.Position = 3; w11.Expand = false; w11.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild - this.hseparator1 = new global::Gtk.HSeparator (); - this.hseparator1.Name = "hseparator1"; - this.vbox3.Add (this.hseparator1); - global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.hseparator1])); - w12.Position = 4; + this.vbox3.Add (this.vbox2); + global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.vbox2])); + w12.Position = 0; w12.Expand = false; w12.Fill = false; // Container child vbox3.Gtk.Box+BoxChild + this.vbox4 = new global::Gtk.VBox (); + this.vbox4.Name = "vbox4"; + this.vbox4.Spacing = 6; + // Container child vbox4.Gtk.Box+BoxChild this.labelChangesTitle = new global::Gtk.Label (); this.labelChangesTitle.Name = "labelChangesTitle"; this.labelChangesTitle.Xalign = 0F; - this.labelChangesTitle.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("The following policies will be set or replaced:"); - this.vbox3.Add (this.labelChangesTitle); - global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.labelChangesTitle])); - w13.Position = 5; + this.labelChangesTitle.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("Policies to set or replace:"); + this.vbox4.Add (this.labelChangesTitle); + global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.labelChangesTitle])); + w13.Position = 0; w13.Expand = false; w13.Fill = false; - // Container child vbox3.Gtk.Box+BoxChild - this.labelChanges = new global::Gtk.Label (); - this.labelChanges.Name = "labelChanges"; - this.labelChanges.Xalign = 0F; - this.vbox3.Add (this.labelChanges); - global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.labelChanges])); - w14.Position = 6; + // Container child vbox4.Gtk.Box+BoxChild + this.policiesScroll = new global::Gtk.ScrolledWindow (); + this.policiesScroll.CanFocus = true; + this.policiesScroll.Name = "policiesScroll"; + this.policiesScroll.ShadowType = ((global::Gtk.ShadowType)(1)); + this.vbox4.Add (this.policiesScroll); + global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.policiesScroll])); + w14.Position = 1; + this.vbox3.Add (this.vbox4); + global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.vbox4])); + w15.Position = 1; w1.Add (this.vbox3); - global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox3])); - w15.Position = 0; - w15.Expand = false; - w15.Fill = false; + global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox3])); + w16.Position = 0; // Internal child MonoDevelop.Ide.Projects.ApplyPolicyDialog.ActionArea - global::Gtk.HButtonBox w16 = this.ActionArea; - w16.Name = "dialog1_ActionArea"; - w16.Spacing = 10; - w16.BorderWidth = ((uint)(5)); - w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + global::Gtk.HButtonBox w17 = this.ActionArea; + w17.Name = "dialog1_ActionArea"; + w17.Spacing = 10; + w17.BorderWidth = ((uint)(5)); + w17.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; @@ -167,27 +175,26 @@ namespace MonoDevelop.Ide.Projects this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); - global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonCancel])); - w17.Expand = false; - w17.Fill = false; + global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonCancel])); + w18.Expand = false; + w18.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; - this.buttonOk.UseStock = true; this.buttonOk.UseUnderline = true; - this.buttonOk.Label = "gtk-apply"; - w16.Add (this.buttonOk); - global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonOk])); - w18.Position = 1; - w18.Expand = false; - w18.Fill = false; + this.buttonOk.Label = global::MonoDevelop.Core.GettextCatalog.GetString ("_Apply policies"); + w17.Add (this.buttonOk); + global::Gtk.ButtonBox.ButtonBoxChild w19 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonOk])); + w19.Position = 1; + w19.Expand = false; + w19.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } - this.DefaultWidth = 479; - this.DefaultHeight = 258; + this.DefaultWidth = 475; + this.DefaultHeight = 325; this.Hide (); this.radioCustom.Toggled += new global::System.EventHandler (this.OnRadioCustomToggled); this.combPolicies.Changed += new global::System.EventHandler (this.OnCombPoliciesChanged); diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ExportProjectPolicyDialog.cs b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ExportProjectPolicyDialog.cs index 9f8164452e..46ba5be5a0 100644 --- a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ExportProjectPolicyDialog.cs +++ b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Projects.ExportProjectPolicyDialog.cs @@ -5,6 +5,7 @@ namespace MonoDevelop.Ide.Projects internal partial class ExportProjectPolicyDialog { private global::Gtk.VBox vbox2; + private global::Gtk.VBox vbox4; private global::Gtk.RadioButton radioCustom; private global::Gtk.Alignment boxCustom; private global::Gtk.HBox hbox1; @@ -15,9 +16,9 @@ namespace MonoDevelop.Ide.Projects private global::Gtk.HBox hbox2; private global::Gtk.Label label3; private global::MonoDevelop.Components.FileEntry fileEntry; - private global::Gtk.HSeparator hseparator1; + private global::Gtk.VBox vbox5; private global::Gtk.Label labelChangesTitle; - private global::Gtk.Label labelPolicies; + private global::Gtk.ScrolledWindow policiesScroll; private global::Gtk.Button buttonCancel; private global::Gtk.Button buttonOk; @@ -35,21 +36,25 @@ namespace MonoDevelop.Ide.Projects // Container child dialog1_VBox.Gtk.Box+BoxChild this.vbox2 = new global::Gtk.VBox (); this.vbox2.Name = "vbox2"; - this.vbox2.Spacing = 6; + this.vbox2.Spacing = 16; this.vbox2.BorderWidth = ((uint)(12)); // Container child vbox2.Gtk.Box+BoxChild + this.vbox4 = new global::Gtk.VBox (); + this.vbox4.Name = "vbox4"; + this.vbox4.Spacing = 6; + // Container child vbox4.Gtk.Box+BoxChild this.radioCustom = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Save project policies as a new custom policy set")); this.radioCustom.CanFocus = true; this.radioCustom.Name = "radioCustom"; this.radioCustom.DrawIndicator = true; this.radioCustom.UseUnderline = true; this.radioCustom.Group = new global::GLib.SList (global::System.IntPtr.Zero); - this.vbox2.Add (this.radioCustom); - global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.radioCustom])); + this.vbox4.Add (this.radioCustom); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.radioCustom])); w2.Position = 0; w2.Expand = false; w2.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild + // Container child vbox4.Gtk.Box+BoxChild this.boxCustom = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.boxCustom.Name = "boxCustom"; this.boxCustom.LeftPadding = ((uint)(42)); @@ -79,24 +84,24 @@ namespace MonoDevelop.Ide.Projects w4.Expand = false; w4.Fill = false; this.boxCustom.Add (this.hbox1); - this.vbox2.Add (this.boxCustom); - global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.boxCustom])); + this.vbox4.Add (this.boxCustom); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.boxCustom])); w6.Position = 1; w6.Expand = false; w6.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild + // Container child vbox4.Gtk.Box+BoxChild this.radioFile = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Export policies to a file")); this.radioFile.CanFocus = true; this.radioFile.Name = "radioFile"; this.radioFile.DrawIndicator = true; this.radioFile.UseUnderline = true; this.radioFile.Group = this.radioCustom.Group; - this.vbox2.Add (this.radioFile); - global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.radioFile])); + this.vbox4.Add (this.radioFile); + global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.radioFile])); w7.Position = 2; w7.Expand = false; w7.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild + // Container child vbox4.Gtk.Box+BoxChild this.boxFile = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F); this.boxFile.Name = "boxFile"; this.boxFile.LeftPadding = ((uint)(42)); @@ -120,49 +125,50 @@ namespace MonoDevelop.Ide.Projects global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.fileEntry])); w9.Position = 1; this.boxFile.Add (this.hbox2); - this.vbox2.Add (this.boxFile); - global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.boxFile])); + this.vbox4.Add (this.boxFile); + global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox4 [this.boxFile])); w11.Position = 3; w11.Expand = false; w11.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild - this.hseparator1 = new global::Gtk.HSeparator (); - this.hseparator1.Name = "hseparator1"; - this.vbox2.Add (this.hseparator1); - global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hseparator1])); - w12.Position = 4; + this.vbox2.Add (this.vbox4); + global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.vbox4])); + w12.Position = 0; w12.Expand = false; w12.Fill = false; // Container child vbox2.Gtk.Box+BoxChild + this.vbox5 = new global::Gtk.VBox (); + this.vbox5.Name = "vbox5"; + this.vbox5.Spacing = 6; + // Container child vbox5.Gtk.Box+BoxChild this.labelChangesTitle = new global::Gtk.Label (); this.labelChangesTitle.Name = "labelChangesTitle"; this.labelChangesTitle.Xalign = 0F; - this.labelChangesTitle.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("The following policies will be exported:"); - this.vbox2.Add (this.labelChangesTitle); - global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.labelChangesTitle])); - w13.Position = 5; + this.labelChangesTitle.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("Policies to export:"); + this.vbox5.Add (this.labelChangesTitle); + global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.labelChangesTitle])); + w13.Position = 0; w13.Expand = false; w13.Fill = false; - // Container child vbox2.Gtk.Box+BoxChild - this.labelPolicies = new global::Gtk.Label (); - this.labelPolicies.Name = "labelPolicies"; - this.labelPolicies.Xalign = 0F; - this.vbox2.Add (this.labelPolicies); - global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.labelPolicies])); - w14.Position = 6; - w14.Expand = false; - w14.Fill = false; + // Container child vbox5.Gtk.Box+BoxChild + this.policiesScroll = new global::Gtk.ScrolledWindow (); + this.policiesScroll.CanFocus = true; + this.policiesScroll.Name = "policiesScroll"; + this.policiesScroll.ShadowType = ((global::Gtk.ShadowType)(1)); + this.vbox5.Add (this.policiesScroll); + global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox5 [this.policiesScroll])); + w14.Position = 1; + this.vbox2.Add (this.vbox5); + global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.vbox5])); + w15.Position = 1; w1.Add (this.vbox2); - global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2])); - w15.Position = 0; - w15.Expand = false; - w15.Fill = false; + global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2])); + w16.Position = 0; // Internal child MonoDevelop.Ide.Projects.ExportProjectPolicyDialog.ActionArea - global::Gtk.HButtonBox w16 = this.ActionArea; - w16.Name = "dialog1_ActionArea"; - w16.Spacing = 10; - w16.BorderWidth = ((uint)(5)); - w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); + global::Gtk.HButtonBox w17 = this.ActionArea; + w17.Name = "dialog1_ActionArea"; + w17.Spacing = 10; + w17.BorderWidth = ((uint)(5)); + w17.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonCancel = new global::Gtk.Button (); this.buttonCancel.CanDefault = true; @@ -172,26 +178,26 @@ namespace MonoDevelop.Ide.Projects this.buttonCancel.UseUnderline = true; this.buttonCancel.Label = "gtk-cancel"; this.AddActionWidget (this.buttonCancel, -6); - global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonCancel])); - w17.Expand = false; - w17.Fill = false; + global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonCancel])); + w18.Expand = false; + w18.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild this.buttonOk = new global::Gtk.Button (); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; this.buttonOk.UseUnderline = true; - this.buttonOk.Label = global::MonoDevelop.Core.GettextCatalog.GetString ("Export"); - w16.Add (this.buttonOk); - global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonOk])); - w18.Position = 1; - w18.Expand = false; - w18.Fill = false; + this.buttonOk.Label = global::MonoDevelop.Core.GettextCatalog.GetString ("Export policies"); + w17.Add (this.buttonOk); + global::Gtk.ButtonBox.ButtonBoxChild w19 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w17 [this.buttonOk])); + w19.Position = 1; + w19.Expand = false; + w19.Fill = false; if ((this.Child != null)) { this.Child.ShowAll (); } - this.DefaultWidth = 528; - this.DefaultHeight = 254; + this.DefaultWidth = 476; + this.DefaultHeight = 321; this.Hide (); this.radioCustom.Toggled += new global::System.EventHandler (this.OnRadioCustomToggled); this.buttonOk.Clicked += new global::System.EventHandler (this.OnButtonOkClicked); diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic b/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic index 029cef74b6..9b9ce6e0ca 100644 --- a/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic +++ b/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic @@ -2318,7 +2318,6 @@ Diagnostic</property> <property name="MemberName" /> <property name="CanFocus">True</property> <property name="Label" translatable="yes">Every hour</property> - <property name="Active">True</property> <property name="DrawIndicator">True</property> <property name="HasLabel">True</property> <property name="UseUnderline">True</property> @@ -11343,7 +11342,7 @@ Visual Studio generates a default ID for embedded resources, instead of simply u </widget> </child> </widget> - <widget class="Gtk.Dialog" id="MonoDevelop.Ide.Projects.ExportProjectPolicyDialog" design-size="528 254"> + <widget class="Gtk.Dialog" id="MonoDevelop.Ide.Projects.ExportProjectPolicyDialog" design-size="476 321"> <property name="MemberName" /> <property name="Visible">False</property> <property name="GeneratePublic">False</property> @@ -11358,172 +11357,189 @@ Visual Studio generates a default ID for embedded resources, instead of simply u <child> <widget class="Gtk.VBox" id="vbox2"> <property name="MemberName" /> - <property name="Spacing">6</property> + <property name="Spacing">16</property> <property name="BorderWidth">12</property> <child> - <widget class="Gtk.RadioButton" id="radioCustom"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Label" translatable="yes">Save project policies as a new custom policy set</property> - <property name="DrawIndicator">True</property> - <property name="HasLabel">True</property> - <property name="UseUnderline">True</property> - <property name="Group">group1</property> - <signal name="Toggled" handler="OnRadioCustomToggled" /> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Alignment" id="boxCustom"> + <widget class="Gtk.VBox" id="vbox4"> <property name="MemberName" /> - <property name="LeftPadding">42</property> + <property name="Spacing">6</property> <child> - <widget class="Gtk.HBox" id="hbox1"> + <widget class="Gtk.RadioButton" id="radioCustom"> <property name="MemberName" /> - <property name="Spacing">6</property> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes">Save project policies as a new custom policy set</property> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Toggled" handler="OnRadioCustomToggled" /> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Alignment" id="boxCustom"> + <property name="MemberName" /> + <property name="LeftPadding">42</property> <child> - <widget class="Gtk.Label" id="label2"> + <widget class="Gtk.HBox" id="hbox1"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Name:</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="label2"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">Name:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Entry" id="entryName"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="IsEditable">True</property> + <property name="WidthChars">40</property> + <property name="InvisibleChar">●</property> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">False</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <placeholder /> + </child> </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> </child> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="radioFile"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes">Export policies to a file</property> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Alignment" id="boxFile"> + <property name="MemberName" /> + <property name="LeftPadding">42</property> <child> - <widget class="Gtk.Entry" id="entryName"> + <widget class="Gtk.HBox" id="hbox2"> <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="IsEditable">True</property> - <property name="WidthChars">40</property> - <property name="InvisibleChar">●</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="label3"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">File:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="MonoDevelop.Components.FileEntry" id="fileEntry"> + <property name="MemberName" /> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">False</property> + </packing> + </child> </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">False</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <placeholder /> </child> </widget> + <packing> + <property name="Position">3</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> </child> </widget> <packing> - <property name="Position">1</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.RadioButton" id="radioFile"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Label" translatable="yes">Export policies to a file</property> - <property name="DrawIndicator">True</property> - <property name="HasLabel">True</property> - <property name="UseUnderline">True</property> - <property name="Group">group1</property> - </widget> - <packing> - <property name="Position">2</property> + <property name="Position">0</property> <property name="AutoSize">True</property> <property name="Expand">False</property> <property name="Fill">False</property> </packing> </child> <child> - <widget class="Gtk.Alignment" id="boxFile"> + <widget class="Gtk.VBox" id="vbox5"> <property name="MemberName" /> - <property name="LeftPadding">42</property> + <property name="Spacing">6</property> <child> - <widget class="Gtk.HBox" id="hbox2"> + <widget class="Gtk.Label" id="labelChangesTitle"> <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <widget class="Gtk.Label" id="label3"> - <property name="MemberName" /> - <property name="LabelProp" translatable="yes">File:</property> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> + <property name="Xalign">0</property> + <property name="LabelProp" translatable="yes">Policies to export:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.ScrolledWindow" id="policiesScroll"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShadowType">In</property> <child> - <widget class="MonoDevelop.Components.FileEntry" id="fileEntry"> + <widget class="Gtk.Viewport" id="GtkViewport"> <property name="MemberName" /> + <property name="ShadowType">None</property> + <child> + <placeholder /> + </child> </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">False</property> - </packing> </child> </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + </packing> </child> </widget> <packing> - <property name="Position">3</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.HSeparator" id="hseparator1"> - <property name="MemberName" /> - </widget> - <packing> - <property name="Position">4</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Label" id="labelChangesTitle"> - <property name="MemberName" /> - <property name="Xalign">0</property> - <property name="LabelProp" translatable="yes">The following policies will be exported:</property> - </widget> - <packing> - <property name="Position">5</property> + <property name="Position">1</property> <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Label" id="labelPolicies"> - <property name="MemberName" /> - <property name="Xalign">0</property> - </widget> - <packing> - <property name="Position">6</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> </packing> </child> </widget> <packing> <property name="Position">0</property> <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> </packing> </child> </widget> @@ -11557,7 +11573,7 @@ Visual Studio generates a default ID for embedded resources, instead of simply u <property name="CanDefault">True</property> <property name="CanFocus">True</property> <property name="Type">TextOnly</property> - <property name="Label" translatable="yes">Export</property> + <property name="Label" translatable="yes">Export policies</property> <property name="UseUnderline">True</property> <property name="ResponseId">-1</property> <signal name="Clicked" handler="OnButtonOkClicked" /> @@ -11571,7 +11587,7 @@ Visual Studio generates a default ID for embedded resources, instead of simply u </widget> </child> </widget> - <widget class="Gtk.Dialog" id="MonoDevelop.Ide.Projects.ApplyPolicyDialog" design-size="479 258"> + <widget class="Gtk.Dialog" id="MonoDevelop.Ide.Projects.ApplyPolicyDialog" design-size="475 325"> <property name="MemberName" /> <property name="Visible">False</property> <property name="GeneratePublic">False</property> @@ -11586,168 +11602,187 @@ Visual Studio generates a default ID for embedded resources, instead of simply u <child> <widget class="Gtk.VBox" id="vbox3"> <property name="MemberName" /> - <property name="Spacing">6</property> + <property name="Spacing">16</property> <property name="BorderWidth">12</property> <child> - <widget class="Gtk.RadioButton" id="radioCustom"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Label" translatable="yes">Apply stock or custom policy set</property> - <property name="DrawIndicator">True</property> - <property name="HasLabel">True</property> - <property name="UseUnderline">True</property> - <property name="Group">group1</property> - <signal name="Toggled" handler="OnRadioCustomToggled" /> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Alignment" id="boxCustom"> + <widget class="Gtk.VBox" id="vbox2"> <property name="MemberName" /> - <property name="LeftPadding">42</property> + <property name="Spacing">6</property> <child> - <widget class="Gtk.HBox" id="hbox1"> + <widget class="Gtk.RadioButton" id="radioCustom"> <property name="MemberName" /> - <property name="Spacing">6</property> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes">Apply stock or custom policy set</property> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + <signal name="Toggled" handler="OnRadioCustomToggled" /> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Alignment" id="boxCustom"> + <property name="MemberName" /> + <property name="LeftPadding">42</property> <child> - <widget class="Gtk.Label" id="label2"> + <widget class="Gtk.HBox" id="hbox1"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">Policy:</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="label2"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">Policy:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.ComboBox" id="combPolicies"> + <property name="MemberName" /> + <property name="IsTextCombo">True</property> + <property name="Items" translatable="yes" /> + <signal name="Changed" handler="OnCombPoliciesChanged" /> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> </child> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.RadioButton" id="radioFile"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="Label" translatable="yes">Apply policies from file</property> + <property name="DrawIndicator">True</property> + <property name="HasLabel">True</property> + <property name="UseUnderline">True</property> + <property name="Group">group1</property> + </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.Alignment" id="boxFile"> + <property name="MemberName" /> + <property name="LeftPadding">42</property> <child> - <widget class="Gtk.ComboBox" id="combPolicies"> + <widget class="Gtk.HBox" id="hbox2"> <property name="MemberName" /> - <property name="IsTextCombo">True</property> - <property name="Items" translatable="yes" /> - <signal name="Changed" handler="OnCombPoliciesChanged" /> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="label3"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">File:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="MonoDevelop.Components.FileEntry" id="fileEntry"> + <property name="MemberName" /> + <property name="BrowserTitle">Select Policy Set File</property> + <signal name="PathChanged" handler="OnFileEntryPathChanged" /> + </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">False</property> + </packing> + </child> </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> </child> </widget> + <packing> + <property name="Position">3</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> </child> </widget> <packing> - <property name="Position">1</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.RadioButton" id="radioFile"> - <property name="MemberName" /> - <property name="CanFocus">True</property> - <property name="Label" translatable="yes">Apply policies from file</property> - <property name="DrawIndicator">True</property> - <property name="HasLabel">True</property> - <property name="UseUnderline">True</property> - <property name="Group">group1</property> - </widget> - <packing> - <property name="Position">2</property> + <property name="Position">0</property> <property name="AutoSize">True</property> <property name="Expand">False</property> <property name="Fill">False</property> </packing> </child> <child> - <widget class="Gtk.Alignment" id="boxFile"> + <widget class="Gtk.VBox" id="vbox4"> <property name="MemberName" /> - <property name="LeftPadding">42</property> + <property name="Spacing">6</property> <child> - <widget class="Gtk.HBox" id="hbox2"> + <widget class="Gtk.Label" id="labelChangesTitle"> <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <widget class="Gtk.Label" id="label3"> - <property name="MemberName" /> - <property name="LabelProp" translatable="yes">File:</property> - </widget> - <packing> - <property name="Position">0</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> + <property name="Xalign">0</property> + <property name="LabelProp" translatable="yes">Policies to set or replace:</property> + </widget> + <packing> + <property name="Position">0</property> + <property name="AutoSize">True</property> + <property name="Expand">False</property> + <property name="Fill">False</property> + </packing> + </child> + <child> + <widget class="Gtk.ScrolledWindow" id="policiesScroll"> + <property name="MemberName" /> + <property name="CanFocus">True</property> + <property name="ShadowType">In</property> <child> - <widget class="MonoDevelop.Components.FileEntry" id="fileEntry"> + <widget class="Gtk.Viewport" id="GtkViewport"> <property name="MemberName" /> - <property name="BrowserTitle">Select Policy Set File</property> - <signal name="PathChanged" handler="OnFileEntryPathChanged" /> + <property name="ShadowType">None</property> + <child> + <placeholder /> + </child> </widget> - <packing> - <property name="Position">1</property> - <property name="AutoSize">False</property> - </packing> </child> </widget> + <packing> + <property name="Position">1</property> + <property name="AutoSize">True</property> + </packing> </child> </widget> <packing> - <property name="Position">3</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.HSeparator" id="hseparator1"> - <property name="MemberName" /> - </widget> - <packing> - <property name="Position">4</property> - <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Label" id="labelChangesTitle"> - <property name="MemberName" /> - <property name="Xalign">0</property> - <property name="LabelProp" translatable="yes">The following policies will be set or replaced:</property> - </widget> - <packing> - <property name="Position">5</property> + <property name="Position">1</property> <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> - </packing> - </child> - <child> - <widget class="Gtk.Label" id="labelChanges"> - <property name="MemberName" /> - <property name="Xalign">0</property> - </widget> - <packing> - <property name="Position">6</property> - <property name="AutoSize">False</property> </packing> </child> </widget> <packing> <property name="Position">0</property> <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> </packing> </child> </widget> @@ -11780,12 +11815,11 @@ Visual Studio generates a default ID for embedded resources, instead of simply u <property name="MemberName" /> <property name="CanDefault">True</property> <property name="CanFocus">True</property> - <property name="UseStock">True</property> - <property name="Type">StockItem</property> - <property name="StockId">gtk-apply</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">_Apply policies</property> + <property name="UseUnderline">True</property> <property name="ResponseId">-1</property> <signal name="Clicked" handler="OnButtonOkClicked" /> - <property name="label">gtk-apply</property> </widget> <packing> <property name="Position">1</property> |