gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r25210 - in gnunet-gtk: contrib src/setup


From: gnunet
Subject: [GNUnet-SVN] r25210 - in gnunet-gtk: contrib src/setup
Date: Tue, 4 Dec 2012 09:42:07 +0100

Author: grothoff
Date: 2012-12-04 09:42:07 +0100 (Tue, 04 Dec 2012)
New Revision: 25210

Modified:
   gnunet-gtk/contrib/gnunet_setup_gns_edit_a.glade
   gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
Log:
-adding code to set and extract zone from zone edit dialogs

Modified: gnunet-gtk/contrib/gnunet_setup_gns_edit_a.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gns_edit_a.glade    2012-12-03 22:58:19 UTC 
(rev 25209)
+++ gnunet-gtk/contrib/gnunet_setup_gns_edit_a.glade    2012-12-04 08:42:07 UTC 
(rev 25210)
@@ -575,16 +575,21 @@
     <columns>
       <!-- column-name zonename -->
       <column type="gchararray"/>
+      <!-- column-name optionname -->
+      <column type="gchararray"/>
     </columns>
     <data>
       <row>
         <col id="0" translatable="yes">Master Zone</col>
+        <col id="1" translatable="no">ZONEKEY</col>
       </row>
       <row>
         <col id="0" translatable="yes">Private Zone</col>
+        <col id="1" translatable="no">PRIVATE_ZONEKEY</col>
       </row>
       <row>
         <col id="0" translatable="yes">Shorten Zone</col>
+        <col id="1" translatable="no">SHORTEN_ZONEKEY</col>
       </row>
     </data>
   </object>

Modified: gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns-edit.c        2012-12-03 22:58:19 UTC 
(rev 25209)
+++ gnunet-gtk/src/setup/gnunet-setup-gns-edit.c        2012-12-04 08:42:07 UTC 
(rev 25210)
@@ -25,7 +25,26 @@
 #include "gnunet-setup-gns-edit.h"
 #include <gnunet/gnunet_gns_service.h>
 
+
 /**
+ * Columns in the 'zone_liststore'.
+ */
+enum ZoneListColumn
+{
+  /**
+   * A gchararray with the name of the zone for users.
+   */
+  ZONELIST_COL_NAME = 0,
+  
+  /**
+   * A gchararray with the name of the configuration file option with 
+   * the zone key.
+   */
+  ZONELIST_COL_OPTION = 1
+};
+
+
+/**
  * Disable 'save' button, dialog state is not acceptable.
  *
  * @param edc dialog to modify
@@ -261,7 +280,31 @@
     }
   }
 
-  /* FIXME: set source zone! */
+  /* set source zone! */
+  cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder,
+                                             "edit_dialog_zone_combobox"));
+  tm = gtk_combo_box_get_model (cb);
+  opt = NULL;
+  if (gtk_tree_model_get_iter_first (tm, &iter))
+  {
+    do
+    {
+      gtk_tree_model_get (tm, &iter,
+                         ZONELIST_COL_OPTION, &opt,
+                         -1);
+      if ( (NULL != opt) &&
+          (0 == strcasecmp (opt,
+                            edc->new_zone_option)) )
+       break;
+      g_free (opt);
+      opt = NULL;
+    } while (gtk_tree_model_iter_next (tm, &iter));    
+  }
+  if (NULL != opt)
+  {
+    gtk_combo_box_set_active_iter (cb, &iter);
+    g_free (opt);
+  }
 }
 
 
@@ -280,7 +323,8 @@
   struct GNUNET_TIME_Relative rt;
   GtkComboBox *cb;
   GtkTreeModel *tm;
-  GtkTreeIter iter;
+  GtkTreeIter iter; 
+  gchararray *opt;
 
   /* record name */
   entry = GTK_ENTRY (gtk_builder_get_object (edc->builder,
@@ -330,10 +374,32 @@
                                                                               
"edit_dialog_expiration_absolute_radiobutton"))))
   {
     /* FIXME: implement! */
+
     GNUNET_break (0);
   }
 
-  /* FIXME: extract target zone! */
+  /* extract target zone! */
+  cb = GTK_COMBO_BOX (gtk_builder_get_object (edc->builder,
+                                             "edit_dialog_zone_combobox"));
+  tm = gtk_combo_box_get_model (cb);
+  if (! gtk_combo_box_get_active_iter (cb, &iter))
+  {
+    GNUNET_break (0);
+  }
+  else
+  {
+    gtk_tree_model_get (tm, &iter,
+                       ZONELIST_COL_OPTION, &opt,
+                       -1);
+    if (NULL == opt)
+      GNUNET_break (0);
+    else
+    {
+      GNUNET_free (edc->new_zone_option);
+      edc->new_zone_option = GNUNET_strdup (opt);
+      g_free (opt);
+    }
+  }
 }
 
 




reply via email to

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