[file-roller: 4/6] implemented the get_packages method for all the commands



commit 389f251cfdd273bec4de61ec858e4f52e3aa04d8
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Fri Oct 23 19:13:41 2009 +0200

    implemented the get_packages method for all the commands

 src/fr-command-7z.c      |   16 +++++++++++++++-
 src/fr-command-ace.c     |    9 +++++++++
 src/fr-command-alz.c     |    9 +++++++++
 src/fr-command-ar.c      |    9 +++++++++
 src/fr-command-arj.c     |    9 +++++++++
 src/fr-command-cfile.c   |   26 ++++++++++++++++++++++++++
 src/fr-command-cpio.c    |    9 +++++++++
 src/fr-command-iso.c     |    9 +++++++++
 src/fr-command-jar.c     |    9 +++++++++
 src/fr-command-lha.c     |    9 +++++++++
 src/fr-command-rar.c     |    6 ++----
 src/fr-command-rpm.c     |    9 +++++++++
 src/fr-command-tar.c     |   28 ++++++++++++++++++++++++++++
 src/fr-command-unstuff.c |    9 +++++++++
 src/fr-command-zip.c     |    9 +++++++++
 src/fr-command-zoo.c     |    9 +++++++++
 16 files changed, 179 insertions(+), 5 deletions(-)
---
diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c
index ebc4fe5..858d2da 100644
--- a/src/fr-command-7z.c
+++ b/src/fr-command-7z.c
@@ -550,7 +550,7 @@ fr_command_7z_get_capabilities (FrCommand  *comm,
 		if (is_mime_type (mime_type, "application/x-rar")
 		    || is_mime_type (mime_type, "application/x-cbr"))
 		{
-			if (g_file_test ("/usr/lib/p7zip/Codecs/Rar29.so", G_FILE_TEST_EXISTS))
+			if (! check_command || g_file_test ("/usr/lib/p7zip/Codecs/Rar29.so", G_FILE_TEST_EXISTS))
 				capabilities |= FR_COMMAND_CAN_READ;
 		}
 		else
@@ -582,6 +582,19 @@ fr_command_7z_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_7z_get_packages (FrCommand  *comm,
+			    const char *mime_type)
+{
+	if (is_mime_type (mime_type, "application/x-rar"))
+		return "p7zip,p7zip-rar";
+	else if (is_mime_type (mime_type, "application/zip") || is_mime_type (mime_type, "application/vnd.ms-cab-compressed"))
+		return "p7zip,p7zip-full";
+	else
+		return "p7zip";
+}
+
+
 static void
 fr_command_7z_class_init (FrCommand7zClass *class)
 {
@@ -601,6 +614,7 @@ fr_command_7z_class_init (FrCommand7zClass *class)
 	afc->handle_error     = fr_command_7z_handle_error;
 	afc->get_mime_types   = fr_command_7z_get_mime_types;
 	afc->get_capabilities = fr_command_7z_get_capabilities;
+	afc->get_packages     = fr_command_7z_get_packages;
 }
 
 
diff --git a/src/fr-command-ace.c b/src/fr-command-ace.c
index 173b4c1..dfdd7cc 100644
--- a/src/fr-command-ace.c
+++ b/src/fr-command-ace.c
@@ -260,6 +260,14 @@ fr_command_ace_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_ace_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "unace";
+}
+
+
 static void
 fr_command_ace_class_init (FrCommandAceClass *class)
 {
@@ -277,6 +285,7 @@ fr_command_ace_class_init (FrCommandAceClass *class)
 	afc->handle_error     = fr_command_ace_handle_error;
 	afc->get_mime_types   = fr_command_ace_get_mime_types;
 	afc->get_capabilities = fr_command_ace_get_capabilities;
+	afc->get_packages     = fr_command_ace_get_packages;
 }
 
 
diff --git a/src/fr-command-alz.c b/src/fr-command-alz.c
index 34fa368..d46d141 100644
--- a/src/fr-command-alz.c
+++ b/src/fr-command-alz.c
@@ -323,6 +323,14 @@ fr_command_alz_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_alz_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "unalz";
+}
+
+
 static void
 fr_command_alz_class_init (FrCommandAlzClass *class)
 {
@@ -341,6 +349,7 @@ fr_command_alz_class_init (FrCommandAlzClass *class)
 	afc->handle_error     = fr_command_alz_handle_error;
 	afc->get_mime_types   = fr_command_alz_get_mime_types;
 	afc->get_capabilities = fr_command_alz_get_capabilities;
+	afc->get_packages     = fr_command_alz_get_packages;
 }
 
 
diff --git a/src/fr-command-ar.c b/src/fr-command-ar.c
index 8b7762e..d4658a7 100644
--- a/src/fr-command-ar.c
+++ b/src/fr-command-ar.c
@@ -308,6 +308,14 @@ fr_command_ar_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_ar_get_packages (FrCommand  *comm,
+			    const char *mime_type)
+{
+	return "binutils";
+}
+
+
 static void
 fr_command_ar_class_init (FrCommandArClass *class)
 {
@@ -326,6 +334,7 @@ fr_command_ar_class_init (FrCommandArClass *class)
 	afc->handle_error     = fr_command_ar_handle_error;
 	afc->get_mime_types   = fr_command_ar_get_mime_types;
 	afc->get_capabilities = fr_command_ar_get_capabilities;
+	afc->get_packages     = fr_command_ar_get_packages;
 }
 
 
diff --git a/src/fr-command-arj.c b/src/fr-command-arj.c
index 2d69d88..6c9b700 100644
--- a/src/fr-command-arj.c
+++ b/src/fr-command-arj.c
@@ -341,6 +341,14 @@ fr_command_arj_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_arj_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "arj";
+}
+
+
 static void
 fr_command_arj_class_init (FrCommandArjClass *class)
 {
@@ -360,6 +368,7 @@ fr_command_arj_class_init (FrCommandArjClass *class)
 	afc->handle_error     = fr_command_arj_handle_error;
 	afc->get_mime_types   = fr_command_arj_get_mime_types;
 	afc->get_capabilities = fr_command_arj_get_capabilities;
+	afc->get_packages     = fr_command_arj_get_packages;
 }
 
 
diff --git a/src/fr-command-cfile.c b/src/fr-command-cfile.c
index 5e0ba78..9685e39 100644
--- a/src/fr-command-cfile.c
+++ b/src/fr-command-cfile.c
@@ -532,6 +532,31 @@ fr_command_cfile_finalize (GObject *object)
 }
 
 
+static const char *
+fr_command_cfile_get_packages (FrCommand  *comm,
+			       const char *mime_type)
+{
+	if (is_mime_type (mime_type, "application/x-gzip"))
+		return "gzip";
+	else if (is_mime_type (mime_type, "application/x-bzip"))
+		return "bzip2";
+	else if (is_mime_type (mime_type, "application/x-compress"))
+		return "ncompress";
+	else if (is_mime_type (mime_type, "application/x-lzip"))
+		return "lzip";
+	else if (is_mime_type (mime_type, "application/x-lzma"))
+		return "lzma";
+	else if (is_mime_type (mime_type, "application/x-xz"))
+		return "xz";
+	else if (is_mime_type (mime_type, "application/x-lzop"))
+		return "lzop";
+	else if (is_mime_type (mime_type, "application/x-rzip"))
+		return "rzip";
+
+	return NULL;
+}
+
+
 static void
 fr_command_cfile_class_init (FrCommandCFileClass *class)
 {
@@ -549,6 +574,7 @@ fr_command_cfile_class_init (FrCommandCFileClass *class)
 	afc->extract          = fr_command_cfile_extract;
 	afc->get_mime_types   = fr_command_cfile_get_mime_types;
 	afc->get_capabilities = fr_command_cfile_get_capabilities;
+	afc->get_packages     = fr_command_cfile_get_packages;
 }
 
 
diff --git a/src/fr-command-cpio.c b/src/fr-command-cpio.c
index 189a513..095b33d 100644
--- a/src/fr-command-cpio.c
+++ b/src/fr-command-cpio.c
@@ -241,6 +241,14 @@ fr_command_cpio_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_cpio_get_packages (FrCommand  *comm,
+			      const char *mime_type)
+{
+	return "cpio";
+}
+
+
 static void
 fr_command_cpio_class_init (FrCommandCpioClass *class)
 {
@@ -256,6 +264,7 @@ fr_command_cpio_class_init (FrCommandCpioClass *class)
 	afc->extract          = fr_command_cpio_extract;
 	afc->get_mime_types   = fr_command_cpio_get_mime_types;
 	afc->get_capabilities = fr_command_cpio_get_capabilities;
+	afc->get_packages     = fr_command_cpio_get_packages;
 }
 
 
diff --git a/src/fr-command-iso.c b/src/fr-command-iso.c
index d0fd769..b275e53 100644
--- a/src/fr-command-iso.c
+++ b/src/fr-command-iso.c
@@ -226,6 +226,14 @@ fr_command_iso_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_iso_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "genisoimage";
+}
+
+
 static void
 fr_command_iso_class_init (FrCommandIsoClass *class)
 {
@@ -241,6 +249,7 @@ fr_command_iso_class_init (FrCommandIsoClass *class)
 	afc->extract          = fr_command_iso_extract;
 	afc->get_mime_types   = fr_command_iso_get_mime_types;
 	afc->get_capabilities = fr_command_iso_get_capabilities;
+	afc->get_packages     = fr_command_iso_get_packages;
 }
 
 
diff --git a/src/fr-command-jar.c b/src/fr-command-jar.c
index 3efe3d4..e25c8c7 100644
--- a/src/fr-command-jar.c
+++ b/src/fr-command-jar.c
@@ -172,6 +172,14 @@ fr_command_jar_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_jar_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "zip,unzip";
+}
+
+
 static void
 fr_command_jar_class_init (FrCommandJarClass *class)
 {
@@ -185,6 +193,7 @@ fr_command_jar_class_init (FrCommandJarClass *class)
 	afc->add = fr_command_jar_add;
 	afc->get_mime_types = fr_command_jar_get_mime_types;
 	afc->get_capabilities = fr_command_jar_get_capabilities;
+	afc->get_packages     = fr_command_jar_get_packages;
 }
 
 
diff --git a/src/fr-command-lha.c b/src/fr-command-lha.c
index efdb216..a87c208 100644
--- a/src/fr-command-lha.c
+++ b/src/fr-command-lha.c
@@ -326,6 +326,14 @@ fr_command_lha_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_lha_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "lha";
+}
+
+
 static void
 fr_command_lha_class_init (FrCommandLhaClass *class)
 {
@@ -343,6 +351,7 @@ fr_command_lha_class_init (FrCommandLhaClass *class)
 	afc->extract          = fr_command_lha_extract;
 	afc->get_mime_types   = fr_command_lha_get_mime_types;
 	afc->get_capabilities = fr_command_lha_get_capabilities;
+	afc->get_packages     = fr_command_lha_get_packages;
 }
 
 
diff --git a/src/fr-command-rar.c b/src/fr-command-rar.c
index 2021e5b..d1c27b9 100644
--- a/src/fr-command-rar.c
+++ b/src/fr-command-rar.c
@@ -719,12 +719,10 @@ static const char *
 fr_command_rar_get_packages (FrCommand  *comm,
 			     const char *mime_type)
 {
-	if (is_mime_type (mime_type, "application/x-rar") || is_mime_type (mime_type, "application/x-cbr"))
-		return "rar,unrar";
-	else
-		return NULL;
+	return "rar,unrar";
 }
 
+
 static void
 fr_command_rar_class_init (FrCommandRarClass *class)
 {
diff --git a/src/fr-command-rpm.c b/src/fr-command-rpm.c
index c0016c0..bdbc01a 100644
--- a/src/fr-command-rpm.c
+++ b/src/fr-command-rpm.c
@@ -240,6 +240,14 @@ fr_command_rpm_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_rpm_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "cpio,rpm";
+}
+
+
 static void
 fr_command_rpm_class_init (FrCommandRpmClass *class)
 {
@@ -255,6 +263,7 @@ fr_command_rpm_class_init (FrCommandRpmClass *class)
 	afc->extract          = fr_command_rpm_extract;
 	afc->get_mime_types   = fr_command_rpm_get_mime_types;
 	afc->get_capabilities = fr_command_rpm_get_capabilities;
+	afc->get_packages     = fr_command_rpm_get_packages;
 }
 
 
diff --git a/src/fr-command-tar.c b/src/fr-command-tar.c
index 5cea8a0..7430c1e 100644
--- a/src/fr-command-tar.c
+++ b/src/fr-command-tar.c
@@ -1045,6 +1045,33 @@ fr_command_tar_set_mime_type (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_tar_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	if (is_mime_type (mime_type, "application/x-tar"))
+		return "tar";
+	else if (is_mime_type (mime_type, "application/x-compressed-tar"))
+		return "tar,gzip";
+	else if (is_mime_type (mime_type, "application/x-bzip-compressed-tar"))
+		return "tar,bzip2";
+	else if (is_mime_type (mime_type, "application/x-tarz"))
+		return "tar,gzip,ncompress";
+	else if (is_mime_type (mime_type, "application/x-lzip-compressed-tar"))
+		return "tar,lzip";
+	else if (is_mime_type (mime_type, "application/x-lzma-compressed-tar"))
+		return "tar,lzma";
+	else if (is_mime_type (mime_type, "application/x-xz-compressed-tar"))
+		return "tar,xz";
+	else if (is_mime_type (mime_type, "application/x-lzop-compressed-tar"))
+		return "tar,lzop";
+	else if (is_mime_type (mime_type, "application/x-7z-compressed-tar"))
+		return "tar,p7zip";
+
+	return NULL;
+}
+
+
 static void
 fr_command_tar_class_init (FrCommandTarClass *class)
 {
@@ -1066,6 +1093,7 @@ fr_command_tar_class_init (FrCommandTarClass *class)
 	afc->set_mime_type    = fr_command_tar_set_mime_type;
 	afc->recompress       = fr_command_tar_recompress;
 	afc->uncompress       = fr_command_tar_uncompress;
+	afc->get_packages     = fr_command_tar_get_packages;
 }
 
 
diff --git a/src/fr-command-unstuff.c b/src/fr-command-unstuff.c
index 5419a12..c2794ca 100644
--- a/src/fr-command-unstuff.c
+++ b/src/fr-command-unstuff.c
@@ -301,6 +301,14 @@ fr_command_unstuff_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_unstaff_get_packages (FrCommand  *comm,
+			         const char *mime_type)
+{
+	return "unstaff";
+}
+
+
 static void
 fr_command_unstuff_class_init (FrCommandUnstuffClass *class)
 {
@@ -319,6 +327,7 @@ fr_command_unstuff_class_init (FrCommandUnstuffClass *class)
 	afc->handle_error     = fr_command_unstuff_handle_error;
 	afc->get_mime_types   = fr_command_unstuff_get_mime_types;
 	afc->get_capabilities = fr_command_unstuff_get_capabilities;
+	afc->get_packages     = fr_command_unstaff_get_packages;
 }
 
 
diff --git a/src/fr-command-zip.c b/src/fr-command-zip.c
index 3b11a79..63c516a 100644
--- a/src/fr-command-zip.c
+++ b/src/fr-command-zip.c
@@ -407,6 +407,14 @@ fr_command_zip_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_zip_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "zip,unzip";
+}
+
+
 static void
 fr_command_zip_class_init (FrCommandZipClass *class)
 {
@@ -426,6 +434,7 @@ fr_command_zip_class_init (FrCommandZipClass *class)
 	afc->handle_error     = fr_command_zip_handle_error;
 	afc->get_mime_types   = fr_command_zip_get_mime_types;
 	afc->get_capabilities = fr_command_zip_get_capabilities;
+	afc->get_packages     = fr_command_zip_get_packages;
 }
 
 
diff --git a/src/fr-command-zoo.c b/src/fr-command-zoo.c
index 3fc7ce8..7429302 100644
--- a/src/fr-command-zoo.c
+++ b/src/fr-command-zoo.c
@@ -345,6 +345,14 @@ fr_command_zoo_get_capabilities (FrCommand  *comm,
 }
 
 
+static const char *
+fr_command_zoo_get_packages (FrCommand  *comm,
+			     const char *mime_type)
+{
+	return "zoo";
+}
+
+
 static void
 fr_command_zoo_class_init (FrCommandZooClass *class)
 {
@@ -363,6 +371,7 @@ fr_command_zoo_class_init (FrCommandZooClass *class)
 	afc->test             = fr_command_zoo_test;
 	afc->get_mime_types   = fr_command_zoo_get_mime_types;
 	afc->get_capabilities = fr_command_zoo_get_capabilities;
+	afc->get_packages     = fr_command_zoo_get_packages;
 }
 
 



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