Package: gqview Version: 2.0.1-1 Severity: wishlist Tags: patch More information about patch: http://sourceforge.net/mailarchive/forum.php?thread_id=10167948&forum_id=5979
No answer from upstream during some weeks. Patch applies fine in Gqview 2.0.1 and 2.x.y (only with some chunks) Thank you very much, -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.15.2 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages gqview depends on: ii libatk1.0-0 1.10.3-1 The ATK accessibility toolkit ii libc6 2.3.6-7 GNU C Library: Shared libraries ii libglib2.0-0 2.10.2-1 The GLib library of C routines ii libgtk2.0-0 2.8.16-1 The GTK+ graphical user interface ii libpango1.0-0 1.12.1-2 Layout and rendering of internatio -- no debconf information *** /home/carles/down/gqview-copy-path-2.0.1.patch Only in gqview-2.0.1: gqview.spec Only in gqview-2.0.1-carles2/src: core diff -upr gqview-2.0.1/src/layout_image.c gqview-2.0.1-carles2/src/layout_image.c --- gqview-2.0.1/src/layout_image.c 2005-03-01 17:00:03.000000000 +0100 +++ gqview-2.0.1-carles2/src/layout_image.c 2006-04-13 10:14:29.000000000 +0200 @@ -631,6 +631,12 @@ static void li_pop_menu_copy_cb(GtkWidge li_pop_menu_click_parent(widget, lw)); } +static void li_pop_menu_copy_path_cb(GtkWidget *widget, gpointer data) +{ + LayoutWindow *lw = data; + file_util_copy_path(layout_image_get_path(lw)); +} + static void li_pop_menu_move_cb(GtkWidget *widget, gpointer data) { LayoutWindow *lw = data; @@ -725,6 +731,7 @@ static GtkWidget *layout_image_pop_menu( menu_item_add_divider(menu); item = menu_item_add_stock(menu, _("_Copy..."), GTK_STOCK_COPY, G_CALLBACK(li_pop_menu_copy_cb), lw); + item = menu_item_add(menu, _("_Copy path"), G_CALLBACK(li_pop_menu_copy_path_cb), lw); if (!path) gtk_widget_set_sensitive(item, FALSE); item = menu_item_add(menu, _("_Move..."), G_CALLBACK(li_pop_menu_move_cb), lw); if (!path) gtk_widget_set_sensitive(item, FALSE); diff -upr gqview-2.0.1/src/layout_util.c gqview-2.0.1-carles2/src/layout_util.c --- gqview-2.0.1/src/layout_util.c 2005-03-01 17:00:03.000000000 +0100 +++ gqview-2.0.1-carles2/src/layout_util.c 2006-04-13 10:31:46.000000000 +0200 @@ -310,6 +310,12 @@ static void layout_menu_copy_cb(GtkActio file_util_copy(NULL, layout_selection_list(lw), NULL, lw->window); } +static void layout_menu_copy_path_cb(GtkAction *action, gpointer data) +{ + LayoutWindow *lw = data; + file_util_copy_path_list(layout_selection_list(lw)); +} + static void layout_menu_move_cb(GtkAction *action, gpointer data) { LayoutWindow *lw = data; @@ -759,7 +765,8 @@ static GtkActionEntry menu_entries[] = { { "FindDupes", GTK_STOCK_FIND, N_("_Find duplicates..."),"D", NULL, CB(layout_menu_dupes_cb) }, { "Print", GTK_STOCK_PRINT,N_("_Print..."), "<shift>P", NULL, CB(layout_menu_print_cb) }, { "NewFolder", NULL, N_("N_ew folder..."), "<control>F", NULL, CB(layout_menu_dir_cb) }, - { "Copy", NULL, N_("_Copy..."), "<control>C", NULL, CB(layout_menu_copy_cb) }, + { "Copy", GTK_STOCK_COPY, N_("_Copy..."), "<control>C", NULL, CB(layout_menu_copy_cb) }, + { "Copy path", NULL, N_("_Copy path"), NULL, NULL, CB(layout_menu_copy_path_cb) }, { "Move", NULL, N_("_Move..."), "<control>M", NULL, CB(layout_menu_move_cb) }, { "Rename", NULL, N_("_Rename..."), "<control>R", NULL, CB(layout_menu_rename_cb) }, { "Delete", GTK_STOCK_DELETE, N_("_Delete..."), "<control>D", NULL, CB(layout_menu_delete_cb) }, @@ -836,6 +843,7 @@ static const char *menu_ui_description = " <menuitem action='NewFolder'/>" " <separator/>" " <menuitem action='Copy'/>" +" <menuitem action='Copy path'/>" " <menuitem action='Move'/>" " <menuitem action='Rename'/>" " <menuitem action='Delete'/>" diff -upr gqview-2.0.1/src/utilops.c gqview-2.0.1-carles2/src/utilops.c --- gqview-2.0.1/src/utilops.c 2005-05-14 18:23:05.000000000 +0200 +++ gqview-2.0.1-carles2/src/utilops.c 2006-04-13 12:49:11.000000000 +0200 @@ -1078,6 +1078,41 @@ void file_util_copy(const gchar *source_ real_file_util_move(source_path, source_list, dest_path, TRUE, parent); } +void file_util_copy_path(const gchar *path) +{ + static GtkClipboard *clipboard; + clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); + + gtk_clipboard_set_text(clipboard,g_shell_quote(path),-1); +} + +void file_util_copy_path_list(GList *list) +{ + static GtkClipboard *clipboard; + gchar *dest, *temp; + gchar *t2; + GList *l = list; + + clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); + + dest = g_new(gchar,1); g_sprintf(dest,""); + + while (l) { + temp = g_shell_quote(l->data); + + //we save dest buffer to request more memory... + t2 = g_strdup(dest); + + //we request more memory + dest = g_renew(gchar,dest,strlen(dest)+strlen(temp)+2); + + g_sprintf(dest,"%s %s",temp,t2); + + l=l->next; + } + gtk_clipboard_set_text(clipboard,dest,-1); +} + void file_util_move_simple(GList *list, const gchar *dest_path) { if (!list) return; diff -upr gqview-2.0.1/src/view_file_list.c gqview-2.0.1-carles2/src/view_file_list.c --- gqview-2.0.1/src/view_file_list.c 2005-03-01 17:00:03.000000000 +0100 +++ gqview-2.0.1-carles2/src/view_file_list.c 2006-04-13 12:54:27.000000000 +0200 @@ -256,6 +256,13 @@ static void vflist_pop_menu_copy_cb(GtkW file_util_copy(NULL, vflist_pop_menu_file_list(vfl), NULL, vfl->listview); } +static void vflist_pop_menu_copy_path_cb(GtkWidget *widget, gpointer data) +{ + ViewFileList *vfl = data; + + file_util_copy_path_list(vflist_pop_menu_file_list(vfl)); +} + static void vflist_pop_menu_move_cb(GtkWidget *widget, gpointer data) { ViewFileList *vfl = data; @@ -398,6 +405,8 @@ static GtkWidget *vflist_pop_menu(ViewFi menu_item_add_divider(menu); menu_item_add_stock_sensitive(menu, _("_Copy..."), GTK_STOCK_COPY, active, G_CALLBACK(vflist_pop_menu_copy_cb), vfl); + menu_item_add_sensitive(menu, _("_Copy path"), active, + G_CALLBACK(vflist_pop_menu_copy_path_cb), vfl); menu_item_add_sensitive(menu, _("_Move..."), active, G_CALLBACK(vflist_pop_menu_move_cb), vfl); menu_item_add_sensitive(menu, _("_Rename..."), active, -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]