diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-11-02 11:07:10 +0100 |
---|---|---|
committer | Robert Ancell <robert.ancell@gmail.com> | 2020-11-02 21:47:22 +0000 |
commit | 27e1140c9d4ad852b4dc6a132a14cd5532d52997 (patch) | |
tree | 712e65b89b53fec04e024aeedc01d283a637663a /panels/search | |
parent | e522e5e732e1697d531a0b3fc2129c90ccd5e92e (diff) | |
download | gnome-control-center-27e1140c9d4ad852b4dc6a132a14cd5532d52997.tar.gz |
search: Check for either tracker 2.x or 3.x schemas
The Tracker3 schema points to the same dconf path and is backwards
compatible with Tracker 2.x settings. Check for either here, with a
preference to Tracker 3.x.
Eventually, Tracker 2.x will be fully phased out, and this will not
be necessary.
Fixes: https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1173
Diffstat (limited to 'panels/search')
-rw-r--r-- | panels/search/cc-search-locations-dialog.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/panels/search/cc-search-locations-dialog.c b/panels/search/cc-search-locations-dialog.c index 48749da5a..764016ffc 100644 --- a/panels/search/cc-search-locations-dialog.c +++ b/panels/search/cc-search-locations-dialog.c @@ -24,6 +24,7 @@ #include <glib/gi18n.h> #define TRACKER_SCHEMA "org.freedesktop.Tracker.Miner.Files" +#define TRACKER3_SCHEMA "org.freedesktop.Tracker3.Miner.Files" #define TRACKER_KEY_RECURSIVE_DIRECTORIES "index-recursive-directories" #define TRACKER_KEY_SINGLE_DIRECTORIES "index-single-directories" @@ -670,12 +671,20 @@ CcSearchLocationsDialog * cc_search_locations_dialog_new (CcSearchPanel *panel) { CcSearchLocationsDialog *self; + GSettingsSchemaSource *source; + g_autoptr(GSettingsSchema) schema = NULL; self = g_object_new (CC_SEARCH_LOCATIONS_DIALOG_TYPE, "use-header-bar", TRUE, NULL); - self->tracker_preferences = g_settings_new (TRACKER_SCHEMA); + source = g_settings_schema_source_get_default (); + schema = g_settings_schema_source_lookup (source, TRACKER3_SCHEMA, TRUE); + if (schema) + self->tracker_preferences = g_settings_new (TRACKER3_SCHEMA); + else + self->tracker_preferences = g_settings_new (TRACKER_SCHEMA); + populate_list_boxes (self); gtk_list_box_set_sort_func (GTK_LIST_BOX (self->others_list), @@ -702,8 +711,15 @@ cc_search_locations_dialog_is_available (void) if (!source) return FALSE; + schema = g_settings_schema_source_lookup (source, TRACKER3_SCHEMA, TRUE); + if (schema) + return TRUE; + schema = g_settings_schema_source_lookup (source, TRACKER_SCHEMA, TRUE); - return schema != NULL; + if (schema) + return TRUE; + + return FALSE; } static void |