gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis-gtk] 05/07: fix


From: gnunet
Subject: [taler-anastasis-gtk] 05/07: fix
Date: Fri, 09 Oct 2020 12:03:41 +0200

This is an automated email from the git hooks/post-receive script.

dennis-neufeld pushed a commit to branch master
in repository anastasis-gtk.

commit 949d4141fe1a16c368cb312b9aaa515e6a0a5b1d
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Thu Oct 8 15:48:20 2020 +0200

    fix
---
 contrib/anastasis_gtk_main_window.glade |   8 ++-
 src/anastasis/anastasis-gtk.c           | 103 +++++++++++++++++++++++---------
 src/anastasis/anastasis-gtk_helper.c    |  24 ++++++++
 3 files changed, 104 insertions(+), 31 deletions(-)

diff --git a/contrib/anastasis_gtk_main_window.glade 
b/contrib/anastasis_gtk_main_window.glade
index de704ac..c968a06 100644
--- a/contrib/anastasis_gtk_main_window.glade
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -1296,7 +1296,9 @@
                                             <property 
name="activate_on_single_click">True</property>
                                             <signal name="row-activated" 
handler="anastasis_gtk_continent_activated" swapped="no"/>
                                             <child internal-child="selection">
-                                              <object 
class="GtkTreeSelection"/>
+                                              <object class="GtkTreeSelection">
+                                                <signal name="changed" 
handler="anastasis_gtk_continent_unselected" swapped="no"/>
+                                              </object>
                                             </child>
                                             <child>
                                               <object 
class="GtkTreeViewColumn" id="continent_column">
@@ -1325,7 +1327,9 @@
                                             <property 
name="activate_on_single_click">True</property>
                                             <signal name="row-activated" 
handler="anastasis_gtk_country_activated" swapped="no"/>
                                             <child internal-child="selection">
-                                              <object 
class="GtkTreeSelection"/>
+                                              <object class="GtkTreeSelection">
+                                                <signal name="changed" 
handler="anastasis_gtk_country_unselected" swapped="no"/>
+                                              </object>
                                             </child>
                                             <child>
                                               <object 
class="GtkTreeViewColumn" id="country_column">
diff --git a/src/anastasis/anastasis-gtk.c b/src/anastasis/anastasis-gtk.c
index 9035c5a..22d21b8 100644
--- a/src/anastasis/anastasis-gtk.c
+++ b/src/anastasis/anastasis-gtk.c
@@ -228,7 +228,7 @@ anastasis_gtk_continent_activated (GtkTreeView *tree_view,
     GtkTreeIter iter;
     GtkTreeModel *model = gtk_tree_view_get_model (tree_view);
     GtkListStore *country_liststore = GTK_LIST_STORE 
(GCG_get_main_window_object ("country_liststore"));
-    
+
     gtk_list_store_clear (country_liststore);
     gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
                                     
"anastasis_gtk_main_window_forward_button")), false);
@@ -308,6 +308,48 @@ anastasis_gtk_country_activated (GtkTreeView *tree_view,
 }
 
 
+/**
+ * Callback invoked if a country is unselected (unselected signal).
+ *
+ * @param selection A GtkTreeSelection.
+ * @param user_data user data set when the signal handler was connected.
+ */
+void
+anastasis_gtk_continent_unselected (GtkTreeSelection *selection,
+                                    gpointer user_data)
+{
+    GtkTreeModel *model;
+
+    if (! gtk_tree_selection_get_selected (selection, &model, NULL))
+        ANASTASIS_redux_action (redux_state,
+                                "unselect_continent",
+                                NULL,
+                                &action_cb,
+                                NULL);
+}
+
+
+/**
+ * Callback invoked if a country is unselected (unselected signal).
+ *
+ * @param selection A GtkTreeSelection.
+ * @param user_data user data set when the signal handler was connected.
+ */
+void
+anastasis_gtk_country_unselected (GtkTreeSelection *selection,
+                                  gpointer user_data)
+{
+    GtkTreeModel *model;
+
+    if (! gtk_tree_selection_get_selected (selection, &model, NULL))
+        ANASTASIS_redux_action (redux_state,
+                                "unselect_country",
+                                NULL,
+                                &action_cb,
+                                NULL);
+}
+
+
 /**
  * Callback invoked if the the "back"-button is clicked.
  *
@@ -318,42 +360,45 @@ void
 anastasis_gtk_main_window_back_clicked (GObject *object,
                                         gpointer user_data)
 {
-    const char *state = json_string_value (json_object_get (redux_state, 
"backup-state"));
+    const char *state = json_string_value (json_object_get (redux_state, 
"backup_state"));
     if (!state)
-        state = json_string_value (json_object_get (redux_state, 
"recovery-state"));
-    GNUNET_assert (state);
+        state = json_string_value (json_object_get (redux_state, 
"recovery_state"));
+    GNUNET_assert (NULL != state);
 
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame"))))
+    //show continent frame, hide identity frame
+    if (check_state (redux_state, "UserAttributesCollectionState") &&
+            gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame"))))
     {
-        /** FIXME: Show warning in this case, because state is lost afterwards 
*/
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_start_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_main_control_vbox")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame")));
-        gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);
+        ANASTASIS_redux_action (redux_state,
+                                "back",
+                                NULL,
+                                &action_cb,
+                                NULL);
     }
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame"))))
+
+    //show identity frame, hide authentication frame
+    if (check_state (redux_state, "AuthenticationsEditingState") &&
+            gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame"))))
     {
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_continent_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
+        ANASTASIS_redux_action (redux_state,
+                                "back",
+                                NULL,
+                                &action_cb,
+                                NULL);
     }
-    if (gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
+
+    //show identity frame, hide authentication frame
+    if (check_state (redux_state, "AuthenticationsEditingState") &&
+            gtk_widget_is_visible (GTK_WIDGET (GCG_get_main_window_object (
                                         
"anastasis_gtk_b_authentication_frame"))))
     {
-        gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
-                                        "anastasis_gtk_identity_frame")));
-        gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_b_authentication_frame")));
-        if (check_attributes_fullfilled ())
-            gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), true);
+        ANASTASIS_redux_action (redux_state,
+                                "back",
+                                NULL,
+                                &action_cb,
+                                NULL);
     }
 }
 
diff --git a/src/anastasis/anastasis-gtk_helper.c 
b/src/anastasis/anastasis-gtk_helper.c
index a9d5218..58d90d7 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -212,6 +212,18 @@ action_cb (void *cls,
     if (NULL != result_state)
     {
         redux_state = json_deep_copy (result_state);
+        if (check_state (redux_state, "ContinentSelectionState"))
+        {
+            GtkListStore *country_liststore = GTK_LIST_STORE 
(GCG_get_main_window_object ("country_liststore"));
+
+            gtk_list_store_clear (country_liststore);
+            gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+            gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_country_selection_image")));
+            gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image")));
+        }
         if (check_state (redux_state, "CountrySelectionState"))
         {
             init_country_list (redux_state, json_string_value (json_object_get 
(redux_state, "selected_continent")));
@@ -219,6 +231,18 @@ action_cb (void *cls,
                                         
"anastasis_gtk_continent_selection_image")));
             gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
                                         
"anastasis_gtk_country_selection_image")));
+            gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_continent_frame")));
+            gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_identity_frame")));
+            gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_main_window_forward_button")), false);
+            gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_continent_selection_image")));
+            gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_country_selection_image")));
+            gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_user_attributes_image")));
         }
         if (check_state (redux_state, "UserAttributesCollectionState"))
         {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]