[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.