aboutsummaryrefslogtreecommitdiff
path: root/src/gns/gnunet-gns-gtk_zone.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gns/gnunet-gns-gtk_zone.c')
-rw-r--r--src/gns/gnunet-gns-gtk_zone.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/gns/gnunet-gns-gtk_zone.c b/src/gns/gnunet-gns-gtk_zone.c
index 44a779bd..bfd54760 100644
--- a/src/gns/gnunet-gns-gtk_zone.c
+++ b/src/gns/gnunet-gns-gtk_zone.c
@@ -135,7 +135,6 @@ check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path)
135 135
136 if (FALSE == gtk_tree_model_iter_children (gns->tm, &it, &parent)) 136 if (FALSE == gtk_tree_model_iter_children (gns->tm, &it, &parent))
137 { 137 {
138 GNUNET_break (0);
139 return; 138 return;
140 } 139 }
141 for (c = 0; c < children; c++) 140 for (c = 0; c < children; c++)
@@ -155,8 +154,11 @@ check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path)
155 /* valid name */ 154 /* valid name */
156 if (NULL == n_name) 155 if (NULL == n_name)
157 valid = GNUNET_NO; 156 valid = GNUNET_NO;
158 else if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (n_value)) 157 else
158 {
159 if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (n_name))
159 valid = GNUNET_NO; 160 valid = GNUNET_NO;
161 }
160 162
161 /* valid record type */ 163 /* valid record type */
162 if (0 == n_type) 164 if (0 == n_type)
@@ -590,8 +592,10 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer,
590{ 592{
591 struct GNUNET_GNS_Context *gns = user_data; 593 struct GNUNET_GNS_Context *gns = user_data;
592 GtkTreeIter it; 594 GtkTreeIter it;
595 GtkTreeIter child;
593 GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts); 596 GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts);
594 int not_dummy; 597 int not_dummy;
598 int children;
595 599
596 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, new_text); 600 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, new_text);
597 if ((0 == strcmp (new_text, NEW_NAME_STR)) || (0 == strcmp (new_text, ""))) 601 if ((0 == strcmp (new_text, NEW_NAME_STR)) || (0 == strcmp (new_text, "")))
@@ -609,6 +613,7 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer,
609 TREE_COL_RECORD_TYPE_AS_STR, _(NEW_RECORD_STR), 613 TREE_COL_RECORD_TYPE_AS_STR, _(NEW_RECORD_STR),
610 TREE_COL_NOT_DUMMY_ROW, GNUNET_YES, 614 TREE_COL_NOT_DUMMY_ROW, GNUNET_YES,
611 -1); 615 -1);
616 check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it));
612 617
613 /* add a new dummy line */ 618 /* add a new dummy line */
614 gtk_tree_store_insert_with_values (gns->ts, &it,NULL, 0, 619 gtk_tree_store_insert_with_values (gns->ts, &it,NULL, 0,
@@ -623,6 +628,20 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer,
623 { 628 {
624 /* update name */ 629 /* update name */
625 gtk_tree_store_set (gns->ts, &it, TREE_COL_NAME, new_text, -1); 630 gtk_tree_store_set (gns->ts, &it, TREE_COL_NAME, new_text, -1);
631
632 if (TRUE == gtk_tree_model_iter_children (gns->tm, &child, &it))
633 {
634 do
635 {
636 gtk_tree_store_set (gns->ts, &child,
637 TREE_COL_NAME, &new_text,
638 -1);
639 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, new_text);
640 }
641 while (TRUE == gtk_tree_model_iter_next (gns->tm, &child));
642 }
643
644 check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it));
626 } 645 }
627 646
628 if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (new_text)) 647 if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (new_text))
@@ -637,8 +656,6 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer,
637 TREE_COL_NAME_COLOR, NULL, 656 TREE_COL_NAME_COLOR, NULL,
638 -1); 657 -1);
639 } 658 }
640
641 check_name_validity_and_commit (gns, path);
642} 659}
643 660
644/** 661/**