summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2020-05-11 13:16:26 +0200
committerJean Felder <jean.felder@gmail.com>2020-08-21 15:05:10 +0000
commit97f5156116613f4dc76c9b99a422fe406738ff92 (patch)
tree56f782f26bea43c94d3eccb85fc6343bf53ae763
parentbb456037a9dfac7bdfded98bacb7245f801929ed (diff)
downloadgrilo-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.h1
-rw-r--r--src/tracker3/grl-tracker.c17
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;
}