aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/fs/search.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/fs/search.c')
-rw-r--r--src/plugins/fs/search.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/plugins/fs/search.c b/src/plugins/fs/search.c
index cc5e1473..b92b50a3 100644
--- a/src/plugins/fs/search.c
+++ b/src/plugins/fs/search.c
@@ -352,6 +352,63 @@ void fs_search_update (SearchList * searchContext,
352} 352}
353 353
354 354
355
356
357static int
358on_search_display_metadata_activate (void *cls, GtkWidget * searchEntry)
359{
360 SearchList *list = cls;
361 GtkTreePath *path;
362 GtkTreeIter iter;
363 struct GNUNET_ECRS_URI *uri;
364 struct GNUNET_ECRS_MetaData * meta;
365 char *str;
366 GladeXML * xml;
367 GtkWidget * dialog;
368
369 path = NULL;
370 if (FALSE == gtk_tree_view_get_path_at_pos (list->treeview,
371 list->last_x,
372 list->last_y,
373 &path, NULL, NULL, NULL))
374 {
375 GNUNET_GE_BREAK (NULL, 0);
376 return FALSE;
377 }
378 if (FALSE == gtk_tree_model_get_iter (GTK_TREE_MODEL (list->tree),
379 &iter, path))
380 {
381 GNUNET_GE_BREAK (NULL, 0);
382 gtk_tree_path_free (path);
383 return FALSE;
384 }
385 gtk_tree_path_free (path);
386 uri = NULL;
387 meta = NULL;
388 gtk_tree_model_get (GTK_TREE_MODEL (list->tree),
389 &iter,
390 SEARCH_URI, &uri,
391 SEARCH_META, &meta,
392 -1);
393 str = GNUNET_ECRS_uri_to_string (uri);
394 xml = glade_xml_new(GNUNET_GTK_get_glade_filename (),
395 "metaDisplayDialog",
396 PACKAGE_NAME);
397 GNUNET_GTK_connect_glade_with_plugins (xml);
398 dialog = glade_xml_get_widget (xml, "metaDisplayDialog");
399 gtk_window_set_title(GTK_WINDOW(dialog), str);
400 createMetaDataListTreeView(xml,
401 "metaDisplayDialogTreeView",
402 NULL,
403 meta);
404 gtk_dialog_run (GTK_DIALOG (dialog));
405 GNUNET_free_non_null (str);
406 gtk_widget_destroy (dialog);
407 UNREF (xml);
408 return FALSE;
409}
410
411
355static int 412static int
356on_search_copy_uri_activate (void *cls, GtkWidget * searchEntry) 413on_search_copy_uri_activate (void *cls, GtkWidget * searchEntry)
357{ 414{
@@ -510,6 +567,16 @@ search_click_handler (void *cls, GdkEvent * event)
510 list->last_x = event_button->x; 567 list->last_x = event_button->x;
511 list->last_y = event_button->y; 568 list->last_y = event_button->y;
512 menu = GTK_MENU (gtk_menu_new ()); 569 menu = GTK_MENU (gtk_menu_new ());
570
571 entry = gtk_menu_item_new_with_label (_("_Display metadata"));
572 g_signal_connect_swapped (entry,
573 "activate",
574 G_CALLBACK (on_search_display_metadata_activate), list);
575 gtk_label_set_use_underline (GTK_LABEL
576 (gtk_bin_get_child (GTK_BIN (entry))), TRUE);
577 gtk_widget_show (entry);
578 gtk_menu_shell_append (GTK_MENU_SHELL (menu), entry);
579
513 entry = gtk_menu_item_new_with_label (_("_Copy URI to Clipboard")); 580 entry = gtk_menu_item_new_with_label (_("_Copy URI to Clipboard"));
514 g_signal_connect_swapped (entry, 581 g_signal_connect_swapped (entry,
515 "activate", 582 "activate",
@@ -518,6 +585,7 @@ search_click_handler (void *cls, GdkEvent * event)
518 (gtk_bin_get_child (GTK_BIN (entry))), TRUE); 585 (gtk_bin_get_child (GTK_BIN (entry))), TRUE);
519 gtk_widget_show (entry); 586 gtk_widget_show (entry);
520 gtk_menu_shell_append (GTK_MENU_SHELL (menu), entry); 587 gtk_menu_shell_append (GTK_MENU_SHELL (menu), entry);
588
521 entry = gtk_menu_item_new_with_label (_("_Save results as directory")); 589 entry = gtk_menu_item_new_with_label (_("_Save results as directory"));
522 g_signal_connect_swapped (entry, 590 g_signal_connect_swapped (entry,
523 "activate", 591 "activate",
@@ -526,6 +594,8 @@ search_click_handler (void *cls, GdkEvent * event)
526 (gtk_bin_get_child (GTK_BIN (entry))), TRUE); 594 (gtk_bin_get_child (GTK_BIN (entry))), TRUE);
527 gtk_widget_show (entry); 595 gtk_widget_show (entry);
528 gtk_menu_shell_append (GTK_MENU_SHELL (menu), entry); 596 gtk_menu_shell_append (GTK_MENU_SHELL (menu), entry);
597
598
529 gtk_menu_popup (menu, 599 gtk_menu_popup (menu,
530 NULL, 600 NULL,
531 NULL, NULL, NULL, event_button->button, event_button->time); 601 NULL, NULL, NULL, event_button->button, event_button->time);