aboutsummaryrefslogtreecommitdiff
path: root/src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c')
-rw-r--r--src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c554
1 files changed, 273 insertions, 281 deletions
diff --git a/src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c b/src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c
index 0a157a42..1875204b 100644
--- a/src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c
+++ b/src/fs/gnunet-fs-gtk-main_window_adv_pseudonym.c
@@ -44,31 +44,28 @@ GNUNET_GTK_advertise_pseudonym_keyword_list_normalize_button_clicked_cb ()
44 char *nvalue; 44 char *nvalue;
45 char *emsg; 45 char *emsg;
46 46
47 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 47 tv = GTK_TREE_VIEW (gtk_builder_get_object
48 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view")); 48 (builder,
49 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view"));
49 sel = gtk_tree_view_get_selection (tv); 50 sel = gtk_tree_view_get_selection (tv);
50 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter)) 51 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter))
51 { 52 {
52 GNUNET_break (0); 53 GNUNET_break (0);
53 return; 54 return;
54 } 55 }
55 gtk_tree_model_get (tm, &iter, 56 gtk_tree_model_get (tm, &iter, 0, &value, -1);
56 0, &value,
57 -1);
58 emsg = NULL; 57 emsg = NULL;
59 uri = GNUNET_FS_uri_ksk_create (value, &emsg); 58 uri = GNUNET_FS_uri_ksk_create (value, &emsg);
60 if (uri == NULL) 59 if (uri == NULL)
61 { 60 {
62 GNUNET_break (0); 61 GNUNET_break (0);
63 GNUNET_free (emsg); 62 GNUNET_free (emsg);
64 g_free (value); 63 g_free (value);
65 return; 64 return;
66 } 65 }
67 nuri = GNUNET_FS_uri_ksk_canonicalize (uri); 66 nuri = GNUNET_FS_uri_ksk_canonicalize (uri);
68 nvalue = GNUNET_FS_uri_ksk_to_string_fancy (nuri); 67 nvalue = GNUNET_FS_uri_ksk_to_string_fancy (nuri);
69 gtk_list_store_set (GTK_LIST_STORE (tm), &iter, 68 gtk_list_store_set (GTK_LIST_STORE (tm), &iter, 0, nvalue, -1);
70 0, nvalue,
71 -1);
72 GNUNET_FS_uri_destroy (nuri); 69 GNUNET_FS_uri_destroy (nuri);
73 GNUNET_FS_uri_destroy (uri); 70 GNUNET_FS_uri_destroy (uri);
74 GNUNET_free (nvalue); 71 GNUNET_free (nvalue);
@@ -87,22 +84,22 @@ GNUNET_GTK_advertise_pseudonym_keyword_list_del_button_clicked_cb ()
87 GtkTreeModel *tm; 84 GtkTreeModel *tm;
88 GtkTreeIter iter; 85 GtkTreeIter iter;
89 86
90 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 87 tv = GTK_TREE_VIEW (gtk_builder_get_object
91 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view")); 88 (builder,
89 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view"));
92 sel = gtk_tree_view_get_selection (tv); 90 sel = gtk_tree_view_get_selection (tv);
93 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter)) 91 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter))
94 { 92 {
95 GNUNET_break (0); 93 GNUNET_break (0);
96 return; 94 return;
97 } 95 }
98 gtk_list_store_remove (GTK_LIST_STORE (tm), 96 gtk_list_store_remove (GTK_LIST_STORE (tm), &iter);
99 &iter);
100} 97}
101 98
102 99
103/** 100/**
104 * Add keyword from entry line to keyword list. 101 * Add keyword from entry line to keyword list.
105 */ 102 */
106void 103void
107GNUNET_GTK_advertise_pseudonym_keyword_list_add_button_clicked_cb () 104GNUNET_GTK_advertise_pseudonym_keyword_list_add_button_clicked_cb ()
108{ 105{
@@ -111,10 +108,11 @@ GNUNET_GTK_advertise_pseudonym_keyword_list_add_button_clicked_cb ()
111 GtkListStore *ls; 108 GtkListStore *ls;
112 GtkTreeIter iter; 109 GtkTreeIter iter;
113 110
114 ls = GTK_LIST_STORE (gtk_builder_get_object (builder, 111 ls = GTK_LIST_STORE (gtk_builder_get_object
115 "GNUNET_GTK_keyword_list_store")); 112 (builder, "GNUNET_GTK_keyword_list_store"));
116 entry = GTK_ENTRY (gtk_builder_get_object (builder, 113 entry =
117 "GNUNET_GTK_advertise_pseudonym_keyword_entry")); 114 GTK_ENTRY (gtk_builder_get_object
115 (builder, "GNUNET_GTK_advertise_pseudonym_keyword_entry"));
118 keyword = gtk_entry_get_text (entry); 116 keyword = gtk_entry_get_text (entry);
119 if (strlen (keyword) > 0) 117 if (strlen (keyword) > 0)
120 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 0, keyword, -1); 118 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 0, keyword, -1);
@@ -132,33 +130,37 @@ GNUNET_GTK_advertise_pseudonym_keyword_entry_changed_cb ()
132 GtkEntry *entry; 130 GtkEntry *entry;
133 GtkWidget *button; 131 GtkWidget *button;
134 132
135 button = GTK_WIDGET (gtk_builder_get_object (builder, 133 button =
136 "GNUNET_GTK_advertise_pseudonym_keyword_list_add_button")); 134 GTK_WIDGET (gtk_builder_get_object
137 entry = GTK_ENTRY (gtk_builder_get_object (builder, 135 (builder,
138 "GNUNET_GTK_advertise_pseudonym_keyword_entry")); 136 "GNUNET_GTK_advertise_pseudonym_keyword_list_add_button"));
137 entry =
138 GTK_ENTRY (gtk_builder_get_object
139 (builder, "GNUNET_GTK_advertise_pseudonym_keyword_entry"));
139 keyword = gtk_entry_get_text (entry); 140 keyword = gtk_entry_get_text (entry);
140 gtk_widget_set_sensitive (button, 141 gtk_widget_set_sensitive (button, (strlen (keyword) > 0) ? TRUE : FALSE);
141 (strlen (keyword) > 0) ? TRUE : FALSE);
142} 142}
143 143
144/** 144/**
145 * Update sensitivity of metadata delete button. 145 * Update sensitivity of metadata delete button.
146 */ 146 */
147static void 147static void
148metadata_selection_changed_cb (GtkTreeSelection *ts, 148metadata_selection_changed_cb (GtkTreeSelection * ts, gpointer user_data)
149 gpointer user_data)
150{ 149{
151 GtkTreeView *tv; 150 GtkTreeView *tv;
152 GtkTreeSelection *sel; 151 GtkTreeSelection *sel;
153 GtkWidget *button; 152 GtkWidget *button;
154 153
155 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 154 tv = GTK_TREE_VIEW (gtk_builder_get_object
156 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view")); 155 (builder,
156 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view"));
157 sel = gtk_tree_view_get_selection (tv); 157 sel = gtk_tree_view_get_selection (tv);
158 button = GTK_WIDGET (gtk_builder_get_object (builder, 158 button =
159 "GNUNET_GTK_advertise_pseudonym_metadata_delete_button")); 159 GTK_WIDGET (gtk_builder_get_object
160 (builder,
161 "GNUNET_GTK_advertise_pseudonym_metadata_delete_button"));
160 gtk_widget_set_sensitive (button, 162 gtk_widget_set_sensitive (button,
161 gtk_tree_selection_get_selected (sel, NULL, NULL)); 163 gtk_tree_selection_get_selected (sel, NULL, NULL));
162} 164}
163 165
164 166
@@ -166,25 +168,29 @@ metadata_selection_changed_cb (GtkTreeSelection *ts,
166 * Update sensitivity of keyword delete and normalize button. 168 * Update sensitivity of keyword delete and normalize button.
167 */ 169 */
168static void 170static void
169keyword_selection_changed_cb (GtkTreeSelection *ts, 171keyword_selection_changed_cb (GtkTreeSelection * ts, gpointer user_data)
170 gpointer user_data)
171{ 172{
172 GtkTreeView *tv; 173 GtkTreeView *tv;
173 GtkTreeSelection *sel; 174 GtkTreeSelection *sel;
174 GtkWidget *button; 175 GtkWidget *button;
175 176
176 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 177 tv = GTK_TREE_VIEW (gtk_builder_get_object
177 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view")); 178 (builder,
179 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view"));
178 sel = gtk_tree_view_get_selection (tv); 180 sel = gtk_tree_view_get_selection (tv);
179 button = GTK_WIDGET (gtk_builder_get_object (builder, 181 button =
180 "GNUNET_GTK_advertise_pseudonym_keyword_list_del_button")); 182 GTK_WIDGET (gtk_builder_get_object
183 (builder,
184 "GNUNET_GTK_advertise_pseudonym_keyword_list_del_button"));
181 185
182 gtk_widget_set_sensitive (button, 186 gtk_widget_set_sensitive (button,
183 gtk_tree_selection_get_selected (sel, NULL, NULL)); 187 gtk_tree_selection_get_selected (sel, NULL, NULL));
184 button = GTK_WIDGET (gtk_builder_get_object (builder, 188 button =
185 "GNUNET_GTK_advertise_pseudonym_keyword_list_normalize_button")); 189 GTK_WIDGET (gtk_builder_get_object
190 (builder,
191 "GNUNET_GTK_advertise_pseudonym_keyword_list_normalize_button"));
186 gtk_widget_set_sensitive (button, 192 gtk_widget_set_sensitive (button,
187 gtk_tree_selection_get_selected (sel, NULL, NULL)); 193 gtk_tree_selection_get_selected (sel, NULL, NULL));
188} 194}
189 195
190 196
@@ -193,25 +199,31 @@ keyword_selection_changed_cb (GtkTreeSelection *ts,
193 */ 199 */
194void 200void
195GNUNET_GTK_advertise_pseudonym_metadata_value_entry_changed_cb () 201GNUNET_GTK_advertise_pseudonym_metadata_value_entry_changed_cb ()
196{ 202{
197 GtkTreeView *tv; 203 GtkTreeView *tv;
198 GtkTreeSelection *sel; 204 GtkTreeSelection *sel;
199 const char *value; 205 const char *value;
200 GtkEntry *entry; 206 GtkEntry *entry;
201 GtkWidget *button; 207 GtkWidget *button;
202 208
203 entry = GTK_ENTRY (gtk_builder_get_object (builder, 209 entry =
204 "GNUNET_GTK_advertise_pseudonym_metadata_value_entry")); 210 GTK_ENTRY (gtk_builder_get_object
211 (builder,
212 "GNUNET_GTK_advertise_pseudonym_metadata_value_entry"));
205 value = gtk_entry_get_text (entry); 213 value = gtk_entry_get_text (entry);
206 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 214 tv = GTK_TREE_VIEW (gtk_builder_get_object
207 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view")); 215 (builder,
216 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view"));
208 sel = gtk_tree_view_get_selection (tv); 217 sel = gtk_tree_view_get_selection (tv);
209 button = GTK_WIDGET (gtk_builder_get_object (builder, 218 button =
210 "GNUNET_GTK_advertise_pseudonym_metadata_add_button")); 219 GTK_WIDGET (gtk_builder_get_object
220 (builder,
221 "GNUNET_GTK_advertise_pseudonym_metadata_add_button"));
211 gtk_widget_set_sensitive (button, 222 gtk_widget_set_sensitive (button,
212 (strlen (value) > 0) 223 (strlen (value) >
213 ? gtk_tree_selection_get_selected (sel, NULL, NULL) 224 0) ? gtk_tree_selection_get_selected (sel, NULL,
214 : FALSE); 225 NULL) :
226 FALSE);
215} 227}
216 228
217 229
@@ -225,8 +237,7 @@ GNUNET_GTK_advertise_pseudonym_keyword_entry_activate_cb ()
225} 237}
226 238
227 239
228void 240void GNUNET_GTK_advertise_pseudonym_metadata_preview_file_chooser_button_file_set_cb ()
229GNUNET_GTK_advertise_pseudonym_metadata_preview_file_chooser_button_file_set_cb ()
230{ 241{
231 GNUNET_break (0); 242 GNUNET_break (0);
232} 243}
@@ -235,23 +246,23 @@ GNUNET_GTK_advertise_pseudonym_metadata_preview_file_chooser_button_file_set_cb
235 * Delete currently selected item from meta data list. 246 * Delete currently selected item from meta data list.
236 */ 247 */
237void 248void
238GNUNET_GTK_advertise_pseudonym_metadata_delete_button_clicked_cb() 249GNUNET_GTK_advertise_pseudonym_metadata_delete_button_clicked_cb ()
239{ 250{
240 GtkTreeView *tv; 251 GtkTreeView *tv;
241 GtkTreeSelection *sel; 252 GtkTreeSelection *sel;
242 GtkTreeModel *tm; 253 GtkTreeModel *tm;
243 GtkTreeIter iter; 254 GtkTreeIter iter;
244 255
245 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 256 tv = GTK_TREE_VIEW (gtk_builder_get_object
246 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view")); 257 (builder,
258 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view"));
247 sel = gtk_tree_view_get_selection (tv); 259 sel = gtk_tree_view_get_selection (tv);
248 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter)) 260 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter))
249 { 261 {
250 GNUNET_break (0); 262 GNUNET_break (0);
251 return; 263 return;
252 } 264 }
253 gtk_list_store_remove (GTK_LIST_STORE (tm), 265 gtk_list_store_remove (GTK_LIST_STORE (tm), &iter);
254 &iter);
255} 266}
256 267
257 268
@@ -274,69 +285,63 @@ GNUNET_GTK_advertise_pseudonym_metadata_add_button_clicked_cb ()
274 size_t slen; 285 size_t slen;
275 char *pos; 286 char *pos;
276 287
277 entry = GTK_ENTRY (gtk_builder_get_object (builder, 288 entry =
278 "GNUNET_GTK_advertise_pseudonym_metadata_value_entry")); 289 GTK_ENTRY (gtk_builder_get_object
290 (builder,
291 "GNUNET_GTK_advertise_pseudonym_metadata_value_entry"));
279 value = gtk_entry_get_text (entry); 292 value = gtk_entry_get_text (entry);
280 if ((value == NULL) || (strlen (value) == 0)) 293 if ((value == NULL) || (strlen (value) == 0))
281 { 294 {
282 GNUNET_break (0); 295 GNUNET_break (0);
283 return; 296 return;
284 } 297 }
285 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 298 tv = GTK_TREE_VIEW (gtk_builder_get_object
286 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view")); 299 (builder,
300 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view"));
287 tm = gtk_tree_view_get_model (tv); 301 tm = gtk_tree_view_get_model (tv);
288 sel = gtk_tree_view_get_selection (tv); 302 sel = gtk_tree_view_get_selection (tv);
289 if (TRUE != gtk_tree_selection_get_selected (sel, 303 if (TRUE != gtk_tree_selection_get_selected (sel, &tm, &iter))
290 &tm, 304 {
291 &iter)) 305 GNUNET_break (0);
306 return;
307 }
308 gtk_tree_model_get (tm, &iter, 1, &type, -1);
309 ls = GTK_LIST_STORE (gtk_builder_get_object
310 (builder, "GNUNET_GTK_meta_data_list_store"));
311 if ((type == EXTRACTOR_METATYPE_FILENAME) &&
312 (value[strlen (value) - 1] != '/'))
313 {
314 GNUNET_asprintf (&avalue, "%s/", value);
315 /* if user typed '\' instead of '/', change it! */
316 slen = strlen (avalue);
317 while ((slen > 1) && (avalue[slen - 2] == '\\'))
292 { 318 {
293 GNUNET_break (0); 319 avalue[slen - 2] = '/';
294 return; 320 avalue[slen - 1] = '\0';
321 slen--;
295 } 322 }
296 gtk_tree_model_get (tm, 323 while (NULL != (pos = strstr (avalue, "\\")))
297 &iter, 324 *pos = '/';
298 1, &type, -1); 325 /* remove '../' everywhere */
299 ls = GTK_LIST_STORE (gtk_builder_get_object (builder, 326 while (NULL != (pos = strstr (avalue, "../")))
300 "GNUNET_GTK_meta_data_list_store"));
301 if ( (type == EXTRACTOR_METATYPE_FILENAME) &&
302 (value[strlen(value)-1] != '/') )
303 {
304 GNUNET_asprintf (&avalue,
305 "%s/",
306 value);
307 /* if user typed '\' instead of '/', change it! */
308 slen = strlen (avalue);
309 while ( (slen > 1) &&
310 (avalue[slen-2] == '\\') )
311 {
312 avalue[slen-2] = '/';
313 avalue[slen-1] = '\0';
314 slen--;
315 }
316 while (NULL != (pos = strstr (avalue, "\\")))
317 *pos = '/';
318 /* remove '../' everywhere */
319 while (NULL != (pos = strstr (avalue, "../")))
320 {
321 pos[0] = '_';
322 pos[1] = '_';
323 pos[2] = '_';
324 }
325 ivalue = avalue;
326 }
327 else
328 { 327 {
329 ivalue = value; 328 pos[0] = '_';
330 avalue = NULL; 329 pos[1] = '_';
330 pos[2] = '_';
331 } 331 }
332 332 ivalue = avalue;
333 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 333 }
334 0, type, 334 else
335 1, (guint) EXTRACTOR_METAFORMAT_UTF8, 335 {
336 2, EXTRACTOR_metatype_to_string (type), 336 ivalue = value;
337 3, ivalue, 337 avalue = NULL;
338 -1); 338 }
339 GNUNET_free_non_null (avalue); 339
340 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 0, type, 1,
341 (guint) EXTRACTOR_METAFORMAT_UTF8, 2,
342 EXTRACTOR_metatype_to_string (type), 3,
343 ivalue, -1);
344 GNUNET_free_non_null (avalue);
340 gtk_entry_set_text (GTK_ENTRY (entry), ""); 345 gtk_entry_set_text (GTK_ENTRY (entry), "");
341} 346}
342 347
@@ -351,33 +356,28 @@ GNUNET_GTK_advertise_pseudonym_metadata_add_button_clicked_cb ()
351 * @param id hash identifier for the namespace 356 * @param id hash identifier for the namespace
352 */ 357 */
353static void 358static void
354add_to_list (void *cls, 359add_to_list (void *cls, const char *name, const GNUNET_HashCode * id)
355 const char *name,
356 const GNUNET_HashCode *id)
357{ 360{
358 GtkListStore *ls = cls; 361 GtkListStore *ls = cls;
359 GtkTreeIter iter; 362 GtkTreeIter iter;
360 363
361 gtk_list_store_insert_with_values (ls, 364 gtk_list_store_insert_with_values (ls, &iter, -1, 0, name, 1,
362 &iter, 365 GNUNET_FS_namespace_create
363 -1, 366 (GNUNET_FS_GTK_get_fs_handle (), name),
364 0, name, 367 -1);
365 1, GNUNET_FS_namespace_create (GNUNET_FS_GTK_get_fs_handle (), 368
366 name),
367 -1);
368
369} 369}
370 370
371 371
372static void 372static void
373selection_changed_cb (GtkTreeSelection *ts, 373selection_changed_cb (GtkTreeSelection * ts, gpointer user_data)
374 gpointer user_data)
375{ 374{
376 GtkTreeIter iter; 375 GtkTreeIter iter;
377 GtkWidget *ok_button; 376 GtkWidget *ok_button;
378 377
379 ok_button = GTK_WIDGET (gtk_builder_get_object (builder, 378 ok_button =
380 "GNUNET_GTK_select_pseudonym_ok_button")); 379 GTK_WIDGET (gtk_builder_get_object
380 (builder, "GNUNET_GTK_select_pseudonym_ok_button"));
381 if (TRUE == gtk_tree_selection_get_selected (ts, NULL, &iter)) 381 if (TRUE == gtk_tree_selection_get_selected (ts, NULL, &iter))
382 gtk_widget_set_sensitive (ok_button, TRUE); 382 gtk_widget_set_sensitive (ok_button, TRUE);
383 else 383 else
@@ -389,8 +389,8 @@ selection_changed_cb (GtkTreeSelection *ts,
389 * Advertise pseudonym selected. 389 * Advertise pseudonym selected.
390 */ 390 */
391void 391void
392GNUNET_GTK_main_menu_file_advertise_pseudonym_activate_cb (GtkWidget * dummy, 392GNUNET_GTK_main_menu_file_advertise_pseudonym_activate_cb (GtkWidget * dummy,
393 gpointer data) 393 gpointer data)
394{ 394{
395 GtkWidget *ad; 395 GtkWidget *ad;
396 struct GNUNET_FS_Namespace *ns; 396 struct GNUNET_FS_Namespace *ns;
@@ -408,173 +408,165 @@ GNUNET_GTK_main_menu_file_advertise_pseudonym_activate_cb (GtkWidget * dummy,
408 struct GNUNET_CONTAINER_MetaData *nm; 408 struct GNUNET_CONTAINER_MetaData *nm;
409 const char *root; 409 const char *root;
410 char *value; 410 char *value;
411 guint ntype; 411 guint ntype;
412 guint nformat; 412 guint nformat;
413 guint type; 413 guint type;
414 guint max_type; 414 guint max_type;
415 415
416 builder = GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_select_pseudonym_dialog.glade"); 416 builder =
417 GNUNET_GTK_get_new_builder
418 ("gnunet_fs_gtk_select_pseudonym_dialog.glade");
417 if (builder == NULL) 419 if (builder == NULL)
418 { 420 {
419 GNUNET_break (0); 421 GNUNET_break (0);
420 return; 422 return;
421 } 423 }
422 ad = GTK_WIDGET (gtk_builder_get_object (builder, 424 ad = GTK_WIDGET (gtk_builder_get_object
423 "GNUNET_GTK_select_pseudonym_dialog")); 425 (builder, "GNUNET_GTK_select_pseudonym_dialog"));
424 ls = GTK_LIST_STORE (gtk_builder_get_object (builder, 426 ls = GTK_LIST_STORE (gtk_builder_get_object
425 "GNUNET_GTK_select_pseudonym_liststore")); 427 (builder, "GNUNET_GTK_select_pseudonym_liststore"));
426 GNUNET_FS_namespace_list (GNUNET_FS_GTK_get_fs_handle (), 428 GNUNET_FS_namespace_list (GNUNET_FS_GTK_get_fs_handle (), &add_to_list, ls);
427 &add_to_list, 429 tv = GTK_TREE_VIEW (gtk_builder_get_object
428 ls); 430 (builder, "GNUNET_GTK_select_pseudonym_tree_view"));
429 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder,
430 "GNUNET_GTK_select_pseudonym_tree_view"));
431 sel = gtk_tree_view_get_selection (tv); 431 sel = gtk_tree_view_get_selection (tv);
432 g_signal_connect(G_OBJECT(sel), "changed", 432 g_signal_connect (G_OBJECT (sel), "changed",
433 G_CALLBACK(selection_changed_cb), NULL); 433 G_CALLBACK (selection_changed_cb), NULL);
434 if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad))) 434 if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad)))
435 { 435 {
436 gtk_widget_destroy (ad); 436 gtk_widget_destroy (ad);
437 g_object_unref (G_OBJECT (builder)); 437 g_object_unref (G_OBJECT (builder));
438 builder = NULL; 438 builder = NULL;
439 return; 439 return;
440 } 440 }
441 GNUNET_assert (TRUE == gtk_tree_selection_get_selected (sel, 441 GNUNET_assert (TRUE == gtk_tree_selection_get_selected (sel, &tm, &iter));
442 &tm, 442 gtk_tree_model_get (tm, &iter, 1, &ns, -1);
443 &iter));
444 gtk_tree_model_get (tm,
445 &iter,
446 1, &ns,
447 -1);
448 /* free all namespaces from list store except "ns" */ 443 /* free all namespaces from list store except "ns" */
449 if (TRUE == 444 if (TRUE == gtk_tree_model_get_iter_first (tm, &iter))
450 gtk_tree_model_get_iter_first (tm, &iter)) 445 {
446 do
451 { 447 {
452 do 448 gtk_tree_model_get (tm, &iter, 1, &nso, -1);
453 { 449 if (ns != nso)
454 gtk_tree_model_get (tm, &iter, 450 GNUNET_FS_namespace_delete (nso, GNUNET_NO);
455 1, &nso,
456 -1);
457 if (ns != nso)
458 GNUNET_FS_namespace_delete (nso, GNUNET_NO);
459 }
460 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
461 } 451 }
452 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
453 }
462 gtk_widget_destroy (ad); 454 gtk_widget_destroy (ad);
463 g_object_unref (G_OBJECT (builder)); 455 g_object_unref (G_OBJECT (builder));
464 builder = NULL; 456 builder = NULL;
465 457
466 458
467 builder = GNUNET_GTK_get_new_builder ("gnunet_fs_gtk_advertise_pseudonym_dialog.glade"); 459 builder =
460 GNUNET_GTK_get_new_builder
461 ("gnunet_fs_gtk_advertise_pseudonym_dialog.glade");
468 if (builder == NULL) 462 if (builder == NULL)
469 { 463 {
470 GNUNET_break (0); 464 GNUNET_break (0);
471 return; 465 return;
472 } 466 }
473 GNUNET_FS_GTK_setup_expiration_year_adjustment (builder); 467 GNUNET_FS_GTK_setup_expiration_year_adjustment (builder);
474 ad = GTK_WIDGET (gtk_builder_get_object (builder, 468 ad = GTK_WIDGET (gtk_builder_get_object
475 "GNUNET_GTK_advertise_pseudonym_dialog")); 469 (builder, "GNUNET_GTK_advertise_pseudonym_dialog"));
476 ls = GTK_LIST_STORE (gtk_builder_get_object (builder, 470 ls = GTK_LIST_STORE (gtk_builder_get_object
477 "GNUNET_GTK_metatype_list_store")); 471 (builder, "GNUNET_GTK_metatype_list_store"));
478 max_type = EXTRACTOR_metatype_get_max (); 472 max_type = EXTRACTOR_metatype_get_max ();
479 type = 1; 473 type = 1;
480 while (type < max_type - 1) 474 while (type < max_type - 1)
481 { 475 {
482 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 476 gtk_list_store_insert_with_values (ls, &iter, G_MAXINT, 0,
483 0, EXTRACTOR_metatype_to_string (type), 477 EXTRACTOR_metatype_to_string (type), 1,
484 1, type, 478 type, 2,
485 2, EXTRACTOR_metatype_to_description (type), 479 EXTRACTOR_metatype_to_description (type),
486 -1); 480 -1);
487 type++; 481 type++;
488 } 482 }
489 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 483 tv = GTK_TREE_VIEW (gtk_builder_get_object
490 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view")); 484 (builder,
485 "GNUNET_GTK_advertise_pseudonym_metadata_type_tree_view"));
491 sel = gtk_tree_view_get_selection (tv); 486 sel = gtk_tree_view_get_selection (tv);
492 g_signal_connect(G_OBJECT(sel), "changed", 487 g_signal_connect (G_OBJECT (sel), "changed",
493 G_CALLBACK(GNUNET_GTK_advertise_pseudonym_metadata_value_entry_changed_cb), NULL); 488 G_CALLBACK
494 489 (GNUNET_GTK_advertise_pseudonym_metadata_value_entry_changed_cb),
495 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 490 NULL);
496 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view")); 491
492 tv = GTK_TREE_VIEW (gtk_builder_get_object
493 (builder,
494 "GNUNET_GTK_advertise_pseudonym_metadata_tree_view"));
497 sel = gtk_tree_view_get_selection (tv); 495 sel = gtk_tree_view_get_selection (tv);
498 g_signal_connect(G_OBJECT(sel), "changed", 496 g_signal_connect (G_OBJECT (sel), "changed",
499 G_CALLBACK(metadata_selection_changed_cb), NULL); 497 G_CALLBACK (metadata_selection_changed_cb), NULL);
500 498
501 tv = GTK_TREE_VIEW (gtk_builder_get_object (builder, 499 tv = GTK_TREE_VIEW (gtk_builder_get_object
502 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view")); 500 (builder,
501 "GNUNET_GTK_advertise_pseudonym_keyword_list_tree_view"));
503 sel = gtk_tree_view_get_selection (tv); 502 sel = gtk_tree_view_get_selection (tv);
504 g_signal_connect(G_OBJECT(sel), "changed", 503 g_signal_connect (G_OBJECT (sel), "changed",
505 G_CALLBACK(keyword_selection_changed_cb), NULL); 504 G_CALLBACK (keyword_selection_changed_cb), NULL);
506 if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad))) 505 if (GTK_RESPONSE_OK != gtk_dialog_run (GTK_DIALOG (ad)))
507 { 506 {
508 gtk_widget_destroy (ad); 507 gtk_widget_destroy (ad);
509 g_object_unref (G_OBJECT (builder)); 508 g_object_unref (G_OBJECT (builder));
510 builder = NULL; 509 builder = NULL;
511 return; 510 return;
512 } 511 }
513 /* get keywords from list store */ 512 /* get keywords from list store */
514 nxt = NULL; 513 nxt = NULL;
515 mrg = NULL; 514 mrg = NULL;
516 uri = NULL; 515 uri = NULL;
517 tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 516 tm = GTK_TREE_MODEL (gtk_builder_get_object
518 "GNUNET_GTK_keyword_list_store")); 517 (builder, "GNUNET_GTK_keyword_list_store"));
519 if (TRUE == 518 if (TRUE == gtk_tree_model_get_iter_first (tm, &iter))
520 gtk_tree_model_get_iter_first (tm, &iter)) 519 {
520 do
521 { 521 {
522 do 522 gtk_tree_model_get (tm, &iter, 0, &value, -1);
523 { 523 nxt = GNUNET_FS_uri_ksk_create_from_args (1, (const char **) &value);
524 gtk_tree_model_get (tm, &iter, 524 mrg = GNUNET_FS_uri_ksk_merge (nxt, uri);
525 0, &value, 525 GNUNET_FS_uri_destroy (nxt);
526 -1); 526 if (NULL != uri)
527 nxt = GNUNET_FS_uri_ksk_create_from_args (1, (const char**) &value); 527 GNUNET_FS_uri_destroy (uri);
528 mrg = GNUNET_FS_uri_ksk_merge (nxt, uri); 528 uri = mrg;
529 GNUNET_FS_uri_destroy (nxt); 529 g_free (value);
530 if (NULL != uri)
531 GNUNET_FS_uri_destroy (uri);
532 uri = mrg;
533 g_free (value);
534 }
535 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
536 } 530 }
531 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
532 }
537 /* get meta */ 533 /* get meta */
538 nm = GNUNET_CONTAINER_meta_data_create (); 534 nm = GNUNET_CONTAINER_meta_data_create ();
539 tm = GTK_TREE_MODEL (gtk_builder_get_object (builder, 535 tm = GTK_TREE_MODEL (gtk_builder_get_object
540 "GNUNET_GTK_meta_data_list_store")); 536 (builder, "GNUNET_GTK_meta_data_list_store"));
541 if (TRUE == 537 if (TRUE == gtk_tree_model_get_iter_first (tm, &iter))
542 gtk_tree_model_get_iter_first (tm, &iter)) 538 {
539 do
543 { 540 {
544 do 541 gtk_tree_model_get (tm, &iter, 0, &ntype, 1, &nformat, 3, &value, -1);
545 { 542 GNUNET_CONTAINER_meta_data_insert (nm, "<user>", ntype, nformat,
546 gtk_tree_model_get (tm, &iter, 543 "text/plain", value,
547 0, &ntype, 544 strlen (value) + 1);
548 1, &nformat, 545 g_free (value);
549 3, &value,
550 -1);
551 GNUNET_CONTAINER_meta_data_insert (nm,
552 "<user>",
553 ntype,
554 nformat,
555 "text/plain",
556 value,
557 strlen (value)+1);
558 g_free (value);
559 }
560 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
561 } 546 }
562 bo.anonymity_level = gtk_spin_button_get_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder, 547 while (TRUE == gtk_tree_model_iter_next (tm, &iter));
563 "GNUNET_GTK_advertise_pseudonym_anonymity_spin_button"))); 548 }
564 bo.content_priority = gtk_spin_button_get_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder, 549 bo.anonymity_level =
565 "GNUNET_GTK_advertise_pseudonym_priority_spin_button"))); 550 gtk_spin_button_get_value (GTK_SPIN_BUTTON
566 sb = GTK_SPIN_BUTTON (gtk_builder_get_object (builder, 551 (gtk_builder_get_object
567 "GNUNET_GTK_advertise_pseudonym_expiration_year_spin_button")); 552 (builder,
553 "GNUNET_GTK_advertise_pseudonym_anonymity_spin_button")));
554 bo.content_priority =
555 gtk_spin_button_get_value (GTK_SPIN_BUTTON
556 (gtk_builder_get_object
557 (builder,
558 "GNUNET_GTK_advertise_pseudonym_priority_spin_button")));
559 sb = GTK_SPIN_BUTTON (gtk_builder_get_object
560 (builder,
561 "GNUNET_GTK_advertise_pseudonym_expiration_year_spin_button"));
568 bo.expiration_time = GNUNET_FS_GTK_get_expiration_time (sb); 562 bo.expiration_time = GNUNET_FS_GTK_get_expiration_time (sb);
569 root = gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (builder, 563 root =
570 "GNUNET_GTK_advertise_pseudonym_root_entry"))); 564 gtk_entry_get_text (GTK_ENTRY
571 GNUNET_FS_namespace_advertise (GNUNET_FS_GTK_get_fs_handle (), 565 (gtk_builder_get_object
572 uri, 566 (builder,
573 ns, 567 "GNUNET_GTK_advertise_pseudonym_root_entry")));
574 nm, 568 GNUNET_FS_namespace_advertise (GNUNET_FS_GTK_get_fs_handle (), uri, ns, nm,
575 &bo, 569 &bo, root, NULL, NULL);
576 root,
577 NULL, NULL);
578 GNUNET_FS_namespace_delete (ns, GNUNET_NO); 570 GNUNET_FS_namespace_delete (ns, GNUNET_NO);
579 GNUNET_CONTAINER_meta_data_destroy (nm); 571 GNUNET_CONTAINER_meta_data_destroy (nm);
580 if (NULL != uri) 572 if (NULL != uri)