diff options
Diffstat (limited to 'src/plugins/fs/meta.c')
-rw-r--r-- | src/plugins/fs/meta.c | 104 |
1 files changed, 102 insertions, 2 deletions
diff --git a/src/plugins/fs/meta.c b/src/plugins/fs/meta.c index 74ed7932..4c53891e 100644 --- a/src/plugins/fs/meta.c +++ b/src/plugins/fs/meta.c | |||
@@ -112,6 +112,8 @@ void createMetaDataListTreeView(GladeXML * xml, | |||
112 | TRUE); | 112 | TRUE); |
113 | gtk_tree_view_set_model(GTK_TREE_VIEW(metaList), | 113 | gtk_tree_view_set_model(GTK_TREE_VIEW(metaList), |
114 | GTK_TREE_MODEL(metamodel)); | 114 | GTK_TREE_MODEL(metamodel)); |
115 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(metaList)), | ||
116 | GTK_SELECTION_MULTIPLE); | ||
115 | if (init != NULL) | 117 | if (init != NULL) |
116 | ECRS_getMetaData(init, | 118 | ECRS_getMetaData(init, |
117 | &publishMetaData, | 119 | &publishMetaData, |
@@ -193,6 +195,8 @@ void createKeywordListTreeView(GladeXML * xml, | |||
193 | /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/ | 195 | /*gtk_tree_view_column_set_sort_indicator(column, TRUE);*/ |
194 | gtk_tree_view_set_model(GTK_TREE_VIEW(keywordList), | 196 | gtk_tree_view_set_model(GTK_TREE_VIEW(keywordList), |
195 | GTK_TREE_MODEL(keymodel)); | 197 | GTK_TREE_MODEL(keymodel)); |
198 | gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(keywordList)), | ||
199 | GTK_SELECTION_MULTIPLE); | ||
196 | if (init != NULL) | 200 | if (init != NULL) |
197 | ECRS_getKeywordsFromUri(init, | 201 | ECRS_getKeywordsFromUri(init, |
198 | &publishKeyword, | 202 | &publishKeyword, |
@@ -470,8 +474,8 @@ int tryParseTimeInterval(GladeXML * xml, | |||
470 | interval); | 474 | interval); |
471 | } | 475 | } |
472 | 476 | ||
473 | unsigned int getAnonymityLevel(GladeXML * xml, | 477 | unsigned int getSpinButtonValue(GladeXML * xml, |
474 | const char * spinButtonName) { | 478 | const char * spinButtonName) { |
475 | GtkWidget * spin; | 479 | GtkWidget * spin; |
476 | 480 | ||
477 | spin = glade_xml_get_widget(xml, | 481 | spin = glade_xml_get_widget(xml, |
@@ -481,4 +485,100 @@ unsigned int getAnonymityLevel(GladeXML * xml, | |||
481 | 485 | ||
482 | 486 | ||
483 | 487 | ||
488 | char * getMimeTypeFromMetaData(const struct ECRS_MetaData * meta) { | ||
489 | char * mime; | ||
490 | |||
491 | mime = ECRS_getFromMetaData(meta, | ||
492 | EXTRACTOR_MIMETYPE); | ||
493 | if (mime == NULL) | ||
494 | mime = STRDUP(_("unknown")); | ||
495 | return validate_utf8(mime); | ||
496 | } | ||
497 | |||
498 | char * getFileNameFromMetaData(const struct ECRS_MetaData * meta) { | ||
499 | char * name; | ||
500 | |||
501 | name = ECRS_getFirstFromMetaData(info->meta, | ||
502 | EXTRACTOR_FILENAME, | ||
503 | EXTRACTOR_TITLE, | ||
504 | EXTRACTOR_ARTIST, | ||
505 | EXTRACTOR_AUTHOR, | ||
506 | EXTRACTOR_PUBLISHER, | ||
507 | EXTRACTOR_CREATOR, | ||
508 | EXTRACTOR_PRODUCER, | ||
509 | EXTRACTOR_UNKNOWN, | ||
510 | -1); | ||
511 | if (name == NULL) { | ||
512 | name = STRDUP(_("no name given")); | ||
513 | } else { | ||
514 | char * dotdot; | ||
515 | |||
516 | while (NULL != (dotdot = strstr(name, ".."))) | ||
517 | dotdot[0] = dotdot[1] = '_'; | ||
518 | } | ||
519 | return validate_utf8(name); | ||
520 | } | ||
521 | |||
522 | char * getDescriptionFromMetaData(const struct ECRS_MetaData * meta) { | ||
523 | char * desc; | ||
524 | |||
525 | desc = ECRS_getFirstFromMetaData(info->meta, | ||
526 | EXTRACTOR_DESCRIPTION, | ||
527 | EXTRACTOR_GENRE, | ||
528 | EXTRACTOR_ALBUM, | ||
529 | EXTRACTOR_COMMENT, | ||
530 | EXTRACTOR_SUBJECT, | ||
531 | EXTRACTOR_FORMAT, | ||
532 | EXTRACTOR_SIZE, | ||
533 | EXTRACTOR_KEYWORDS, | ||
534 | -1); | ||
535 | if (desc == NULL) | ||
536 | desc = STRDUP(""); | ||
537 | return validate_utf8(desc); | ||
538 | } | ||
539 | |||
540 | GdkPixbuf * getThumbnailFromMetaData(const struct ECRS_MetaData * meta) { | ||
541 | GdkPixbuf * pxibuf; | ||
542 | GdkPixbufLoader * loader; | ||
543 | size_t ts; | ||
544 | unsigned char * thumb; | ||
545 | |||
546 | thumb = NULL; | ||
547 | ts = ECRS_getThumbnailFromMetaData(meta, | ||
548 | &thumb); | ||
549 | if (ts != 0) { | ||
550 | loader = gdk_pixbuf_loader_new(); | ||
551 | gdk_pixbuf_loader_write(loader, | ||
552 | (const guchar*) thumb, | ||
553 | ts, | ||
554 | NULL); | ||
555 | pixbuf = gdk_pixbuf_loader_get_pixbuf(loader); | ||
556 | gdk_pixbuf_loader_close(loader, | ||
557 | NULL); | ||
558 | if (pixbuf != NULL) | ||
559 | g_object_ref(pixbuf); | ||
560 | UNREF(loader); | ||
561 | } else { | ||
562 | pixbuf = NULL; | ||
563 | } | ||
564 | FREENONNULL(thumb); | ||
565 | return pixbuf; | ||
566 | } | ||
567 | |||
568 | GtkWidget * | ||
569 | extractMainWidgetFromWindow(GladeXML * xml, | ||
570 | const char * windowName) { | ||
571 | GtkContainer * window; | ||
572 | GtkWidget * ret; | ||
573 | |||
574 | window = GTK_CONTAINER(glade_xml_get_widget(xml, | ||
575 | windowName)); | ||
576 | ret = gtk_bin_get_child(GTK_BIN(window)); | ||
577 | gtk_widget_ref(ret); | ||
578 | gtk_container_remove(window, ret); | ||
579 | gtk_widget_destroy(window); | ||
580 | return ret; | ||
581 | } | ||
582 | |||
583 | |||
484 | /* end of meta.c */ | 584 | /* end of meta.c */ |