aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2012-03-16 14:31:44 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2012-03-16 14:31:44 +0000
commitc95431fb48da383d3c5ec84a0285384a71436f00 (patch)
treec71f0002f64a1052201f0bd31630cded0a0bb6ee
parent0e01c52beb8915281992ee4fc989db926294c994 (diff)
downloadgnunet-gtk-c95431fb48da383d3c5ec84a0285384a71436f00.tar.gz
gnunet-gtk-c95431fb48da383d3c5ec84a0285384a71436f00.zip
- value check if type changes
-rw-r--r--src/gns/gnunet-gns-gtk_zone.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/src/gns/gnunet-gns-gtk_zone.c b/src/gns/gnunet-gns-gtk_zone.c
index bef4e1d0..319061ef 100644
--- a/src/gns/gnunet-gns-gtk_zone.c
+++ b/src/gns/gnunet-gns-gtk_zone.c
@@ -67,19 +67,31 @@ GNUNET_GNS_GTK_type_cellrenderercombo_changed_cb (GtkCellRendererCombo *combo,
67 struct GNUNET_GNS_Context *gns = user_data; 67 struct GNUNET_GNS_Context *gns = user_data;
68 GtkTreeIter it; 68 GtkTreeIter it;
69 GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts); 69 GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts);
70 guint value; 70 guint type;
71 char * v_name; 71 char *type_str;
72 char *value_str;
73 void *data;
74 size_t data_size;
75
76 gtk_tree_model_get(GTK_TREE_MODEL(gns->ls), new_iter, 0, &type, -1);
77 gtk_tree_model_get(GTK_TREE_MODEL(gns->ls), new_iter, TYPE_LIST_TYPENAME, &type_str, -1);
72 78
73 gtk_tree_model_get(GTK_TREE_MODEL(gns->ls), new_iter, 0, &value, -1);
74 gtk_tree_model_get(GTK_TREE_MODEL(gns->ls), new_iter, TYPE_LIST_TYPENAME, &v_name, -1);
75 gtk_tree_model_get_iter_from_string(tm, &it, path); 79 gtk_tree_model_get_iter_from_string(tm, &it, path);
76 gtk_tree_store_set(gns->ts, &it, 80 gtk_tree_store_set(gns->ts, &it,
77 TREE_COL_RECORD_TYPE, value, 81 TREE_COL_RECORD_TYPE, type,
78 TREE_COL_RECORD_TYPE_AS_STR, v_name, 82 TREE_COL_RECORD_TYPE_AS_STR, type_str,
79 -1); 83 -1);
84 GNUNET_free (type_str);
80 85
81 /* check if value is still valid */ 86 /* check if value is still valid */
82 87 gtk_tree_model_get(tm, &it, TREE_COL_VAL_AS_STR, &value_str, -1);
88 if (GNUNET_OK != GNUNET_NAMESTORE_string_to_value (type,
89 value_str,
90 &data,
91 &data_size))
92 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, "red", -1);
93 else
94 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1);
83} 95}
84 96
85 97
@@ -159,7 +171,6 @@ GNUNET_GNS_GTK_value_cellrenderertext_edited_cb (GtkCellRendererText *renderer,
159 &data, 171 &data,
160 &data_size)) 172 &data_size))
161 { 173 {
162
163 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1); 174 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1);
164 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_AS_STR, new_text, -1); 175 gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_AS_STR, new_text, -1);
165 } 176 }