file-roller/file-roller-open-dest-dialog-only-when-using-notify.patch

120 lines
4.8 KiB
Diff

From 347a917c0504a9c5ccfd0b8041e40d56ec9bd74a Mon Sep 17 00:00:00 2001
From: Paolo Bacchilega <paobac@src.gnome.org>
Date: Sat, 18 Feb 2017 09:24:18 +0100
Subject: show the 'open destination' dialog only when using --notify
and only for the last extracted archive
---
src/fr-application.c | 13 ++++++++-----
src/fr-window.c | 10 ++++++----
src/fr-window.h | 8 +++++---
3 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/src/fr-application.c b/src/fr-application.c
index 98aac18..025c775 100644
--- a/src/fr-application.c
+++ b/src/fr-application.c
@@ -296,7 +296,7 @@ handle_method_call (GDBusConnection *connection,
g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation);
fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive"));
- fr_window_batch__extract (FR_WINDOW (window), archive, destination);
+ fr_window_batch__extract (FR_WINDOW (window), archive, destination, use_progress_dialog);
fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL);
fr_window_batch_start (FR_WINDOW (window));
@@ -322,7 +322,7 @@ handle_method_call (GDBusConnection *connection,
g_signal_connect (window, "ready", G_CALLBACK (window_ready_cb), invocation);
fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive"));
- fr_window_batch__extract_here (FR_WINDOW (window), archive);
+ fr_window_batch__extract_here (FR_WINDOW (window), archive, use_progress_dialog);
fr_window_batch_append_action (FR_WINDOW (window), FR_BATCH_ACTION_QUIT, NULL, NULL);
fr_window_batch_start (FR_WINDOW (window));
@@ -604,13 +604,16 @@ fr_application_command_line (GApplication *application,
fr_window_batch_new (FR_WINDOW (window), C_("Window title", "Extract archive"));
while ((archive = remaining_args[i++]) != NULL) {
- GFile *file;
+ GFile *file;
+ gboolean last_archive;
file = g_application_command_line_create_file_for_arg (command_line, archive);
+ last_archive = (remaining_args[i] == NULL);
+
if (arg_extract_here == 1)
- fr_window_batch__extract_here (FR_WINDOW (window), file);
+ fr_window_batch__extract_here (FR_WINDOW (window), file, arg_notify && last_archive);
else
- fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination);
+ fr_window_batch__extract (FR_WINDOW (window), file, extraction_destination, arg_notify && last_archive);
g_object_unref (file);
}
diff --git a/src/fr-window.c b/src/fr-window.c
index 1fd803b..bbddde7 100644
--- a/src/fr-window.c
+++ b/src/fr-window.c
@@ -9819,7 +9819,8 @@ fr_window_batch_get_title (FrWindow *window)
void
fr_window_batch__extract_here (FrWindow *window,
- GFile *archive)
+ GFile *archive,
+ gboolean ask_to_open_destination)
{
g_return_if_fail (window != NULL);
g_return_if_fail (archive != NULL);
@@ -9837,7 +9838,7 @@ fr_window_batch__extract_here (FrWindow *window,
FALSE,
FR_OVERWRITE_ASK,
FALSE,
- _fr_window_get_ask_to_open_destination (window),
+ ask_to_open_destination,
TRUE),
(GFreeFunc) extract_data_free);
fr_window_batch_append_action (window,
@@ -9850,7 +9851,8 @@ fr_window_batch__extract_here (FrWindow *window,
void
fr_window_batch__extract (FrWindow *window,
GFile *archive,
- GFile *destination)
+ GFile *destination,
+ gboolean ask_to_open_destination)
{
g_return_if_fail (window != NULL);
g_return_if_fail (archive != NULL);
@@ -9869,7 +9871,7 @@ fr_window_batch__extract (FrWindow *window,
FALSE,
FR_OVERWRITE_ASK,
FALSE,
- _fr_window_get_ask_to_open_destination (window),
+ ask_to_open_destination,
FALSE),
(GFreeFunc) extract_data_free);
else
diff --git a/src/fr-window.h b/src/fr-window.h
index 4ea0f4e..7bbffec 100644
--- a/src/fr-window.h
+++ b/src/fr-window.h
@@ -306,10 +306,12 @@ void fr_window_batch_resume (FrWindow *window);
gboolean fr_window_is_batch_mode (FrWindow *window);
void fr_window_batch__extract (FrWindow *window,
GFile *archive,
- GFile *destination);
+ GFile *destination,
+ gboolean ask_to_open_destination);
void fr_window_batch__extract_here (FrWindow *window,
- GFile *archive);
-void fr_window_batch__add_files (FrWindow *window,
+ GFile *archive,
+ gboolean ask_to_open_destination);
+void fr_window_batch__add_files (FrWindow *window,
GFile *archive,
GList *file_list);
void fr_window_destroy_with_error_dialog (FrWindow *window);
--
cgit v0.12