Author: colossus
Date: 2008-07-09 09:37:13 +0000 (Wed, 09 Jul 2008)
New Revision: 27242
Modified:
xarchiver/trunk/src/interface.c
xarchiver/trunk/src/interface.h
xarchiver/trunk/src/window.c
xarchiver/trunk/src/window.h
Log:
Added option Save as in the Archive menu. Thanks to Alexandre Moreira for
suggesting it.
Modified: xarchiver/trunk/src/interface.c
===================================================================
--- xarchiver/trunk/src/interface.c 2008-07-09 09:09:16 UTC (rev 27241)
+++ xarchiver/trunk/src/interface.c 2008-07-09 09:37:13 UTC (rev 27242)
@@ -84,6 +84,10 @@
open1 = gtk_image_menu_item_new_from_stock ("gtk-open", accel_group);
gtk_widget_show (open1);
gtk_container_add (GTK_CONTAINER (menuitem1_menu), open1);
+
+ save1 = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group);
+ gtk_widget_show (save1);
+ gtk_container_add (GTK_CONTAINER (menuitem1_menu), save1);
separatormenuitem1 = gtk_separator_menu_item_new ();
gtk_widget_show (separatormenuitem1);
@@ -457,6 +461,7 @@
g_signal_connect ((gpointer) new1, "activate", G_CALLBACK
(xa_new_archive), NULL);
g_signal_connect ((gpointer) open1, "activate", G_CALLBACK
(xa_open_archive), NULL);
+ g_signal_connect ((gpointer) save1, "activate", G_CALLBACK
(xa_save_archive), NULL);
g_signal_connect ((gpointer) check_menu, "activate", G_CALLBACK
(xa_test_archive), NULL);
g_signal_connect ((gpointer) properties, "activate", G_CALLBACK
(xa_archive_properties), NULL);
g_signal_connect ((gpointer) extract_menu, "activate", G_CALLBACK
(xa_extract_archive), NULL);
Modified: xarchiver/trunk/src/interface.h
===================================================================
--- xarchiver/trunk/src/interface.h 2008-07-09 09:09:16 UTC (rev 27241)
+++ xarchiver/trunk/src/interface.h 2008-07-09 09:37:13 UTC (rev 27242)
@@ -31,6 +31,7 @@
GtkWidget *menuitem1_menu;
GtkWidget *new1;
GtkWidget *open1;
+GtkWidget *save1;
GtkWidget *entry1;
GtkWidget *progressbar;
GtkWidget *info_label;
Modified: xarchiver/trunk/src/window.c
===================================================================
--- xarchiver/trunk/src/window.c 2008-07-09 09:09:16 UTC (rev 27241)
+++ xarchiver/trunk/src/window.c 2008-07-09 09:37:13 UTC (rev 27242)
@@ -247,6 +247,41 @@
return response;
}
+void xa_save_archive (GtkMenuItem *menuitem,gpointer data)
+{
+ gint current_page;
+ gint idx;
+ GtkWidget *save = NULL;
+ gchar *path = NULL,*command,*filename;
+ gboolean response;
+ GSList *list = NULL;
+
+ current_page = gtk_notebook_get_current_page(notebook);
+ idx = xa_find_archive_index (current_page);
+
+ save = gtk_file_chooser_dialog_new ( _("Save the archive as"),
+ GTK_WINDOW (xa_main_window),
+ GTK_FILE_CHOOSER_ACTION_SAVE,
+ GTK_STOCK_CANCEL,
+ GTK_RESPONSE_CANCEL,
+ "gtk-save",
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+ filename = xa_remove_path_from_archive_name(archive[idx]->escaped_path);
+ gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (save), filename);
+ g_free(filename);
+ response = gtk_dialog_run (GTK_DIALOG(save));
+ if (response == GTK_RESPONSE_ACCEPT)
+ path = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(save));
+ gtk_widget_destroy (save);
+ if (path != NULL)
+ {
+ command = g_strconcat ("cp ",archive[idx]->escaped_path,"
",path,NULL);
+ list = g_slist_append(list,command);
+ xa_run_command(archive[idx],list);
+ }
+}
+
void xa_open_archive (GtkMenuItem *menuitem,gpointer data)
{
gchar *path = NULL;
Modified: xarchiver/trunk/src/window.h
===================================================================
--- xarchiver/trunk/src/window.h 2008-07-09 09:09:16 UTC (rev 27241)
+++ xarchiver/trunk/src/window.h 2008-07-09 09:37:13 UTC (rev 27242)
@@ -60,6 +60,7 @@
GtkWidget *dialog, *scrollwin, *view_window, *_properties_win;
void xa_new_archive (GtkMenuItem *, gpointer);
+void xa_save_archive (GtkMenuItem *,gpointer);
void xa_open_archive (GtkMenuItem *, gpointer);
void xa_test_archive (GtkMenuItem *, gpointer);
void xa_close_archive (GtkMenuItem *, gpointer);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits