From 347a917c0504a9c5ccfd0b8041e40d56ec9bd74a Mon Sep 17 00:00:00 2001 From: Paolo Bacchilega 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