[gedit/wip/merge-encoding-settings] EncodingsDialog: headerbar with Reset and Close buttons
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit/wip/merge-encoding-settings] EncodingsDialog: headerbar with Reset and Close buttons
- Date: Sun, 5 Apr 2015 11:13:51 +0000 (UTC)
commit c9574b8f088edb0105f31c4ae123f8d03813a4d6
Author: Sébastien Wilmet <swilmet gnome org>
Date: Sun Apr 5 11:39:01 2015 +0200
EncodingsDialog: headerbar with Reset and Close buttons
It's better to have the Reset button as a text button, not with an icon.
With the destructive style class, so the button is red.
gedit/gedit-encodings-dialog.c | 41 ++++++++-------------
gedit/resources/ui/gedit-encodings-dialog.ui | 51 +++++++++-----------------
2 files changed, 33 insertions(+), 59 deletions(-)
---
diff --git a/gedit/gedit-encodings-dialog.c b/gedit/gedit-encodings-dialog.c
index c1aba76..dbbcdb7 100644
--- a/gedit/gedit-encodings-dialog.c
+++ b/gedit/gedit-encodings-dialog.c
@@ -35,6 +35,8 @@ struct _GeditEncodingsDialogPrivate
{
GSettings *enc_settings;
+ GtkWidget *reset_button;
+
/* Available encodings */
GtkListStore *liststore_available;
GtkTreeModelSort *sort_available;
@@ -47,7 +49,6 @@ struct _GeditEncodingsDialogPrivate
GtkWidget *remove_button;
GtkWidget *up_button;
GtkWidget *down_button;
- GtkWidget *reset_button;
guint modified : 1;
};
@@ -84,7 +85,6 @@ gedit_encodings_dialog_dispose (GObject *object)
g_clear_object (&priv->remove_button);
g_clear_object (&priv->up_button);
g_clear_object (&priv->down_button);
- g_clear_object (&priv->reset_button);
G_OBJECT_CLASS (gedit_encodings_dialog_parent_class)->dispose (object);
}
@@ -180,6 +180,7 @@ gedit_encodings_dialog_class_init (GeditEncodingsDialogClass *klass)
gtk_widget_class_bind_template_child_private (widget_class, GeditEncodingsDialog, sort_available);
gtk_widget_class_bind_template_child_private (widget_class, GeditEncodingsDialog, treeview_available);
gtk_widget_class_bind_template_child_private (widget_class, GeditEncodingsDialog, treeview_chosen);
+ gtk_widget_class_bind_template_child_private (widget_class, GeditEncodingsDialog, reset_button);
gtk_widget_class_bind_template_child_full (widget_class, "scrolledwindow_available", FALSE, 0);
gtk_widget_class_bind_template_child_full (widget_class, "scrolledwindow_chosen", FALSE, 0);
gtk_widget_class_bind_template_child_full (widget_class, "toolbar_available", FALSE, 0);
@@ -775,32 +776,13 @@ init_toolbar_chosen (GeditEncodingsDialog *dialog)
dialog,
0);
- /* Reset button */
- dialog->priv->reset_button = GTK_WIDGET (gtk_tool_button_new (NULL, NULL));
- g_object_ref_sink (dialog->priv->reset_button);
-
- gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (dialog->priv->reset_button),
- "edit-clear-all-symbolic");
-
- gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (dialog->priv->reset_button),
- _("Reset"));
-
- gtk_toolbar_insert (toolbar,
- GTK_TOOL_ITEM (dialog->priv->reset_button),
- -1);
-
- g_signal_connect_object (dialog->priv->reset_button,
- "clicked",
- G_CALLBACK (reset_button_clicked_cb),
- dialog,
- 0);
-
gtk_widget_show_all (GTK_WIDGET (toolbar));
}
static void
gedit_encodings_dialog_init (GeditEncodingsDialog *dialog)
{
+ GtkStyleContext *context;
GtkTreeSelection *selection;
dialog->priv = gedit_encodings_dialog_get_instance_private (dialog);
@@ -809,12 +791,19 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dialog)
gtk_widget_init_template (GTK_WIDGET (dialog));
- gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CLOSE);
-
init_toolbar_available (dialog);
init_toolbar_chosen (dialog);
init_liststores (dialog);
+ /* Reset button */
+ context = gtk_widget_get_style_context (dialog->priv->reset_button);
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_DESTRUCTIVE_ACTION);
+
+ g_signal_connect (dialog->priv->reset_button,
+ "clicked",
+ G_CALLBACK (reset_button_clicked_cb),
+ dialog);
+
/* Available encodings */
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (dialog->priv->sort_available),
COLUMN_NAME,
@@ -843,7 +832,9 @@ gedit_encodings_dialog_init (GeditEncodingsDialog *dialog)
GtkWidget *
gedit_encodings_dialog_new (void)
{
- return g_object_new (GEDIT_TYPE_ENCODINGS_DIALOG, NULL);
+ return g_object_new (GEDIT_TYPE_ENCODINGS_DIALOG,
+ "use-header-bar", TRUE,
+ NULL);
}
/* ex:set ts=8 noet: */
diff --git a/gedit/resources/ui/gedit-encodings-dialog.ui b/gedit/resources/ui/gedit-encodings-dialog.ui
index 2293908..1d8ea2a 100644
--- a/gedit/resources/ui/gedit-encodings-dialog.ui
+++ b/gedit/resources/ui/gedit-encodings-dialog.ui
@@ -30,45 +30,31 @@
<property name="height_request">400</property>
<property name="can_focus">False</property>
<property name="border_width">5</property>
- <property name="title" translatable="yes">Character encodings</property>
<property name="modal">True</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
- <child internal-child="vbox">
- <object class="GtkBox" id="dialog-vbox3">
+ <child type="titlebar">
+ <object class="GtkHeaderBar" id="header_bar">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">2</property>
- <child internal-child="action_area">
- <object class="GtkButtonBox" id="dialog-action_area3">
+ <property name="has_subtitle">False</property>
+ <property name="show_close_button">True</property>
+ <property name="title" translatable="yes">Character Encodings</property>
+ <child>
+ <object class="GtkButton" id="reset_button">
+ <property name="label" translatable="yes">_Reset</property>
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="layout_style">end</property>
- <child>
- <object class="GtkButton" id="close_button">
- <property name="label" translatable="yes">_Close</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="can_default">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
+ <property name="use_underline">True</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">2</property>
<child>
<object class="GtkGrid" id="encodings_dialog_contents">
<property name="visible">True</property>
@@ -274,8 +260,5 @@
</child>
</object>
</child>
- <action-widgets>
- <action-widget response="-7">close_button</action-widget>
- </action-widgets>
</template>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]