gnunet-svn
[Top][All Lists]
Advanced

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

[taler-anastasis-gtk] 01/05: worked on policy frame


From: gnunet
Subject: [taler-anastasis-gtk] 01/05: worked on policy frame
Date: Tue, 06 Oct 2020 09:57:37 +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 bbf34076603c9858e276d6250e167884e292750c
Author: Dennis Neufeld <dennis.neufeld@students.bfh.ch>
AuthorDate: Sat Oct 3 19:41:11 2020 +0200

    worked on policy frame
---
 contrib/anastasis_gtk_main_window.glade | 134 +++++++++++++++++++++++++++++++-
 src/anastasis/anastasis-gtk_backup.c    |  65 ++++++++++++++++
 src/anastasis/anastasis-gtk_helper.c    |  16 ++++
 3 files changed, 212 insertions(+), 3 deletions(-)

diff --git a/contrib/anastasis_gtk_main_window.glade 
b/contrib/anastasis_gtk_main_window.glade
index 8b3ad4f..c22aec5 100644
--- a/contrib/anastasis_gtk_main_window.glade
+++ b/contrib/anastasis_gtk_main_window.glade
@@ -1722,13 +1722,132 @@ Provider</property>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">False</property>
+                                <property name="expand">True</property>
                                 <property name="fill">True</property>
                                 <property name="position">3</property>
                               </packing>
                             </child>
                             <child>
-                              <placeholder/>
+                              <object class="GtkFrame" 
id="anastasis_gtk_b_policy_frame">
+                                <property name="can_focus">False</property>
+                                <property name="label_xalign">0</property>
+                                <property name="shadow_type">none</property>
+                                <child>
+                                  <object class="GtkAlignment">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="left_padding">12</property>
+                                    <child>
+                                      <object class="GtkGrid" 
id="anastasis_gtk_b_policy_grid">
+                                        <property 
name="visible">True</property>
+                                        <property 
name="can_focus">False</property>
+                                        <child>
+                                          <object class="GtkFrame">
+                                            <property 
name="visible">True</property>
+                                            <property 
name="can_focus">False</property>
+                                            <property 
name="label_xalign">0</property>
+                                            <property 
name="shadow_type">none</property>
+                                            <child>
+                                              <object class="GtkLabel">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="can_focus">False</property>
+                                                <property name="label" 
translatable="yes">Method
+</property>
+                                              </object>
+                                            </child>
+                                            <child type="label_item">
+                                              <placeholder/>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property 
name="left_attach">0</property>
+                                            <property 
name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkFrame">
+                                            <property 
name="visible">True</property>
+                                            <property 
name="can_focus">False</property>
+                                            <property 
name="label_xalign">0</property>
+                                            <property 
name="shadow_type">none</property>
+                                            <child>
+                                              <object class="GtkLabel">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="can_focus">False</property>
+                                                <property name="label" 
translatable="yes">Recovery Cost</property>
+                                              </object>
+                                            </child>
+                                            <child type="label_item">
+                                              <placeholder/>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property 
name="left_attach">6</property>
+                                            <property 
name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkFrame">
+                                            <property 
name="visible">True</property>
+                                            <property 
name="can_focus">False</property>
+                                            <property 
name="label_xalign">0</property>
+                                            <property 
name="shadow_type">none</property>
+                                            <child>
+                                              <object class="GtkLabel">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="can_focus">False</property>
+                                                <property name="label" 
translatable="yes">Backup cost</property>
+                                              </object>
+                                            </child>
+                                            <child type="label_item">
+                                              <placeholder/>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property 
name="left_attach">5</property>
+                                            <property 
name="top_attach">0</property>
+                                          </packing>
+                                        </child>
+                                        <child>
+                                          <object class="GtkFrame">
+                                            <property 
name="visible">True</property>
+                                            <property 
name="can_focus">False</property>
+                                            <property 
name="label_xalign">0</property>
+                                            <property 
name="shadow_type">none</property>
+                                            <child>
+                                              <object class="GtkLabel">
+                                                <property 
name="visible">True</property>
+                                                <property 
name="can_focus">False</property>
+                                                <property name="label" 
translatable="yes">Recovery policies</property>
+                                              </object>
+                                            </child>
+                                            <child type="label_item">
+                                              <placeholder/>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property 
name="left_attach">1</property>
+                                            <property 
name="top_attach">0</property>
+                                            <property name="width">4</property>
+                                          </packing>
+                                        </child>
+                                      </object>
+                                    </child>
+                                  </object>
+                                </child>
+                                <child type="label">
+                                  <object class="GtkLabel">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">False</property>
+                                    <property name="label" 
translatable="yes">Policies</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
+                                <property name="position">4</property>
+                              </packing>
                             </child>
                             <child>
                               <placeholder/>
@@ -1821,7 +1940,16 @@ Provider</property>
                   </packing>
                 </child>
                 <child>
-                  <placeholder/>
+                  <object class="GtkImage" id="anastasis_gtk_b_policies_image">
+                    <property name="can_focus">False</property>
+                    <property name="vexpand">True</property>
+                    <property name="stock">gtk-missing-image</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">False</property>
+                    <property name="position">5</property>
+                  </packing>
                 </child>
               </object>
               <packing>
diff --git a/src/anastasis/anastasis-gtk_backup.c 
b/src/anastasis/anastasis-gtk_backup.c
index bc5c156..bede891 100644
--- a/src/anastasis/anastasis-gtk_backup.c
+++ b/src/anastasis/anastasis-gtk_backup.c
@@ -999,12 +999,51 @@ init_b_policy (json_t *state)
      GList *children, *iter;
      json_t *arguments = json_object ();
      json_t *argument_arr = json_array ();
+     unsigned int row = 0;
+     GtkGrid *grid = GTK_GRID (GCG_get_main_window_object 
("anastasis_gtk_b_policy_grid"));
+
+     //format title label for methods
+     GtkFrame *frm_method_title = GTK_FRAME (gtk_grid_get_child_at (grid, 0, 
0));
+     gtk_widget_set_hexpand (GTK_WIDGET (frm_method_title), true);
+     gtk_widget_set_halign (GTK_WIDGET (frm_method_title), GTK_ALIGN_FILL);
+     gtk_widget_set_valign (GTK_WIDGET (frm_method_title), GTK_ALIGN_CENTER);
+
+     //format title label for policies
+     GtkFrame *frm_policy_title = GTK_FRAME (gtk_grid_get_child_at (grid, 1, 
0));
+     gtk_widget_set_hexpand (GTK_WIDGET (frm_policy_title), true);
+     gtk_widget_set_halign (GTK_WIDGET (frm_policy_title), GTK_ALIGN_FILL);
+     gtk_widget_set_valign (GTK_WIDGET (frm_policy_title), GTK_ALIGN_CENTER);
+
+     //get number of policies/policy columns
+     GValue val_policies_col = G_VALUE_INIT;
+     g_value_init (&val_policies_col, G_TYPE_INT);
+     gtk_container_child_get_property (GTK_CONTAINER (grid), 
+                                       GTK_WIDGET (frm_policy_title), 
+                                       "width", 
+                                       &val_policies_col);
+     int policies_col = g_value_get_int (&val_policies_col);
+
+     //format title label for backup cost
+     GtkFrame *frm_b_cost_title = 
+                    GTK_FRAME (gtk_grid_get_child_at (grid, policies_col + 1, 
0));
+     gtk_widget_set_hexpand (GTK_WIDGET (frm_b_cost_title), true);
+     gtk_widget_set_halign (GTK_WIDGET (frm_b_cost_title), GTK_ALIGN_FILL);
+     gtk_widget_set_valign (GTK_WIDGET (frm_b_cost_title), GTK_ALIGN_CENTER);
+
+     //format title label for backup cost
+     GtkFrame *frm_r_cost_title = 
+                    GTK_FRAME (gtk_grid_get_child_at (grid, policies_col + 2, 
0));
+     gtk_widget_set_hexpand (GTK_WIDGET (frm_r_cost_title), true);
+     gtk_widget_set_halign (GTK_WIDGET (frm_r_cost_title), GTK_ALIGN_FILL);
+     gtk_widget_set_valign (GTK_WIDGET (frm_r_cost_title), GTK_ALIGN_CENTER);
+
      children = gtk_container_get_children (GTK_CONTAINER 
(GCG_get_main_window_object (
                                                                     
"anastasis_gtk_b_authentication_vbox")));
      for (iter = children; iter != NULL; iter = g_list_next (iter))
      {
           GList *grandchildren, *inner_iter;
           grandchildren = gtk_container_get_children (GTK_CONTAINER 
(iter->data));
+          GtkHBox *method_hbox = (GtkHBox *) gtk_box_new 
(GTK_ORIENTATION_HORIZONTAL, 2);
           json_t *argument = json_object ();
           json_t *provider_arr = json_array ();
           unsigned int index = 0;
@@ -1029,6 +1068,12 @@ init_b_policy (json_t *state)
                                    json_object_set_new (argument, "method", 
json_string ("post"));
                               else if (0 == strcmp (text, "VIDEO: "))
                                    json_object_set_new (argument, "method", 
json_string ("video"));
+                              
+                              row++;
+                              gtk_grid_insert_row (grid, row);
+                              GtkLabel *lbl_method_type = (GtkLabel *) 
gtk_label_new (text);
+                              gtk_box_pack_start (GTK_BOX (method_hbox), 
GTK_WIDGET (lbl_method_type), 0, 0, 0);
+                              gtk_widget_show (GTK_WIDGET (lbl_method_type));
                          }
 
                          // check method attributes
@@ -1045,6 +1090,10 @@ init_b_policy (json_t *state)
                                    json_object_set_new (argument, "full_name", 
json_string (text));
                               else if (0 == strcmp (method_type, "video"))
                                    json_object_set_new (argument, 
"path_picture", json_string (text));
+
+                              GtkLabel *lbl_method_info = (GtkLabel *) 
gtk_label_new (text);
+                              gtk_box_pack_start (GTK_BOX (method_hbox), 
GTK_WIDGET (lbl_method_info), 0, 0, 0);
+                              gtk_widget_show (GTK_WIDGET (lbl_method_info));
                          }
 
                          if (index == 2)
@@ -1104,6 +1153,20 @@ init_b_policy (json_t *state)
                     }
                }
           }
+          gtk_grid_attach (grid,
+                      GTK_WIDGET (method_hbox),
+                      0, row, 1, 1);
+          gtk_widget_show (GTK_WIDGET (method_hbox));
+          for (unsigned int i = 0; i < policies_col; i++)
+          {
+               GtkCheckButton *chk_btn = (GtkCheckButton *) 
gtk_check_button_new ();
+               gtk_grid_attach (grid,
+                              GTK_WIDGET (chk_btn),
+                              i + 1, row, 1, 1);
+               gtk_widget_set_halign (GTK_WIDGET (chk_btn), GTK_ALIGN_CENTER);
+               gtk_widget_set_valign (GTK_WIDGET (chk_btn), GTK_ALIGN_CENTER);
+               gtk_widget_show (GTK_WIDGET (chk_btn));
+          }
           json_object_set_new (argument, "providers", provider_arr);
           json_array_append_new (argument_arr, argument);
           g_list_free (grandchildren);
@@ -1115,6 +1178,8 @@ init_b_policy (json_t *state)
                              arguments,
                              &action_cb,
                              NULL);
+
+     
 }
 
 
diff --git a/src/anastasis/anastasis-gtk_helper.c 
b/src/anastasis/anastasis-gtk_helper.c
index 3df08af..6e24aa2 100644
--- a/src/anastasis/anastasis-gtk_helper.c
+++ b/src/anastasis/anastasis-gtk_helper.c
@@ -194,6 +194,22 @@ action_cb (void *cls,
                                                 
"anastasis_gtk_b_authentication_methods_image")));
             }
         }
+        if (check_state (redux_state, "ReduxAuthenticationAddedState")
+                && gtk_widget_is_visible (GTK_WIDGET 
(GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame"))))
+        {
+            if (json_object_get (redux_state, "backup-state"))
+            {
+                gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_frame")));
+                gtk_widget_hide (GTK_WIDGET (GCG_get_main_window_object (
+                                        
"anastasis_gtk_b_authentication_methods_image")));
+                gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                        "anastasis_gtk_b_policy_frame")));
+                gtk_widget_show (GTK_WIDGET (GCG_get_main_window_object (
+                                                
"anastasis_gtk_b_policies_image")));
+            }
+        }
         /** FIXME: Don't use this like this; now used to check if json state 
is build correctly */
         if (0 == persist_state (redux_state))
             return;

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