gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r20554 - gnunet-gtk/src/gns


From: gnunet
Subject: [GNUnet-SVN] r20554 - gnunet-gtk/src/gns
Date: Thu, 15 Mar 2012 23:22:16 +0100

Author: wachs
Date: 2012-03-15 23:22:16 +0100 (Thu, 15 Mar 2012)
New Revision: 20554

Modified:
   gnunet-gtk/src/gns/gnunet-gns-gtk.c
   gnunet-gtk/src/gns/gnunet-gns-gtk.h
   gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c
Log:
- new functions


Modified: gnunet-gtk/src/gns/gnunet-gns-gtk.c
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-15 21:24:50 UTC (rev 20553)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk.c 2012-03-15 22:22:16 UTC (rev 20554)
@@ -348,6 +348,8 @@
     return;
   }
   gns->builder = GNUNET_GTK_main_loop_get_builder(ml);
+  gns->ts  = GTK_TREE_STORE (gtk_builder_get_object (gns->builder, 
"GNUNET_GNS_GTK_treestore"));
+  GNUNET_assert (NULL != gns->ts);
 
   zone_as_string = GNUNET_strdup (GNUNET_h2s_full (&gns->zone));
   label = g_markup_printf_escaped (_("<b>Editing zone %s</b>"),

Modified: gnunet-gtk/src/gns/gnunet-gns-gtk.h
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk.h 2012-03-15 21:24:50 UTC (rev 20553)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk.h 2012-03-15 22:22:16 UTC (rev 20554)
@@ -36,10 +36,13 @@
 
   GtkBuilder *builder;
 
+  GtkTreeStore *ts;
+
   struct GNUNET_CRYPTO_RsaPrivateKey *pkey;
   struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pubkey;
 
   GNUNET_HashCode zone;
+
 };
 
 

Modified: gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c
===================================================================
--- gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c    2012-03-15 21:24:50 UTC (rev 
20553)
+++ gnunet-gtk/src/gns/gnunet-gns-gtk_zone.c    2012-03-15 22:22:16 UTC (rev 
20554)
@@ -26,7 +26,20 @@
 #include "gnunet_gtk.h"
 #include "gnunet-gns-gtk.h"
 
+#define NEW_RECORD_STR "<new record>"
 
+enum
+{
+  TREE_COL_NAME = 0,
+  TREE_COL_IS_PUBLIC,
+  TREE_COL_RECORD_TYPE,
+  TREE_COL_RECORD_TYPE_AS_STR,
+  TREE_COL_EXP_TIME,
+  TREE_COL_EXP_TIME_IS_REL,
+  TREE_COL_EXP_TIME_AS_STR,
+  TREE_COL_VAL_AS_STR,
+  TREE_COL_VAL_COLOR,
+};
 
 /**
  * The user has selected a new record type.  Update the
@@ -61,6 +74,15 @@
                                                       gchar *path,
                                                       gpointer user_data)
 {
+  struct GNUNET_GNS_Context *gns = user_data;
+  GtkTreeIter it;
+  GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts);
+  int value;
+
+  gtk_tree_model_get_iter_from_string(tm, &it, path);
+  gtk_tree_model_get(tm, &it, TREE_COL_IS_PUBLIC, &value, -1);
+  gtk_tree_store_set(gns->ts, &it, TREE_COL_IS_PUBLIC, !value, -1);
+
   GNUNET_break (0); // FIXME, not implemented
 }
 
@@ -118,7 +140,32 @@
                                                gchar *new_text,
                                                gpointer user_data)
 {
-  GNUNET_break (0); // FIXME, not implemented
+  struct GNUNET_GNS_Context *gns = user_data;
+  GtkTreeIter it;
+  GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts);
+
+  gtk_tree_model_get_iter_from_string(tm, &it, path);
+  gtk_tree_store_set (gns->ts, &it, TREE_COL_NAME, new_text, -1);
+
+  GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "New text for `%s' is `%s'\n", path, 
new_text);
+  if ((0 == strcmp (path, "0")) && (0 != strcmp (new_text, NEW_RECORD_STR)) )
+  {
+    GNUNET_break (0);
+    /* add a new dummy line */
+
+    gtk_tree_store_append(gns->ts, &it, NULL);
+    gtk_tree_store_set(gns->ts, &it,
+                       TREE_COL_NAME, _(NEW_RECORD_STR),
+                       TREE_COL_RECORD_TYPE, 1,
+                       -1);
+    /* add a new name */
+
+  }
+  else
+  {
+    /* update name */
+
+  }
 }
 
 
@@ -140,28 +187,14 @@
   return FALSE;
 }
 
-enum
-{
-  TREE_COL_NAME = 0,
-  TREE_COL_IS_PUBLIC,
-  TREE_COL_RECORD_TYPE,
-  TREE_COL_RECORD_TYPE_AS_STR,
-  TREE_COL_EXP_TIME,
-  TREE_COL_EXP_TIME_IS_REL,
-  TREE_COL_EXP_TIME_AS_STR,
-  TREE_COL_VAL_AS_STR,
-  TREE_COL_VAL_COLOR,
-
-};
-
 struct ZoneIteration_Context
 {
   struct GNUNET_GNS_Context *gns;
   GNUNET_HashCode zone;
   struct GNUNET_NAMESTORE_ZoneIterator * it;
-  GtkTreeStore *ts;
 };
 
+
 void zone_iteration_proc (void *cls,
                           const struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded 
*zone_key,
                           struct GNUNET_TIME_Absolute expire,
@@ -185,17 +218,17 @@
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Zone `%s' iteration result `%s', %u 
records\n",
       GNUNET_h2s(&zc_ctx->zone), name, rd_count);
 
-  GNUNET_assert(GTK_IS_TREE_STORE(zc_ctx->ts));
-  gtk_tree_store_append(zc_ctx->ts, &toplevel, NULL);
+  GNUNET_assert(GTK_IS_TREE_STORE(zc_ctx->gns->ts));
+  gtk_tree_store_append(zc_ctx->gns->ts, &toplevel, NULL);
 
-  gtk_tree_store_set(zc_ctx->ts, &toplevel,
+  gtk_tree_store_set(zc_ctx->gns->ts, &toplevel,
                      TREE_COL_NAME, name,
                      -1);
 
   /* Append elements for records */
   for (c = 0; c < rd_count; c ++)
   {
-    gtk_tree_store_append(zc_ctx->ts, &child, &toplevel);
+    gtk_tree_store_append(zc_ctx->gns->ts, &child, &toplevel);
   }
 
   GNUNET_NAMESTORE_zone_iterator_next(zc_ctx->it);
@@ -212,28 +245,19 @@
                                         gpointer user_data)
 {
   struct GNUNET_GNS_Context *gns = user_data;
-  GtkBuilder *builder = gns->builder;
   struct ZoneIteration_Context *zc_ctx;
-  GtkTreeStore *ts;
   GtkTreeIter toplevel;
 
-  GNUNET_assert (GTK_IS_BUILDER(builder));
-
-  ts  = GTK_TREE_STORE (gtk_builder_get_object (builder, 
"GNUNET_GNS_GTK_treestore"));
-  GNUNET_assert (GTK_IS_TREE_STORE(ts));
-  GNUNET_assert (ts != NULL);
-
   /* Append a top level row and leave it empty */
-  gtk_tree_store_append(ts, &toplevel, NULL);
-  gtk_tree_store_set(ts, &toplevel,
-                     TREE_COL_NAME, _("<new record>"),
+  gtk_tree_store_append(gns->ts, &toplevel, NULL);
+  gtk_tree_store_set(gns->ts, &toplevel,
+                     TREE_COL_NAME, _(NEW_RECORD_STR),
                      TREE_COL_RECORD_TYPE, 1,
                      -1);
 
   zc_ctx = GNUNET_malloc (sizeof (struct ZoneIteration_Context));
   zc_ctx->gns = user_data;
   zc_ctx->zone = gns->zone;
-  zc_ctx->ts = ts;
   GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Starting one `%s' iteration\n", 
GNUNET_h2s(&zc_ctx->zone));
 
   zc_ctx->it = GNUNET_NAMESTORE_zone_iteration_start(gns->ns, &gns->zone,




reply via email to

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