diff options
author | Matt Ward <matt.ward@xamarin.com> | 2016-03-04 14:10:54 +0300 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2016-03-21 18:49:58 +0300 |
commit | 5b81d63b4771d9be680ae5740885ba1461c1e243 (patch) | |
tree | cf71ef07c2e8be8c364ba97abd11be16844fe248 /main | |
parent | 1daa9d16db5aadcf8377cf551db68f418a37146e (diff) |
[NuGet] Improve license acceptance dialog.
Change license dialog title to License Acceptance.
Show package author information instead of package description.
Replace hyperlink button with just a hyperlink in a label for the
license url.
Buttons now show Accept and Decline instead of OK and Cancel.
Add spacing around border of dialog.
Increase spacing around labels.
Diffstat (limited to 'main')
5 files changed, 190 insertions, 113 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/LicenseAcceptanceDialog.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/LicenseAcceptanceDialog.cs index 5327c86e0f..03bf4d57f7 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/LicenseAcceptanceDialog.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Gui/LicenseAcceptanceDialog.cs @@ -27,8 +27,12 @@ //
using System;
+using Gtk;
using ICSharpCode.PackageManagement;
-using NuGet;
+using MonoDevelop.Components;
+using MonoDevelop.Core;
+using MonoDevelop.Ide;
+using Mono.TextEditor;
namespace MonoDevelop.PackageManagement
{
@@ -42,21 +46,43 @@ namespace MonoDevelop.PackageManagement this.viewModel = viewModel;
this.subTitleHBoxForSinglePackage.Visible = viewModel.HasOnePackage;
this.subTitleHBoxForMultiplePackages.Visible = viewModel.HasMultiplePackages;
+
AddPackages ();
}
void AddPackages ()
{
foreach (PackageLicenseViewModel package in viewModel.Packages) {
- AddPackageWidget (package);
+ AddPackage (package);
}
this.packagesVBox.ShowAll ();
}
- void AddPackageWidget (PackageLicenseViewModel package)
+ void AddPackage (PackageLicenseViewModel package)
+ {
+ var label = new Label () {
+ Xalign = 0,
+ Yalign = 0,
+ Xpad = 5,
+ Ypad = 5,
+ Wrap = true,
+ Markup = CreatePackageMarkup (package)
+ };
+
+ GtkWorkarounds.SetLinkHandler (label, DesktopService.ShowUrl);
+
+ this.packagesVBox.Add (label);
+ }
+
+ string CreatePackageMarkup (PackageLicenseViewModel package)
{
- var widget = new PackageLicenseWidget (package);
- this.packagesVBox.Add (widget);
+ return String.Format (
+ "<span weight='bold'>{0}</span>\t{1}\n<a href='{2}'>{3}</a>",
+ package.Id,
+ package.GetAuthors (),
+ package.LicenseUrl,
+ GettextCatalog.GetString ("View License")
+ );
}
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj index 50427e9d71..86a436ff9b 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.csproj @@ -439,6 +439,11 @@ <Name>ICSharpCode.NRefactory</Name> <Private>False</Private> </ProjectReference> + <ProjectReference Include="..\..\core\Mono.Texteditor\Mono.TextEditor.csproj"> + <Project>{A2329308-3751-4DBD-9A75-5F7B8B024625}</Project> + <Name>Mono.TextEditor</Name> + <Private>False</Private> + </ProjectReference> </ItemGroup> <ItemGroup> <Folder Include="MonoDevelop.PackageManagement.NodeBuilders\" /> diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageLicenseViewModel.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageLicenseViewModel.cs index b6269554cc..3ac553a3f9 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageLicenseViewModel.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement/PackageLicenseViewModel.cs @@ -27,6 +27,9 @@ //
using System;
+using System.Collections.Generic;
+using System.Linq;
+using MonoDevelop.Core;
using NuGet;
namespace ICSharpCode.PackageManagement
@@ -51,5 +54,22 @@ namespace ICSharpCode.PackageManagement public Uri LicenseUrl {
get { return package.LicenseUrl; }
}
+
+ internal string GetAuthors ()
+ {
+ List<string> authors = package.Authors.ToList ();
+
+ string authorStartText = null;
+ if (authors.Count > 1) {
+ authorStartText = GettextCatalog.GetString ("Authors:");
+ } else {
+ authorStartText = GettextCatalog.GetString ("Author:");
+ }
+
+ return String.Format (
+ "{0} {1}",
+ authorStartText,
+ String.Join (", ", authors));
+ }
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs b/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs index 2d21dc3734..f3ee6370b6 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs +++ b/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/MonoDevelop.PackageManagement.LicenseAcceptanceDialog.cs @@ -4,15 +4,26 @@ namespace MonoDevelop.PackageManagement {
public partial class LicenseAcceptanceDialog
{
+ private global::Gtk.VBox topVBox;
+
private global::Gtk.HBox subTitleHBoxForSinglePackage;
+
private global::Gtk.Label subTitleLabelForSinglePackage;
+
private global::Gtk.HBox subTitleHBoxForMultiplePackages;
+
private global::Gtk.Label subTitleLabelForMultiplePackages;
+
private global::Gtk.ScrolledWindow GtkScrolledWindow;
+
private global::Gtk.VBox packagesVBox;
+
private global::Gtk.HBox bottomMessageHBox;
+
private global::Gtk.Label mainMessageLabel;
+
private global::Gtk.Button buttonCancel;
+
private global::Gtk.Button buttonOk;
protected virtual void Build ()
@@ -20,7 +31,7 @@ namespace MonoDevelop.PackageManagement global::Stetic.Gui.Initialize (this);
// Widget MonoDevelop.PackageManagement.LicenseAcceptanceDialog
this.Name = "MonoDevelop.PackageManagement.LicenseAcceptanceDialog";
- this.Title = global::Mono.Unix.Catalog.GetString ("License Agreements");
+ this.Title = global::Mono.Unix.Catalog.GetString ("License Acceptance");
this.WindowPosition = ((global::Gtk.WindowPosition)(1));
this.Modal = true;
// Internal child MonoDevelop.PackageManagement.LicenseAcceptanceDialog.VBox
@@ -28,42 +39,49 @@ namespace MonoDevelop.PackageManagement w1.Name = "mainVBox";
w1.BorderWidth = ((uint)(2));
// Container child mainVBox.Gtk.Box+BoxChild
+ this.topVBox = new global::Gtk.VBox ();
+ this.topVBox.Name = "topVBox";
+ this.topVBox.Spacing = 6;
+ this.topVBox.BorderWidth = ((uint)(10));
+ // Container child topVBox.Gtk.Box+BoxChild
this.subTitleHBoxForSinglePackage = new global::Gtk.HBox ();
this.subTitleHBoxForSinglePackage.Name = "subTitleHBoxForSinglePackage";
this.subTitleHBoxForSinglePackage.Spacing = 6;
// Container child subTitleHBoxForSinglePackage.Gtk.Box+BoxChild
this.subTitleLabelForSinglePackage = new global::Gtk.Label ();
this.subTitleLabelForSinglePackage.Name = "subTitleLabelForSinglePackage";
- this.subTitleLabelForSinglePackage.LabelProp = global::Mono.Unix.Catalog.GetString ("The following package requires a click-to-accept license:");
+ this.subTitleLabelForSinglePackage.LabelProp = global::Mono.Unix.Catalog.GetString ("The following package requires that you accept the license terms before installin" +
+ "g.");
this.subTitleHBoxForSinglePackage.Add (this.subTitleLabelForSinglePackage);
global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.subTitleHBoxForSinglePackage [this.subTitleLabelForSinglePackage]));
w2.Position = 0;
w2.Expand = false;
w2.Fill = false;
- w1.Add (this.subTitleHBoxForSinglePackage);
- global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(w1 [this.subTitleHBoxForSinglePackage]));
+ this.topVBox.Add (this.subTitleHBoxForSinglePackage);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.topVBox [this.subTitleHBoxForSinglePackage]));
w3.Position = 0;
w3.Expand = false;
w3.Fill = false;
- // Container child mainVBox.Gtk.Box+BoxChild
+ // Container child topVBox.Gtk.Box+BoxChild
this.subTitleHBoxForMultiplePackages = new global::Gtk.HBox ();
this.subTitleHBoxForMultiplePackages.Name = "subTitleHBoxForMultiplePackages";
this.subTitleHBoxForMultiplePackages.Spacing = 6;
// Container child subTitleHBoxForMultiplePackages.Gtk.Box+BoxChild
this.subTitleLabelForMultiplePackages = new global::Gtk.Label ();
this.subTitleLabelForMultiplePackages.Name = "subTitleLabelForMultiplePackages";
- this.subTitleLabelForMultiplePackages.LabelProp = global::Mono.Unix.Catalog.GetString ("The following packages require a click-to-accept license:");
+ this.subTitleLabelForMultiplePackages.LabelProp = global::Mono.Unix.Catalog.GetString ("The following packages require that you accept their license terms before install" +
+ "ing.");
this.subTitleHBoxForMultiplePackages.Add (this.subTitleLabelForMultiplePackages);
global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.subTitleHBoxForMultiplePackages [this.subTitleLabelForMultiplePackages]));
w4.Position = 0;
w4.Expand = false;
w4.Fill = false;
- w1.Add (this.subTitleHBoxForMultiplePackages);
- global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1 [this.subTitleHBoxForMultiplePackages]));
+ this.topVBox.Add (this.subTitleHBoxForMultiplePackages);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.topVBox [this.subTitleHBoxForMultiplePackages]));
w5.Position = 1;
w5.Expand = false;
w5.Fill = false;
- // Container child mainVBox.Gtk.Box+BoxChild
+ // Container child topVBox.Gtk.Box+BoxChild
this.GtkScrolledWindow = new global::Gtk.ScrolledWindow ();
this.GtkScrolledWindow.Name = "GtkScrolledWindow";
this.GtkScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
@@ -76,65 +94,65 @@ namespace MonoDevelop.PackageManagement this.packagesVBox.Spacing = 6;
w6.Add (this.packagesVBox);
this.GtkScrolledWindow.Add (w6);
- w1.Add (this.GtkScrolledWindow);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(w1 [this.GtkScrolledWindow]));
+ this.topVBox.Add (this.GtkScrolledWindow);
+ global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.topVBox [this.GtkScrolledWindow]));
w9.Position = 2;
- w9.Padding = ((uint)(3));
- // Container child mainVBox.Gtk.Box+BoxChild
+ // Container child topVBox.Gtk.Box+BoxChild
this.bottomMessageHBox = new global::Gtk.HBox ();
this.bottomMessageHBox.Name = "bottomMessageHBox";
this.bottomMessageHBox.Spacing = 6;
// Container child bottomMessageHBox.Gtk.Box+BoxChild
this.mainMessageLabel = new global::Gtk.Label ();
this.mainMessageLabel.Name = "mainMessageLabel";
- this.mainMessageLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("By clicking \"OK\" you agree to the license terms for the packages listed above.\nIf" +
- " you do not agree to the license terms click \"Cancel\".");
+ this.mainMessageLabel.LabelProp = global::Mono.Unix.Catalog.GetString ("By clicking Accept you agree to the license terms for the packages listed above.\n" +
+ "If you do not agree to the license terms click Decline.");
this.bottomMessageHBox.Add (this.mainMessageLabel);
global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.bottomMessageHBox [this.mainMessageLabel]));
w10.Position = 0;
w10.Expand = false;
w10.Fill = false;
- w1.Add (this.bottomMessageHBox);
- global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(w1 [this.bottomMessageHBox]));
+ this.topVBox.Add (this.bottomMessageHBox);
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.topVBox [this.bottomMessageHBox]));
w11.Position = 3;
w11.Expand = false;
w11.Fill = false;
+ w1.Add (this.topVBox);
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(w1 [this.topVBox]));
+ w12.Position = 0;
// Internal child MonoDevelop.PackageManagement.LicenseAcceptanceDialog.ActionArea
- global::Gtk.HButtonBox w12 = this.ActionArea;
- w12.Name = "mainButtonArea";
- w12.Spacing = 10;
- w12.BorderWidth = ((uint)(5));
- w12.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ global::Gtk.HButtonBox w13 = this.ActionArea;
+ w13.Name = "mainButtonArea";
+ w13.Spacing = 10;
+ w13.BorderWidth = ((uint)(5));
+ w13.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child mainButtonArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonCancel = new global::Gtk.Button ();
this.buttonCancel.CanDefault = true;
this.buttonCancel.CanFocus = true;
this.buttonCancel.Name = "buttonCancel";
- this.buttonCancel.UseStock = true;
this.buttonCancel.UseUnderline = true;
- this.buttonCancel.Label = "gtk-cancel";
+ this.buttonCancel.Label = global::Mono.Unix.Catalog.GetString ("_Decline");
this.AddActionWidget (this.buttonCancel, -6);
- global::Gtk.ButtonBox.ButtonBoxChild w13 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonCancel]));
- w13.Expand = false;
- w13.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13 [this.buttonCancel]));
+ w14.Expand = false;
+ w14.Fill = false;
// Container child mainButtonArea.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-ok";
+ this.buttonOk.Label = global::Mono.Unix.Catalog.GetString ("_Accept");
this.AddActionWidget (this.buttonOk, -5);
- global::Gtk.ButtonBox.ButtonBoxChild w14 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w12 [this.buttonOk]));
- w14.Position = 1;
- w14.Expand = false;
- w14.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w15 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w13 [this.buttonOk]));
+ w15.Position = 1;
+ w15.Expand = false;
+ w15.Fill = false;
if ((this.Child != null)) {
this.Child.ShowAll ();
}
- this.DefaultWidth = 447;
- this.DefaultHeight = 300;
+ this.DefaultWidth = 494;
+ this.DefaultHeight = 365;
this.Show ();
}
}
diff --git a/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/gui.stetic b/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/gui.stetic index f92e7e0b54..9d7a4d7f8c 100644 --- a/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/gui.stetic +++ b/main/src/addins/MonoDevelop.PackageManagement/gtk-gui/gui.stetic @@ -787,9 +787,9 @@ <placeholder /> </child> </widget> - <widget class="Gtk.Dialog" id="MonoDevelop.PackageManagement.LicenseAcceptanceDialog" design-size="447 300"> + <widget class="Gtk.Dialog" id="MonoDevelop.PackageManagement.LicenseAcceptanceDialog" design-size="494 365"> <property name="MemberName" /> - <property name="Title" translatable="yes">License Agreements</property> + <property name="Title" translatable="yes">License Acceptance</property> <property name="WindowPosition">Center</property> <property name="Modal">True</property> <property name="Buttons">2</property> @@ -799,13 +799,29 @@ <property name="MemberName" /> <property name="BorderWidth">2</property> <child> - <widget class="Gtk.HBox" id="subTitleHBoxForSinglePackage"> + <widget class="Gtk.VBox" id="topVBox"> <property name="MemberName" /> <property name="Spacing">6</property> + <property name="BorderWidth">10</property> <child> - <widget class="Gtk.Label" id="subTitleLabelForSinglePackage"> + <widget class="Gtk.HBox" id="subTitleHBoxForSinglePackage"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">The following package requires a click-to-accept license:</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="subTitleLabelForSinglePackage"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">The following package requires that you accept the license terms before installing.</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> + <placeholder /> + </child> </widget> <packing> <property name="Position">0</property> @@ -815,96 +831,90 @@ </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> - <child> - <widget class="Gtk.HBox" id="subTitleHBoxForMultiplePackages"> - <property name="MemberName" /> - <property name="Spacing">6</property> - <child> - <widget class="Gtk.Label" id="subTitleLabelForMultiplePackages"> + <widget class="Gtk.HBox" id="subTitleHBoxForMultiplePackages"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">The following packages require a click-to-accept license:</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="subTitleLabelForMultiplePackages"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">The following packages require that you accept their license terms before installing.</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> + <placeholder /> + </child> </widget> <packing> - <property name="Position">0</property> + <property name="Position">1</property> <property name="AutoSize">True</property> <property name="Expand">False</property> <property name="Fill">False</property> </packing> </child> <child> - <placeholder /> - </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.ScrolledWindow" id="GtkScrolledWindow"> - <property name="MemberName" /> - <property name="ShadowType">In</property> - <child> - <widget class="Gtk.Viewport" id="GtkViewport"> + <widget class="Gtk.ScrolledWindow" id="GtkScrolledWindow"> <property name="MemberName" /> - <property name="ShadowType">None</property> + <property name="ShadowType">In</property> <child> - <widget class="Gtk.VBox" id="packagesVBox"> + <widget class="Gtk.Viewport" id="GtkViewport"> <property name="MemberName" /> - <property name="ShowScrollbars">True</property> - <property name="Spacing">6</property> + <property name="ShadowType">None</property> <child> - <placeholder /> + <widget class="Gtk.VBox" id="packagesVBox"> + <property name="MemberName" /> + <property name="ShowScrollbars">True</property> + <property name="Spacing">6</property> + <child> + <placeholder /> + </child> + </widget> </child> </widget> </child> </widget> + <packing> + <property name="Position">2</property> + <property name="AutoSize">True</property> + </packing> </child> - </widget> - <packing> - <property name="Position">2</property> - <property name="AutoSize">True</property> - <property name="Padding">3</property> - </packing> - </child> - <child> - <widget class="Gtk.HBox" id="bottomMessageHBox"> - <property name="MemberName" /> - <property name="Spacing">6</property> <child> - <widget class="Gtk.Label" id="mainMessageLabel"> + <widget class="Gtk.HBox" id="bottomMessageHBox"> <property name="MemberName" /> - <property name="LabelProp" translatable="yes">By clicking "OK" you agree to the license terms for the packages listed above. -If you do not agree to the license terms click "Cancel".</property> + <property name="Spacing">6</property> + <child> + <widget class="Gtk.Label" id="mainMessageLabel"> + <property name="MemberName" /> + <property name="LabelProp" translatable="yes">By clicking Accept you agree to the license terms for the packages listed above. +If you do not agree to the license terms click Decline.</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> + <placeholder /> + </child> </widget> <packing> - <property name="Position">0</property> + <property name="Position">3</property> <property name="AutoSize">True</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="Position">0</property> <property name="AutoSize">True</property> - <property name="Expand">False</property> - <property name="Fill">False</property> </packing> </child> </widget> @@ -921,11 +931,10 @@ If you do not agree to the license terms click "Cancel".</property> <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-cancel</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">_Decline</property> + <property name="UseUnderline">True</property> <property name="ResponseId">-6</property> - <property name="label">gtk-cancel</property> </widget> <packing> <property name="Expand">False</property> @@ -937,11 +946,10 @@ If you do not agree to the license terms click "Cancel".</property> <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-ok</property> + <property name="Type">TextOnly</property> + <property name="Label" translatable="yes">_Accept</property> + <property name="UseUnderline">True</property> <property name="ResponseId">-5</property> - <property name="label">gtk-ok</property> </widget> <packing> <property name="Position">1</property> |