gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis-gtk] branch master updated: -fix provider selection


From: gnunet
Subject: [taler-anastasis-gtk] branch master updated: -fix provider selection
Date: Wed, 14 Jul 2021 12:02:09 +0200

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

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

The following commit(s) were added to refs/heads/master by this push:
     new 784466a  -fix provider selection
784466a is described below

commit 784466a53bae417bd3cc40bde1f1e35d3452212a
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Wed Jul 14 12:02:07 2021 +0200

    -fix provider selection
---
 contrib/anastasis_gtk_main_window.glade            |  4 +-
 src/anastasis/anastasis-gtk_action.c               | 77 ++++++++++++++--------
 .../anastasis-gtk_handle-policy-version-changed.c  | 13 ++++
 src/anastasis/anastasis-gtk_helper.c               |  8 +--
 src/anastasis/anastasis-gtk_helper.h               | 34 ++++++----
 5 files changed, 87 insertions(+), 49 deletions(-)

diff --git a/contrib/anastasis_gtk_main_window.glade 
b/contrib/anastasis_gtk_main_window.glade
index 4a33274..593fcfd 100644
--- a/contrib/anastasis_gtk_main_window.glade
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.38.2 
+<!-- Generated with glade 3.38.2
 
 Copyright (C) Anastasis SARL
 
@@ -3565,7 +3565,7 @@ choose a different provider.</property>
                                           </packing>
                                         </child>
                                         <child>
-                                          <object class="GtkBox" 
id="secret_identification_vbox">
+                                          <object class="GtkBox" 
id="anastasis_gtk_secret_identification_vbox">
                                             <property 
name="visible">True</property>
                                             <property 
name="can-focus">False</property>
                                             <property 
name="halign">start</property>
diff --git a/src/anastasis/anastasis-gtk_action.c 
b/src/anastasis/anastasis-gtk_action.c
index f01bcab..7d8c0f5 100644
--- a/src/anastasis/anastasis-gtk_action.c
+++ b/src/anastasis/anastasis-gtk_action.c
@@ -1068,6 +1068,7 @@ update_entry (const char *name,
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
                 "`%s' is not a GtkEntry!\n",
                 name);
+    return;
   }
   old = gtk_entry_get_text (entry);
   if (NULL == old)
@@ -2009,27 +2010,12 @@ action_secret_selecting (void)
   json_t *ri;
   json_t *re;
 
-  AG_hide_all_frames ();
-  {
-    json_t *aps;
-    GtkComboBoxText *bt;
-    const json_t *ap;
-    const char *provider_url;
-
-    bt = GTK_COMBO_BOX_TEXT (GCG_get_main_window_object (
-                               "anastasis_gtk_provider_url_combo_box_text"));
-    gtk_combo_box_text_remove_all (bt);
-    aps = json_object_get (AG_redux_state,
-                           "authentication_providers");
-    json_object_foreach (aps,
-                         provider_url,
-                         ap)
-    {
-      gtk_combo_box_text_insert_text (bt,
-                                      -1, /* append */
-                                      provider_url);
-    }
-  }
+  AG_hide ("anastasis_gtk_start_frame");
+  if (AG_have_error)
+    AG_show ("anastasis_gtk_error_label");
+  AG_hide ("anastasis_gtk_challenge_frame");
+  AG_hide ("anastasis_gtk_identity_frame");
+  AG_hide ("anastasis_gtk_secret_identification_vbox");
   re = json_object_get (AG_redux_state,
                         "recovery_error");
   if (NULL != re)
@@ -2063,7 +2049,7 @@ action_secret_selecting (void)
     AG_hide ("anastasis_gtk_backup_progress_scrolled_window");
     AG_show ("anastasis_gtk_main_control_vbox");
     AG_show ("anastasis_gtk_main_window_save_as_button");
-    AG_show ("anastasis_gtk_secret_select_frame");
+    AG_show ("anastasis_gtk_select_secret_frame");
     AG_show ("anastasis_gtk_main_window_prev_button");
     AG_hide ("anastasis_gtk_main_window_quit_button");
     {
@@ -2071,12 +2057,35 @@ action_secret_selecting (void)
 
       ge = GTK_WIDGET (GCG_get_main_window_object (
                          "anastasis_gtk_provider_url_entry"));
-      gtk_widget_grab_focus (ge);
+      if (0 && ! gtk_widget_has_focus (ge))
+        gtk_widget_grab_focus (ge);
     }
     return;
   }
+  else
+  {
+    json_t *aps;
+    GtkComboBoxText *bt;
+    const json_t *ap;
+    const char *provider_url;
+
+    bt = GTK_COMBO_BOX_TEXT (GCG_get_main_window_object (
+                               "anastasis_gtk_provider_url_combo_box_text"));
+    gtk_combo_box_text_remove_all (bt);
+    aps = json_object_get (AG_redux_state,
+                           "authentication_providers");
+    json_object_foreach (aps,
+                         provider_url,
+                         ap)
+    {
+      gtk_combo_box_text_insert_text (bt,
+                                      -1,   /* append */
+                                      provider_url);
+    }
+  }
   ri = json_object_get (AG_redux_state,
                         "recovery_information");
+  if (NULL != ri)
   {
     uint64_t version;
     const char *provider_url;
@@ -2088,7 +2097,6 @@ action_secret_selecting (void)
       GNUNET_JSON_spec_end ()
     };
     GtkSpinButton *sb;
-    GtkEntry *ge;
 
     if (GNUNET_OK !=
         GNUNET_JSON_parse (ri,
@@ -2103,10 +2111,9 @@ action_secret_selecting (void)
                             "anastasis_gtk_policy_version_spin_button"));
     gtk_spin_button_set_value (sb,
                                version);
-    ge = GTK_ENTRY (GCG_get_main_window_object (
-                      "anastasis_gtk_provider_url_entry"));
-    gtk_entry_set_text (ge,
-                        provider_url);
+    if (NULL == re)
+      update_entry ("anastasis_gtk_provider_url_entry",
+                    provider_url);
   }
   {
     json_t *rd;
@@ -2133,6 +2140,7 @@ action_secret_selecting (void)
         update_label ("anastasis_gtk_secret_name_label",
                       _ ("<not set>"));
       }
+      AG_show ("anastasis_gtk_secret_identification_vbox");
     }
   }
   AG_show ("anastasis_gtk_progress_vbox");
@@ -3004,6 +3012,7 @@ AG_action_cb (void *cls,
       GNUNET_break (0);
       return;
     }
+
   }
   else
   {
@@ -3014,12 +3023,22 @@ AG_action_cb (void *cls,
        (TALER_EC_ANASTASIS_TRUTH_RATE_LIMITED == error_code) )
   {
     /* special case: do not remain in previous (challenge selected)
-       state but rever to challenge selecting */
+       state but revert to challenge selecting */
     GNUNET_assert (0 ==
                    json_object_set_new (AG_redux_state,
                                         "recovery_state",
                                         json_string ("CHALLENGE_SELECTING")));
   }
+  if ( (TALER_EC_ANASTASIS_REDUCER_NETWORK_FAILED == error_code) ||
+       (TALER_EC_ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED == error_code) )
+  {
+    /* special case: do not remain in previous (enter identity)
+       state but advance to secret selecting */
+    GNUNET_assert (0 ==
+                   json_object_set_new (AG_redux_state,
+                                        "recovery_state",
+                                        json_string ("SECRET_SELECTING")));
+  }
   AG_in_action = true;
   if (GNUNET_OK ==
       AG_dispatch (actions))
diff --git a/src/anastasis/anastasis-gtk_handle-policy-version-changed.c 
b/src/anastasis/anastasis-gtk_handle-policy-version-changed.c
index 3af6ec4..3f4a14a 100644
--- a/src/anastasis/anastasis-gtk_handle-policy-version-changed.c
+++ b/src/anastasis/anastasis-gtk_handle-policy-version-changed.c
@@ -122,6 +122,19 @@ update_policy (void)
   ge = GTK_ENTRY (GCG_get_main_window_object (
                     "anastasis_gtk_provider_url_entry"));
   provider_url = gtk_entry_get_text (ge);
+  if (! ( ( (0 == strncasecmp (provider_url,
+                               "https://";,
+                               strlen ("https://";))) &&
+            (strlen (provider_url) >= strlen ("https://X/";)) ) ||
+          ( (0 == strncasecmp (provider_url,
+                               "http://";,
+                               strlen ("http://";))) &&
+            (strlen (provider_url) >= strlen ("http://X/";)) ) ) )
+  {
+    AG_error ("Notice: URL must begin with 'http://' or 'https://'.");
+    AG_insensitive ("anastasis_gtk_main_window_forward_button");
+    return;
+  }
   if ( (0 == strlen (provider_url)) ||
        ('/' != provider_url[strlen (provider_url) - 1]) )
   {
diff --git a/src/anastasis/anastasis-gtk_helper.c 
b/src/anastasis/anastasis-gtk_helper.c
index 5334606..5760f00 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -33,7 +33,7 @@
 /**
  * true if we are currently showing an error message.
  */
-static bool have_error;
+bool AG_have_error;
 
 
 void
@@ -187,7 +187,7 @@ AG_hide_all_frames (void)
   AG_hide ("anastasis_gtk_start_frame");
   AG_hide_children ("anastasis_gtk_super_vbox");
   AG_hide_children ("anastasis_gtk_illustration_vbox");
-  if (have_error)
+  if (AG_have_error)
     AG_show ("anastasis_gtk_error_label");
 }
 
@@ -227,7 +227,7 @@ GCG_get_main_window_object (const char *name)
 void
 AG_error_clear ()
 {
-  have_error = false;
+  AG_have_error = false;
   AG_hide ("anastasis_gtk_error_label");
 }
 
@@ -260,6 +260,6 @@ AG_error (const char *format,
   gtk_label_set_text (l,
                       msg);
   free (msg);
-  have_error = true;
+  AG_have_error = true;
   gtk_widget_show (GTK_WIDGET (l));
 }
diff --git a/src/anastasis/anastasis-gtk_helper.h 
b/src/anastasis/anastasis-gtk_helper.h
index 464db70..4feda9a 100644
--- a/src/anastasis/anastasis-gtk_helper.h
+++ b/src/anastasis/anastasis-gtk_helper.h
@@ -33,6 +33,12 @@
 #include "anastasis-gtk.h"
 
 
+/**
+ * true if we are currently showing an error message.
+ */
+extern bool AG_have_error;
+
+
 /**
  * Columns of the continent_liststore.
  */
@@ -307,20 +313,20 @@ enum AG_PolicyReviewModelColumns
  */
 enum AG_ProgressModelColumns
 {
- /**
-  * A gchararray.
-  */
- AG_PRGMC_DESCRIPTION = 0,
-
- /**
-  * A gchararray.
-  */
- AG_PRGMC_REGEX = 1,
-
- /**
-  * A gchararray.
-  */
- AG_PRGMC_TOOLTIP = 2
+  /**
+   * A gchararray.
+   */
+  AG_PRGMC_DESCRIPTION = 0,
+
+  /**
+   * A gchararray.
+   */
+  AG_PRGMC_REGEX = 1,
+
+  /**
+   * A gchararray.
+   */
+  AG_PRGMC_TOOLTIP = 2
 };
 
 

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