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

Reply via email to