Blame SOURCES/revert-remove-compress-support.patch

9563ec
From a5e3f2407589a232edd6bcf498d13529cedcd599 Mon Sep 17 00:00:00 2001
9563ec
From: Carlos Soriano <csoriano@redhat.com>
9563ec
Date: Wed, 29 Aug 2018 16:20:14 +0200
9563ec
Subject: [PATCH] Revert "nautilus-fileroller: remove compress support"
9563ec
9563ec
This reverts commit fad2372ccbbfd40013b4225002f4a737d67928bc.
9563ec
---
9563ec
 nautilus/nautilus-fileroller.c | 66 ++++++++++++++++++++++++++++++++++
9563ec
 1 file changed, 66 insertions(+)
9563ec
9563ec
diff --git a/nautilus/nautilus-fileroller.c b/nautilus/nautilus-fileroller.c
9563ec
index 441356bf..196f0282 100644
9563ec
--- a/nautilus/nautilus-fileroller.c
9563ec
+++ b/nautilus/nautilus-fileroller.c
9563ec
@@ -105,6 +105,44 @@ extract_here_callback (NautilusMenuItem *item,
9563ec
 	g_string_free (cmd, TRUE);
9563ec
 }
9563ec
 
9563ec
+
9563ec
+static void
9563ec
+add_callback (NautilusMenuItem *item,
9563ec
+	      gpointer          user_data)
9563ec
+{
9563ec
+	GList            *files, *scan;
9563ec
+	NautilusFileInfo *file;
9563ec
+	char             *uri, *dir;
9563ec
+	GString          *cmd;
9563ec
+
9563ec
+	files = g_object_get_data (G_OBJECT (item), "files");
9563ec
+	file = files->data;
9563ec
+
9563ec
+	uri = nautilus_file_info_get_uri (file);
9563ec
+	dir = g_path_get_dirname (uri);
9563ec
+
9563ec
+	cmd = g_string_new ("file-roller");
9563ec
+	g_string_append (cmd, " --notify");
9563ec
+	g_string_append_printf (cmd," --default-dir=%s", g_shell_quote (dir));
9563ec
+	g_string_append (cmd," --add");
9563ec
+
9563ec
+	g_free (dir);
9563ec
+	g_free (uri);
9563ec
+
9563ec
+	for (scan = files; scan; scan = scan->next) {
9563ec
+		NautilusFileInfo *file = scan->data;
9563ec
+
9563ec
+		uri = nautilus_file_info_get_uri (file);
9563ec
+		g_string_append_printf (cmd, " %s", g_shell_quote (uri));
9563ec
+		g_free (uri);
9563ec
+	}
9563ec
+
9563ec
+	g_spawn_command_line_async (cmd->str, NULL);
9563ec
+
9563ec
+	g_string_free (cmd, TRUE);
9563ec
+}
9563ec
+
9563ec
+
9563ec
 static struct {
9563ec
 	char     *mime_type;
9563ec
 	gboolean  is_compressed;
9563ec
@@ -218,6 +256,10 @@ nautilus_fr_get_file_items (NautilusMenuProvider *provider,
9563ec
 	GList    *items = NULL;
9563ec
 	GList    *scan;
9563ec
 	gboolean  can_write = TRUE;
9563ec
+	gboolean  one_item;
9563ec
+	gboolean  one_archive = FALSE;
9563ec
+	gboolean  one_derived_archive = FALSE;
9563ec
+	gboolean  one_compressed_archive = FALSE;
9563ec
 	gboolean  all_archives = TRUE;
9563ec
 	gboolean  all_archives_derived = TRUE;
9563ec
 	gboolean  all_archives_compressed = TRUE;
9563ec
@@ -254,6 +296,11 @@ nautilus_fr_get_file_items (NautilusMenuProvider *provider,
9563ec
 
9563ec
 	/**/
9563ec
 
9563ec
+	one_item = (files != NULL) && (files->next == NULL);
9563ec
+	one_archive = one_item && all_archives;
9563ec
+	one_derived_archive = one_archive && all_archives_derived;
9563ec
+	one_compressed_archive = one_archive && all_archives_compressed;
9563ec
+
9563ec
 	if (all_archives && can_write) {
9563ec
 		NautilusMenuItem *item;
9563ec
 
9563ec
@@ -293,6 +340,25 @@ nautilus_fr_get_file_items (NautilusMenuProvider *provider,
9563ec
 
9563ec
 	}
9563ec
 
9563ec
+	if (! one_compressed_archive || one_derived_archive) {
9563ec
+		NautilusMenuItem *item;
9563ec
+
9563ec
+		item = nautilus_menu_item_new ("NautilusFr::add",
9563ec
+					       g_dgettext ("file-roller", "Compress..."),
9563ec
+					       g_dgettext ("file-roller", "Create a compressed archive with the selected objects"),
9563ec
+					       "gnome-mime-application-x-archive");
9563ec
+		g_signal_connect (item,
9563ec
+				  "activate",
9563ec
+				  G_CALLBACK (add_callback),
9563ec
+				  provider);
9563ec
+		g_object_set_data_full (G_OBJECT (item),
9563ec
+					"files",
9563ec
+					nautilus_file_info_list_copy (files),
9563ec
+					(GDestroyNotify) nautilus_file_info_list_free);
9563ec
+
9563ec
+		items = g_list_append (items, item);
9563ec
+	}
9563ec
+
9563ec
 	return items;
9563ec
 }
9563ec
 
9563ec
-- 
9563ec
2.17.1
9563ec