aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/namespace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/namespace.c')
-rw-r--r--src/plugins/fs/namespace.c231
1 files changed, 28 insertions, 203 deletions
diff --git a/src/plugins/fs/namespace.c b/src/plugins/fs/namespace.c
index aeaf0a79..cd8238d4 100644
--- a/src/plugins/fs/namespace.c
+++ b/src/plugins/fs/namespace.c
@@ -27,6 +27,7 @@
27#include "platform.h" 27#include "platform.h"
28#include "gnunetgtk_common.h" 28#include "gnunetgtk_common.h"
29#include "fs.h" 29#include "fs.h"
30#include "meta.h"
30#include "namespace.h" 31#include "namespace.h"
31#include <extractor.h> 32#include <extractor.h>
32 33
@@ -372,112 +373,29 @@ static int addTabForNamespace(void * unused,
372 return OK; 373 return OK;
373} 374}
374 375
375/** 376void on_namespacemetaDataDialogKeywordAddButton_clicked(gpointer dummy,
376 * FIXME: somehow this function is not called 377 GtkWidget * uploadButton) {
377 * when the button is clicked. 378 handleKeywordListUpdate(metaXML,
378 */ 379 "namespaceKeywordEntry",
379void 380 "namespaceMetaDataDialogKeywordList");
380on_namespacemetaDataDialogKeywordAddButton_clicked(gpointer dummy,
381 GtkWidget * uploadButton) {
382 GtkWidget * keywordList;
383 GtkWidget * entryLine;
384 const char * keyword;
385 GtkListStore * keymodel;
386 GtkTreeIter iter;
387
388 keywordList = glade_xml_get_widget(metaXML,
389 "namespaceMetaDataDialogKeywordList");
390 keymodel
391 = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(keywordList)));
392
393 entryLine = glade_xml_get_widget(metaXML,
394 "namespaceKeywordEntry");
395 keyword = gtk_entry_get_text(GTK_ENTRY(entryLine));
396 gtk_list_store_append(keymodel,
397 &iter);
398 gtk_list_store_set(keymodel,
399 &iter,
400 0, keyword,
401 -1);
402 gtk_entry_set_text(GTK_ENTRY(entryLine), "");
403} 381}
404 382
405/** 383void on_namespacemetaDataDialogMetaDataAddButton_clicked(gpointer dummy,
406 * FIXME: somehow this function is not called 384 GtkWidget * uploadButton) {
407 * when the button is clicked. 385 handleMetaDataListUpdate(metaXML,
408 */ 386 "namespaceMetaDataDialogMetaTypeComboBox",
409void 387 "namespaceMetaDataValueEntry",
410on_namespacemetaDataDialogMetaDataAddButton_clicked(gpointer dummy, 388 "namespaceMetaDataDialogMetaDataList");
411 GtkWidget * uploadButton) {
412 GtkWidget * metaList;
413 GtkWidget * entryLine;
414 GtkWidget * typeCB;
415 const char * value;
416 EXTRACTOR_KeywordType type;
417 GtkListStore * metamodel;
418 GtkListStore * typemodel;
419 GtkTreeIter iter;
420 char * stype;
421
422 metaList = glade_xml_get_widget(metaXML,
423 "namespaceMetaDataDialogMetaDataList");
424 metamodel
425 = GTK_LIST_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(metaList)));
426
427 entryLine = glade_xml_get_widget(metaXML,
428 "namespaceMetaDataValueEntry");
429 value = gtk_entry_get_text(GTK_ENTRY(entryLine));
430 typeCB = glade_xml_get_widget(metaXML,
431 "namespaceMetaDataDialogMetaTypeComboBox");
432 typemodel
433 = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(typeCB)));
434 if (! gtk_combo_box_get_active_iter(GTK_COMBO_BOX(typeCB),
435 &iter))
436 return; /* oops */
437 gtk_tree_model_get(GTK_TREE_MODEL(typemodel),
438 &iter,
439 KTYPE_STRING, &stype,
440 KTYPE_TYPE, &type,
441 -1);
442 gtk_list_store_append(metamodel,
443 &iter);
444 gtk_list_store_set(metamodel,
445 &iter,
446 META_TYPE, type,
447 META_STYPE, stype,
448 META_VALUE, value,
449 -1);
450 gtk_entry_set_text(GTK_ENTRY(entryLine), "");
451} 389}
452 390
453
454
455/**
456 * CLEANUP: refactor code to share keyword/metadata list
457 * and model creation with upload and collection!
458 */
459void create_namespace_clicked(GtkWidget * dummy1, 391void create_namespace_clicked(GtkWidget * dummy1,
460 GtkWidget * dummy2) { 392 GtkWidget * dummy2) {
461 const char * namespaceName; 393 const char * namespaceName;
462 GtkWidget * nameLine; 394 GtkWidget * nameLine;
463 GtkWidget * metaList;
464 GtkWidget * keywordList;
465 GtkWidget * dialog; 395 GtkWidget * dialog;
466 GtkWidget * metaType;
467 GtkWidget * spin; 396 GtkWidget * spin;
468 GtkListStore * metamodel;
469 GtkListStore * keymodel;
470 GtkCellRenderer * renderer;
471 GtkListStore * keywordTypeModel;
472 GtkTreeIter iter;
473 struct ECRS_MetaData * meta; 397 struct ECRS_MetaData * meta;
474 EXTRACTOR_KeywordType type;
475 struct ECRS_URI * keywordURI; 398 struct ECRS_URI * keywordURI;
476 const char * stype;
477 char * mvalue;
478 char ** keywords;
479 unsigned int kpos;
480 unsigned int ksize;
481 struct ECRS_URI * root; 399 struct ECRS_URI * root;
482 HashCode512 namespaceId; 400 HashCode512 namespaceId;
483 HashCode512 rootEntry; 401 HashCode512 rootEntry;
@@ -489,118 +407,25 @@ void create_namespace_clicked(GtkWidget * dummy1,
489 connectGladeWithPlugins(metaXML); 407 connectGladeWithPlugins(metaXML);
490 dialog = glade_xml_get_widget(metaXML, 408 dialog = glade_xml_get_widget(metaXML,
491 "namespaceMetaDataDialog"); 409 "namespaceMetaDataDialog");
492 metamodel 410 createMetaDataListTreeView(metaXML,
493 = gtk_list_store_new(META_NUM, 411 "namespaceMetaDataDialogMetaDataList",
494 G_TYPE_INT, 412 NULL,
495 G_TYPE_STRING, 413 NULL);
496 G_TYPE_STRING); 414 createKeywordListTreeView(metaXML,
497 metaList = glade_xml_get_widget(metaXML, 415 "namespaceMetaDataDialogKeywordList",
498 "namespaceMetaDataDialogMetaDataList"); 416 NULL);
499 renderer = gtk_cell_renderer_text_new(); 417 createMetaTypeComboBox(metaXML,
500 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList), 418 "namespaceMetaDataDialogMetaTypeComboBox");
501 -1,
502 _("Category"),
503 renderer,
504 "text", META_STYPE,
505 NULL);
506 renderer = gtk_cell_renderer_text_new();
507 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(metaList),
508 -1,
509 _("Value"),
510 renderer,
511 "text", META_VALUE,
512 NULL);
513 gtk_tree_view_set_model(GTK_TREE_VIEW(metaList),
514 GTK_TREE_MODEL(metamodel));
515 keymodel
516 = gtk_list_store_new(1,
517 G_TYPE_STRING);
518 keywordList = glade_xml_get_widget(metaXML,
519 "namespaceMetaDataDialogKeywordList");
520 renderer = gtk_cell_renderer_text_new();
521 gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(keywordList),
522 -1,
523 _("Keyword"),
524 renderer,
525 "text", 0,
526 NULL);
527 gtk_tree_view_set_model(GTK_TREE_VIEW(keywordList),
528 GTK_TREE_MODEL(keymodel));
529 keywordTypeModel
530 = gtk_list_store_new(KTYPE_NUM,
531 G_TYPE_STRING,
532 G_TYPE_INT);
533 metaType
534 = glade_xml_get_widget(metaXML,
535 "namespaceMetaDataDialogMetaTypeComboBox");
536 gtk_combo_box_set_model(GTK_COMBO_BOX(metaType),
537 GTK_TREE_MODEL(keywordTypeModel));
538 for (type=0;type<EXTRACTOR_getHighestKeywordTypeNumber();type++) {
539 stype = EXTRACTOR_getKeywordTypeAsString(type);
540 gtk_list_store_append(keywordTypeModel,
541 &iter);
542 gtk_list_store_set(keywordTypeModel,
543 &iter,
544 KTYPE_STRING, stype,
545 KTYPE_TYPE, type,
546 -1);
547 }
548 renderer = gtk_cell_renderer_text_new();
549 gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(metaType),
550 renderer,
551 FALSE);
552 gtk_cell_layout_add_attribute(GTK_CELL_LAYOUT(metaType),
553 renderer,
554 "text", KTYPE_STRING);
555 gtk_combo_box_set_active(GTK_COMBO_BOX(metaType),
556 0);
557 gtk_dialog_set_default_response(GTK_DIALOG(dialog), 419 gtk_dialog_set_default_response(GTK_DIALOG(dialog),
558 GTK_RESPONSE_OK); 420 GTK_RESPONSE_OK);
559 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) { 421 if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) {
560 meta = ECRS_createMetaData(); 422 meta
561 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(metamodel), 423 = getMetaDataFromList(metaXML,
562 &iter)) { 424 "namespaceMetaDataDialogMetaDataList",
563 do { 425 NULL);
564 gtk_tree_model_get(GTK_TREE_MODEL(metamodel), 426 keywordURI
565 &iter, 427 = getKeywordURIFromList(metaXML,
566 META_TYPE, &type, 428 "namespaceMetaDataDialogKeywordList");
567 META_VALUE, &mvalue,
568 -1);
569 ECRS_addToMetaData(meta,
570 type,
571 mvalue);
572 } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(metamodel),
573 &iter));
574 }
575 keywords = NULL;
576 ksize = 0;
577 GROW(keywords,
578 ksize,
579 64);
580 kpos = 0;
581 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(keymodel),
582 &iter)) {
583 do {
584 gtk_tree_model_get(GTK_TREE_MODEL(keymodel),
585 &iter,
586 0, &mvalue,
587 -1);
588 keywords[kpos++] = mvalue;
589 if (kpos == ksize)
590 GROW(keywords,
591 ksize,
592 kpos*2);
593 } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(keymodel),
594 &iter));
595 }
596 keywords[kpos] = NULL;
597
598 keywordURI = ECRS_keywordsToUri((const char**)keywords);
599 while (kpos > 0)
600 FREE(keywords[--kpos]);
601 GROW(keywords,
602 ksize,
603 0);
604 spin = glade_xml_get_widget(metaXML, 429 spin = glade_xml_get_widget(metaXML,
605 "namespaceAnonymityspinbutton"); 430 "namespaceAnonymityspinbutton");
606 nameLine = glade_xml_get_widget(metaXML, 431 nameLine = glade_xml_get_widget(metaXML,