diff options
author | Corey Berla <corey@berla.me> | 2022-07-14 15:04:18 -0700 |
---|---|---|
committer | Corey Berla <corey@berla.me> | 2022-07-14 16:30:11 -0700 |
commit | 6ec528bae241d0279efbafc93d38f01290196d80 (patch) | |
tree | 319295a8b97e97f5205e57e6e3600b6b7946c86c /src/nautilus-file-utilities.c | |
parent | 12be10d3313c887081d19548aa7d927ac0821aac (diff) | |
download | nautilus-6ec528bae241d0279efbafc93d38f01290196d80.tar.gz |
file-utilities: Add ability to check for installed schema
Now that we are bringing the gnome-user-share extension
into Nautilus itself, we need the ability to check
if gnome-user-share is installed. GNOME Settings
does this by checking the schema. Let's use the same
code that Settings uses.
This doesn't work within sandboxes, so if we are
sandboxed always return TRUE;
Diffstat (limited to 'src/nautilus-file-utilities.c')
-rw-r--r-- | src/nautilus-file-utilities.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/nautilus-file-utilities.c b/src/nautilus-file-utilities.c index 3b161f52b..b79c8728d 100644 --- a/src/nautilus-file-utilities.c +++ b/src/nautilus-file-utilities.c @@ -22,6 +22,7 @@ #include <config.h> #include "nautilus-file-utilities.h" +#include "nautilus-application.h" #include "nautilus-global-preferences.h" #include "nautilus-icon-names.h" #include "nautilus-lib-self-check-functions.h" @@ -1487,3 +1488,30 @@ location_settings_search_get_recursive_for_location (GFile *location) return recursive; } + +/* check_schema_available() was copied from GNOME Settings */ +gboolean +check_schema_available (const gchar *schema_id) +{ + GSettingsSchemaSource *source; + g_autoptr (GSettingsSchema) schema = NULL; + + if (nautilus_application_is_sandboxed ()) + { + return TRUE; + } + + source = g_settings_schema_source_get_default (); + if (!source) + { + return FALSE; + } + + schema = g_settings_schema_source_lookup (source, schema_id, TRUE); + if (!schema) + { + return FALSE; + } + + return TRUE; +} |