file-roller r2320 - in trunk: . src



Author: paobac
Date: Wed Jun 11 17:27:00 2008
New Revision: 2320
URL: http://svn.gnome.org/viewvc/file-roller?rev=2320&view=rev

Log:
2008-06-11  Paolo Bacchilega  <paobac svn gnome org>

	* src/main.c: 
	
	Added application/x-tarz and application/x-compress
	
 	* src/fr-command-tar.c: 
	
	Added application/x-tarz to the supported formats.
	
	* src/fr-command-cfile.c (fr_command_cfile_add): do not use '*' as we 
	don't use the shell anymore, instead compute the compressed filename
	and use it.  Added mime-type application/x-compress to the supported
	formats.

	* src/fr-window.h: 
	* src/fr-window.c:	
	* src/actions.c: when an archive type is not supported destroy the 
	(hidden) main window after the error dialog has been closed.

Modified:
   trunk/ChangeLog
   trunk/src/actions.c
   trunk/src/fr-command-cfile.c
   trunk/src/fr-command-tar.c
   trunk/src/fr-window.c
   trunk/src/fr-window.h
   trunk/src/main.c

Modified: trunk/src/actions.c
==============================================================================
--- trunk/src/actions.c	(original)
+++ trunk/src/actions.c	Wed Jun 11 17:27:00 2008
@@ -475,8 +475,8 @@
 	}
 	else {
 		FrWindow *original_window =  g_object_get_data (G_OBJECT (file_sel), "fr_window");
-		if (window != original_window)
-			gtk_widget_destroy (GTK_WIDGET (window));
+		if (window != original_window) 
+			fr_window_destroy_with_error_dialog (window);
 	}
 }
 

Modified: trunk/src/fr-command-cfile.c
==============================================================================
--- trunk/src/fr-command-cfile.c	(original)
+++ trunk/src/fr-command-cfile.c	Wed Jun 11 17:27:00 2008
@@ -211,6 +211,7 @@
 	const char *filename;
 	char       *temp_dir;
 	char       *temp_file;
+	char       *compressed_filename;
 
 	if ((file_list == NULL) || (file_list->data == NULL))
 		return;
@@ -237,6 +238,7 @@
 		fr_process_add_arg (comm->process, "--");
 		fr_process_add_arg (comm->process, filename);
 		fr_process_end_command (comm->process);
+		compressed_filename = g_strconcat (filename, ".gz", NULL);
 	}
 	else if (is_mime_type (comm->mime_type, "application/x-bzip")) {
 		fr_process_begin_command (comm->process, "bzip2");
@@ -244,14 +246,15 @@
 		fr_process_add_arg (comm->process, "--");
 		fr_process_add_arg (comm->process, filename);
 		fr_process_end_command (comm->process);
+		compressed_filename = g_strconcat (filename, ".bz2", NULL);
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-gzip")) {
+	else if (is_mime_type (comm->mime_type, "application/x-compress")) {
 		fr_process_begin_command (comm->process, "compress");
 		fr_process_set_working_dir (comm->process, temp_dir);
 		fr_process_add_arg (comm->process, "-f");
-		fr_process_add_arg (comm->process, "--");
 		fr_process_add_arg (comm->process, filename);
 		fr_process_end_command (comm->process);
+		compressed_filename = g_strconcat (filename, ".Z", NULL);
 	}
 	else if (is_mime_type (comm->mime_type, "application/x-lzma")) {
 		fr_process_begin_command (comm->process, "lzma");
@@ -259,6 +262,7 @@
 		fr_process_add_arg (comm->process, "--");
 		fr_process_add_arg (comm->process, filename);
 		fr_process_end_command (comm->process);
+		compressed_filename = g_strconcat (filename, ".lzma", NULL);
 	}
 	else if (is_mime_type (comm->mime_type, "application/x-lzop")) {
 		fr_process_begin_command (comm->process, "lzop");
@@ -268,6 +272,7 @@
 		fr_process_add_arg (comm->process, "--");
 		fr_process_add_arg (comm->process, filename);
 		fr_process_end_command (comm->process);
+		compressed_filename = g_strconcat (filename, ".lzo", NULL);
 	}
 
       	/* copy compressed file to the dest dir */
@@ -276,7 +281,7 @@
 	fr_process_set_working_dir (comm->process, temp_dir);
 	fr_process_add_arg (comm->process, "-f");
 	fr_process_add_arg (comm->process, "--");
-	fr_process_add_arg (comm->process, "*");
+	fr_process_add_arg (comm->process, compressed_filename);
 	fr_process_add_arg (comm->process, comm->filename);
 	fr_process_end_command (comm->process);
 
@@ -289,6 +294,7 @@
 	fr_process_add_arg (comm->process, temp_dir);
 	fr_process_end_command (comm->process);
 
+	g_free (compressed_filename);
 	g_free (temp_file);
 	g_free (temp_dir);
 }
@@ -348,7 +354,7 @@
 		fr_process_add_arg (comm->process, temp_file);
 		fr_process_end_command (comm->process);
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-gzip")) {
+	else if (is_mime_type (comm->mime_type, "application/x-compress")) {
 		fr_process_begin_command (comm->process, "uncompress");
 		fr_process_add_arg (comm->process, "-f");
 		fr_process_add_arg (comm->process, temp_file);
@@ -419,7 +425,7 @@
 		if (is_program_in_path ("bzip2"))
 			comm->capabilities |= FR_COMMAND_CAP_READ_WRITE;
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-gzip")) {
+	else if (is_mime_type (comm->mime_type, "application/x-compress")) {
 		if (is_program_in_path ("compress"))
 			comm->capabilities |= FR_COMMAND_CAP_WRITE;
 		if (is_program_in_path ("uncompress"))

Modified: trunk/src/fr-command-tar.c
==============================================================================
--- trunk/src/fr-command-tar.c	(original)
+++ trunk/src/fr-command-tar.c	Wed Jun 11 17:27:00 2008
@@ -197,7 +197,7 @@
 	else if (is_mime_type (comm->mime_type, "application/x-bzip-compressed-tar"))
 		fr_process_add_arg (comm->process, "--use-compress-program=bzip2");
 		
-	else if (is_mime_type (comm->mime_type, "application/x-compressed-tar"))
+	else if (is_mime_type (comm->mime_type, "application/x-tarz"))
 		fr_process_add_arg (comm->process, "-Z");
 		
 	else if (is_mime_type (comm->mime_type, "application/x-lzma-compressed-tar"))
@@ -478,7 +478,7 @@
 
 		new_name = g_strconcat (c_tar->uncomp_filename, ".bz2", NULL);
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-compressed-tar")) {
+	else if (is_mime_type (comm->mime_type, "application/x-tarz")) {
 		fr_process_begin_command (comm->process, "compress");
 		fr_process_set_sticky (comm->process, TRUE);
 		fr_process_set_begin_func (comm->process, begin_func__recompress, comm);
@@ -631,7 +631,7 @@
 		else if (file_extension_is (e_filename, ".tar.bz2"))
 			new_name[l - 4] = 0;
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-compressed-tar")) {
+	else if (is_mime_type (comm->mime_type, "application/x-tarz")) {
 		/* X.taz   -->  X.tar
 		 * X.tar.Z -->  X.tar */
 		if (file_extension_is (e_filename, ".taz"))
@@ -735,7 +735,7 @@
 			fr_process_add_arg (comm->process, tmp_name);
 			fr_process_end_command (comm->process);
 		}
-		else if (is_mime_type (comm->mime_type, "application/x-compressed-tar")) {
+		else if (is_mime_type (comm->mime_type, "application/x-tarz")) {
 			fr_process_begin_command (comm->process, "uncompress");
 			fr_process_set_begin_func (comm->process, begin_func__uncompress, comm);
 			fr_process_add_arg (comm->process, "-f");
@@ -820,7 +820,7 @@
 		if (is_program_in_path ("bzip2"))
 			comm->capabilities |= FR_COMMAND_CAP_READ_WRITE;
 	}
-	else if (is_mime_type (comm->mime_type, "application/x-compressed-tar")) {
+	else if (is_mime_type (comm->mime_type, "application/x-tarz")) {
 		if (is_program_in_path ("compress"))
 			comm->capabilities |= FR_COMMAND_CAP_WRITE;
 		if (is_program_in_path ("uncompress"))

Modified: trunk/src/fr-window.c
==============================================================================
--- trunk/src/fr-window.c	(original)
+++ trunk/src/fr-window.c	Wed Jun 11 17:27:00 2008
@@ -288,7 +288,8 @@
 	gboolean         freeze_default_dir;
 	gboolean         asked_for_password;
 	gboolean         ask_to_open_destination_after_extraction;
-
+	gboolean         destroy_with_error_dialog;
+	
 	FRBatchAction    current_batch_action;
 
 	gboolean         give_focus_to_the_list;
@@ -736,9 +737,9 @@
 			      G_SIGNAL_RUN_LAST,
 			      G_STRUCT_OFFSET (FrWindowClass, archive_loaded),
 			      NULL, NULL,
-			      fr_marshal_VOID__INT,
+			      fr_marshal_VOID__BOOLEAN,
 			      G_TYPE_NONE, 1,
-			      G_TYPE_INT);
+			      G_TYPE_BOOLEAN);
 
 	gobject_class = (GObjectClass*) class;
 	gobject_class->finalize = fr_window_finalize;
@@ -2752,6 +2753,8 @@
 	if ((dialog_parent != NULL) && (gtk_widget_get_toplevel (GTK_WIDGET (dialog_parent)) != (GtkWidget*) dialog_parent))
 		gtk_window_set_modal (dialog_parent, TRUE);
 	gtk_widget_destroy (GTK_WIDGET (dialog));
+	if (window->priv->destroy_with_error_dialog)
+		gtk_widget_destroy (GTK_WIDGET (window));
 }
 
 
@@ -2776,6 +2779,13 @@
 }
 			     
 
+void  
+fr_window_destroy_with_error_dialog (FrWindow *window)
+{
+	window->priv->destroy_with_error_dialog = TRUE;
+}
+
+
 static gboolean
 handle_errors (FrWindow    *window,
 	       FrArchive   *archive,
@@ -2975,8 +2985,7 @@
 				gtk_window_present (GTK_WINDOW (window));
 		}
 		continue_batch = FALSE;
-		
-		g_signal_emit (G_OBJECT (window),
+		g_signal_emit (window,
 			       fr_window_signals[ARCHIVE_LOADED],
 			       0,
 			       error->type == FR_PROC_ERROR_NONE);
@@ -3104,7 +3113,7 @@
 			fr_window_stop_batch (window);
 		else
 			fr_window_exec_next_batch_action (window);
-	}
+	}		
 }
 
 

Modified: trunk/src/fr-window.h
==============================================================================
--- trunk/src/fr-window.h	(original)
+++ trunk/src/fr-window.h	Wed Jun 11 17:27:00 2008
@@ -294,6 +294,7 @@
 void       fr_window_set_batch__add               (FrWindow      *window,
 						   const char    *archive,
 						   GList         *file_list);
+void       fr_window_destroy_with_error_dialog    (FrWindow      *window);
 
 /**/
 

Modified: trunk/src/main.c
==============================================================================
--- trunk/src/main.c	(original)
+++ trunk/src/main.c	Wed Jun 11 17:27:00 2008
@@ -104,7 +104,7 @@
 	{ "application/x-lzma-compressed-tar",  ".tar.lzma", N_("Tar compressed with lzma (.tar.lzma)"), FALSE, TRUE },
 	{ "application/x-lzop-compressed-tar",  ".tar.lzo",  N_("Tar compressed with lzop (.tar.lzo)"), FALSE, TRUE },
 	{ "application/x-7z-compressed-tar",    ".tar.7z",   N_("Tar compressed with 7z (.tar.7z)"), FALSE, TRUE },
-	{ "application/x-compressed-tar",       ".tar.Z",    N_("Tar compressed with compress (.tar.Z)"), FALSE, TRUE },
+	{ "application/x-tarz",                 ".tar.Z",    N_("Tar compressed with compress (.tar.Z)"), FALSE, TRUE },
 	{ "application/x-stuffit",              ".sit",      NULL, FALSE, TRUE },
 	{ "application/x-war",                  ".war",      N_("War (.war)"), TRUE, TRUE },
 	{ "application/zip",                    ".zip",      N_("Zip (.zip)"), TRUE, TRUE },
@@ -142,8 +142,8 @@
 	{ ".tar.lzma", "application/x-lzma-compressed-tar" },
 	{ ".tar.lzo", "application/x-lzop-compressed-tar" },
 	{ ".tar.7z", "application/x-7z-compressed-tar" },
-	{ ".tar.Z", "application/x-compressed-tar" },
-	{ ".taz", "application/x-compressed-tar" },
+	{ ".tar.Z", "application/x-tarz" },
+	{ ".taz", "application/x-tarz" },
 	{ ".tbz", "application/x-bzip-compressed-tar" },
 	{ ".tbz2", "application/x-bzip-compressed-tar" },
 	{ ".tgz", "application/x-compressed-tar" },
@@ -151,7 +151,7 @@
 	{ ".tzo", "application/x-lzop-compressed-tar" },
 	{ ".war", "application/x-war" },
 	{ ".z", "application/x-gzip" },
-	{ ".Z", "application/x-gzip" },
+	{ ".Z", "application/x-compress" },
 	{ ".zip", "application/zip" },
 	{ ".zoo", "application/x-zoo" }
 };
@@ -174,7 +174,7 @@
 	{ "ar",         "application/x-deb", TRUE, FALSE },
 	{ "arj",        "application/x-arj", TRUE, TRUE },
 	{ "bzip2",      "application/x-bzip1", TRUE, FALSE },
-	{ "compress",   "application/x-gzip", TRUE, TRUE },
+	{ "compress",   "application/x-compress", TRUE, TRUE },
 	{ "cpio",       "application/x-cpio", TRUE, FALSE },
 	{ "isoinfo",    "application/x-cd-image", TRUE, FALSE },
 	{ "zip",        "application/x-ear", TRUE, TRUE },
@@ -185,7 +185,7 @@
 	{ "lzma",       "application/x-lzma", TRUE, TRUE },
 	{ "lzop",       "application/x-lzop", TRUE, TRUE },
 	{ "rpm2cpio",   "application/x-rpm", TRUE, FALSE },
-	{ "uncompress", "application/x-gzip", TRUE, FALSE },
+	{ "uncompress", "application/x-compress", TRUE, FALSE },
 	{ "unstuff",    "application/x-stuffit", TRUE, FALSE },
 	{ "zoo",        "application/x-zoo", TRUE, TRUE },
 	{ "7za",        "application/x-7z-compressed", TRUE, TRUE },
@@ -193,14 +193,15 @@
 };
 
 FrCommandDescription tar_command_desc[] = {
-	{ "gzip",      "application/x-compressed-tar", TRUE, TRUE },
-	{ "bzip2",     "application/x-bzip-compressed-tar", TRUE, TRUE },
+	{ "gzip",       "application/x-compressed-tar", TRUE, TRUE },
+	{ "bzip2",      "application/x-bzip-compressed-tar", TRUE, TRUE },
 	/*{ "bzip",     "application/x-bzip1-compressed-tar", FALSE, TRUE },*/
-	{ "lzma",      "application/x-lzma-compressed-tar", TRUE, TRUE },
-	{ "lzop",      "application/x-lzop-compressed-tar", TRUE, TRUE },
-	{ "compress",  "application/x-compressed-tar", TRUE, TRUE },
-	{ "7za",       "application/x-7z-compressed-tar", FALSE, TRUE },
-	{ "7zr",       "application/x-7z-compressed-tar", FALSE, TRUE }
+	{ "lzma",       "application/x-lzma-compressed-tar", TRUE, TRUE },
+	{ "lzop",       "application/x-lzop-compressed-tar", TRUE, TRUE },
+	{ "compress",   "application/x-tarz", FALSE, TRUE },
+	{ "uncompress", "application/x-tarz", TRUE, FALSE },
+	{ "7za",        "application/x-7z-compressed-tar", FALSE, TRUE },
+	{ "7zr",        "application/x-7z-compressed-tar", FALSE, TRUE }
 };
 
 
@@ -598,6 +599,7 @@
 			  "application/x-tar", FR_COMMAND_CAP_ALL,
 			  "application/x-compressed-tar", FR_COMMAND_CAP_ALL,
 			  "application/x-bzip-compressed-tar", FR_COMMAND_CAP_ALL,
+			  "application/x-tarz", FR_COMMAND_CAP_ALL,
 			  "application/x-lzma-compressed-tar", FR_COMMAND_CAP_ALL,
 			  "application/x-lzop-compressed-tar", FR_COMMAND_CAP_ALL,
 			  "application/x-7z-compressed-tar", FR_COMMAND_CAP_WRITE | FR_COMMAND_CAP_ARCHIVE_MANY_FILES,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]