diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-05-11 13:16:26 +0200 |
---|---|---|
committer | Jean Felder <jean.felder@gmail.com> | 2020-08-21 15:05:10 +0000 |
commit | 97f5156116613f4dc76c9b99a422fe406738ff92 (patch) | |
tree | 56f782f26bea43c94d3eccb85fc6343bf53ae763 | |
parent | bb456037a9dfac7bdfded98bacb7245f801929ed (diff) | |
download | grilo-plugins-97f5156116613f4dc76c9b99a422fe406738ff92.tar.gz |
tracker3: Add store-path configuration option
So it is possible to open a specific store. Queries will be updated
to use the org.freedesktop.Tracker3.Miner.Files service where necessary.
-rw-r--r-- | src/tracker3/grl-tracker-source-priv.h | 1 | ||||
-rw-r--r-- | src/tracker3/grl-tracker.c | 17 |
2 files changed, 14 insertions, 4 deletions
diff --git a/src/tracker3/grl-tracker-source-priv.h b/src/tracker3/grl-tracker-source-priv.h index 42e50b5..f495496 100644 --- a/src/tracker3/grl-tracker-source-priv.h +++ b/src/tracker3/grl-tracker-source-priv.h @@ -81,5 +81,6 @@ extern GrlTrackerCache *grl_tracker_item_cache; /* tracker plugin config */ extern gboolean grl_tracker_show_documents; +extern gchar *grl_tracker_store_path; #endif /* _GRL_TRACKER_SOURCE_PRIV_H_ */ diff --git a/src/tracker3/grl-tracker.c b/src/tracker3/grl-tracker.c index 64d5e3e..3b476c3 100644 --- a/src/tracker3/grl-tracker.c +++ b/src/tracker3/grl-tracker.c @@ -58,6 +58,7 @@ GrlTrackerQueue *grl_tracker_queue = NULL; /* tracker plugin config */ gboolean grl_tracker_show_documents = FALSE; +gchar *grl_tracker_store_path = NULL; /* =================== Tracker Plugin =============== */ @@ -102,7 +103,8 @@ grl_tracker3_plugin_init (GrlRegistry *registry, { GrlConfig *config; gint config_count; - GFile *ontology; + GFile *store = NULL, *ontology; + TrackerSparqlConnectionFlags flags = TRACKER_SPARQL_CONNECTION_FLAGS_NONE; GRL_LOG_DOMAIN_INIT (tracker_general_log_domain, "tracker3-general"); @@ -126,18 +128,25 @@ grl_tracker3_plugin_init (GrlRegistry *registry, grl_tracker_show_documents = grl_config_get_boolean (config, "show-documents"); + grl_tracker_store_path = + grl_config_get_string (config, "store-path"); } grl_tracker_plugin_init_cancel = g_cancellable_new (); + if (grl_tracker_store_path) { + store = g_file_new_for_path (grl_tracker_store_path); + flags = TRACKER_SPARQL_CONNECTION_FLAGS_READONLY; + } + ontology = tracker_sparql_get_ontology_nepomuk (); - tracker_sparql_connection_new_async (TRACKER_SPARQL_CONNECTION_FLAGS_NONE, - NULL, + tracker_sparql_connection_new_async (flags, + store, ontology, grl_tracker_plugin_init_cancel, (GAsyncReadyCallback) tracker_new_connection_cb, plugin); + g_clear_object (&store); g_object_unref (ontology); - return TRUE; } |