[recipes] Refine adding new rows to the ingredients list
- From: Ekta Nandwani <ektan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [recipes] Refine adding new rows to the ingredients list
- Date: Mon, 22 May 2017 12:11:45 +0000 (UTC)
commit 9eb89a3508b45dc87e26f67cb0fe9733425ec34c
Author: Ekta Nandwani <mailnandwaniekta gmail com>
Date: Mon May 22 17:41:06 2017 +0530
Refine adding new rows to the ingredients list
Add placeholder row, click or focus in event on it adds the row. Remove explicit plus button
src/gr-ingredients-viewer.c | 11 +++++---
src/gr-ingredients-viewer.ui | 51 +++++++++++++++++++----------------------
2 files changed, 31 insertions(+), 31 deletions(-)
---
diff --git a/src/gr-ingredients-viewer.c b/src/gr-ingredients-viewer.c
index 95ee664..06984de 100644
--- a/src/gr-ingredients-viewer.c
+++ b/src/gr-ingredients-viewer.c
@@ -41,7 +41,7 @@ struct _GrIngredientsViewer
GtkWidget *title_entry;
GtkWidget *title_label;
GtkWidget *list;
- GtkWidget *add_button;
+ GtkWidget *add_row_box;
char *title;
gboolean editable;
@@ -277,6 +277,8 @@ add_row (GrIngredientsViewer *viewer)
g_signal_connect (row, "notify::ingredient" , G_CALLBACK(edit_ingredient_row), viewer);
gtk_container_add (GTK_CONTAINER (viewer->list), row);
+ gtk_widget_grab_focus (row);
+ gtk_widget_queue_draw (GTK_WIDGET (viewer));
g_object_notify (G_OBJECT (viewer), "ingredients");
}
@@ -347,13 +349,14 @@ gr_ingredients_viewer_set_editable (GrIngredientsViewer *viewer,
GList *children, *l;
viewer->editable = editable;
- gtk_widget_set_visible (viewer->add_button, editable);
+ gtk_widget_set_visible (viewer->add_row_box, editable);
children = gtk_container_get_children (GTK_CONTAINER (viewer->list));
for (l = children; l; l = l->next) {
GtkWidget *row = l->data;
- g_object_set (row, "editable", viewer->editable, NULL);
+ if (GR_IS_INGREDIENTS_VIEWER_ROW (row))
+ g_object_set (row, "editable", viewer->editable, NULL);
}
g_list_free (children);
}
@@ -475,7 +478,7 @@ gr_ingredients_viewer_class_init (GrIngredientsViewerClass *klass)
gtk_widget_class_bind_template_child (widget_class, GrIngredientsViewer, title_entry);
gtk_widget_class_bind_template_child (widget_class, GrIngredientsViewer, title_label);
gtk_widget_class_bind_template_child (widget_class, GrIngredientsViewer, list);
- gtk_widget_class_bind_template_child (widget_class, GrIngredientsViewer, add_button);
+ gtk_widget_class_bind_template_child (widget_class, GrIngredientsViewer, add_row_box);
gtk_widget_class_bind_template_callback (widget_class, title_changed);
gtk_widget_class_bind_template_callback (widget_class, row_activated);
diff --git a/src/gr-ingredients-viewer.ui b/src/gr-ingredients-viewer.ui
index f3413be..748d324 100644
--- a/src/gr-ingredients-viewer.ui
+++ b/src/gr-ingredients-viewer.ui
@@ -52,53 +52,50 @@
</object>
</child>
<child>
- <object class="GtkListBox" id="list">
+ <object class="GtkBox">
<property name="visible">1</property>
- <property name="selection-mode">none</property>
- <property name="activate-on-single-click">1</property>
- <signal name="row-activated" handler="row_activated"/>
+ <property name="orientation">vertical</property>
<style>
<class name="frame"/>
+ <class name="view"/>
</style>
- <child type="placeholder">
- <object class="GtkEventBox">
+ <child>
+ <object class="GtkListBox" id="list">
+ <property name="visible">1</property>
+ <property name="selection-mode">none</property>
+ <property name="activate-on-single-click">1</property>
+ <signal name="row-activated" handler="row_activated"/>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="visible">1</property>
+ <property name="expand">1</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEventBox" id="add_row_box">
+ <property name="can-focus">1</property>
<property name="visible">1</property>
<signal name="button-press-event" handler="add_row" swapped="yes"/>
+ <signal name="focus-in-event" handler="add_row" swapped="yes"/>
<child>
<object class="GtkLabel">
<property name="visible">1</property>
<property name="xalign">0.5</property>
<property name="halign">fill</property>
+ <property name="width-chars">10</property>
<property name="margin-start">20</property>
<property name="margin-end">20</property>
<property name="margin-top">10</property>
<property name="margin-bottom">10</property>
- <property name="label" translatable="yes">No ingredients added yet</property>
- <style>
- <class name="dim-label"/>
- </style>
+ <property name="label" translatable="yes">Add more ingredients</property>
</object>
</child>
</object>
</child>
</object>
</child>
- <child>
- <object class="GtkButton" id="add_button">
- <property name="visible">1</property>
- <property name="halign">start</property>
- <property name="margin-top">10</property>
- <signal name="clicked" handler="add_row" swapped="yes"/>
- <style>
- <class name="dim-label"/>
- </style>
- <child>
- <object class="GtkImage">
- <property name="visible">1</property>
- <property name="icon-name">list-add-symbolic</property>
- </object>
- </child>
- </object>
- </child>
</template>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]