From 2f8f1dcd64483b6f47a3ebae54c76dcbe5b412a5 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 2 Nov 2021 11:26:21 -0400 Subject: [PATCH] import nautilus-40.2-3.el9_b --- .gitignore | 2 +- .nautilus.metadata | 2 +- SOURCES/664.patch | 53 -- ...ialog-Add-support-for-encrypted-.zip.patch | 611 ++++++++++++++++ ...ompress-dialog-Backport-translations.patch | 682 ++++++++++++++++++ ...compress-dialog-Update-dialog-design.patch | 564 +++++++++++++++ ...-selected-files-list-for-compressing.patch | 117 +++ SPECS/nautilus.spec | 22 +- 8 files changed, 1992 insertions(+), 61 deletions(-) delete mode 100644 SOURCES/664.patch create mode 100644 SOURCES/compress-dialog-Add-support-for-encrypted-.zip.patch create mode 100644 SOURCES/compress-dialog-Backport-translations.patch create mode 100644 SOURCES/compress-dialog-Update-dialog-design.patch create mode 100644 SOURCES/files-view-Store-selected-files-list-for-compressing.patch diff --git a/.gitignore b/.gitignore index 2c45c4e..546683e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/nautilus-40.1.tar.xz +SOURCES/nautilus-40.2.tar.xz diff --git a/.nautilus.metadata b/.nautilus.metadata index 7e7a7a9..5f7a89f 100644 --- a/.nautilus.metadata +++ b/.nautilus.metadata @@ -1 +1 @@ -72aee7242696f687fcd8f774d00e90b537f9ca39 SOURCES/nautilus-40.1.tar.xz +c1b959b40074dd0e8e2df8289c61a3abf5fa8d5a SOURCES/nautilus-40.2.tar.xz diff --git a/SOURCES/664.patch b/SOURCES/664.patch deleted file mode 100644 index ca836d8..0000000 --- a/SOURCES/664.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 3e03a8b05258cf88bd61c61e3ac599103d464b38 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= -Date: Sat, 1 May 2021 23:54:43 +0100 -Subject: [PATCH] files-view: Set PWD to current dir to run scripts - -When running an executable text file as a program, it's reasonable to -expect that the directory currently displayed by the file browser -becomes the current working directory for that program. This used to be -handled correctly by the activation action. - -While taking "Run as a Program" out of activation into a standalone -action, this behavior was left behind. - -Let's add it back to the standalone action to fix the regression. - -Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/1842 ---- - src/nautilus-files-view.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c -index 250c37264..e027f10e0 100644 ---- a/src/nautilus-files-view.c -+++ b/src/nautilus-files-view.c -@@ -6619,6 +6619,7 @@ action_run_in_terminal (GSimpleAction *action, - { - NautilusFilesView *view; - g_autolist (NautilusFile) selection = NULL; -+ g_autofree char *old_working_dir = NULL; - g_autofree char *uri = NULL; - g_autofree char *executable_path = NULL; - g_autofree char *quoted_path = NULL; -@@ -6636,6 +6637,8 @@ action_run_in_terminal (GSimpleAction *action, - return; - } - -+ old_working_dir = change_to_view_directory (view); -+ - uri = nautilus_file_get_activation_uri (NAUTILUS_FILE (selection->data)); - executable_path = g_filename_from_uri (uri, NULL, NULL); - quoted_path = g_shell_quote (executable_path); -@@ -6646,6 +6649,8 @@ action_run_in_terminal (GSimpleAction *action, - DEBUG ("Launching in terminal %s", quoted_path); - - nautilus_launch_application_from_command (screen, quoted_path, TRUE, NULL); -+ -+ g_chdir (old_working_dir); - } - - #define BG_KEY_PRIMARY_COLOR "primary-color" --- -GitLab - diff --git a/SOURCES/compress-dialog-Add-support-for-encrypted-.zip.patch b/SOURCES/compress-dialog-Add-support-for-encrypted-.zip.patch new file mode 100644 index 0000000..832726f --- /dev/null +++ b/SOURCES/compress-dialog-Add-support-for-encrypted-.zip.patch @@ -0,0 +1,611 @@ +From 98c79d46ab05bd86fc1309d9ae560edc19f62071 Mon Sep 17 00:00:00 2001 +From: Ondrej Holy +Date: Fri, 30 Jul 2021 10:52:55 +0200 +Subject: [PATCH] compress-dialog: Add support for encrypted .zip + +Currently, it is not possible to create encrypted archives over +Nautilus. Let's add support for encrypted .zip files to not have +to install a dedicated archive manager. + +Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/822 +--- + data/org.gnome.nautilus.gschema.xml | 1 + + meson.build | 2 +- + src/nautilus-compress-dialog-controller.c | 136 +++++++++++++++++++ + src/nautilus-compress-dialog-controller.h | 1 + + src/nautilus-file-operations.c | 8 +- + src/nautilus-file-operations.h | 1 + + src/nautilus-file-undo-operations.c | 7 +- + src/nautilus-file-undo-operations.h | 3 +- + src/nautilus-files-view.c | 10 ++ + src/nautilus-global-preferences.h | 3 +- + src/resources/css/nautilus.css | 9 ++ + src/resources/ui/nautilus-compress-dialog.ui | 57 ++++++++ + 12 files changed, 233 insertions(+), 5 deletions(-) + +diff --git a/data/org.gnome.nautilus.gschema.xml b/data/org.gnome.nautilus.gschema.xml +index 3f89466de..7585be8cd 100644 +--- a/data/org.gnome.nautilus.gschema.xml ++++ b/data/org.gnome.nautilus.gschema.xml +@@ -65,6 +65,7 @@ + + + ++ + + + +diff --git a/meson.build b/meson.build +index d5316475d..446b25614 100644 +--- a/meson.build ++++ b/meson.build +@@ -117,7 +117,7 @@ gio = dependency('gio-2.0', version: glib_ver) + gio_unix = dependency('gio-unix-2.0', version: glib_ver) + glib = dependency('glib-2.0', version: glib_ver) + gmodule = dependency('gmodule-no-export-2.0', version: glib_ver) +-gnome_autoar = dependency('gnome-autoar-0', version: '>= 0.3.0') ++gnome_autoar = dependency('gnome-autoar-0', version: '>= 0.4.0') + gnome_desktop = dependency('gnome-desktop-3.0', version: '>= 3.0.0') + gtk = dependency('gtk+-3.0', version: '>= 3.22.27') + libhandy = dependency('libhandy-1', version: '>= 1.1.90') +diff --git a/src/nautilus-compress-dialog-controller.c b/src/nautilus-compress-dialog-controller.c +index 154573c0f..e1ba5a803 100644 +--- a/src/nautilus-compress-dialog-controller.c ++++ b/src/nautilus-compress-dialog-controller.c +@@ -32,17 +32,24 @@ struct _NautilusCompressDialogController + NautilusFileNameWidgetController parent_instance; + + GtkWidget *compress_dialog; ++ GtkWidget *activate_button; ++ GtkWidget *error_label; + GtkWidget *name_entry; + GtkWidget *extension_stack; + GtkWidget *zip_label; ++ GtkWidget *encrypted_zip_label; + GtkWidget *tar_xz_label; + GtkWidget *seven_zip_label; + GtkWidget *extension_popover; + GtkWidget *zip_checkmark; ++ GtkWidget *encrypted_zip_checkmark; + GtkWidget *tar_xz_checkmark; + GtkWidget *seven_zip_checkmark; ++ GtkWidget *passphrase_label; ++ GtkWidget *passphrase_entry; + + const char *extension; ++ gchar *passphrase; + + gulong response_handler_id; + }; +@@ -142,6 +149,7 @@ update_selected_format (NautilusCompressDialogController *self, + const char *extension; + GtkWidget *active_label; + GtkWidget *active_checkmark; ++ gboolean show_passphrase = FALSE; + + switch (format) + { +@@ -153,6 +161,15 @@ update_selected_format (NautilusCompressDialogController *self, + } + break; + ++ case NAUTILUS_COMPRESSION_ENCRYPTED_ZIP: ++ { ++ extension = ".zip"; ++ active_label = self->encrypted_zip_label; ++ active_checkmark = self->encrypted_zip_checkmark; ++ show_passphrase = TRUE; ++ } ++ break; ++ + case NAUTILUS_COMPRESSION_TAR_XZ: + { + extension = ".tar.xz"; +@@ -178,12 +195,26 @@ update_selected_format (NautilusCompressDialogController *self, + + self->extension = extension; + ++ gtk_widget_set_visible (self->passphrase_label, show_passphrase); ++ gtk_widget_set_visible (self->passphrase_entry, show_passphrase); ++ if (!show_passphrase) ++ { ++ gtk_entry_set_text (GTK_ENTRY (self->passphrase_entry), ""); ++ gtk_entry_set_visibility (GTK_ENTRY (self->passphrase_entry), FALSE); ++ gtk_entry_set_icon_from_icon_name (GTK_ENTRY (self->passphrase_entry), ++ GTK_ENTRY_ICON_SECONDARY, ++ "view-conceal"); ++ } ++ + gtk_stack_set_visible_child (GTK_STACK (self->extension_stack), + active_label); + + gtk_image_set_from_icon_name (GTK_IMAGE (self->zip_checkmark), + NULL, + GTK_ICON_SIZE_BUTTON); ++ gtk_image_set_from_icon_name (GTK_IMAGE (self->encrypted_zip_checkmark), ++ NULL, ++ GTK_ICON_SIZE_BUTTON); + gtk_image_set_from_icon_name (GTK_IMAGE (self->tar_xz_checkmark), + NULL, + GTK_ICON_SIZE_BUTTON); +@@ -200,6 +231,7 @@ update_selected_format (NautilusCompressDialogController *self, + /* Since the extension changes when the button is toggled, force a + * verification of the new file name by simulating an entry change + */ ++ gtk_widget_set_sensitive (self->activate_button, FALSE); + g_signal_emit_by_name (self->name_entry, "changed"); + } + +@@ -216,6 +248,19 @@ zip_row_on_activated (HdyActionRow *row, + NAUTILUS_COMPRESSION_ZIP); + } + ++static void ++encrypted_zip_row_on_activated (HdyActionRow *row, ++ gpointer user_data) ++{ ++ NautilusCompressDialogController *controller; ++ ++ controller = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); ++ ++ gtk_popover_popdown (GTK_POPOVER (controller->extension_popover)); ++ update_selected_format (controller, ++ NAUTILUS_COMPRESSION_ENCRYPTED_ZIP); ++} ++ + static void + tar_xz_row_on_activated (HdyActionRow *row, + gpointer user_data) +@@ -242,6 +287,67 @@ seven_zip_row_on_activated (HdyActionRow *row, + NAUTILUS_COMPRESSION_7ZIP); + } + ++static void ++passphrase_entry_on_changed (GtkEditable *editable, ++ gpointer user_data) ++{ ++ NautilusCompressDialogController *self; ++ const gchar *error_message; ++ ++ self = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); ++ ++ g_free (self->passphrase); ++ self->passphrase = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->passphrase_entry))); ++ ++ /* Simulate a change of the name_entry to ensure the correct sensitivity of ++ * the activate_button, but only if the name_entry is valid in order to ++ * avoid changes of the error_revealer. ++ */ ++ error_message = gtk_label_get_text (GTK_LABEL (self->error_label)); ++ if (error_message[0] == '\0') ++ { ++ gtk_widget_set_sensitive (self->activate_button, FALSE); ++ g_signal_emit_by_name (self->name_entry, "changed"); ++ } ++} ++ ++static void ++passphrase_entry_on_icon_press (GtkEntry *entry, ++ GtkEntryIconPosition icon_pos, ++ GdkEvent *event, ++ gpointer user_data) ++{ ++ NautilusCompressDialogController *self; ++ gboolean visibility; ++ ++ self = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); ++ visibility = gtk_entry_get_visibility (GTK_ENTRY (self->passphrase_entry)); ++ ++ gtk_entry_set_icon_from_icon_name (GTK_ENTRY (self->passphrase_entry), ++ GTK_ENTRY_ICON_SECONDARY, ++ visibility ? "view-conceal" : "view-reveal"); ++ gtk_entry_set_visibility (GTK_ENTRY (self->passphrase_entry), !visibility); ++} ++ ++static void ++activate_button_on_sensitive_notify (GObject *gobject, ++ GParamSpec *pspec, ++ gpointer user_data) ++{ ++ NautilusCompressDialogController *self; ++ NautilusCompressionFormat format; ++ ++ self = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); ++ format = g_settings_get_enum (nautilus_compression_preferences, ++ NAUTILUS_PREFERENCES_DEFAULT_COMPRESSION_FORMAT); ++ if (format == NAUTILUS_COMPRESSION_ENCRYPTED_ZIP && ++ (self->passphrase == NULL || self->passphrase[0] == '\0')) ++ { ++ /* Reset sensitivity of the activate_button if password is not set. */ ++ gtk_widget_set_sensitive (self->activate_button, FALSE); ++ } ++} ++ + NautilusCompressDialogController * + nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + NautilusDirectory *destination_directory, +@@ -256,12 +362,16 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + GtkWidget *activate_button; + GtkWidget *extension_stack; + GtkWidget *zip_label; ++ GtkWidget *encrypted_zip_label; + GtkWidget *tar_xz_label; + GtkWidget *seven_zip_label; + GtkWidget *extension_popover; + GtkWidget *zip_checkmark; ++ GtkWidget *encrypted_zip_checkmark; + GtkWidget *tar_xz_checkmark; + GtkWidget *seven_zip_checkmark; ++ GtkWidget *passphrase_label; ++ GtkWidget *passphrase_entry; + NautilusCompressionFormat format; + + builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-compress-dialog.ui"); +@@ -272,12 +382,16 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + activate_button = GTK_WIDGET (gtk_builder_get_object (builder, "activate_button")); + extension_stack = GTK_WIDGET (gtk_builder_get_object (builder, "extension_stack")); + zip_label = GTK_WIDGET (gtk_builder_get_object (builder, "zip_label")); ++ encrypted_zip_label = GTK_WIDGET (gtk_builder_get_object (builder, "encrypted_zip_label")); + tar_xz_label = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_label")); + seven_zip_label = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_label")); + extension_popover = GTK_WIDGET (gtk_builder_get_object (builder, "extension_popover")); + zip_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "zip_checkmark")); ++ encrypted_zip_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "encrypted_zip_checkmark")); + tar_xz_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_checkmark")); + seven_zip_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_checkmark")); ++ passphrase_label = GTK_WIDGET (gtk_builder_get_object (builder, "passphrase_label")); ++ passphrase_entry = GTK_WIDGET (gtk_builder_get_object (builder, "passphrase_entry")); + + gtk_window_set_transient_for (GTK_WINDOW (compress_dialog), + parent_window); +@@ -290,16 +404,22 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + "containing-directory", destination_directory, NULL); + + self->compress_dialog = compress_dialog; ++ self->activate_button = activate_button; ++ self->error_label = error_label; + self->extension_stack = extension_stack; + self->zip_label = zip_label; ++ self->encrypted_zip_label = encrypted_zip_label; + self->tar_xz_label = tar_xz_label; + self->seven_zip_label = seven_zip_label; + self->name_entry = name_entry; + self->extension_popover = extension_popover; + self->zip_checkmark = zip_checkmark; ++ self->encrypted_zip_checkmark = encrypted_zip_checkmark; + self->tar_xz_checkmark = tar_xz_checkmark; + self->seven_zip_checkmark = seven_zip_checkmark; + self->name_entry = name_entry; ++ self->passphrase_label = passphrase_label; ++ self->passphrase_entry = passphrase_entry; + + self->response_handler_id = g_signal_connect (compress_dialog, + "response", +@@ -309,10 +429,18 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + gtk_builder_add_callback_symbols (builder, + "zip_row_on_activated", + G_CALLBACK (zip_row_on_activated), ++ "encrypted_zip_row_on_activated", ++ G_CALLBACK (encrypted_zip_row_on_activated), + "tar_xz_row_on_activated", + G_CALLBACK (tar_xz_row_on_activated), + "seven_zip_row_on_activated", + G_CALLBACK (seven_zip_row_on_activated), ++ "passphrase_entry_on_changed", ++ G_CALLBACK (passphrase_entry_on_changed), ++ "passphrase_entry_on_icon_press", ++ G_CALLBACK (passphrase_entry_on_icon_press), ++ "activate_button_on_sensitive_notify", ++ G_CALLBACK (activate_button_on_sensitive_notify), + NULL); + gtk_builder_connect_signals (builder, self); + +@@ -350,6 +478,8 @@ nautilus_compress_dialog_controller_finalize (GObject *object) + self->compress_dialog = NULL; + } + ++ g_free (self->passphrase); ++ + G_OBJECT_CLASS (nautilus_compress_dialog_controller_parent_class)->finalize (object); + } + +@@ -364,3 +494,9 @@ nautilus_compress_dialog_controller_class_init (NautilusCompressDialogController + parent_class->get_new_name = nautilus_compress_dialog_controller_get_new_name; + parent_class->name_is_valid = nautilus_compress_dialog_controller_name_is_valid; + } ++ ++const gchar * ++nautilus_compress_dialog_controller_get_passphrase (NautilusCompressDialogController *self) ++{ ++ return self->passphrase; ++} +diff --git a/src/nautilus-compress-dialog-controller.h b/src/nautilus-compress-dialog-controller.h +index 2421b8115..6c96d68fa 100644 +--- a/src/nautilus-compress-dialog-controller.h ++++ b/src/nautilus-compress-dialog-controller.h +@@ -31,3 +31,4 @@ G_DECLARE_FINAL_TYPE (NautilusCompressDialogController, nautilus_compress_dialog + NautilusCompressDialogController * nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + NautilusDirectory *destination_directory, + gchar *initial_name); ++const gchar * nautilus_compress_dialog_controller_get_passphrase (NautilusCompressDialogController *controller); +diff --git a/src/nautilus-file-operations.c b/src/nautilus-file-operations.c +index 59beecd7e..f909173f9 100644 +--- a/src/nautilus-file-operations.c ++++ b/src/nautilus-file-operations.c +@@ -222,6 +222,7 @@ typedef struct + + AutoarFormat format; + AutoarFilter filter; ++ gchar *passphrase; + + guint64 total_size; + guint total_files; +@@ -8753,6 +8754,7 @@ compress_task_done (GObject *source_object, + + g_object_unref (compress_job->output_file); + g_list_free_full (compress_job->source_files, g_object_unref); ++ g_free (compress_job->passphrase); + + finalize_common ((CommonJob *) compress_job); + +@@ -9027,6 +9029,7 @@ compress_task_thread_func (GTask *task, + compress_job->format, + compress_job->filter, + FALSE); ++ autoar_compressor_set_passphrase (compressor, compress_job->passphrase); + + autoar_compressor_set_output_is_dest (compressor, TRUE); + +@@ -9057,6 +9060,7 @@ nautilus_file_operations_compress (GList *files, + GFile *output, + AutoarFormat format, + AutoarFilter filter, ++ const gchar *passphrase, + GtkWindow *parent_window, + NautilusFileOperationsDBusData *dbus_data, + NautilusCreateCallback done_callback, +@@ -9072,6 +9076,7 @@ nautilus_file_operations_compress (GList *files, + compress_job->output_file = g_object_ref (output); + compress_job->format = format; + compress_job->filter = filter; ++ compress_job->passphrase = g_strdup (passphrase); + compress_job->done_callback = done_callback; + compress_job->done_callback_data = done_callback_data; + +@@ -9082,7 +9087,8 @@ nautilus_file_operations_compress (GList *files, + compress_job->common.undo_info = nautilus_file_undo_info_compress_new (files, + output, + format, +- filter); ++ filter, ++ passphrase); + } + + task = g_task_new (NULL, compress_job->common.cancellable, +diff --git a/src/nautilus-file-operations.h b/src/nautilus-file-operations.h +index 8236e0e06..14d664f80 100644 +--- a/src/nautilus-file-operations.h ++++ b/src/nautilus-file-operations.h +@@ -159,6 +159,7 @@ void nautilus_file_operations_compress (GList *files, + GFile *output, + AutoarFormat format, + AutoarFilter filter, ++ const gchar *passphrase, + GtkWindow *parent_window, + NautilusFileOperationsDBusData *dbus_data, + NautilusCreateCallback done_callback, +diff --git a/src/nautilus-file-undo-operations.c b/src/nautilus-file-undo-operations.c +index a6a3b2025..64f9ce76c 100644 +--- a/src/nautilus-file-undo-operations.c ++++ b/src/nautilus-file-undo-operations.c +@@ -2495,6 +2495,7 @@ struct _NautilusFileUndoInfoCompress + GFile *output; + AutoarFormat format; + AutoarFilter filter; ++ gchar *passphrase; + }; + + G_DEFINE_TYPE (NautilusFileUndoInfoCompress, nautilus_file_undo_info_compress, NAUTILUS_TYPE_FILE_UNDO_INFO) +@@ -2562,6 +2563,7 @@ compress_redo_func (NautilusFileUndoInfo *info, + self->output, + self->format, + self->filter, ++ self->passphrase, + parent_window, + dbus_data, + compress_callback, +@@ -2597,6 +2599,7 @@ nautilus_file_undo_info_compress_finalize (GObject *obj) + + g_list_free_full (self->sources, g_object_unref); + g_clear_object (&self->output); ++ g_free (self->passphrase); + + G_OBJECT_CLASS (nautilus_file_undo_info_compress_parent_class)->finalize (obj); + } +@@ -2618,7 +2621,8 @@ NautilusFileUndoInfo * + nautilus_file_undo_info_compress_new (GList *sources, + GFile *output, + AutoarFormat format, +- AutoarFilter filter) ++ AutoarFilter filter, ++ const gchar *passphrase) + { + NautilusFileUndoInfoCompress *self; + +@@ -2631,6 +2635,7 @@ nautilus_file_undo_info_compress_new (GList *sources, + self->output = g_object_ref (output); + self->format = format; + self->filter = filter; ++ self->passphrase = g_strdup (passphrase); + + return NAUTILUS_FILE_UNDO_INFO (self); + } +diff --git a/src/nautilus-file-undo-operations.h b/src/nautilus-file-undo-operations.h +index f96f2fe69..09ae17cef 100644 +--- a/src/nautilus-file-undo-operations.h ++++ b/src/nautilus-file-undo-operations.h +@@ -226,4 +226,5 @@ G_DECLARE_FINAL_TYPE (NautilusFileUndoInfoCompress, nautilus_file_undo_info_comp + NautilusFileUndoInfo * nautilus_file_undo_info_compress_new (GList *sources, + GFile *output, + AutoarFormat format, +- AutoarFilter filter); ++ AutoarFilter filter, ++ const gchar *passphrase); +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c +index b4a91226b..47aed3cc1 100644 +--- a/src/nautilus-files-view.c ++++ b/src/nautilus-files-view.c +@@ -2235,6 +2235,7 @@ compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c + NautilusFilesViewPrivate *priv; + AutoarFormat format; + AutoarFilter filter; ++ const gchar *passphrase = NULL; + + view = NAUTILUS_FILES_VIEW (callback_data->view); + priv = nautilus_files_view_get_instance_private (view); +@@ -2280,6 +2281,14 @@ compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c + } + break; + ++ case NAUTILUS_COMPRESSION_ENCRYPTED_ZIP: ++ { ++ format = AUTOAR_FORMAT_ZIP; ++ filter = AUTOAR_FILTER_NONE; ++ passphrase = nautilus_compress_dialog_controller_get_passphrase (priv->compress_controller); ++ } ++ break; ++ + case NAUTILUS_COMPRESSION_TAR_XZ: + { + format = AUTOAR_FORMAT_TAR; +@@ -2301,6 +2310,7 @@ compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c + nautilus_file_operations_compress (source_files, output, + format, + filter, ++ passphrase, + nautilus_files_view_get_containing_window (view), + NULL, + compress_done, +diff --git a/src/nautilus-global-preferences.h b/src/nautilus-global-preferences.h +index 8c482f7ce..2e8753b3c 100644 +--- a/src/nautilus-global-preferences.h ++++ b/src/nautilus-global-preferences.h +@@ -77,7 +77,8 @@ typedef enum + { + NAUTILUS_COMPRESSION_ZIP = 0, + NAUTILUS_COMPRESSION_TAR_XZ, +- NAUTILUS_COMPRESSION_7ZIP ++ NAUTILUS_COMPRESSION_7ZIP, ++ NAUTILUS_COMPRESSION_ENCRYPTED_ZIP + } NautilusCompressionFormat; + + /* Icon View */ +diff --git a/src/resources/css/nautilus.css b/src/resources/css/nautilus.css +index 2e46b7abe..ee25a36a8 100644 +--- a/src/resources/css/nautilus.css ++++ b/src/resources/css/nautilus.css +@@ -3,3 +3,12 @@ + padding-left: 5px; + padding-right: 5px; + } ++ ++label.encrypted_zip, ++row.encrypted_zip label.title { ++ background-image: -gtk-icontheme('system-lock-screen-symbolic'); ++ background-position: right center; ++ background-repeat: no-repeat; ++ background-size: 16px 16px; ++ padding-right: 24px; ++} +diff --git a/src/resources/ui/nautilus-compress-dialog.ui b/src/resources/ui/nautilus-compress-dialog.ui +index b36539294..a57765eed 100644 +--- a/src/resources/ui/nautilus-compress-dialog.ui ++++ b/src/resources/ui/nautilus-compress-dialog.ui +@@ -28,6 +28,26 @@ + + + ++ ++ ++ True ++ True ++ .zip ++ Password protected .zip, must be installed on Windows and Mac. ++ ++ ++ ++ ++ True ++ 16 ++ 12 ++ 12 ++ ++ ++ ++ + + + True +@@ -129,6 +149,15 @@ + 0 + + ++ ++ ++ .zip ++ 0 ++ ++ ++ + + + .tar.xz +@@ -179,6 +208,33 @@ + 3 + + ++ ++ ++ Password ++ 6 ++ 0 ++ ++ ++ False ++ True ++ 4 ++ ++ ++ ++ ++ Enter a password here. ++ password ++ False ++ view-conceal ++ ++ ++ ++ ++ False ++ True ++ 5 ++ ++ + + + +@@ -197,6 +253,7 @@ + True + True + False ++ + + + +-- +2.31.1 + diff --git a/SOURCES/compress-dialog-Backport-translations.patch b/SOURCES/compress-dialog-Backport-translations.patch new file mode 100644 index 0000000..724841d --- /dev/null +++ b/SOURCES/compress-dialog-Backport-translations.patch @@ -0,0 +1,682 @@ +diff --git a/po/ca.po b/po/ca.po +index aeae0331c..bbab22965 100644 +--- a/po/ca.po ++++ b/po/ca.po +@@ -5895,3 +5895,15 @@ msgstr "Introduïu l'adreça del servidor..." + + #~ msgid "Only create windows for explicitly specified URIs." + #~ msgstr "Només crea finestres per als URI indicats explícitament." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Fitxer .zip protegit amb contrasenya, s'ha d'instal·lar a Windows i Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Contrasenya" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Introduïu una contrasenya aquí." +diff --git a/po/cs.po b/po/cs.po +index 36a8d4ebb..5bca98e82 100644 +--- a/po/cs.po ++++ b/po/cs.po +@@ -5755,3 +5755,15 @@ msgstr "Připojit se k _serveru" + msgid "Enter server address…" + msgstr "zadejte adresu serveru…" + ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Heslem chráněný .zip, do Windows a na Mac je nutné doinstalovat." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Heslo" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "zde zadejte heslo" +diff --git a/po/da.po b/po/da.po +index d6901920f..7c2b9a1ce 100644 +--- a/po/da.po ++++ b/po/da.po +@@ -7510,3 +7510,15 @@ msgstr "Indtast serveradresse …" + + #~ msgid "link" + #~ msgstr "henvisning" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Adgangskodebeskyttet .zip — skal installeres på Windows og Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Adgangskode" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Indtast en adgangskode her." +diff --git a/po/de.po b/po/de.po +index 4e4bc33d6..dd9128f32 100644 +--- a/po/de.po ++++ b/po/de.po +@@ -6020,3 +6020,17 @@ msgstr "Serveradresse eingeben …" + + #~ msgid "Prefere_nces" + #~ msgstr "_Einstellungen" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Passwortgeschütztes .zip-Archiv. Hierfür muss unter Windows und Mac Software " ++"installiert werden." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Passwort" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Geben Sie hier ein Passwort ein." +diff --git a/po/el.po b/po/el.po +index 65029aec6..5e89b8a33 100644 +--- a/po/el.po ++++ b/po/el.po +@@ -6121,3 +6121,17 @@ msgstr "Εισαγωγή διεύθυνσης διακομιστή…" + + #~ msgid "smb://" + #~ msgstr "smb://" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Αρχεία .zip προστατευμένα με συνθηματικό, πρέπει να εγκατασταθούν σε Windows " ++"και Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Συνθηματικό" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Εισαγωγή συνθηματικού εδώ." +diff --git a/po/en_GB.po b/po/en_GB.po +index 1adc903d8..254d6022e 100644 +--- a/po/en_GB.po ++++ b/po/en_GB.po +@@ -10311,3 +10311,15 @@ msgstr "Enter server address…" + + #~ msgid "Question" + #~ msgstr "Question" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Password protected .zip, must be installed on Windows and Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Password" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Enter a password here." +diff --git a/po/es.po b/po/es.po +index f168c54d6..de8e7e7fa 100644 +--- a/po/es.po ++++ b/po/es.po +@@ -11253,3 +11253,19 @@ msgstr "Introduzca la dirección del servidor…" + #~ msgstr "" + #~ "Nautilus es un shell gráfico para GNOME que facilita la administración de " + #~ "sus archivos y el resto de su sistema." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++#| msgid "Smaller archives but must be installed on Windows and Mac." ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr ".zip protegido por contraseña, se debe instalar en Windows o Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++#| msgid "Pass_word:" ++msgid "Password" ++msgstr "Contraseña" ++ ++# src/nautilus-location-bar.c:401 ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++#| msgid "Enter password…" ++msgid "Enter a password here." ++msgstr "Introduzca una contraseña aquí." +diff --git a/po/eu.po b/po/eu.po +index 5f48c29c8..f886de542 100644 +--- a/po/eu.po ++++ b/po/eu.po +@@ -5676,3 +5676,15 @@ msgstr "Sartu zerbitzariaren helbidea…" + + #~ msgid "Only create windows for explicitly specified URIs." + #~ msgstr "Zehaztutako URIentzat bakarrik sortu leihoak." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Pasahitzez babestutako .zip fitxategia, Windows eta Mac-en instalatu behar da." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Pasahitza" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Idatzi pasahitza hemen." +diff --git a/po/fa.po b/po/fa.po +index 52b1d9f2a..d1aa5131b 100644 +--- a/po/fa.po ++++ b/po/fa.po +@@ -10614,3 +10614,15 @@ msgstr "نشانی کارساز را وارد کنید…" + + #~ msgid "C_ancel Remove" + #~ msgstr "ان_صراف از حذف" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "پروندهٔ ‪.zip‬ محافظت‌شده با گذرواژه. باید روی ویندوز و مک نصب باشد." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "گذرواژه" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "این‌جا گذرواژه‌ای وارد کنید." +diff --git a/po/fi.po b/po/fi.po +index 7fc36774d..235453bb3 100644 +--- a/po/fi.po ++++ b/po/fi.po +@@ -7363,3 +7363,15 @@ msgstr "Anna palvelimen osoite…" + + #~ msgid "_Up" + #~ msgstr "_Ylös" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Salasanalla suojattu .zip, tulee asentaa Windowsille ja Macille." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Salasana" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Kirjoita salasana tähän." +diff --git a/po/fr.po b/po/fr.po +index c01c70e4a..8cb792c9d 100644 +--- a/po/fr.po ++++ b/po/fr.po +@@ -6002,3 +6002,20 @@ msgstr "Saisir l’adresse du serveur…" + + #~ msgid "smb://" + #~ msgstr "smb://" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++#| msgid "Smaller archives but must be installed on Windows and Mac." ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++".zip protégé par mot de passe, mais nécessite une installation sur Windows " ++"et Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++#| msgid "Password Required" ++msgid "Password" ++msgstr "Mot de passe" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++#| msgid "Enter password…" ++msgid "Enter a password here." ++msgstr "Saisissez un mot de passe ici." +diff --git a/po/gl.po b/po/gl.po +index 0e695ca91..98d5b8487 100644 +--- a/po/gl.po ++++ b/po/gl.po +@@ -5881,3 +5881,19 @@ msgstr "Escriba o enderezo do servidor…" + + #~ msgid "New _Folder…" + #~ msgstr "Novo _cartafol…" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++#| msgid "Smaller archives but must be installed on Windows and Mac." ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++".zip protexido con contrasinal, deben estar instalados en Windows e Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++#| msgid "Password Required" ++msgid "Password" ++msgstr "Contrasinal" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++#| msgid "Enter password…" ++msgid "Enter a password here." ++msgstr "Escriba un contrasinal aquí…" +diff --git a/po/he.po b/po/he.po +index 3706273a9..86bbf14e9 100644 +--- a/po/he.po ++++ b/po/he.po +@@ -11131,3 +11131,15 @@ msgstr "יש לההזין כתובת שרת…" + + #~ msgid "Question" + #~ msgstr "שאלה" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "קובץ ‎.zip מוגן בססמה, חייב להיות מותקן ב־Windows וב־Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "ססמה" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "נא למלא כאן ססמה." +diff --git a/po/hr.po b/po/hr.po +index 1a864ce9d..45625fd20 100644 +--- a/po/hr.po ++++ b/po/hr.po +@@ -6477,3 +6477,15 @@ msgstr "Upiši adresu poslužitelja…" + + #~ msgid "Re_verse Order" + #~ msgstr "Ob_rni poredak" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Lozinkom zaštićeni .zip, mora biti instaliran na Windows i Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Lozinka" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Upišite lozinku ovdje." +diff --git a/po/hu.po b/po/hu.po +index b547cd30d..1fa73c01e 100644 +--- a/po/hu.po ++++ b/po/hu.po +@@ -5853,3 +5853,18 @@ msgstr "Adja meg a kiszolgáló címét…" + + #~ msgid "New _Folder…" + #~ msgstr "Új _mappa…" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++#| msgid "Smaller archives but must be installed on Windows and Mac." ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Jelszóval védett .zip, Windowsra és Macre telepíteni kell." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++#| msgid "Password Required" ++msgid "Password" ++msgstr "Jelszó" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++#| msgid "Enter password…" ++msgid "Enter a password here." ++msgstr "Adjon meg egy jelszót itt." +diff --git a/po/id.po b/po/id.po +index 7bfd400b2..352cf746e 100644 +--- a/po/id.po ++++ b/po/id.po +@@ -6355,3 +6355,16 @@ msgstr "Masukkan alamat peladen…" + + #~ msgid "Mark as _Trusted" + #~ msgstr "_Tandai Dipercaya" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Berkas .zip yang dilindungi kata sandi, harus dipasang pada Windows dan Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Kata Sandi" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Masukkan kata sandi di sini." +diff --git a/po/kk.po b/po/kk.po +index 6b1ed27b9..921c46940 100644 +--- a/po/kk.po ++++ b/po/kk.po +@@ -7842,3 +7842,17 @@ msgstr "Сервер адресін енгізіңіз…" + #~ msgstr "" + #~ "Қоқыс шелегін тазартуды таңдасаңыз, құрамасы жойылады. Оларды жеке-жеке " + #~ "өшіруге болатынын есте сақтаңыз." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Парольмен қорғалған .zip архивтері, Windows және Mac-та орнатылған болуы " ++"тиіс." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Пароль" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Парольді осында енгізіңіз." +diff --git a/po/ko.po b/po/ko.po +index 43533fe3b..56077c21f 100644 +--- a/po/ko.po ++++ b/po/ko.po +@@ -5733,3 +5733,15 @@ msgstr "서버 주소 입력…" + + #~ msgid "smb://" + #~ msgstr "smb://" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "암호로 보호된 .zip 파일, 윈도우와 맥에서 설치해야 함." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "암호" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "여기 암호를 입력하십시오." +diff --git a/po/lt.po b/po/lt.po +index 7a257c609..4fc020a94 100644 +--- a/po/lt.po ++++ b/po/lt.po +@@ -7500,3 +7500,19 @@ msgstr "Įveskite _serverio adresą…" + + #~ msgid "_Up" + #~ msgstr "_Aukštyn" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++#| msgid "Smaller archives but must be installed on Windows and Mac." ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Slaptažodžiu apsaugotas .zip, turi būti įdiegti Windows ir Mac sistemose." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++#| msgid "Password Required" ++msgid "Password" ++msgstr "Slaptažodis" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++#| msgid "Enter password…" ++msgid "Enter a password here." ++msgstr "Įveskite slaptažodį čia." +diff --git a/po/nl.po b/po/nl.po +index 77eab583b..393749329 100644 +--- a/po/nl.po ++++ b/po/nl.po +@@ -6837,3 +6837,17 @@ msgstr "Voer serveradres in…" + + #~ msgid "Move Dow_n" + #~ msgstr "Naar b_eneden" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Zipbestand beschermd met wachtwoord, moet op Windows en Mac geïnstalleerd " ++"worden." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Wachtwoord" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Voer hier een wachtwoord in." +diff --git a/po/oc.po b/po/oc.po +index e4d1cabbc..f0c23bfda 100644 +--- a/po/oc.po ++++ b/po/oc.po +@@ -7520,3 +7520,16 @@ msgstr "Entrar l'adreça del _servidor…" + + #~ msgid "Copying “%B” to “%B”" + #~ msgstr "Còpia de « %B » cap a « %B »" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Fichièr zip protegit per senhal, requerís una installacion sus Windows e Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Senhal" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Picatz un senhal aquí." +diff --git a/po/pl.po b/po/pl.po +index 499b5b1ea..ce1c46677 100644 +--- a/po/pl.po ++++ b/po/pl.po +@@ -5776,3 +5776,17 @@ msgstr "Połącz z _serwerem" + #: src/gtk/nautilusgtkplacesview.ui:340 + msgid "Enter server address…" + msgstr "Adres serwera…" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Archiwum .zip chronione hasłem, wymaga dodatkowego oprogramowania " ++"w systemach Windows i Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Hasło" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Hasło…" +diff --git a/po/pt.po b/po/pt.po +index 2c071f039..ffacf5123 100644 +--- a/po/pt.po ++++ b/po/pt.po +@@ -6482,3 +6482,16 @@ msgstr "Insira o endereço do servidor…" + + #~ msgid "Whether the row represents a network location" + #~ msgstr "Se a linha representa uma localização de rede" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"O .zip protegido por palavra-passe deve ser instalado no Windows e Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Palavra-passe" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Introduza aqui uma palavra-passe." +diff --git a/po/pt_BR.po b/po/pt_BR.po +index 2bb4e4ca6..42c5f4a81 100644 +--- a/po/pt_BR.po ++++ b/po/pt_BR.po +@@ -7565,3 +7565,15 @@ msgstr "Insira endereço do servidor…" + + #~ msgid "_Bookmarks..." + #~ msgstr "_Marcadores..." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Arquivo .zip protegido por senha, pode ser instalado no Windows e Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Senha" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Insira uma senha aqui." +diff --git a/po/ro.po b/po/ro.po +index cc2a2cb6d..b96dffd27 100644 +--- a/po/ro.po ++++ b/po/ro.po +@@ -9645,3 +9645,16 @@ msgstr "Introduceți adresa serverului…" + #~ msgstr "" + #~ "Afișează modele, culori și embleme ce pot fi folosite pentru a " + #~ "personaliza aspectul" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Arhive zip protejate de parolă, dar trebuiesc instalate pe Windows și Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Parolă" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Introduceți parola." +diff --git a/po/ru.po b/po/ru.po +index b0d6868fa..be97cf11d 100644 +--- a/po/ru.po ++++ b/po/ru.po +@@ -6573,3 +6573,17 @@ msgstr "Ввести адрес сервера…" + #~ msgctxt "Bookmark" + #~ msgid "_Name" + #~ msgstr "_Имя" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Защищённый паролем архив, требует установки приложения для открытия в " ++"Windows и Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Пароль" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Введите пароль здесь." +diff --git a/po/sk.po b/po/sk.po +index d44e7fbe7..00edea5f8 100644 +--- a/po/sk.po ++++ b/po/sk.po +@@ -7706,3 +7706,16 @@ msgstr "Zadajte adresu servera…" + + #~ msgid "Places" + #~ msgstr "Miesta" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Heslom chránený súbor .zip, musí byť nainštalovaný v systéme Windows a Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Heslo" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Sem zadajte heslo." +diff --git a/po/sl.po b/po/sl.po +index 988752a10..7d1d001d6 100644 +--- a/po/sl.po ++++ b/po/sl.po +@@ -7743,3 +7743,17 @@ msgstr "Vpis naslova strežnika …" + #~ "Skupaj s programom bi morali prejeti kopijo GNU Splošne javne licence. V " + #~ "primeru, da je niste, pišite na Free Software Foundation, Inc., 51 " + #~ "Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "" ++"Z geslom zaščinen arhiv .zip, ki mora biti nameščen na sistemih Windows in " ++"Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Geslo" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Vnos gesla" +diff --git a/po/sv.po b/po/sv.po +index 734631dde..2b9c3ecc9 100644 +--- a/po/sv.po ++++ b/po/sv.po +@@ -6710,3 +6710,15 @@ msgstr "Ange serveradress…" + + #~ msgid "%a, %b %e %Y %T" + #~ msgstr "%a %-e %b %Y %T" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Lösenordsskyddad .zip, måste vara installerat på Windows och Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Lösenord" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Ange ett lösenord här." +diff --git a/po/tr.po b/po/tr.po +index 025d23e72..b0b8b0004 100644 +--- a/po/tr.po ++++ b/po/tr.po +@@ -6594,3 +6594,15 @@ msgstr "Sunucu adresini gir…" + + #~ msgid "D_efault zoom level:" + #~ msgstr "Ön_tanımlı yaklaştırma seviyesi:" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Parola korumalı .zip, Windows ve Mac üzerinde kurulmalıdır." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Parola" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Buraya parola gir…" +diff --git a/po/uk.po b/po/uk.po +index 8a4eb3001..71ad8edbf 100644 +--- a/po/uk.po ++++ b/po/uk.po +@@ -6018,3 +6018,15 @@ msgstr "Уведіть адресу сервера…" + #~| msgid "New _Folder" + #~ msgid "New _Folder…" + #~ msgstr "Створити _теку…" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "Захищений паролем .zip, має бути встановлено у Windows і Mac." ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "Пароль" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "Тут слід ввести пароль." +diff --git a/po/zh_CN.po b/po/zh_CN.po +index e98220b83..896d7415f 100644 +--- a/po/zh_CN.po ++++ b/po/zh_CN.po +@@ -6185,3 +6185,15 @@ msgstr "输入服务器地址…" + + #~ msgid "Zoom In" + #~ msgstr "放大" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:36 ++msgid "Password protected .zip, must be installed on Windows and Mac." ++msgstr "有密码保护的 .zip 文件,必须在 Windows 和 Mac 上安装额外程序才能打开。" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:213 ++msgid "Password" ++msgstr "密码" ++ ++#: src/resources/ui/nautilus-compress-dialog.ui:225 ++msgid "Enter a password here." ++msgstr "在此处输入密码。" +-- +2.31.1 + diff --git a/SOURCES/compress-dialog-Update-dialog-design.patch b/SOURCES/compress-dialog-Update-dialog-design.patch new file mode 100644 index 0000000..f5feccb --- /dev/null +++ b/SOURCES/compress-dialog-Update-dialog-design.patch @@ -0,0 +1,564 @@ +From e71b54bafcbfffcb352600ebff4be8776de171f9 Mon Sep 17 00:00:00 2001 +From: Ondrej Holy +Date: Fri, 30 Jul 2021 11:01:42 +0200 +Subject: [PATCH] compress-dialog: Update dialog design + +Let's update the Compress dialog design as per the mockup for the +encrypted archives support. The most visible change is `GtkPopover` +with `HdyActionRow` rows for the format selection instead of the +`GtkRadioButton` buttons. + +https://gitlab.gnome.org/GNOME/nautilus/-/issues/822 +--- + src/nautilus-compress-dialog-controller.c | 132 ++++++----- + src/resources/ui/nautilus-compress-dialog.ui | 229 ++++++++++--------- + 2 files changed, 199 insertions(+), 162 deletions(-) + +diff --git a/src/nautilus-compress-dialog-controller.c b/src/nautilus-compress-dialog-controller.c +index d8aa792ee..154573c0f 100644 +--- a/src/nautilus-compress-dialog-controller.c ++++ b/src/nautilus-compress-dialog-controller.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + #include + +@@ -31,11 +32,15 @@ struct _NautilusCompressDialogController + NautilusFileNameWidgetController parent_instance; + + GtkWidget *compress_dialog; +- GtkWidget *description_stack; + GtkWidget *name_entry; +- GtkWidget *zip_radio_button; +- GtkWidget *tar_xz_radio_button; +- GtkWidget *seven_zip_radio_button; ++ GtkWidget *extension_stack; ++ GtkWidget *zip_label; ++ GtkWidget *tar_xz_label; ++ GtkWidget *seven_zip_label; ++ GtkWidget *extension_popover; ++ GtkWidget *zip_checkmark; ++ GtkWidget *tar_xz_checkmark; ++ GtkWidget *seven_zip_checkmark; + + const char *extension; + +@@ -135,32 +140,32 @@ update_selected_format (NautilusCompressDialogController *self, + NautilusCompressionFormat format) + { + const char *extension; +- const char *description_label_name; +- GtkWidget *active_button; ++ GtkWidget *active_label; ++ GtkWidget *active_checkmark; + + switch (format) + { + case NAUTILUS_COMPRESSION_ZIP: + { + extension = ".zip"; +- description_label_name = "zip-description-label"; +- active_button = self->zip_radio_button; ++ active_label = self->zip_label; ++ active_checkmark = self->zip_checkmark; + } + break; + + case NAUTILUS_COMPRESSION_TAR_XZ: + { + extension = ".tar.xz"; +- description_label_name = "tar-xz-description-label"; +- active_button = self->tar_xz_radio_button; ++ active_label = self->tar_xz_label; ++ active_checkmark = self->tar_xz_checkmark; + } + break; + + case NAUTILUS_COMPRESSION_7ZIP: + { + extension = ".7z"; +- description_label_name = "seven-zip-description-label"; +- active_button = self->seven_zip_radio_button; ++ active_label = self->seven_zip_label; ++ active_checkmark = self->seven_zip_checkmark; + } + break; + +@@ -173,11 +178,21 @@ update_selected_format (NautilusCompressDialogController *self, + + self->extension = extension; + +- gtk_stack_set_visible_child_name (GTK_STACK (self->description_stack), +- description_label_name); +- +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (active_button), +- TRUE); ++ gtk_stack_set_visible_child (GTK_STACK (self->extension_stack), ++ active_label); ++ ++ gtk_image_set_from_icon_name (GTK_IMAGE (self->zip_checkmark), ++ NULL, ++ GTK_ICON_SIZE_BUTTON); ++ gtk_image_set_from_icon_name (GTK_IMAGE (self->tar_xz_checkmark), ++ NULL, ++ GTK_ICON_SIZE_BUTTON); ++ gtk_image_set_from_icon_name (GTK_IMAGE (self->seven_zip_checkmark), ++ NULL, ++ GTK_ICON_SIZE_BUTTON); ++ gtk_image_set_from_icon_name (GTK_IMAGE (active_checkmark), ++ "object-select-symbolic", ++ GTK_ICON_SIZE_BUTTON); + + g_settings_set_enum (nautilus_compression_preferences, + NAUTILUS_PREFERENCES_DEFAULT_COMPRESSION_FORMAT, +@@ -189,52 +204,40 @@ update_selected_format (NautilusCompressDialogController *self, + } + + static void +-zip_radio_button_on_toggled (GtkToggleButton *toggle_button, +- gpointer user_data) ++zip_row_on_activated (HdyActionRow *row, ++ gpointer user_data) + { + NautilusCompressDialogController *controller; + + controller = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); + +- if (!gtk_toggle_button_get_active (toggle_button)) +- { +- return; +- } +- ++ gtk_popover_popdown (GTK_POPOVER (controller->extension_popover)); + update_selected_format (controller, + NAUTILUS_COMPRESSION_ZIP); + } + + static void +-tar_xz_radio_button_on_toggled (GtkToggleButton *toggle_button, +- gpointer user_data) ++tar_xz_row_on_activated (HdyActionRow *row, ++ gpointer user_data) + { + NautilusCompressDialogController *controller; + + controller = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); + +- if (!gtk_toggle_button_get_active (toggle_button)) +- { +- return; +- } +- ++ gtk_popover_popdown (GTK_POPOVER (controller->extension_popover)); + update_selected_format (controller, + NAUTILUS_COMPRESSION_TAR_XZ); + } + + static void +-seven_zip_radio_button_on_toggled (GtkToggleButton *toggle_button, +- gpointer user_data) ++seven_zip_row_on_activated (HdyActionRow *row, ++ gpointer user_data) + { + NautilusCompressDialogController *controller; + + controller = NAUTILUS_COMPRESS_DIALOG_CONTROLLER (user_data); + +- if (!gtk_toggle_button_get_active (toggle_button)) +- { +- return; +- } +- ++ gtk_popover_popdown (GTK_POPOVER (controller->extension_popover)); + update_selected_format (controller, + NAUTILUS_COMPRESSION_7ZIP); + } +@@ -251,10 +254,14 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + GtkWidget *error_label; + GtkWidget *name_entry; + GtkWidget *activate_button; +- GtkWidget *description_stack; +- GtkWidget *zip_radio_button; +- GtkWidget *tar_xz_radio_button; +- GtkWidget *seven_zip_radio_button; ++ GtkWidget *extension_stack; ++ GtkWidget *zip_label; ++ GtkWidget *tar_xz_label; ++ GtkWidget *seven_zip_label; ++ GtkWidget *extension_popover; ++ GtkWidget *zip_checkmark; ++ GtkWidget *tar_xz_checkmark; ++ GtkWidget *seven_zip_checkmark; + NautilusCompressionFormat format; + + builder = gtk_builder_new_from_resource ("/org/gnome/nautilus/ui/nautilus-compress-dialog.ui"); +@@ -263,10 +270,14 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + error_label = GTK_WIDGET (gtk_builder_get_object (builder, "error_label")); + name_entry = GTK_WIDGET (gtk_builder_get_object (builder, "name_entry")); + activate_button = GTK_WIDGET (gtk_builder_get_object (builder, "activate_button")); +- zip_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "zip_radio_button")); +- tar_xz_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_radio_button")); +- seven_zip_radio_button = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_radio_button")); +- description_stack = GTK_WIDGET (gtk_builder_get_object (builder, "description_stack")); ++ extension_stack = GTK_WIDGET (gtk_builder_get_object (builder, "extension_stack")); ++ zip_label = GTK_WIDGET (gtk_builder_get_object (builder, "zip_label")); ++ tar_xz_label = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_label")); ++ seven_zip_label = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_label")); ++ extension_popover = GTK_WIDGET (gtk_builder_get_object (builder, "extension_popover")); ++ zip_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "zip_checkmark")); ++ tar_xz_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "tar_xz_checkmark")); ++ seven_zip_checkmark = GTK_WIDGET (gtk_builder_get_object (builder, "seven_zip_checkmark")); + + gtk_window_set_transient_for (GTK_WINDOW (compress_dialog), + parent_window); +@@ -279,10 +290,15 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + "containing-directory", destination_directory, NULL); + + self->compress_dialog = compress_dialog; +- self->zip_radio_button = zip_radio_button; +- self->tar_xz_radio_button = tar_xz_radio_button; +- self->seven_zip_radio_button = seven_zip_radio_button; +- self->description_stack = description_stack; ++ self->extension_stack = extension_stack; ++ self->zip_label = zip_label; ++ self->tar_xz_label = tar_xz_label; ++ self->seven_zip_label = seven_zip_label; ++ self->name_entry = name_entry; ++ self->extension_popover = extension_popover; ++ self->zip_checkmark = zip_checkmark; ++ self->tar_xz_checkmark = tar_xz_checkmark; ++ self->seven_zip_checkmark = seven_zip_checkmark; + self->name_entry = name_entry; + + self->response_handler_id = g_signal_connect (compress_dialog, +@@ -291,20 +307,18 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + self); + + gtk_builder_add_callback_symbols (builder, +- "zip_radio_button_on_toggled", +- G_CALLBACK (zip_radio_button_on_toggled), +- "tar_xz_radio_button_on_toggled", +- G_CALLBACK (tar_xz_radio_button_on_toggled), +- "seven_zip_radio_button_on_toggled", +- G_CALLBACK (seven_zip_radio_button_on_toggled), ++ "zip_row_on_activated", ++ G_CALLBACK (zip_row_on_activated), ++ "tar_xz_row_on_activated", ++ G_CALLBACK (tar_xz_row_on_activated), ++ "seven_zip_row_on_activated", ++ G_CALLBACK (seven_zip_row_on_activated), + NULL); + gtk_builder_connect_signals (builder, self); + + format = g_settings_get_enum (nautilus_compression_preferences, + NAUTILUS_PREFERENCES_DEFAULT_COMPRESSION_FORMAT); + +- update_selected_format (self, format); +- + if (initial_name != NULL) + { + gtk_entry_set_text (GTK_ENTRY (name_entry), initial_name); +@@ -312,6 +326,8 @@ nautilus_compress_dialog_controller_new (GtkWindow *parent_window, + + gtk_widget_show_all (compress_dialog); + ++ update_selected_format (self, format); ++ + return self; + } + +diff --git a/src/resources/ui/nautilus-compress-dialog.ui b/src/resources/ui/nautilus-compress-dialog.ui +index 526e9eed2..b36539294 100644 +--- a/src/resources/ui/nautilus-compress-dialog.ui ++++ b/src/resources/ui/nautilus-compress-dialog.ui +@@ -1,6 +1,70 @@ + + + ++ ++ bottom ++ none ++ ++ ++ True ++ 12 ++ 12 ++ 12 ++ 12 ++ ++ ++ True ++ True ++ .zip ++ Compatible with all operating systems. ++ ++ ++ ++ True ++ 16 ++ 12 ++ 12 ++ ++ ++ ++ ++ ++ ++ True ++ True ++ .tar.xz ++ Smaller archives but Linux and Mac only. ++ ++ ++ ++ True ++ 16 ++ 12 ++ 12 ++ ++ ++ ++ ++ ++ ++ True ++ True ++ .7z ++ Smaller archives but must be installed on Windows and Mac. ++ ++ ++ ++ True ++ 16 ++ 12 ++ 12 ++ ++ ++ ++ ++ ++ ++ + + Create Archive + False +@@ -9,19 +73,26 @@ + True + dialog + 1 ++ 500 ++ 210 + + + vertical +- 18 +- 12 +- 18 +- 18 ++ 30 ++ 30 ++ 30 ++ 30 ++ 390 ++ center + 6 + + + Archive name + True + 0 ++ ++ ++ + + + False +@@ -30,132 +101,82 @@ + + + +- +- True +- True +- +- +- False +- True +- 2 +- +- +- +- +- +- +- 4 +- 4 +- True +- 0 +- +- +- +- +- False +- True +- 3 +- +- +- +- ++ + horizontal +- True +- 0 +- +- +- .zip +- True +- +- +- +- True +- True +- 0 +- +- ++ 12 + +- +- .tar.xz +- zip_radio_button +- True +- ++ ++ True ++ True ++ 30 + + + True +- True +- 1 + + + +- +- .7z +- zip_radio_button +- True +- ++ ++ extension_popover ++ ++ ++ horizontal ++ 6 ++ ++ ++ ++ ++ .zip ++ 0 ++ ++ ++ ++ ++ .tar.xz ++ 0 ++ ++ ++ ++ ++ .7z ++ 0 ++ ++ ++ ++ ++ True ++ ++ ++ ++ ++ pan-down-symbolic ++ ++ ++ ++ + +- +- True +- True +- 2 +- + + + + False + True +- 4 ++ 2 + + + +- +- True +- False +- True +- +- +- True +- Compatible with all operating systems. +- 0 +- +- +- +- zip-description-label +- +- +- +- +- True +- Smaller archives but Linux and Mac only. +- 0 +- +- +- +- tar-xz-description-label +- +- ++ + +- ++ ++ 4 ++ 4 + True +- Smaller archives but must be installed on Windows and Mac. + 0 +- + +- +- seven-zip-description-label +- + + + + False + True +- 5 ++ 3 + + + +-- +2.31.1 + diff --git a/SOURCES/files-view-Store-selected-files-list-for-compressing.patch b/SOURCES/files-view-Store-selected-files-list-for-compressing.patch new file mode 100644 index 0000000..700fc3f --- /dev/null +++ b/SOURCES/files-view-Store-selected-files-list-for-compressing.patch @@ -0,0 +1,117 @@ +From 67c7bdbf8757c51d3b1bc1f5c40eaeddef9e3a89 Mon Sep 17 00:00:00 2001 +From: Anubhav Tyagi +Date: Sat, 17 Jul 2021 12:39:20 +0530 +Subject: [PATCH] files-view: Store selected files list for compressing + +The selected files list is chosen after the user confirmed the compress +operation in the compress-dialog which may result in files other than +chosen file being compressed. + +Store the list of selected files when the user chooses the "Compress" +option from the menu, to avoid that + +Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1900 + + +(cherry picked from commit 6c7eacd20302046521e89dd28240c6b0193ba942) +--- + src/nautilus-files-view.c | 37 +++++++++++++++++++++++++++---------- + 1 file changed, 27 insertions(+), 10 deletions(-) + +diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c +index 378e6bdba..b4a91226b 100644 +--- a/src/nautilus-files-view.c ++++ b/src/nautilus-files-view.c +@@ -302,6 +302,12 @@ typedef struct + NautilusDirectory *directory; + } FileAndDirectory; + ++typedef struct ++{ ++ NautilusFilesView *view; ++ GList *selection; ++} CompressCallbackData; ++ + /* forward declarations */ + + static gboolean display_selection_info_idle_callback (gpointer data); +@@ -2217,9 +2223,9 @@ static void + compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *controller, + gpointer user_data) + { ++ CompressCallbackData *callback_data = user_data; + NautilusFilesView *view; + g_autofree gchar *name = NULL; +- GList *selection; + GList *source_files = NULL; + GList *l; + CompressData *data; +@@ -2230,12 +2236,10 @@ compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c + AutoarFormat format; + AutoarFilter filter; + +- view = NAUTILUS_FILES_VIEW (user_data); ++ view = NAUTILUS_FILES_VIEW (callback_data->view); + priv = nautilus_files_view_get_instance_private (view); + +- selection = nautilus_files_view_get_selection_for_file_transfer (view); +- +- for (l = selection; l != NULL; l = l->next) ++ for (l = callback_data->selection; l != NULL; l = l->next) + { + source_files = g_list_prepend (source_files, + nautilus_file_get_location (l->data)); +@@ -2302,7 +2306,6 @@ compress_dialog_controller_on_name_accepted (NautilusFileNameWidgetController *c + compress_done, + data); + +- nautilus_file_list_free (selection); + g_list_free_full (source_files, g_object_unref); + g_clear_object (&priv->compress_controller); + } +@@ -2320,6 +2323,12 @@ compress_dialog_controller_on_cancelled (NautilusNewFolderDialogController *cont + g_clear_object (&priv->compress_controller); + } + ++static void ++compress_callback_data_free (CompressCallbackData *data) ++{ ++ nautilus_file_list_free (data->selection); ++ g_free (data); ++} + + static void + nautilus_files_view_compress_dialog_new (NautilusFilesView *view) +@@ -2328,6 +2337,7 @@ nautilus_files_view_compress_dialog_new (NautilusFilesView *view) + NautilusFilesViewPrivate *priv; + g_autolist (NautilusFile) selection = NULL; + g_autofree char *common_prefix = NULL; ++ CompressCallbackData *data; + + priv = nautilus_files_view_get_instance_private (view); + +@@ -2365,10 +2375,17 @@ nautilus_files_view_compress_dialog_new (NautilusFilesView *view) + containing_directory, + common_prefix); + +- g_signal_connect (priv->compress_controller, +- "name-accepted", +- (GCallback) compress_dialog_controller_on_name_accepted, +- view); ++ data = g_new0 (CompressCallbackData, 1); ++ data->view = view; ++ data->selection = nautilus_files_view_get_selection_for_file_transfer (view); ++ ++ g_signal_connect_data (priv->compress_controller, ++ "name-accepted", ++ (GCallback) compress_dialog_controller_on_name_accepted, ++ data, ++ (GClosureNotify) compress_callback_data_free, ++ G_CONNECT_AFTER); ++ + g_signal_connect (priv->compress_controller, + "cancelled", + (GCallback) compress_dialog_controller_on_cancelled, +-- +2.31.1 + diff --git a/SPECS/nautilus.spec b/SPECS/nautilus.spec index 0b2c439..03a9cfa 100644 --- a/SPECS/nautilus.spec +++ b/SPECS/nautilus.spec @@ -1,21 +1,22 @@ %global glib2_version 2.67.1 -%global gnome_autoar_version 0.3.0 +%global gnome_autoar_version 0.4.0 %global gtk3_version 3.22.27 %global tarball_version %%(echo %{version} | tr '~' '.') Name: nautilus -Version: 40.1 -Release: 4%{?dist} +Version: 40.2 +Release: 3%{?dist} Summary: File manager for GNOME License: GPLv3+ URL: https://wiki.gnome.org/Apps/Nautilus Source0: https://download.gnome.org/sources/%{name}/40/%{name}-%{tarball_version}.tar.xz -# Backported from upstream -# https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/664 -Patch0: 664.patch +Patch0: files-view-Store-selected-files-list-for-compressing.patch +Patch1: compress-dialog-Update-dialog-design.patch +Patch2: compress-dialog-Add-support-for-encrypted-.zip.patch +Patch3: compress-dialog-Backport-translations.patch BuildRequires: desktop-file-utils BuildRequires: gcc @@ -147,6 +148,15 @@ desktop-file-validate $RPM_BUILD_ROOT%{_datadir}/applications/*.desktop %doc %{_datadir}/gtk-doc/html/libnautilus-extension/ %changelog +* Fri Sep 17 2021 Ondrej Holy - 40.2-3 +- Backport translations for encrypted archives support (#1993015) + +* Tue Aug 10 2021 Ondrej Holy - 40.2-2 +- Add support for creation of password-protected archives (#1991575) + +* Tue Aug 10 2021 Ondrej Holy - 40.2-1 +- Update to 40.2 (#1991433) + * Mon Aug 09 2021 Mohan Boddu - 40.1-4 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags Related: rhbz#1991688