gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r22306 - in gnunet-gtk: contrib src/setup
Date: Tue, 26 Jun 2012 17:28:30 +0200

Author: grothoff
Date: 2012-06-26 17:28:30 +0200 (Tue, 26 Jun 2012)
New Revision: 22306

Modified:
   gnunet-gtk/contrib/gnunet_setup_gtk_main_window.glade
   gnunet-gtk/src/setup/gnunet-setup-gns.c
Log:
-more cleanup

Modified: gnunet-gtk/contrib/gnunet_setup_gtk_main_window.glade
===================================================================
--- gnunet-gtk/contrib/gnunet_setup_gtk_main_window.glade       2012-06-26 
15:00:50 UTC (rev 22305)
+++ gnunet-gtk/contrib/gnunet_setup_gtk_main_window.glade       2012-06-26 
15:28:30 UTC (rev 22306)
@@ -4620,7 +4620,7 @@
                                 <property name="editable">True</property>
                                 <property 
name="model">GNUNET_setup_gns_type_liststore</property>
                                 <property name="text_column">1</property>
-                                <signal name="changed" 
handler="GNUNET_setup_gns_type_cellrenderercombo_changed_cb" swapped="no"/>
+                                <signal name="edited" 
handler="GNUNET_setup_gns_type_cellrenderercombo_edited_cb" swapped="no"/>
                               </object>
                               <attributes>
                                 <attribute name="visible">10</attribute>

Modified: gnunet-gtk/src/setup/gnunet-setup-gns.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns.c     2012-06-26 15:00:50 UTC (rev 
22305)
+++ gnunet-gtk/src/setup/gnunet-setup-gns.c     2012-06-26 15:28:30 UTC (rev 
22306)
@@ -182,22 +182,17 @@
 static struct GNUNET_NAMESTORE_Handle *namestore;
 
 /**
- * FIXME...
+ * Tree store with all of the values we're modifying for GNS.
  */
 static GtkTreeStore *ts;
 
 /**
- * FIXME...
+ * Tree model (same object as 'ts', just different type).
  */
-static GtkListStore *ls;
-
-/**
- * FIXME...
- */
 static GtkTreeModel *tm;
 
 /**
- * FIXME...
+ * The main tree view for 'gns' that shows the records.
  */
 static GtkTreeView *tv;
 
@@ -648,26 +643,32 @@
  * @param user_data unused
  */
 void
-GNUNET_setup_gns_type_cellrenderercombo_changed_cb (GtkCellRendererCombo 
*combo,
-                                                   gchar *path,
-                                                   GtkTreeIter *new_iter,
-                                                   gpointer user_data)
+GNUNET_setup_gns_type_cellrenderercombo_edited_cb (GtkCellRendererCombo *combo,
+                                                  gchar *path,
+                                                  gchar *new_text,
+                                                  gpointer user_data)
 {
+  GtkTreeSelection *sel;
   GtkTreeIter it;
   GtkTreeIter child;
   guint type;
-  char *type_str;
   gboolean not_dummy_row;
   char *name_str;
   char *value_str;
   int is_valid;
   void *data;
   size_t data_size;
+  GtkTreePath *tp;
+  GtkTreeViewColumn *value_column;
 
-  gtk_tree_model_get (GTK_TREE_MODEL(ls), new_iter, 
-                     GNS_TYPE_TO_NAME_LISTSTORE_COLUMN_TYPE, &type, 
-                     GNS_TYPE_TO_NAME_LISTSTORE_COLUMN_TYPENAME, &type_str, 
-                     -1);
+  type = GNUNET_NAMESTORE_typename_to_number (new_text);
+  if (UINT32_MAX == type)
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+               "Invalid or unsupported record type `%s'\n",
+               new_text);
+    return;
+  }
   /* check if this is a new record */
   gtk_tree_model_get_iter_from_string(tm, &it, path);
   gtk_tree_model_get(tm, &it,
@@ -690,18 +691,18 @@
     /* Updating an existing record */
     gtk_tree_store_set(ts, &it,
                        GNS_TREESTORE_COL_RECORD_TYPE, type,
-                       GNS_TREESTORE_COL_RECORD_TYPE_AS_STR, type_str,
+                       GNS_TREESTORE_COL_RECORD_TYPE_AS_STR, new_text,
                       GNS_TREESTORE_COL_VAL_COLOR, (GNUNET_NO == is_valid) ? 
"red" : NULL,
                        -1);
   }
   else if ((NULL != name_str) && (0 != strcmp (NEW_NAME_STR, name_str)))
   {
     /* Adding a new record */
-    gtk_tree_store_insert_with_values(ts, &child , &it, 0,
+    gtk_tree_store_insert_with_values(ts, &child , &it, -1,
                                      GNS_TREESTORE_COL_NAME, name_str,
                                      GNS_TREESTORE_COL_NAME_IS_VISIBLE, FALSE,
                                      GNS_TREESTORE_COL_RECORD_TYPE, type,
-                                     GNS_TREESTORE_COL_RECORD_TYPE_AS_STR, 
type_str,
+                                     GNS_TREESTORE_COL_RECORD_TYPE_AS_STR, 
new_text,
                                      GNS_TREESTORE_COL_EXP_TIME_AS_STR, 
EXPIRE_NEVER_STRING,
                                      GNS_TREESTORE_COL_EXP_TIME, 
GNUNET_TIME_UNIT_FOREVER_ABS,
                                      GNS_TREESTORE_COL_EXP_TIME_IS_REL, FALSE,
@@ -709,14 +710,23 @@
                                      GNS_TREESTORE_COL_NOT_DUMMY_ROW, TRUE,
                                      GNS_TREESTORE_COL_VAL_COLOR, "red",
                                      -1);
+    /* select new row and start editing 'value' */
     gtk_tree_view_expand_row (tv, gtk_tree_model_get_path(tm, &it), 0);
+    sel = gtk_tree_view_get_selection (tv);
+    gtk_tree_selection_select_iter (sel, &child);
+    value_column = GTK_TREE_VIEW_COLUMN (GNUNET_SETUP_get_object 
("GNUNET_setup_gns_value_treeviewcolumn"));
+    tp = gtk_tree_model_get_path (tm, &child);
+    gtk_tree_view_set_cursor (tv,
+                             tp,
+                             value_column,
+                             TRUE);
+    gtk_tree_path_free (tp);
   }
   else
   {
     /* type should not have been editable! */
     GNUNET_break (0);
   }
-  GNUNET_free (type_str);
   GNUNET_free_non_null (value_str);
   GNUNET_free_non_null (name_str);
   check_name_validity_and_commit (path, NULL);
@@ -1602,7 +1612,6 @@
     return;
   }
   ts  = GTK_TREE_STORE (GNUNET_SETUP_get_object 
("GNUNET_setup_gns_treestore"));
-  ls =  GTK_LIST_STORE (GNUNET_SETUP_get_object 
("GNUNET_setup_gns_type_liststore"));
   tv =  GTK_TREE_VIEW (GNUNET_SETUP_get_object 
("GNUNET_setup_gns_main_treeview"));
   tm = GTK_TREE_MODEL(ts);  
   zone_as_string = GNUNET_strdup ((char *) &shenc);




reply via email to

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