diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-02 08:32:18 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-04-02 08:32:18 +0000 |
commit | 5e7c0333388fce0eddbbef0f4d6949853f97cc13 (patch) | |
tree | 659ff484b67bae734b0a7c8b111d9f97c8ef56bf | |
parent | a658f046a4aa4b673d67379c2095c0eaf7070d54 (diff) | |
download | gnunet-gtk-5e7c0333388fce0eddbbef0f4d6949853f97cc13.tar.gz gnunet-gtk-5e7c0333388fce0eddbbef0f4d6949853f97cc13.zip |
fixing Mantis 0002246
-rw-r--r-- | src/gns/gnunet-gns-gtk.c | 25 | ||||
-rw-r--r-- | src/gns/gnunet-gns-gtk.h | 7 | ||||
-rw-r--r-- | src/gns/gnunet-gns-gtk_zone.c | 33 |
3 files changed, 49 insertions, 16 deletions
diff --git a/src/gns/gnunet-gns-gtk.c b/src/gns/gnunet-gns-gtk.c index 29a6897e..b1f85c24 100644 --- a/src/gns/gnunet-gns-gtk.c +++ b/src/gns/gnunet-gns-gtk.c | |||
@@ -204,6 +204,22 @@ GNUNET_GNS_GTK_shutdown (struct GNUNET_GNS_Context *gns) | |||
204 | GNUNET_SCHEDULER_add_now (&shutdown_task, gns); | 204 | GNUNET_SCHEDULER_add_now (&shutdown_task, gns); |
205 | } | 205 | } |
206 | 206 | ||
207 | gboolean | ||
208 | GNUNET_GNS_GTK_pseu_entry_enter_cb (GtkWidget *widget, | ||
209 | GdkEvent *event, | ||
210 | gpointer user_data) | ||
211 | { | ||
212 | const gchar * pseu; | ||
213 | |||
214 | pseu = gtk_entry_get_text (GTK_ENTRY(widget)); | ||
215 | |||
216 | if ((pseu == NULL) || (0 == strcmp (pseu, ""))) | ||
217 | { | ||
218 | //gtk_entry_set_text (GTK_ENTRY(widget), PSEU_EMPTY_STR); | ||
219 | } | ||
220 | return FALSE; | ||
221 | } | ||
222 | |||
207 | 223 | ||
208 | /** | 224 | /** |
209 | * The user edited the preferred name (PSEU) of this namespace. | 225 | * The user edited the preferred name (PSEU) of this namespace. |
@@ -221,7 +237,7 @@ GNUNET_GNS_GTK_pseu_entry_changed_cb (GtkEditable *editable, | |||
221 | const gchar * pseu; | 237 | const gchar * pseu; |
222 | 238 | ||
223 | pseu = gtk_entry_get_text (GTK_ENTRY(editable)); | 239 | pseu = gtk_entry_get_text (GTK_ENTRY(editable)); |
224 | if ((pseu != NULL) && (0 != strcmp ("", pseu)) && (GNUNET_NO == gns->iteration)) | 240 | if ((pseu != NULL) && (0 != strcmp (pseu, PSEU_EMPTY_STR)) && (0 != strcmp ("", pseu)) && (GNUNET_NO == gns->iteration)) |
225 | { | 241 | { |
226 | 242 | ||
227 | rd.record_type = GNUNET_NAMESTORE_TYPE_PSEU; | 243 | rd.record_type = GNUNET_NAMESTORE_TYPE_PSEU; |
@@ -232,6 +248,12 @@ GNUNET_GNS_GTK_pseu_entry_changed_cb (GtkEditable *editable, | |||
232 | GNUNET_NAMESTORE_record_create(gns->ns, gns->pkey, "+", &rd, pseu_change_cont, gns); | 248 | GNUNET_NAMESTORE_record_create(gns->ns, gns->pkey, "+", &rd, pseu_change_cont, gns); |
233 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "New Pseudonym is `%s' %u\n", (char *) rd.data, rd.data_size); | 249 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "New Pseudonym is `%s' %u\n", (char *) rd.data, rd.data_size); |
234 | } | 250 | } |
251 | else if ((0 != strcmp (pseu, PSEU_EMPTY_STR)) && ((pseu == NULL) || (0 == strcmp ("", pseu)))) | ||
252 | { | ||
253 | gtk_entry_set_text (GTK_ENTRY(editable), PSEU_EMPTY_STR); | ||
254 | GNUNET_break (0); | ||
255 | } | ||
256 | |||
235 | } | 257 | } |
236 | 258 | ||
237 | /** | 259 | /** |
@@ -300,7 +322,6 @@ GNUNET_GNS_GTK_zone_open_dialog_response_cb (GtkDialog * dialog, | |||
300 | gint response_id, | 322 | gint response_id, |
301 | gpointer user_data) | 323 | gpointer user_data) |
302 | { | 324 | { |
303 | struct GNUNET_GNS_Context *gns = user_data; | ||
304 | char *filename; | 325 | char *filename; |
305 | 326 | ||
306 | if (GTK_RESPONSE_OK != response_id) | 327 | if (GTK_RESPONSE_OK != response_id) |
diff --git a/src/gns/gnunet-gns-gtk.h b/src/gns/gnunet-gns-gtk.h index b9228082..b0330aef 100644 --- a/src/gns/gnunet-gns-gtk.h +++ b/src/gns/gnunet-gns-gtk.h | |||
@@ -26,6 +26,13 @@ | |||
26 | #include "gnunet_gtk.h" | 26 | #include "gnunet_gtk.h" |
27 | #include <gnunet/gnunet_namestore_service.h> | 27 | #include <gnunet/gnunet_namestore_service.h> |
28 | 28 | ||
29 | #define NEW_NAME_STR "<new name>" | ||
30 | #define NEW_RECORD_STR "<new record>" | ||
31 | #define ROOT_STR "+" | ||
32 | #define EXPIRE_NEVER_STRING "never" | ||
33 | #define EXPIRE_INVALID_STRING "invalid" | ||
34 | #define PSEU_EMPTY_STR "<empty>" | ||
35 | |||
29 | 36 | ||
30 | struct GNUNET_GNS_Context | 37 | struct GNUNET_GNS_Context |
31 | { | 38 | { |
diff --git a/src/gns/gnunet-gns-gtk_zone.c b/src/gns/gnunet-gns-gtk_zone.c index c541fcba..25d2982d 100644 --- a/src/gns/gnunet-gns-gtk_zone.c +++ b/src/gns/gnunet-gns-gtk_zone.c | |||
@@ -26,12 +26,6 @@ | |||
26 | #include "gnunet_gtk.h" | 26 | #include "gnunet_gtk.h" |
27 | #include "gnunet-gns-gtk.h" | 27 | #include "gnunet-gns-gtk.h" |
28 | 28 | ||
29 | #define NEW_NAME_STR "<new name>" | ||
30 | #define NEW_RECORD_STR "<new record>" | ||
31 | #define ROOT_STR "+" | ||
32 | #define EXPIRE_NEVER_STRING "never" | ||
33 | #define EXPIRE_INVALID_STRING "invalid" | ||
34 | |||
35 | enum TREESTORE_COLUMNS | 29 | enum TREESTORE_COLUMNS |
36 | { | 30 | { |
37 | TREE_COL_NAME = 0, | 31 | TREE_COL_NAME = 0, |
@@ -229,19 +223,30 @@ check_name_validity_and_commit (struct GNUNET_GNS_Context *gns, gchar *path) | |||
229 | if (GNUNET_YES == append_pseu) | 223 | if (GNUNET_YES == append_pseu) |
230 | { | 224 | { |
231 | GNUNET_assert (children == (records -1)); | 225 | GNUNET_assert (children == (records -1)); |
226 | |||
232 | /* Append PSEU record */ | 227 | /* Append PSEU record */ |
233 | GtkEntry * entry = GTK_ENTRY (gtk_builder_get_object (gns->builder, "GNUNET_GNS_GTK_pseu_entry")); | 228 | GtkEntry * entry = GTK_ENTRY (gtk_builder_get_object (gns->builder, "GNUNET_GNS_GTK_pseu_entry")); |
234 | pseu = gtk_entry_get_text (GTK_ENTRY(entry)); | 229 | pseu = gtk_entry_get_text (GTK_ENTRY(entry)); |
235 | if (GNUNET_OK != GNUNET_NAMESTORE_string_to_value(GNUNET_NAMESTORE_TYPE_PSEU, pseu, (void **) &rd[records - 1].data, &rd[records - 1].data_size)) | 230 | if ((NULL != pseu) && (0 != strcmp (PSEU_EMPTY_STR, pseu)) && (0 != strcmp ("", pseu))) |
231 | { | ||
232 | if (GNUNET_OK != GNUNET_NAMESTORE_string_to_value(GNUNET_NAMESTORE_TYPE_PSEU, | ||
233 | pseu, | ||
234 | (void **) &rd[records - 1].data, | ||
235 | &rd[records - 1].data_size)) | ||
236 | { | ||
237 | GNUNET_break (0); | ||
238 | for (c = 0; c < records; c++) | ||
239 | GNUNET_free_non_null ((void *) rd[c].data); | ||
240 | GNUNET_free_non_null (rd); | ||
241 | } | ||
242 | rd[records - 1].record_type = GNUNET_NAMESTORE_TYPE_PSEU; | ||
243 | rd[records - 1].expiration = GNUNET_TIME_absolute_get_forever(); | ||
244 | rd[records - 1].flags = GNUNET_NAMESTORE_RF_AUTHORITY | GNUNET_NAMESTORE_RF_NONE; | ||
245 | } | ||
246 | else | ||
236 | { | 247 | { |
237 | GNUNET_break (0); | 248 | GNUNET_break (0); |
238 | for (c = 0; c < records; c++) | ||
239 | GNUNET_free_non_null ((void *) rd[c].data); | ||
240 | GNUNET_free_non_null (rd); | ||
241 | } | 249 | } |
242 | rd[records - 1].record_type = GNUNET_NAMESTORE_TYPE_PSEU; | ||
243 | rd[records - 1].expiration = GNUNET_TIME_absolute_get_forever(); | ||
244 | rd[records - 1].flags = GNUNET_NAMESTORE_RF_AUTHORITY | GNUNET_NAMESTORE_RF_NONE; | ||
245 | } | 250 | } |
246 | 251 | ||
247 | /* Remove old entries */ | 252 | /* Remove old entries */ |
@@ -995,7 +1000,7 @@ zone_iteration_proc (void *cls, | |||
995 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Zone `%s 'iteration done\n", &shenc); | 1000 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Zone `%s 'iteration done\n", &shenc); |
996 | pseu_entry = GTK_ENTRY((gtk_builder_get_object (zc_ctx->gns->builder, "GNUNET_GNS_GTK_pseu_entry"))); | 1001 | pseu_entry = GTK_ENTRY((gtk_builder_get_object (zc_ctx->gns->builder, "GNUNET_GNS_GTK_pseu_entry"))); |
997 | if (zc_ctx->label == NULL) | 1002 | if (zc_ctx->label == NULL) |
998 | GNUNET_asprintf(&zc_ctx->label, "%s", EXPIRE_INVALID_STRING); | 1003 | GNUNET_asprintf(&zc_ctx->label, "%s", PSEU_EMPTY_STR); |
999 | gtk_entry_set_text (pseu_entry, zc_ctx->label); | 1004 | gtk_entry_set_text (pseu_entry, zc_ctx->label); |
1000 | zc_ctx->gns->iteration = GNUNET_NO; | 1005 | zc_ctx->gns->iteration = GNUNET_NO; |
1001 | GNUNET_free (zc_ctx->label); | 1006 | GNUNET_free (zc_ctx->label); |