[recipes] Bug 777324 - Unable to reorder ingredients
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] Bug 777324 - Unable to reorder ingredients
- Date: Fri, 24 Mar 2017 23:56:25 +0000 (UTC)
commit 0de681b2113cc27d3293e141548ec8b64ea64d66
Author: Paxana Amanda Xander <VeganBikePunk Gmail com>
Date: Fri Mar 24 02:32:32 2017 -0700
Bug 777324 - Unable to reorder ingredients
Added up and down buttons in the edit page, so you can reorder your
ingredients list without deleting and retyping your ingredient.
src/gr-edit-page.c | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
---
diff --git a/src/gr-edit-page.c b/src/gr-edit-page.c
index 5a36aaf..3b583bd 100644
--- a/src/gr-edit-page.c
+++ b/src/gr-edit-page.c
@@ -572,6 +572,62 @@ update_ingredient_row (GtkWidget *row,
g_object_set_data_full (G_OBJECT (row), "ingredient", g_strdup (ingredient), g_free);
}
+static void
+up_ingredient (GtkButton *button,
+ GrEditPage *page)
+{
+ GtkWidget *list;
+ GtkWidget *row;
+ gint selected_index;
+
+ row = gtk_widget_get_ancestor (GTK_WIDGET (button), GTK_TYPE_LIST_BOX_ROW);
+ if (!row)
+ return;
+
+ list = gtk_widget_get_parent (row);
+
+ if (row == page->active_row) {
+ page->active_row = NULL;
+ selected_index = gtk_list_box_row_get_index (GTK_LIST_BOX_ROW (row));
+ g_object_ref (row);
+ gtk_container_remove (GTK_CONTAINER (list), GTK_WIDGET (row));
+ gtk_list_box_insert (GTK_LIST_BOX (list), GTK_WIDGET (row), selected_index - 1);
+ g_object_unref (row);
+ gtk_list_box_unselect_all (GTK_LIST_BOX (list));
+ gtk_list_box_select_row (GTK_LIST_BOX (list), GTK_LIST_BOX_ROW (row));
+ }
+
+ set_unsaved (page);
+}
+
+static void
+down_ingredient (GtkButton *button,
+ GrEditPage *page)
+{
+ GtkWidget *list;
+ GtkWidget *row;
+ gint selected_index;
+
+ row = gtk_widget_get_ancestor (GTK_WIDGET (button), GTK_TYPE_LIST_BOX_ROW);
+ if (!row)
+ return;
+
+ list = gtk_widget_get_parent (row);
+
+ if (row == page->active_row) {
+ page->active_row = NULL;
+ selected_index = gtk_list_box_row_get_index (GTK_LIST_BOX_ROW (row));
+ g_object_ref (row);
+ gtk_container_remove (GTK_CONTAINER (list), GTK_WIDGET (row));
+ gtk_list_box_insert (GTK_LIST_BOX (list), GTK_WIDGET (row), selected_index + 1);
+ g_object_unref (row);
+ gtk_list_box_unselect_all (GTK_LIST_BOX (list));
+ gtk_list_box_select_row (GTK_LIST_BOX (list), GTK_LIST_BOX_ROW (row));
+ }
+
+ set_unsaved (page);
+}
+
static GtkWidget *
add_ingredient_row (GrEditPage *page,
GtkWidget *list,
@@ -619,6 +675,22 @@ add_ingredient_row (GrEditPage *page,
g_object_set (buttons, "margin", 4, NULL);
button = gtk_button_new ();
gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+ g_signal_connect (button, "clicked", G_CALLBACK (up_ingredient), page);
+ image = gtk_image_new_from_icon_name ("go-up-symbolic", 1);
+ gtk_container_add (GTK_CONTAINER (button), image);
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button");
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "circular");
+ gtk_container_add (GTK_CONTAINER (buttons), button);
+ button = gtk_button_new ();
+ gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
+ g_signal_connect (button, "clicked", G_CALLBACK (down_ingredient), page);
+ image = gtk_image_new_from_icon_name ("go-down-symbolic", 1);
+ gtk_container_add (GTK_CONTAINER (button), image);
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "image-button");
+ gtk_style_context_add_class (gtk_widget_get_style_context (button), "circular");
+ gtk_container_add (GTK_CONTAINER (buttons), button);
+ button = gtk_button_new ();
+ gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
g_signal_connect (button, "clicked", G_CALLBACK (edit_ingredient), page);
image = gtk_image_new_from_icon_name ("document-edit-symbolic", 1);
gtk_container_add (GTK_CONTAINER (button), image);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]