From 31827ac01b2e62b24957b5c69aa32d889e6d5c49 Mon Sep 17 00:00:00 2001 From: Patrick Northon Date: Thu, 20 Jan 2022 23:35:00 -0500 Subject: [PATCH] Add option to disable or enable content type detection of mounted media. --- gresources/nemo-file-management-properties.glade | 16 ++++++++++++++++ libnemo-private/nemo-global-preferences.h | 7 ++++--- libnemo-private/org.nemo.gschema.xml | 4 ++++ src/nemo-file-management-properties.c | 5 +++++ src/nemo-window-manage-views.c | 12 ++++++++---- 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/gresources/nemo-file-management-properties.glade b/gresources/nemo-file-management-properties.glade index 1efbce649..ed5cb0b33 100644 --- a/gresources/nemo-file-management-properties.glade +++ b/gresources/nemo-file-management-properties.glade @@ -1494,6 +1494,22 @@ along with . If not, see . 3 + + + Detect content of media and suggest application to open + True + True + False + True + 0 + True + + + False + False + 4 + + diff --git a/libnemo-private/nemo-global-preferences.h b/libnemo-private/nemo-global-preferences.h index 8461f912d..aad42d89c 100644 --- a/libnemo-private/nemo-global-preferences.h +++ b/libnemo-private/nemo-global-preferences.h @@ -226,9 +226,10 @@ typedef enum /* media handling */ -#define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT "automount" -#define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT_OPEN "automount-open" -#define GNOME_DESKTOP_MEDIA_HANDLING_AUTORUN "autorun-never" +#define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT "automount" +#define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT_OPEN "automount-open" +#define GNOME_DESKTOP_MEDIA_HANDLING_AUTORUN "autorun-never" +#define NEMO_PREFERENCES_MEDIA_HANDLING_DETECT_CONTENT "detect-content" /* Terminal */ #define GNOME_DESKTOP_TERMINAL_EXEC "exec" diff --git a/libnemo-private/org.nemo.gschema.xml b/libnemo-private/org.nemo.gschema.xml index 207357e2c..0919eb18e 100644 --- a/libnemo-private/org.nemo.gschema.xml +++ b/libnemo-private/org.nemo.gschema.xml @@ -415,6 +415,10 @@ false Suppress any safeguards when running nemo/nemo-desktop as the root user. For some systems there is only a root user. + + true + If true, enable detection of the type of content of a mounted media and display a suggested application to open the media. + diff --git a/src/nemo-file-management-properties.c b/src/nemo-file-management-properties.c index 9ef16cb11..3cdf9c94b 100644 --- a/src/nemo-file-management-properties.c +++ b/src/nemo-file-management-properties.c @@ -91,6 +91,7 @@ #define NEMO_FILE_MANAGEMENT_PROPERTIES_AUTOMOUNT_MEDIA_WIDGET "media_automount_checkbutton" #define NEMO_FILE_MANAGEMENT_PROPERTIES_AUTOOPEN_MEDIA_WIDGET "media_autoopen_checkbutton" #define NEMO_FILE_MANAGEMENT_PROPERTIES_AUTORUN_MEDIA_WIDGET "media_autorun_checkbutton" +#define NEMO_FILE_MANAGEMENT_PROPERTIES_DETECT_CONTENT_MEDIA_WIDGET "media_detect_content_checkbutton" #define NEMO_FILE_MANAGEMENT_PROPERTIES_SHOW_ADVANCED_PERMISSIONS_WIDGET "show_advanced_permissions_checkbutton" #define NEMO_FILE_MANAGEMENT_PROPERTIES_START_WITH_DUAL_PANE_WIDGET "start_with_dual_pane_checkbutton" #define NEMO_FILE_MANAGEMENT_PROPERTIES_IGNORE_VIEW_METADATA_WIDGET "ignore_view_metadata_checkbutton" @@ -985,6 +986,10 @@ nemo_file_management_properties_dialog_setup (GtkBuilder *builder, NEMO_FILE_MANAGEMENT_PROPERTIES_AUTORUN_MEDIA_WIDGET, GNOME_DESKTOP_MEDIA_HANDLING_AUTORUN); + bind_builder_bool (builder, nemo_preferences, + NEMO_FILE_MANAGEMENT_PROPERTIES_DETECT_CONTENT_MEDIA_WIDGET, + NEMO_PREFERENCES_MEDIA_HANDLING_DETECT_CONTENT); + bind_builder_bool (builder, nemo_preferences, NEMO_FILE_MANAGEMENT_PROPERTIES_CLOSE_DEVICE_VIEW_ON_EJECT_WIDGET, NEMO_PREFERENCES_CLOSE_DEVICE_VIEW_ON_EJECT); diff --git a/src/nemo-window-manage-views.c b/src/nemo-window-manage-views.c index cdce07f95..f18be3a94 100644 --- a/src/nemo-window-manage-views.c +++ b/src/nemo-window-manage-views.c @@ -1432,10 +1432,14 @@ found_mount_cb (GObject *source_object, NULL); if (mount != NULL) { data->mount = mount; - nemo_get_x_content_types_for_mount_async (mount, - found_content_type_cb, - data->cancellable, - data); + + if (g_settings_get_boolean (nemo_preferences, NEMO_PREFERENCES_MEDIA_HANDLING_DETECT_CONTENT)) { + nemo_get_x_content_types_for_mount_async (mount, + found_content_type_cb, + data->cancellable, + data); + } + return; }