[gnome-todo/wip/lists] storage-popover: go back when back button is clicked



commit fb8efe74812ad665da262772a618628e0424e4d2
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Fri Jun 12 19:38:37 2015 -0300

    storage-popover: go back when back button is clicked

 data/ui/storage-popover.ui |    1 +
 src/gtd-storage-popover.c  |   10 ++++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/data/ui/storage-popover.ui b/data/ui/storage-popover.ui
index a2a07a5..94ce75a 100644
--- a/data/ui/storage-popover.ui
+++ b/data/ui/storage-popover.ui
@@ -124,6 +124,7 @@
               <object class="GtkButton" id="back_button">
                 <property name="visible">True</property>
                 <property name="halign">start</property>
+                <signal name="clicked" handler="gtd_storage_popover__change_location_clicked" 
object="GtdStoragePopover" swapped="yes" />
                 <child>
                   <object class="GtkImage" id="back_image">
                     <property name="visible">True</property>
diff --git a/src/gtd-storage-popover.c b/src/gtd-storage-popover.c
index a12f0aa..8b8fb0b 100644
--- a/src/gtd-storage-popover.c
+++ b/src/gtd-storage-popover.c
@@ -25,6 +25,7 @@
 
 typedef struct
 {
+  GtkWidget            *change_location_button;
   GtkWidget            *location_provider_image;
   GtkWidget            *stack;
   GtkWidget            *storage_selector;
@@ -49,7 +50,8 @@ enum {
 };
 
 static void
-gtd_storage_popover__change_location_clicked (GtdStoragePopover *popover)
+gtd_storage_popover__change_location_clicked (GtdStoragePopover *popover,
+                                              GtkWidget         *button)
 {
   GtdStoragePopoverPrivate *priv;
 
@@ -57,7 +59,10 @@ gtd_storage_popover__change_location_clicked (GtdStoragePopover *popover)
 
   priv = popover->priv;
 
-  gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "selector");
+  if (button == priv->change_location_button)
+    gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "selector");
+  else
+    gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), "main");
 }
 
 static void
@@ -183,6 +188,7 @@ gtd_storage_popover_class_init (GtdStoragePopoverClass *klass)
 
   gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/todo/ui/storage-popover.ui");
 
+  gtk_widget_class_bind_template_child_private (widget_class, GtdStoragePopover, change_location_button);
   gtk_widget_class_bind_template_child_private (widget_class, GtdStoragePopover, location_provider_image);
   gtk_widget_class_bind_template_child_private (widget_class, GtdStoragePopover, stack);
   gtk_widget_class_bind_template_child_private (widget_class, GtdStoragePopover, storage_selector);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]