[gthumb] shortcuts: added ability to revert to the default shortcut
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] shortcuts: added ability to revert to the default shortcut
- Date: Sun, 24 Nov 2019 12:30:26 +0000 (UTC)
commit abb9466a8a064741dd1205488c0f3127017e5259
Author: Paolo Bacchilega <paobac src gnome org>
Date: Mon Nov 11 19:16:50 2019 +0100
shortcuts: added ability to revert to the default shortcut
data/ui/shortcuts-preferences.ui | 1 +
gthumb/dlg-preferences-shortcuts.c | 41 +++++++++++++++++++++++++++++++++++---
gthumb/resources/gthumb.css | 6 ++++++
3 files changed, 45 insertions(+), 3 deletions(-)
---
diff --git a/data/ui/shortcuts-preferences.ui b/data/ui/shortcuts-preferences.ui
index 5a0b827a..1da14f7d 100644
--- a/data/ui/shortcuts-preferences.ui
+++ b/data/ui/shortcuts-preferences.ui
@@ -38,6 +38,7 @@
</object>
<object class="GtkSizeGroup" id="column1_size_group"/>
<object class="GtkSizeGroup" id="column2_size_group"/>
+ <object class="GtkSizeGroup" id="column3_size_group"/>
<object class="GtkBox" id="preferences_page">
<property name="visible">True</property>
<property name="can_focus">False</property>
diff --git a/gthumb/dlg-preferences-shortcuts.c b/gthumb/dlg-preferences-shortcuts.c
index facaacb3..83d7192e 100644
--- a/gthumb/dlg-preferences-shortcuts.c
+++ b/gthumb/dlg-preferences-shortcuts.c
@@ -60,6 +60,7 @@ typedef struct {
BrowserData *browser_data;
GthShortcut *shortcut;
GtkWidget *accel_label;
+ GtkWidget *revert_button;
} RowData;
@@ -100,14 +101,14 @@ row_data_update_accel_label (RowData *row_data)
esc_text = g_markup_escape_text (row_data->shortcut->label, -1);
markup_text = g_strdup_printf ("<b>%s</b>", esc_text);
gtk_label_set_markup (GTK_LABEL (row_data->accel_label), markup_text);
- gtk_style_context_add_class (gtk_widget_get_style_context (row_data->accel_label),
GTK_STYLE_CLASS_DIM_LABEL);
+ gtk_widget_show (row_data->revert_button);
g_free (markup_text);
g_free (esc_text);
}
else {
gtk_label_set_text (GTK_LABEL (row_data->accel_label), row_data->shortcut->label);
- gtk_style_context_remove_class (gtk_widget_get_style_context (row_data->accel_label),
GTK_STYLE_CLASS_DIM_LABEL);
+ gtk_widget_hide (row_data->revert_button);
}
}
@@ -174,6 +175,19 @@ shortcuts_list_row_activated_cb (GtkListBox *box,
}
+static void
+revert_button_clicked_cb (GtkButton *button,
+ gpointer user_data)
+{
+ RowData *row_data = user_data;
+ guint keycode;
+ GdkModifierType modifiers;
+
+ gtk_accelerator_parse (row_data->shortcut->default_accelerator, &keycode, &modifiers);
+ row_data_update_shortcut (row_data, keycode, modifiers);
+}
+
+
static GtkWidget *
_new_shortcut_row (GthShortcut *shortcut,
BrowserData *data)
@@ -182,6 +196,8 @@ _new_shortcut_row (GthShortcut *shortcut,
RowData *row_data;
GtkWidget *box;
GtkWidget *label;
+ GtkWidget *button_box;
+ GtkWidget *button;
row = gtk_list_box_row_new ();
row_data = row_data_new (data, shortcut);
@@ -200,11 +216,30 @@ _new_shortcut_row (GthShortcut *shortcut,
row_data->accel_label = label = gtk_label_new ("");
gtk_label_set_xalign (GTK_LABEL (label), 0.0);
gtk_widget_set_margin_end (label, 12);
+ gtk_style_context_add_class (gtk_widget_get_style_context (label), GTK_STYLE_CLASS_DIM_LABEL);
gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (data->builder,
"column2_size_group")), label);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
- row_data_update_accel_label (row_data);
+
+ button_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_widget_set_margin_start (button_box, 12);
+ gtk_widget_set_margin_end (button_box, 12);
+ gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (data->builder,
"column3_size_group")), button_box);
+ gtk_box_pack_start (GTK_BOX (box), button_box, FALSE, FALSE, 0);
+
+ row_data->revert_button = button = gtk_button_new_from_icon_name ("edit-clear-symbolic",
GTK_ICON_SIZE_MENU);
+ gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+ gtk_widget_set_tooltip_text (button, _("Revert"));
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "circular");
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "revert-shortcut-button");
+ gtk_box_pack_start (GTK_BOX (button_box), button, FALSE, FALSE, 0);
gtk_widget_show_all (row);
+ row_data_update_accel_label (row_data);
+
+ g_signal_connect (row_data->revert_button,
+ "clicked",
+ G_CALLBACK (revert_button_clicked_cb),
+ row_data);
return row;
}
diff --git a/gthumb/resources/gthumb.css b/gthumb/resources/gthumb.css
index 4294fe32..66f9b122 100644
--- a/gthumb/resources/gthumb.css
+++ b/gthumb/resources/gthumb.css
@@ -168,3 +168,9 @@ GthToolbox .header-bar,
.void-view {
opacity: 0.12;
}
+
+/* -- revert shortcut button -- */
+
+.revert-shortcut-button {
+ padding: 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]