[gnome-disk-utility] Hide devices if mounted with x-gdu.hide
- From: Kai Lüke <kailueke src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] Hide devices if mounted with x-gdu.hide
- Date: Sun, 4 Feb 2018 14:49:16 +0000 (UTC)
commit c6eb1882c8ae87168939ece825f83cf9b6b559ae
Author: Andrea Azzarone <andrea azzarone canonical com>
Date: Fri Nov 24 13:42:22 2017 +0100
Hide devices if mounted with x-gdu.hide
Check inside should_include_block if a block has been mounted with
the x-gdu.hide option. This allows to hide e.g. snap squashfs from
gnome-disk-utility.
https://bugzilla.gnome.org/show_bug.cgi?id=790279
meson.build | 4 ++++
src/disks/gdudevicetreemodel.c | 3 +++
src/libgdu/gduutils.c | 20 ++++++++++++++++++++
src/libgdu/gduutils.h | 3 +++
4 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/meson.build b/meson.build
index 866f9ac..62d653f 100644
--- a/meson.build
+++ b/meson.build
@@ -98,6 +98,10 @@ udisks2_7_2_dep = dependency('udisks2', version: '>= 2.7.2', required: false)
config_h.set('HAVE_UDISKS2_7_2', udisks2_7_2_dep.found(),
description: 'Define to 1 if UDisks version >= 2.7.2 for resize, repair, check')
+udisks2_7_6_dep = dependency('udisks2', version: '>= 2.7.6', required: false)
+config_h.set('HAVE_UDISKS2_7_6', udisks2_7_6_dep.found(),
+ description: 'Define to 1 if UDisks version >= 2.7.6 for userspace mount options')
+
# *** Check for libsystemd ***
enable_libsystemd = get_option('libsystemd')
if enable_libsystemd
diff --git a/src/disks/gdudevicetreemodel.c b/src/disks/gdudevicetreemodel.c
index 2ed7c24..329717a 100644
--- a/src/disks/gdudevicetreemodel.c
+++ b/src/disks/gdudevicetreemodel.c
@@ -1196,6 +1196,9 @@ should_include_block (UDisksObject *object)
partition = udisks_object_peek_partition (object);
loop = udisks_object_peek_loop (object);
+ if (gdu_utils_has_userspace_mount_option (block, "x-gdu.hide"))
+ goto out;
+
/* RAM devices are useless */
device = udisks_block_get_device (block);
if (g_str_has_prefix (device, "/dev/ram"))
diff --git a/src/libgdu/gduutils.c b/src/libgdu/gduutils.c
index 8543567..21ce36f 100644
--- a/src/libgdu/gduutils.c
+++ b/src/libgdu/gduutils.c
@@ -63,6 +63,26 @@ gdu_utils_has_configuration (UDisksBlock *block,
return ret;
}
+gboolean
+gdu_utils_has_userspace_mount_option (UDisksBlock *block,
+ const gchar *option)
+{
+#ifdef HAVE_UDISKS2_7_6
+ const gchar *const *options;
+ gboolean ret;
+
+ ret = FALSE;
+
+ options = udisks_block_get_userspace_mount_options (block);
+ if (options != NULL)
+ ret = g_strv_contains (options, option);
+
+ return ret;
+#else
+ return FALSE;
+#endif
+}
+
void
gdu_utils_configure_file_chooser_for_disk_images (GtkFileChooser *file_chooser,
gboolean set_file_types,
diff --git a/src/libgdu/gduutils.h b/src/libgdu/gduutils.h
index 815e3ef..d5773a6 100644
--- a/src/libgdu/gduutils.h
+++ b/src/libgdu/gduutils.h
@@ -18,6 +18,9 @@ gboolean gdu_utils_has_configuration (UDisksBlock *block,
const gchar *type,
gboolean *out_has_passphrase);
+gboolean gdu_utils_has_userspace_mount_option (UDisksBlock *block,
+ const gchar *option);
+
void gdu_utils_configure_file_chooser_for_disk_images (GtkFileChooser *file_chooser,
gboolean set_file_types,
gboolean allow_compressed);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]