diff options
author | Stefano Karapetsas <[email protected]> | 2013-11-11 07:48:39 -0800 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2013-11-11 07:48:39 -0800 |
commit | 36aefd0601529725931abbf7280684c1efdc3f34 (patch) | |
tree | 77f6139d8d7f6334e108c43e7ff4739f47c19848 | |
parent | d320643fa8818590744b525b497a64b4dc0878f3 (diff) | |
parent | c5b92183993bc71fd7798f3dac869174453fe1db (diff) | |
download | engrampa-36aefd0601529725931abbf7280684c1efdc3f34.tar.bz2 engrampa-36aefd0601529725931abbf7280684c1efdc3f34.tar.xz |
Merge pull request #33 from NiceandGently/master
add support for (.wim, .swm), change 7z compression level options + minor improvements
-rw-r--r-- | caja/caja-engrampa.c | 1 | ||||
-rw-r--r-- | data/engrampa.desktop.in.in | 2 | ||||
-rw-r--r-- | engrampa.spec.in | 1 | ||||
-rw-r--r-- | src/dlg-package-installer.c | 51 | ||||
-rw-r--r-- | src/fr-command-7z.c | 14 | ||||
-rw-r--r-- | src/main.c | 3 |
6 files changed, 48 insertions, 24 deletions
diff --git a/caja/caja-engrampa.c b/caja/caja-engrampa.c index e45529c..68dcc28 100644 --- a/caja/caja-engrampa.c +++ b/caja/caja-engrampa.c @@ -173,6 +173,7 @@ static char *mime_types[] = { "application/x-lzma-compressed-tar", "application/x-lzop", "application/x-lzop-compressed-tar", + "application/x-ms-wim", "application/x-rar", "application/x-rar-compressed", "application/x-rpm", diff --git a/data/engrampa.desktop.in.in b/data/engrampa.desktop.in.in index 3d2029f..a19666a 100644 --- a/data/engrampa.desktop.in.in +++ b/data/engrampa.desktop.in.in @@ -9,7 +9,7 @@ Terminal=false Type=Application Icon=engrampa Categories=GTK;Utility;Archiving;Compression; -MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-archive;application/x-arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip; +MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/x-deb;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lhz;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip; X-MATE-DocPath=engrampa/engrampa.xml X-MATE-Bugzilla-Bugzilla=MATE X-MATE-Bugzilla-Product=engrampa diff --git a/engrampa.spec.in b/engrampa.spec.in index 3cf2c95..af73fde 100644 --- a/engrampa.spec.in +++ b/engrampa.spec.in @@ -55,6 +55,7 @@ like tar and zip. The supported file types are : * 7zip (.tar.7z) * xz (.tar.xz) * Stuffit Archives (.bin, .sit) + * Windows Imaging Format (.wim, .swm) * ZIP Archive (.zip) * ZIP Archived Comic Book (.cbz) * ZOO Compressed Archive File (.zoo) diff --git a/src/dlg-package-installer.c b/src/dlg-package-installer.c index 451a2ca..466aa5f 100644 --- a/src/dlg-package-installer.c +++ b/src/dlg-package-installer.c @@ -48,8 +48,9 @@ installer_data_free (InstallerData *idata) static void -package_installer_terminated (InstallerData *idata, - const char *error) +package_installer_terminated (InstallerData *idata, + FrProcErrorType error_type, + const char *error_message) { GdkWindow *window; @@ -57,11 +58,11 @@ package_installer_terminated (InstallerData *idata, if (window != NULL) gdk_window_set_cursor (window, NULL); - if (error != NULL) { + if (error_type != FR_PROC_ERROR_NONE) { fr_archive_action_completed (idata->archive, FR_ACTION_CREATING_NEW_ARCHIVE, - FR_PROC_ERROR_GENERIC, - error); + error_type, + error_message); } else { update_registered_commands_capabilities (); @@ -83,24 +84,36 @@ packagekit_install_package_names_ready_cb (GObject *source_object, GAsyncResult *res, gpointer user_data) { - InstallerData *idata = user_data; - GDBusProxy *proxy; - GVariant *values; - GError *error = NULL; - char *message = NULL; + InstallerData *idata = user_data; + GDBusProxy *proxy; + GVariant *values; + GError *error = NULL; + FrProcErrorType error_type = FR_PROC_ERROR_NONE; + char *error_message = NULL; proxy = G_DBUS_PROXY (source_object); values = g_dbus_proxy_call_finish (proxy, res, &error); if (values == NULL) { - message = g_strdup_printf ("%s\n%s", - _("There was an internal error trying to search for applications:"), - error->message); + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) + || (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_DBUS_ERROR) + && (error->message != NULL) + && (strstr (error->message, "org.freedesktop.Packagekit.Modify.Cancelled") != NULL))) + { + error_type = FR_PROC_ERROR_STOPPED; + error_message = NULL; + } + else { + error_type = FR_PROC_ERROR_GENERIC; + error_message = g_strdup_printf ("%s\n%s", + _("There was an internal error trying to search for applications:"), + error->message); + } g_clear_error (&error); } - package_installer_terminated (idata, message); + package_installer_terminated (idata, error_type, error_message); - g_free (message); + g_free (error_message); if (values != NULL) g_variant_unref (values); g_object_unref (proxy); @@ -204,7 +217,7 @@ install_packages (InstallerData *idata) message = g_strdup_printf ("%s\n%s", _("There was an internal error trying to search for applications:"), error->message); - package_installer_terminated (idata, message); + package_installer_terminated (idata, FR_PROC_ERROR_GENERIC, message); g_clear_error (&error); } @@ -251,7 +264,7 @@ dlg_package_installer (FrWindow *window, if (command_type == 0) command_type = get_preferred_command_for_mime_type (idata->archive->content_type, FR_COMMAND_CAN_READ); if (command_type == 0) { - package_installer_terminated (idata, _("Archive type not supported.")); + package_installer_terminated (idata, FR_PROC_ERROR_GENERIC, _("Archive type not supported.")); return; } @@ -260,7 +273,7 @@ dlg_package_installer (FrWindow *window, g_object_unref (command); if (idata->packages == NULL) { - package_installer_terminated (idata, _("Archive type not supported.")); + package_installer_terminated (idata, FR_PROC_ERROR_GENERIC, _("Archive type not supported.")); return; } @@ -288,7 +301,7 @@ dlg_package_installer (FrWindow *window, #else /* ! ENABLE_PACKAGEKIT */ - package_installer_terminated (idata, _("Archive type not supported.")); + package_installer_terminated (idata, FR_PROC_ERROR_GENERIC, _("Archive type not supported.")); #endif /* ENABLE_PACKAGEKIT */ } diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c index 9909271..fbce9cf 100644 --- a/src/fr-command-7z.c +++ b/src/fr-command-7z.c @@ -347,13 +347,18 @@ fr_command_7z_add (FrCommand *comm, switch (comm->compression) { case FR_COMPRESSION_VERY_FAST: - fr_process_add_arg (comm->process, "-mx=1"); break; + fr_process_add_arg (comm->process, "-mx=1"); + break; case FR_COMPRESSION_FAST: - fr_process_add_arg (comm->process, "-mx=5"); break; + fr_process_add_arg (comm->process, "-mx=5"); + break; case FR_COMPRESSION_NORMAL: - fr_process_add_arg (comm->process, "-mx=5"); break; + fr_process_add_arg (comm->process, "-mx=7"); + break; case FR_COMPRESSION_MAXIMUM: - fr_process_add_arg (comm->process, "-mx=7"); break; + fr_process_add_arg (comm->process, "-mx=9"); + fr_process_add_arg (comm->process, "-m0=lzma2");; + break; } if (is_mime_type (comm->mime_type, "application/x-ms-dos-executable")) @@ -526,6 +531,7 @@ const char *sevenz_mime_types[] = { "application/x-7z-compressed", /*"application/x-cbr",*/ "application/x-cbz", "application/x-ms-dos-executable", + "application/x-ms-wim", "application/x-rar", "application/zip", NULL }; @@ -113,6 +113,7 @@ FrMimeTypeDescription mime_type_desc[] = { { "application/x-lzma-compressed-tar", ".tar.lzma", N_("Tar compressed with lzma (.tar.lzma)"), 0 }, { "application/x-lzop", ".lzo", NULL, 0 }, { "application/x-lzop-compressed-tar", ".tar.lzo", N_("Tar compressed with lzop (.tar.lzo)"), 0 }, + { "application/x-ms-wim", ".wim", N_("Windows Imaging Format (.wim)"), 0 }, { "application/x-rar", ".rar", N_("Rar (.rar)"), 0 }, { "application/x-rpm", ".rpm", NULL, 0 }, { "application/x-rzip", ".rz", NULL, 0 }, @@ -156,6 +157,7 @@ FrExtensionType file_ext_type[] = { { ".rpm", "application/x-rpm" }, { ".rz", "application/x-rzip" }, { ".sit", "application/x-stuffit" }, + { ".swm", "application/x-ms-wim" }, { ".tar", "application/x-tar" }, { ".tar.bz", "application/x-bzip-compressed-tar" }, { ".tar.bz2", "application/x-bzip-compressed-tar" }, @@ -176,6 +178,7 @@ FrExtensionType file_ext_type[] = { { ".tzma", "application/x-lzma-compressed-tar" }, { ".tzo", "application/x-lzop-compressed-tar" }, { ".war", "application/x-war" }, + { ".wim", "application/x-ms-wim" }, { ".xz", "application/x-xz" }, { ".z", "application/x-gzip" }, { ".Z", "application/x-compress" }, |