aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/meta.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/meta.c')
-rw-r--r--src/plugins/fs/meta.c104
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
473unsigned int getAnonymityLevel(GladeXML * xml, 477unsigned 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
488char * 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
498char * 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
522char * 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
540GdkPixbuf * 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
568GtkWidget *
569extractMainWidgetFromWindow(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 */