[Goodies-commits] r3197 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Mon Sep 10 00:10:55 CEST 2007
Author: stephan
Date: 2007-09-09 22:10:55 +0000 (Sun, 09 Sep 2007)
New Revision: 3197
Modified:
ristretto/trunk/src/main.c
Log:
Place it in a submenu
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-09-09 22:01:41 UTC (rev 3196)
+++ ristretto/trunk/src/main.c 2007-09-09 22:10:55 UTC (rev 3197)
@@ -106,7 +106,8 @@
static GtkWidget *menu_item_vtv;
static GtkWidget *menu_item_ntv;
static GtkWidget *menu_edit;
-static GList *menu_apps;
+static GtkWidget *menu_apps;
+static GList *menu_apps_list;
static GtkWidget *main_hbox;
static GtkWidget *main_vbox1;
@@ -165,51 +166,6 @@
g_signal_connect(G_OBJECT(navigator), "iter-changed", G_CALLBACK(cb_rstto_nav_file_changed), window);
- for (n = 1; n < argc; ++n)
- {
- path = thunar_vfs_path_new(argv[n], NULL);
-
- ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
- if(info)
- {
- if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
- {
- RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
- rstto_navigator_add (navigator, entry);
- }
- else
- {
- GDir *dir = g_dir_open(argv[n], 0, NULL);
- const gchar *filename = g_dir_read_name(dir);
- while (filename)
- {
- gchar *path_name = g_strconcat(argv[n], "/", filename, NULL);
- ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
- if (file_path)
- {
- ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
- gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
- if(!strcmp(file_media, "image"))
- {
- RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
- rstto_navigator_add (navigator, entry);
- }
- g_free(file_media);
- thunar_vfs_path_unref(file_path);
- }
- g_free(path_name);
- filename = g_dir_read_name(dir);
- }
- rstto_navigator_jump_first(navigator);
- }
- gchar *uri = thunar_vfs_path_dup_uri(info->path);
- gtk_recent_manager_add_item(recent_manager, uri);
- g_free(uri);
- }
- thunar_vfs_path_unref(path);
- }
-
-
GtkWidget *s_window = gtk_scrolled_window_new(NULL,NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
GtkWidget *main_vbox = gtk_vbox_new(0, FALSE);
@@ -253,9 +209,14 @@
GtkWidget *menu_item_rotate_right = gtk_menu_item_new_with_mnemonic(_("Rotate _Right"));
GtkWidget *menu_item_flip_v = gtk_menu_item_new_with_mnemonic(_("Flip _Vertically"));
GtkWidget *menu_item_flip_h = gtk_menu_item_new_with_mnemonic(_("Flip _Horizontally"));
+ GtkWidget *menu_item_apps = gtk_menu_item_new_with_mnemonic(_("_Open with..."));
menu_edit = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_edit), menu_edit);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_apps);
+
+ menu_apps = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_apps), menu_apps);
/*
gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_left);
gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item_rotate_right);
@@ -426,6 +387,50 @@
gtk_container_add(GTK_CONTAINER(window), main_vbox);
+ for (n = 1; n < argc; ++n)
+ {
+ path = thunar_vfs_path_new(argv[n], NULL);
+
+ ThunarVfsInfo *info = thunar_vfs_info_new_for_path(path, NULL);
+ if(info)
+ {
+ if(strcmp(thunar_vfs_mime_info_get_name(info->mime_info), "inode/directory"))
+ {
+ RsttoNavigatorEntry *entry = rstto_navigator_entry_new(info);
+ rstto_navigator_add (navigator, entry);
+ }
+ else
+ {
+ GDir *dir = g_dir_open(argv[n], 0, NULL);
+ const gchar *filename = g_dir_read_name(dir);
+ while (filename)
+ {
+ gchar *path_name = g_strconcat(argv[n], "/", filename, NULL);
+ ThunarVfsPath *file_path = thunar_vfs_path_new(path_name, NULL);
+ if (file_path)
+ {
+ ThunarVfsInfo *file_info = thunar_vfs_info_new_for_path(file_path, NULL);
+ gchar *file_media = thunar_vfs_mime_info_get_media(file_info->mime_info);
+ if(!strcmp(file_media, "image"))
+ {
+ RsttoNavigatorEntry *entry = rstto_navigator_entry_new(file_info);
+ rstto_navigator_add (navigator, entry);
+ }
+ g_free(file_media);
+ thunar_vfs_path_unref(file_path);
+ }
+ g_free(path_name);
+ filename = g_dir_read_name(dir);
+ }
+ rstto_navigator_jump_first(navigator);
+ }
+ gchar *uri = thunar_vfs_path_dup_uri(info->path);
+ gtk_recent_manager_add_item(recent_manager, uri);
+ g_free(uri);
+ }
+ thunar_vfs_path_unref(path);
+ }
+
gtk_widget_show_all(window);
gtk_widget_hide(menu_item_pause);
gtk_widget_show(viewer);
@@ -440,7 +445,6 @@
gtk_widget_hide(GTK_WIDGET(app_tool_bar));
}
-
gtk_main();
xfce_rc_flush(xfce_rc);
xfce_rc_close(xfce_rc);
@@ -546,22 +550,22 @@
else
gtk_window_set_title(window, PACKAGE_STRING);
- if (menu_edit)
+ if (menu_apps)
{
- gtk_container_foreach(GTK_CONTAINER(menu_edit), (GtkCallback)gtk_widget_destroy, NULL);
- if(menu_apps)
+ gtk_container_foreach(GTK_CONTAINER(menu_apps), (GtkCallback)gtk_widget_destroy, NULL);
+ if(menu_apps_list)
{
- g_list_foreach(menu_apps, (GFunc)g_object_unref, NULL);
- g_list_free(menu_apps);
+ g_list_foreach(menu_apps_list, (GFunc)g_object_unref, NULL);
+ g_list_free(menu_apps_list);
}
- menu_apps = thunar_vfs_mime_database_get_applications(mime_dbase, info->mime_info);
- GList *iter = menu_apps;
+ menu_apps_list = thunar_vfs_mime_database_get_applications(mime_dbase, info->mime_info);
+ GList *iter = menu_apps_list;
while(iter)
{
GtkWidget *menu_item = gtk_image_menu_item_new_with_label(thunar_vfs_mime_application_get_name(iter->data));
GtkWidget *image = gtk_image_new_from_icon_name(thunar_vfs_mime_handler_lookup_icon_name(iter->data, icon_theme), GTK_ICON_SIZE_MENU);
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
- gtk_menu_shell_append(GTK_MENU_SHELL(menu_edit), menu_item);
+ gtk_menu_shell_append(GTK_MENU_SHELL(menu_apps), menu_item);
g_object_set_data(iter->data, "entry", entry);
g_signal_connect(menu_item, "activate", G_CALLBACK(cb_rstto_spawn_app), iter->data);
gtk_widget_show(menu_item);
More information about the Goodies-commits
mailing list