Updating branch refs/heads/ristretto-0.0 to 3e7c0bb6540eaef683a6aff3306ed53d1ff5c2e9 (commit) from a4f7e2f0e83118bfd8cb5ff2cee068c60f19efe3 (commit)
commit 3e7c0bb6540eaef683a6aff3306ed53d1ff5c2e9 Author: Stephan Arts <step...@xfce.org> Date: Wed Sep 23 00:15:52 2009 +0200 Add initial code to implement the open-with menu ChangeLog | 5 +++++ src/main_window.c | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6b8721e..77d4312 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-09-22 Stephan Arts <step...@xfce.org> + * src/main_window.c: Add initial code for implementation of the + 'open-with' menu + +2009-09-22 Stephan Arts <step...@xfce.org> + * src/main_window.c, src/picture_viewer.c: Do not change zoom-mode when switching to fullscreen, recalculate scale when fitting image to window (zoom-fit) diff --git a/src/main_window.c b/src/main_window.c index d95959c..2904117 100644 --- a/src/main_window.c +++ b/src/main_window.c @@ -701,9 +701,16 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window) { gchar *path, *basename, *title, *status; GFile *file = NULL; + GFileInfo *file_info = NULL; RsttoImage *cur_image; gint position, count, width, height; RsttoImageList *image_list = window->priv->props.image_list; + GList *app_list, *iter; + const gchar *content_type; + GtkWidget *open_with_menu = gtk_menu_new(); + GtkWidget *open_with_window_menu = gtk_menu_new(); + gtk_menu_item_set_submenu (gtk_ui_manager_get_widget ( window->priv->ui_manager, "/image-viewer-menu/open-with-menu"), open_with_menu); + gtk_menu_item_set_submenu (gtk_ui_manager_get_widget ( window->priv->ui_manager, "/main-menu/edit-menu/open-with-menu"), open_with_window_menu); if (window->priv->props.image_list) { @@ -712,12 +719,29 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window) cur_image = rstto_image_list_iter_get_image (window->priv->iter); if (cur_image) { + file = rstto_image_get_file (cur_image); + file_info = g_file_query_info (file, "standard::content-type", 0, NULL, NULL); + content_type = g_file_info_get_content_type (file_info); + app_list = g_app_info_get_all_for_type (content_type); + + for (iter = app_list; iter; iter = g_list_next (iter)) + { + GtkWidget *menu_item = gtk_image_menu_item_new_with_label (g_app_info_get_name (iter->data)); + gtk_menu_shell_append (GTK_MENU_SHELL (open_with_menu), menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); + + menu_item = gtk_image_menu_item_new_with_label (g_app_info_get_name (iter->data)); + gtk_menu_shell_append (GTK_MENU_SHELL (open_with_window_menu), menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); + } + + gtk_widget_show_all (open_with_menu); + gtk_widget_show_all (open_with_window_menu); g_signal_connect (G_OBJECT (cur_image), "updated", G_CALLBACK (cb_rstto_main_window_image_updated), window); width = rstto_image_get_width(cur_image); height = rstto_image_get_height(cur_image); - file = rstto_image_get_file (cur_image); path = g_file_get_path (file); basename = g_path_get_basename (path); @@ -737,6 +761,18 @@ rstto_main_window_image_list_iter_changed (RsttoMainWindow *window) } else { + GtkWidget *menu_item = gtk_image_menu_item_new_with_label (_("Empty")); + gtk_menu_shell_append (GTK_MENU_SHELL (open_with_menu), menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); + + + menu_item = gtk_image_menu_item_new_with_label (_("Empty")); + gtk_menu_shell_append (GTK_MENU_SHELL (open_with_window_menu), menu_item); + gtk_widget_set_sensitive (menu_item, FALSE); + + gtk_widget_show_all (open_with_menu); + gtk_widget_show_all (open_with_window_menu); + title = g_strdup (RISTRETTO_APP_TITLE); status = g_strdup (_("Press open to select an image")); } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits