[Xfce4-commits] r27242 - xarchiver/trunk/src

Giuseppe Torelli colossus at xfce.org
Wed Jul 9 11:37:13 CEST 2008


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);



More information about the Xfce4-commits mailing list