gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis-gtk] 03/05: fix method deletion


From: gnunet
Subject: [taler-anastasis-gtk] 03/05: fix method deletion
Date: Mon, 12 Oct 2020 20:34:58 +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 1fcb59df4ce5f5cbcc8272d5ae8c71862ef37d6c
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Mon Oct 12 14:19:27 2020 +0200

    fix method deletion
---
 src/anastasis/anastasis-gtk_backup.c | 97 +++++++++++++++++++++++++-----------
 src/anastasis/anastasis-gtk_helper.c |  2 +-
 2 files changed, 69 insertions(+), 30 deletions(-)

diff --git a/src/anastasis/anastasis-gtk_backup.c 
b/src/anastasis/anastasis-gtk_backup.c
index 1915281..54bba20 100644
--- a/src/anastasis/anastasis-gtk_backup.c
+++ b/src/anastasis/anastasis-gtk_backup.c
@@ -101,15 +101,52 @@ void
 anastasis_gtk_b_auth_method_btn_delete_clicked_cb (GObject *object,
                                                    gpointer user_data)
 {
-     GList *children;
-     gtk_widget_destroy (GTK_WIDGET (user_data));
+     if (GTK_IS_BOX (user_data))
+     {
+          GList *user_data_children, *iter;
+          user_data_children = gtk_container_get_children (GTK_CONTAINER 
(user_data));
+          
+          // parse state to delete method
+          if (NULL != user_data_children)
+          {
+               unsigned int index = 0;
 
-     children = gtk_container_get_children (GTK_CONTAINER 
(GCG_get_main_window_object (
-                                                                 
"anastasis_gtk_b_authentication_vbox")));
-     if (! children)
-          gtk_widget_set_sensitive (GTK_WIDGET (GCG_get_main_window_object (
-                                        
"anastasis_gtk_main_window_forward_button")), false);   
-     g_list_free (children);
+               for (iter = user_data_children; iter != NULL; iter = 
g_list_next (iter)){
+                    if (GTK_IS_LABEL (iter->data))
+                    {
+                         if (index == 0)
+                         {
+                              index++;
+                              continue;
+                         }
+                         if (index == 1)
+                         {
+                              const gchar *label = gtk_label_get_text 
(GTK_LABEL (iter->data));
+                              json_t *arguments = json_string (label);
+
+                              GNUNET_assert (NULL != arguments);
+                              ANASTASIS_redux_action (redux_state,
+                                                      "delete_authentication",
+                                                      arguments,
+                                                      &action_cb,
+                                                      NULL,
+                                                      NULL);
+                              break;
+                         }
+                    }
+               }
+          }
+          gtk_widget_destroy (GTK_WIDGET (user_data));
+          g_list_free (user_data_children);
+
+          // if no methods, set sensitivity of forward button to false
+          GList *vbox_children = gtk_container_get_children (GTK_CONTAINER 
(GCG_get_main_window_object (
+                                                                      
"anastasis_gtk_b_authentication_vbox")));
+          if (NULL == vbox_children)
+               gtk_widget_set_sensitive (GTK_WIDGET 
(GCG_get_main_window_object (
+                                             
"anastasis_gtk_main_window_forward_button")), false);   
+          g_list_free (vbox_children);
+     }
 }
 
 
@@ -1147,27 +1184,29 @@ init_b_policy (json_t *state)
 void
 init_b_auth_methods (json_t *state)
 {
-     json_t *providers = get_authentication_providers ();
-     
-     const char *method;
-     json_t *value;
-
-     json_object_foreach(providers, method, value) {
-          if (0 == strcmp (method, "question"))
-               gtk_widget_show (GTK_WIDGET (
-                    GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_question")));
-          if (0 == strcmp (method, "sms"))
-               gtk_widget_show (GTK_WIDGET (
-                    GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_sms")));
-          if (0 == strcmp (method, "video"))
-               gtk_widget_show (GTK_WIDGET (
-                    GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_video")));
-          if (0 == strcmp (method, "email"))
-               gtk_widget_show (GTK_WIDGET (
-                    GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_email")));
-          if (0 == strcmp (method, "post"))
-               gtk_widget_show (GTK_WIDGET (
-                    GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_post")));
+     json_t *providers = json_object_get (state, "authentication_providers");
+     if (NULL != providers)
+     {
+          const char *method;
+          json_t *value;
+
+          json_object_foreach(providers, method, value) {
+               if (0 == strcmp (method, "question"))
+                    gtk_widget_show (GTK_WIDGET (
+                         GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_question")));
+               if (0 == strcmp (method, "sms"))
+                    gtk_widget_show (GTK_WIDGET (
+                         GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_sms")));
+               if (0 == strcmp (method, "video"))
+                    gtk_widget_show (GTK_WIDGET (
+                         GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_video")));
+               if (0 == strcmp (method, "email"))
+                    gtk_widget_show (GTK_WIDGET (
+                         GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_email")));
+               if (0 == strcmp (method, "post"))
+                    gtk_widget_show (GTK_WIDGET (
+                         GCG_get_main_window_object 
("anastasis_gtk_btn_add_auth_post")));
+          }
      }
 }
 
diff --git a/src/anastasis/anastasis-gtk_helper.c 
b/src/anastasis/anastasis-gtk_helper.c
index 7dafc9d..be6c94a 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -377,9 +377,9 @@ action_cb (void *cls,
                     anastasis_gtk_hide_all_frames ();
                     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
                                             
"anastasis_gtk_b_authentication_frame")));
-                    init_b_auth_methods (redux_state);
                     gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
                                                     
"anastasis_gtk_b_authentication_methods_image")));
+                    init_b_auth_methods (redux_state);
                 }
             }
             if (check_state (redux_state, PoliciesReviewingState)

-- 
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]