diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-03 15:41:27 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-03 15:41:27 +0000 |
commit | fad12b8f69956d57ec43ba70c0dbf0463f8212e9 (patch) | |
tree | d262158c064b146b7a794adccf11af33ff450d8e | |
parent | c31c31bf8706dfa3ebe5063f2938d327b85ae1d0 (diff) | |
download | gnunet-gtk-fad12b8f69956d57ec43ba70c0dbf0463f8212e9.tar.gz gnunet-gtk-fad12b8f69956d57ec43ba70c0dbf0463f8212e9.zip |
- fixing mantis 2554
-rw-r--r-- | src/gns/gnunet-gns-gtk_zone.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/gns/gnunet-gns-gtk_zone.c b/src/gns/gnunet-gns-gtk_zone.c index 25d2982d..08748ce6 100644 --- a/src/gns/gnunet-gns-gtk_zone.c +++ b/src/gns/gnunet-gns-gtk_zone.c | |||
@@ -93,7 +93,7 @@ check_name_validity_and_commit_remove_proc (void *cls, | |||
93 | } | 93 | } |
94 | 94 | ||
95 | static void | 95 | static void |
96 | check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path) | 96 | check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path, char * oldname) |
97 | { | 97 | { |
98 | GtkTreeIter it; | 98 | GtkTreeIter it; |
99 | GtkTreeIter parent; | 99 | GtkTreeIter parent; |
@@ -255,7 +255,10 @@ check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path) | |||
255 | uc->rd = rd; | 255 | uc->rd = rd; |
256 | uc->rd_count = records; | 256 | uc->rd_count = records; |
257 | uc->name = strdup (name); | 257 | uc->name = strdup (name); |
258 | GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, name, NULL, &check_name_validity_and_commit_remove_proc, uc); | 258 | if (oldname != NULL) |
259 | GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, oldname, NULL, &check_name_validity_and_commit_remove_proc, uc); | ||
260 | else | ||
261 | GNUNET_NAMESTORE_record_remove(gns->ns, gns->pkey, name, NULL, &check_name_validity_and_commit_remove_proc, uc); | ||
259 | g_free (name); | 262 | g_free (name); |
260 | } | 263 | } |
261 | } | 264 | } |
@@ -459,8 +462,6 @@ GNUNET_GNS_GTK_type_cellrenderercombo_changed_cb (GtkCellRendererCombo *combo, | |||
459 | 462 | ||
460 | } | 463 | } |
461 | GNUNET_free (type_str); | 464 | GNUNET_free (type_str); |
462 | GNUNET_free_non_null (name_str); | ||
463 | |||
464 | 465 | ||
465 | /* check if value is still valid */ | 466 | /* check if value is still valid */ |
466 | gtk_tree_model_get(gns->tm, &it, TREE_COL_VAL_AS_STR, &value_str, -1); | 467 | gtk_tree_model_get(gns->tm, &it, TREE_COL_VAL_AS_STR, &value_str, -1); |
@@ -484,7 +485,8 @@ GNUNET_GNS_GTK_type_cellrenderercombo_changed_cb (GtkCellRendererCombo *combo, | |||
484 | gtk_tree_store_set (gns->ts, &child, TREE_COL_VAL_COLOR, "red", -1); | 485 | gtk_tree_store_set (gns->ts, &child, TREE_COL_VAL_COLOR, "red", -1); |
485 | } | 486 | } |
486 | 487 | ||
487 | check_name_validity_and_commit (gns, path); | 488 | check_name_validity_and_commit (gns, path, NULL); |
489 | GNUNET_free_non_null (name_str); | ||
488 | } | 490 | } |
489 | 491 | ||
490 | 492 | ||
@@ -509,7 +511,7 @@ GNUNET_GNS_GTK_ispublic_cellrenderertoggle_toggled_cb (GtkCellRendererToggle *ce | |||
509 | gtk_tree_model_get(gns->tm, &it, TREE_COL_IS_PUBLIC, &value, -1); | 511 | gtk_tree_model_get(gns->tm, &it, TREE_COL_IS_PUBLIC, &value, -1); |
510 | gtk_tree_store_set(gns->ts, &it, TREE_COL_IS_PUBLIC, !value, -1); | 512 | gtk_tree_store_set(gns->ts, &it, TREE_COL_IS_PUBLIC, !value, -1); |
511 | 513 | ||
512 | check_name_validity_and_commit (gns, path); | 514 | check_name_validity_and_commit (gns, path, NULL); |
513 | } | 515 | } |
514 | 516 | ||
515 | static | 517 | static |
@@ -664,7 +666,7 @@ GNUNET_GNS_GTK_expiration_cellrenderertext_edited_cb (GtkCellRendererText *rende | |||
664 | TREE_COL_EXP_TIME, abstime.abs_value, | 666 | TREE_COL_EXP_TIME, abstime.abs_value, |
665 | TREE_COL_EXP_TIME_COLOR, NULL, | 667 | TREE_COL_EXP_TIME_COLOR, NULL, |
666 | -1); | 668 | -1); |
667 | check_name_validity_and_commit (gns, path); | 669 | check_name_validity_and_commit (gns, path, NULL); |
668 | } | 670 | } |
669 | } | 671 | } |
670 | 672 | ||
@@ -718,7 +720,7 @@ GNUNET_GNS_GTK_value_cellrenderertext_edited_cb (GtkCellRendererText *renderer, | |||
718 | { | 720 | { |
719 | gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1); | 721 | gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_COLOR, NULL, -1); |
720 | gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_AS_STR, new_text, -1); | 722 | gtk_tree_store_set (gns->ts, &it, TREE_COL_VAL_AS_STR, new_text, -1); |
721 | check_name_validity_and_commit (gns, path); | 723 | check_name_validity_and_commit (gns, path, NULL); |
722 | } | 724 | } |
723 | else | 725 | else |
724 | { | 726 | { |
@@ -749,6 +751,7 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer, | |||
749 | GtkTreeIter child; | 751 | GtkTreeIter child; |
750 | GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts); | 752 | GtkTreeModel *tm = GTK_TREE_MODEL(gns->ts); |
751 | int not_dummy; | 753 | int not_dummy; |
754 | char *name; | ||
752 | 755 | ||
753 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, new_text); | 756 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "New text for `%s' is `%s'\n", path, new_text); |
754 | if ((0 == strcmp (new_text, NEW_NAME_STR)) || (0 == strcmp (new_text, ""))) | 757 | if ((0 == strcmp (new_text, NEW_NAME_STR)) || (0 == strcmp (new_text, ""))) |
@@ -756,6 +759,7 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer, | |||
756 | 759 | ||
757 | gtk_tree_model_get_iter_from_string(tm, &it, path); | 760 | gtk_tree_model_get_iter_from_string(tm, &it, path); |
758 | gtk_tree_model_get(tm, &it, TREE_COL_NOT_DUMMY_ROW, ¬_dummy, -1); | 761 | gtk_tree_model_get(tm, &it, TREE_COL_NOT_DUMMY_ROW, ¬_dummy, -1); |
762 | gtk_tree_model_get(tm, &it, TREE_COL_NAME, &name, -1); | ||
759 | 763 | ||
760 | if (not_dummy == GNUNET_NO) | 764 | if (not_dummy == GNUNET_NO) |
761 | { | 765 | { |
@@ -766,7 +770,7 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer, | |||
766 | TREE_COL_RECORD_TYPE_AS_STR, _(NEW_RECORD_STR), | 770 | TREE_COL_RECORD_TYPE_AS_STR, _(NEW_RECORD_STR), |
767 | TREE_COL_NOT_DUMMY_ROW, GNUNET_YES, | 771 | TREE_COL_NOT_DUMMY_ROW, GNUNET_YES, |
768 | -1); | 772 | -1); |
769 | check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it)); | 773 | check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it), name); |
770 | 774 | ||
771 | /* add a new dummy line */ | 775 | /* add a new dummy line */ |
772 | gtk_tree_store_insert_with_values (gns->ts, &it,NULL, 0, | 776 | gtk_tree_store_insert_with_values (gns->ts, &it,NULL, 0, |
@@ -794,7 +798,7 @@ GNUNET_GNS_GTK_name_cellrenderertext_edited_cb (GtkCellRendererText *renderer, | |||
794 | while (TRUE == gtk_tree_model_iter_next (gns->tm, &child)); | 798 | while (TRUE == gtk_tree_model_iter_next (gns->tm, &child)); |
795 | } | 799 | } |
796 | 800 | ||
797 | check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it)); | 801 | check_name_validity_and_commit (gns, gtk_tree_model_get_string_from_iter(gns->tm, &it), name); |
798 | } | 802 | } |
799 | 803 | ||
800 | if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (new_text)) | 804 | if (GNUNET_SYSERR == GNUNET_NAMESTORE_check_name (new_text)) |