[gnome-photos/wip/search: 23/23] foo
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/search: 23/23] foo
- Date: Tue, 18 Feb 2014 19:17:08 +0000 (UTC)
commit 0fcc6e9e36a12aba066a2bbebe1f4a44f3bd2157
Author: Debarshi Ray <debarshir gnome org>
Date: Tue Feb 18 20:14:45 2014 +0100
foo
src/photos-application.c | 3 +-
src/photos-base-item.c | 12 +++-
src/photos-base-manager.c | 37 +++++++++++-
src/photos-camera-cache.c | 10 +++-
src/photos-collection-icon-watcher.c | 8 ++-
src/photos-create-collection-job.c | 11 +++-
src/photos-delete-item-job.c | 11 +++-
src/photos-dropdown.c | 17 +++--
src/photos-embed.c | 13 +++-
src/photos-empty-results-box.c | 9 +++-
src/photos-facebook-item.c | 11 +++-
src/photos-fetch-collection-state-job.c | 9 ++-
src/photos-fetch-collections-job.c | 11 +++-
src/photos-fetch-ids-job.c | 3 +-
src/photos-fetch-ids-job.h | 3 +
src/photos-flickr-item.c | 12 +++-
src/photos-item-manager.c | 9 ++-
src/photos-main-toolbar.c | 11 ++-
src/photos-main-window.c | 9 ++-
src/photos-offset-collections-controller.c | 21 +++++-
src/photos-offset-favorites-controller.c | 21 +++++-
src/photos-offset-overview-controller.c | 13 +++-
src/photos-offset-search-controller.c | 11 +++-
src/photos-organize-collection-model.c | 12 +++-
src/photos-organize-collection-view.c | 16 +++--
src/photos-overview-searchbar.c | 19 +++---
src/photos-query-builder.c | 95 ++++++++++++----------------
src/photos-query-builder.h | 26 +++++---
src/photos-query.c | 11 +--
src/photos-query.h | 3 +-
src/photos-search-context.c | 7 +-
src/photos-search-context.h | 25 +++----
src/photos-search-controller.c | 21 +------
src/photos-search-controller.h | 2 +-
src/photos-search-match-manager.c | 34 ++++------
src/photos-search-match-manager.h | 3 +-
src/photos-search-provider.c | 4 +-
src/photos-search-type-manager.c | 24 +-------
src/photos-search-type-manager.h | 4 +-
src/photos-set-collection-job.c | 11 +++-
src/photos-single-item-job.c | 5 +-
src/photos-single-item-job.h | 5 +-
42 files changed, 372 insertions(+), 230 deletions(-)
---
diff --git a/src/photos-application.c b/src/photos-application.c
index 944fec1..527b84d 100644
--- a/src/photos-application.c
+++ b/src/photos-application.c
@@ -237,6 +237,7 @@ photos_application_activate_result (PhotosApplication *self,
job = photos_single_item_job_new (identifier);
photos_single_item_job_run (job,
+ priv->state,
PHOTOS_QUERY_FLAGS_UNFILTERED,
photos_application_activate_query_executed,
g_object_ref (self));
@@ -832,7 +833,7 @@ photos_application_init (PhotosApplication *self)
G_CALLBACK (photos_application_launch_search),
self);
- priv->state = photos_search_context_state_new ();
+ priv->state = photos_search_context_state_new (PHOTOS_SEARCH_CONTEXT (self));
priv->activation_timestamp = GDK_CURRENT_TIME;
}
diff --git a/src/photos-base-item.c b/src/photos-base-item.c
index 8eb6f67..d7ebf4c 100644
--- a/src/photos-base-item.c
+++ b/src/photos-base-item.c
@@ -40,6 +40,7 @@
#include "photos-icons.h"
#include "photos-print-operation.h"
#include "photos-query.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-single-item-job.h"
#include "photos-utils.h"
@@ -1288,10 +1289,19 @@ photos_base_item_print (PhotosBaseItem *self, GtkWidget *toplevel)
void
photos_base_item_refresh (PhotosBaseItem *self)
{
+ GApplication *app;
+ PhotosSearchContextState *state;
PhotosSingleItemJob *job;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
job = photos_single_item_job_new (self->priv->id);
- photos_single_item_job_run (job, PHOTOS_QUERY_FLAGS_NONE, photos_base_item_refresh_executed, g_object_ref
(self));
+ photos_single_item_job_run (job,
+ state,
+ PHOTOS_QUERY_FLAGS_NONE,
+ photos_base_item_refresh_executed,
+ g_object_ref (self));
g_object_unref (job);
}
diff --git a/src/photos-base-manager.c b/src/photos-base-manager.c
index 0911205..816c1ae 100644
--- a/src/photos-base-manager.c
+++ b/src/photos-base-manager.c
@@ -29,18 +29,21 @@
#include "photos-base-manager.h"
#include "photos-filterable.h"
+#include "photos-search-context.h"
struct _PhotosBaseManagerPrivate
{
GHashTable *objects;
GObject *active_object;
+ PhotosSearchContext *context;
gchar *title;
};
enum
{
PROP_0,
+ PROP_CONTEXT,
PROP_TITLE
};
@@ -122,14 +125,37 @@ photos_base_manager_finalize (GObject *object)
static void
+photos_base_manager_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
+{
+ PhotosBaseManager *self = PHOTOS_BASE_MANAGER (object);
+
+ switch (prop_id)
+ {
+ case PROP_CONTEXT:
+ g_value_set_object (value, self->priv->context);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+
+static void
photos_base_manager_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
{
PhotosBaseManager *self = PHOTOS_BASE_MANAGER (object);
+ PhotosBaseManagerPrivate *priv = self->priv;
switch (prop_id)
{
+ case PROP_CONTEXT:
+ priv->context = PHOTOS_SEARCH_CONTEXT (g_value_get_object (value)); /* self is owned by context */
+ break;
+
case PROP_TITLE:
- self->priv->title = g_value_dup_string (value);
+ priv->title = g_value_dup_string (value);
break;
default:
@@ -158,12 +184,21 @@ photos_base_manager_class_init (PhotosBaseManagerClass *class)
object_class->dispose = photos_base_manager_dispose;
object_class->finalize = photos_base_manager_finalize;
+ object_class->get_property = photos_base_manager_get_property;
object_class->set_property = photos_base_manager_set_property;
class->get_filter = photos_base_manager_default_get_filter;
class->get_where = photos_base_manager_default_get_where;
class->set_active_object = photos_base_manager_default_set_active_object;
g_object_class_install_property (object_class,
+ PROP_CONTEXT,
+ g_param_spec_object ("context",
+ "A PhotosSearchContext",
+ "The search context in which this manager will be
used",
+ PHOTOS_TYPE_SEARCH_CONTEXT,
+ G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
+
+ g_object_class_install_property (object_class,
PROP_TITLE,
g_param_spec_string ("title",
"Title",
diff --git a/src/photos-camera-cache.c b/src/photos-camera-cache.c
index 5c1e1aa..1144bfe 100644
--- a/src/photos-camera-cache.c
+++ b/src/photos-camera-cache.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,6 +25,7 @@
#include "photos-camera-cache.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-tracker-queue.h"
@@ -188,8 +189,10 @@ photos_camera_cache_get_camera_async (PhotosCameraCache *self,
gpointer user_data)
{
PhotosCameraCachePrivate *priv = self->priv;
+ GApplication *app;
GTask *task;
PhotosQuery *query;
+ PhotosSearchContextState *state;
const gchar *camera;
task = g_task_new (self, cancellable, callback, user_data);
@@ -210,7 +213,10 @@ photos_camera_cache_get_camera_async (PhotosCameraCache *self,
goto out;
}
- query = photos_query_builder_equipment_query (id);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ query = photos_query_builder_equipment_query (state, id);
photos_tracker_queue_select (priv->queue,
query->sparql,
cancellable,
diff --git a/src/photos-collection-icon-watcher.c b/src/photos-collection-icon-watcher.c
index fa3b7db..6ffda38 100644
--- a/src/photos-collection-icon-watcher.c
+++ b/src/photos-collection-icon-watcher.c
@@ -34,6 +34,7 @@
#include "photos-item-manager.h"
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-single-item-job.h"
#include "photos-tracker-queue.h"
#include "photos-utils.h"
@@ -299,7 +300,9 @@ static void
photos_collection_icon_watcher_start (PhotosCollectionIconWatcher *self)
{
PhotosCollectionIconWatcherPrivate *priv = self->priv;
+ GApplication *app;
PhotosQuery *query;
+ PhotosSearchContextState *state;
const gchar *id;
photos_collection_icon_watcher_clear (self);
@@ -310,8 +313,11 @@ photos_collection_icon_watcher_start (PhotosCollectionIconWatcher *self)
if (priv->collection == NULL)
return;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
id = photos_filterable_get_id (PHOTOS_FILTERABLE (priv->collection));
- query = photos_query_builder_collection_icon_query (id);
+ query = photos_query_builder_collection_icon_query (state, id);
photos_tracker_queue_select (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-create-collection-job.c b/src/photos-create-collection-job.c
index d7f2eda..330fd57 100644
--- a/src/photos-create-collection-job.c
+++ b/src/photos-create-collection-job.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,12 +25,14 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
#include <tracker-sparql.h>
#include "photos-create-collection-job.h"
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-tracker-queue.h"
@@ -193,7 +195,9 @@ photos_create_collection_job_run (PhotosCreateCollectionJob *self,
gpointer user_data)
{
PhotosCreateCollectionJobPrivate *priv = self->priv;
+ GApplication *app;
PhotosQuery *query;
+ PhotosSearchContextState *state;
if (G_UNLIKELY (priv->queue == NULL))
{
@@ -205,7 +209,10 @@ photos_create_collection_job_run (PhotosCreateCollectionJob *self,
priv->callback = callback;
priv->user_data = user_data;
- query = photos_query_builder_create_collection_query (priv->name);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ query = photos_query_builder_create_collection_query (state, priv->name);
photos_tracker_queue_update_blank (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-delete-item-job.c b/src/photos-delete-item-job.c
index 92fa442..9268a90 100644
--- a/src/photos-delete-item-job.c
+++ b/src/photos-delete-item-job.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,12 +25,14 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
#include <tracker-sparql.h>
#include "photos-delete-item-job.h"
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-tracker-queue.h"
@@ -159,7 +161,9 @@ photos_delete_item_job_run (PhotosDeleteItemJob *self,
gpointer user_data)
{
PhotosDeleteItemJobPrivate *priv = self->priv;
+ GApplication *app;
PhotosQuery *query;
+ PhotosSearchContextState *state;
if (G_UNLIKELY (priv->queue == NULL))
{
@@ -171,7 +175,10 @@ photos_delete_item_job_run (PhotosDeleteItemJob *self,
priv->callback = callback;
priv->user_data = user_data;
- query = photos_query_builder_delete_resource_query (priv->urn);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ query = photos_query_builder_delete_resource_query (state, priv->urn);
photos_tracker_queue_update (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-dropdown.c b/src/photos-dropdown.c
index fcf171a..3cf1fde 100644
--- a/src/photos-dropdown.c
+++ b/src/photos-dropdown.c
@@ -25,13 +25,11 @@
#include "config.h"
-#include <glib.h>
+#include <gio/gio.h>
#include "photos-base-view.h"
#include "photos-dropdown.h"
-#include "photos-source-manager.h"
-#include "photos-search-match-manager.h"
-#include "photos-search-type-manager.h"
+#include "photos-search-context.h"
struct _PhotosDropdownPrivate
@@ -82,15 +80,20 @@ static void
photos_dropdown_init (PhotosDropdown *self)
{
PhotosDropdownPrivate *priv;
+ GApplication *app;
GtkStyleContext *context;
GtkWidget *frame;
+ PhotosSearchContextState *state;
self->priv = photos_dropdown_get_instance_private (self);
priv = self->priv;
- priv->srch_mtch_mngr = photos_search_match_manager_dup_singleton ();
- priv->srch_typ_mngr = photos_search_type_manager_dup_singleton ();
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->srch_mtch_mngr = g_object_ref (state->srch_mtch_mngr);
+ priv->srch_typ_mngr = g_object_ref (state->srch_typ_mngr);
+ priv->src_mngr = g_object_ref (state->src_mngr);
priv->match_view = photos_base_view_new (priv->srch_mtch_mngr);
priv->source_view = photos_base_view_new (priv->src_mngr);
diff --git a/src/photos-embed.c b/src/photos-embed.c
index 281f68f..44c33f0 100644
--- a/src/photos-embed.c
+++ b/src/photos-embed.c
@@ -27,6 +27,7 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gegl.h>
+#include <gio/gio.h>
#include <glib/gi18n.h>
#include "photos-collection-manager.h"
@@ -40,6 +41,7 @@
#include "photos-search-controller.h"
#include "photos-selection-toolbar.h"
#include "photos-spinner-box.h"
+#include "photos-search-context.h"
#include "photos-search-type.h"
#include "photos-search-type-manager.h"
#include "photos-source.h"
@@ -610,12 +612,15 @@ photos_embed_init (PhotosEmbed *self)
{
PhotosEmbedPrivate *priv;
GApplication *app;
+ PhotosSearchContextState *state;
gboolean querying;
self->priv = photos_embed_get_instance_private (self);
priv = self->priv;
app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->search_action = g_action_map_lookup_action (G_ACTION_MAP (app), "search");
g_signal_connect_swapped (app, "window-added", G_CALLBACK (photos_embed_window_added), self);
@@ -685,22 +690,22 @@ photos_embed_init (PhotosEmbed *self)
G_CALLBACK (photos_embed_query_status_changed),
self);
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
g_signal_connect (priv->col_mngr, "active-changed", G_CALLBACK (photos_embed_active_changed), self);
priv->item_mngr = photos_item_manager_dup_singleton ();
g_signal_connect (priv->item_mngr, "active-changed", G_CALLBACK (photos_embed_active_changed), self);
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ priv->src_mngr = g_object_ref (state->src_mngr);
g_signal_connect_swapped (priv->src_mngr, "active-changed", G_CALLBACK (photos_embed_search_changed),
self);
- priv->srch_mngr = photos_search_type_manager_dup_singleton ();
+ priv->srch_mngr = g_object_ref (state->srch_typ_mngr);
g_signal_connect_swapped (priv->srch_mngr, "active-changed", G_CALLBACK (photos_embed_search_changed),
self);
querying = photos_tracker_controller_get_query_status (priv->trk_ovrvw_cntrlr);
photos_embed_query_status_changed (self, querying);
- priv->srch_cntrlr = photos_search_controller_dup_singleton ();
+ priv->srch_cntrlr = g_object_ref (state->srch_cntrlr);
g_signal_connect_swapped (priv->srch_cntrlr,
"search-string-changed",
G_CALLBACK (photos_embed_search_changed),
diff --git a/src/photos-empty-results-box.c b/src/photos-empty-results-box.c
index 768391c..8c0afc7 100644
--- a/src/photos-empty-results-box.c
+++ b/src/photos-empty-results-box.c
@@ -25,11 +25,13 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib/gi18n.h>
#include "photos-empty-results-box.h"
#include "photos-enums.h"
#include "photos-icons.h"
+#include "photos-search-context.h"
#include "photos-source-manager.h"
@@ -272,11 +274,16 @@ static void
photos_empty_results_box_init (PhotosEmptyResultsBox *self)
{
PhotosEmptyResultsBoxPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_empty_results_box_get_instance_private (self);
priv = self->priv;
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->src_mngr = g_object_ref (state->src_mngr);
}
diff --git a/src/photos-facebook-item.c b/src/photos-facebook-item.c
index d62ae5c..12c081b 100644
--- a/src/photos-facebook-item.c
+++ b/src/photos-facebook-item.c
@@ -1,6 +1,7 @@
/*
* Photos - access, organize and share your photos on GNOME
* Copyright © 2013 Álvaro Peña
+ * Copyright © 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -33,9 +34,10 @@
#include <goa/goa.h>
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
+#include "photos-base-manager.h"
#include "photos-facebook-item.h"
+#include "photos-search-context.h"
#include "photos-source.h"
-#include "photos-source-manager.h"
#include "photos-utils.h"
@@ -234,11 +236,16 @@ static void
photos_facebook_item_init (PhotosFacebookItem *self)
{
PhotosFacebookItemPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_facebook_item_get_instance_private (self);
priv = self->priv;
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->src_mngr = g_object_ref (state->src_mngr);
}
diff --git a/src/photos-fetch-collection-state-job.c b/src/photos-fetch-collection-state-job.c
index 811bcdc..dc347bf 100644
--- a/src/photos-fetch-collection-state-job.c
+++ b/src/photos-fetch-collection-state-job.c
@@ -28,13 +28,13 @@
#include <glib.h>
#include <tracker-sparql.h>
-#include "photos-collection-manager.h"
#include "photos-fetch-collection-state-job.h"
#include "photos-fetch-collections-job.h"
#include "photos-filterable.h"
#include "photos-item-manager.h"
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
@@ -219,16 +219,21 @@ static void
photos_fetch_collection_state_job_init (PhotosFetchCollectionStateJob *self)
{
PhotosFetchCollectionStateJobPrivate *priv = self->priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_fetch_collection_state_job_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->collections_for_items = g_hash_table_new_full (g_str_hash,
g_str_equal,
g_free,
photos_fetch_collection_state_job_value_destroy_func);
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
priv->item_mngr = photos_item_manager_dup_singleton ();
priv->sel_cntrlr = photos_selection_controller_dup_singleton ();
}
diff --git a/src/photos-fetch-collections-job.c b/src/photos-fetch-collections-job.c
index 46b5d3e..cd4ed32 100644
--- a/src/photos-fetch-collections-job.c
+++ b/src/photos-fetch-collections-job.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,12 +25,14 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
#include <tracker-sparql.h>
#include "photos-fetch-collections-job.h"
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-tracker-queue.h"
@@ -215,7 +217,9 @@ photos_fetch_collections_job_run (PhotosFetchCollectionsJob *self,
gpointer user_data)
{
PhotosFetchCollectionsJobPrivate *priv = self->priv;
+ GApplication *app;
PhotosQuery *query;
+ PhotosSearchContextState *state;
if (G_UNLIKELY (priv->queue == NULL))
{
@@ -227,7 +231,10 @@ photos_fetch_collections_job_run (PhotosFetchCollectionsJob *self,
priv->callback = callback;
priv->user_data = user_data;
- query = photos_query_builder_fetch_collections_query (priv->urn);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ query = photos_query_builder_fetch_collections_query (state, priv->urn);
photos_tracker_queue_select (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-fetch-ids-job.c b/src/photos-fetch-ids-job.c
index 6096d83..8537570 100644
--- a/src/photos-fetch-ids-job.c
+++ b/src/photos-fetch-ids-job.c
@@ -211,6 +211,7 @@ photos_fetch_ids_job_new (const gchar *const *terms)
void
photos_fetch_ids_job_run (PhotosFetchIdsJob *self,
+ PhotosSearchContextState *state,
GCancellable *cancellable,
PhotosFetchIdsJobCallback callback,
gpointer user_data)
@@ -233,7 +234,7 @@ photos_fetch_ids_job_run (PhotosFetchIdsJob *self,
/* TODO: search controller */
- query = photos_query_builder_global_query (PHOTOS_QUERY_FLAGS_NONE, NULL);
+ query = photos_query_builder_global_query (state, PHOTOS_QUERY_FLAGS_NONE, NULL);
photos_tracker_queue_select (priv->queue,
query->sparql,
priv->cancellable,
diff --git a/src/photos-fetch-ids-job.h b/src/photos-fetch-ids-job.h
index a9e3689..8aa6bf1 100644
--- a/src/photos-fetch-ids-job.h
+++ b/src/photos-fetch-ids-job.h
@@ -27,6 +27,8 @@
#include <gio/gio.h>
+#include "photos-search-context.h"
+
G_BEGIN_DECLS
#define PHOTOS_TYPE_FETCH_IDS_JOB (photos_fetch_ids_job_get_type ())
@@ -73,6 +75,7 @@ GType photos_fetch_ids_job_get_type (void) G_GNUC_CONST;
PhotosFetchIdsJob *photos_fetch_ids_job_new (const gchar *const *terms);
void photos_fetch_ids_job_run (PhotosFetchIdsJob *self,
+ PhotosSearchContextState *state,
GCancellable *cancellable,
PhotosFetchIdsJobCallback callback,
gpointer user_data);
diff --git a/src/photos-flickr-item.c b/src/photos-flickr-item.c
index 7bcff94..36bbc0c 100644
--- a/src/photos-flickr-item.c
+++ b/src/photos-flickr-item.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -34,9 +34,10 @@
#include <grilo.h>
#include <libgnome-desktop/gnome-desktop-thumbnail.h>
+#include "photos-base-manager.h"
#include "photos-flickr-item.h"
+#include "photos-search-context.h"
#include "photos-source.h"
-#include "photos-source-manager.h"
#include "photos-utils.h"
@@ -338,11 +339,16 @@ static void
photos_flickr_item_init (PhotosFlickrItem *self)
{
PhotosFlickrItemPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_flickr_item_get_instance_private (self);
priv = self->priv;
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->src_mngr = g_object_ref (state->src_mngr);
}
diff --git a/src/photos-item-manager.c b/src/photos-item-manager.c
index 07e441e..e1ea1d9 100644
--- a/src/photos-item-manager.c
+++ b/src/photos-item-manager.c
@@ -28,12 +28,12 @@
#include <glib.h>
#include <tracker-sparql.h>
-#include "photos-collection-manager.h"
#include "photos-item-manager.h"
#include "photos-local-item.h"
#include "photos-facebook-item.h"
#include "photos-flickr-item.h"
#include "photos-query.h"
+#include "photos-search-context.h"
#include "photos-single-item-job.h"
#include "photos-tracker-change-event.h"
#include "photos-tracker-change-monitor.h"
@@ -215,12 +215,17 @@ static void
photos_item_manager_init (PhotosItemManager *self)
{
PhotosItemManagerPrivate *priv = self->priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_item_manager_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->collection_path = g_queue_new ();
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
priv->monitor = photos_tracker_change_monitor_dup_singleton (NULL, NULL);
if (G_LIKELY (priv->monitor != NULL))
diff --git a/src/photos-main-toolbar.c b/src/photos-main-toolbar.c
index f657c7a..35dd13b 100644
--- a/src/photos-main-toolbar.c
+++ b/src/photos-main-toolbar.c
@@ -40,8 +40,8 @@
#include "photos-mode-controller.h"
#include "photos-overview-searchbar.h"
#include "photos-remote-display-manager.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
-#include "photos-source-manager.h"
struct _PhotosMainToolbarPrivate
@@ -704,10 +704,14 @@ photos_main_toolbar_init (PhotosMainToolbar *self)
GMenu *selection_menu;
GApplication *app;
GtkBuilder *builder;
+ PhotosSearchContextState *state;
self->priv = photos_main_toolbar_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_VERTICAL);
gtk_widget_show (GTK_WIDGET (self));
@@ -715,7 +719,6 @@ photos_main_toolbar_init (PhotosMainToolbar *self)
gtk_container_add (GTK_CONTAINER (self), priv->toolbar);
gtk_widget_show (priv->toolbar);
- app = g_application_get_default ();
priv->gear_menu = G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (app), "gear-menu"));
priv->search = g_action_map_lookup_action (G_ACTION_MAP (app), "search");
@@ -731,10 +734,10 @@ photos_main_toolbar_init (PhotosMainToolbar *self)
photos_header_bar_set_selection_menu (PHOTOS_HEADER_BAR (priv->toolbar),
GD_HEADER_BUTTON (priv->selection_menu));
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
priv->item_mngr = photos_item_manager_dup_singleton ();
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ priv->src_mngr = g_object_ref (state->src_mngr);
g_signal_connect_object (priv->src_mngr,
"active-changed",
G_CALLBACK (photos_main_toolbar_set_toolbar_title),
diff --git a/src/photos-main-window.c b/src/photos-main-window.c
index b3c92a4..26ab833 100644
--- a/src/photos-main-window.c
+++ b/src/photos-main-window.c
@@ -29,11 +29,11 @@
#include <glib/gi18n.h>
#include "photos-about-data.h"
-#include "photos-collection-manager.h"
#include "photos-embed.h"
#include "photos-item-manager.h"
#include "photos-main-window.h"
#include "photos-mode-controller.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-settings.h"
@@ -348,7 +348,9 @@ static void
photos_main_window_init (PhotosMainWindow *self)
{
PhotosMainWindowPrivate *priv;
+ GApplication *app;
GVariant *variant;
+ PhotosSearchContextState *state;
gboolean maximized;
const gint32 *position;
const gint32 *size;
@@ -357,6 +359,9 @@ photos_main_window_init (PhotosMainWindow *self)
self->priv = photos_main_window_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->settings = photos_settings_new ();
variant = g_settings_get_value (priv->settings, "window-size");
@@ -375,7 +380,7 @@ photos_main_window_init (PhotosMainWindow *self)
if (maximized)
gtk_window_maximize (GTK_WINDOW (self));
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
priv->item_mngr = photos_item_manager_dup_singleton ();
priv->mode_cntrlr = photos_mode_controller_dup_singleton ();
diff --git a/src/photos-offset-collections-controller.c b/src/photos-offset-collections-controller.c
index 3b57a32..cc2af7a 100644
--- a/src/photos-offset-collections-controller.c
+++ b/src/photos-offset-collections-controller.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,9 +25,12 @@
#include "config.h"
-#include "photos-collection-manager.h"
+#include <gio/gio.h>
+
+#include "photos-base-manager.h"
#include "photos-query-builder.h"
#include "photos-offset-collections-controller.h"
+#include "photos-search-context.h"
struct _PhotosOffsetCollectionsControllerPrivate
@@ -45,7 +48,9 @@ static PhotosQuery *
photos_offset_collections_controller_get_query (PhotosOffsetController *offset_cntrlr)
{
PhotosOffsetCollectionsController *self = PHOTOS_OFFSET_COLLECTIONS_CONTROLLER (offset_cntrlr);
+ GApplication *app;
GObject *collection;
+ PhotosSearchContextState *state;
gint flags;
collection = photos_base_manager_get_active_object (self->priv->col_mngr);
@@ -54,7 +59,10 @@ photos_offset_collections_controller_get_query (PhotosOffsetController *offset_c
else
flags = PHOTOS_QUERY_FLAGS_COLLECTIONS;
- return photos_query_builder_count_query (flags);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ return photos_query_builder_count_query (state, flags);
}
@@ -93,11 +101,16 @@ static void
photos_offset_collections_controller_init (PhotosOffsetCollectionsController *self)
{
PhotosOffsetCollectionsControllerPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_offset_collections_controller_get_instance_private (self);
priv = self->priv;
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->col_mngr = g_object_ref (state->col_mngr);
}
diff --git a/src/photos-offset-favorites-controller.c b/src/photos-offset-favorites-controller.c
index f4cd085..d1a097e 100644
--- a/src/photos-offset-favorites-controller.c
+++ b/src/photos-offset-favorites-controller.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012, 2013 Red Hat, Inc.
+ * Copyright © 2012, 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,9 +25,12 @@
#include "config.h"
-#include "photos-collection-manager.h"
+#include <gio/gio.h>
+
+#include "photos-base-manager.h"
#include "photos-query-builder.h"
#include "photos-offset-favorites-controller.h"
+#include "photos-search-context.h"
struct _PhotosOffsetFavoritesControllerPrivate
@@ -45,7 +48,9 @@ static PhotosQuery *
photos_offset_favorites_controller_get_query (PhotosOffsetController *offset_cntrlr)
{
PhotosOffsetFavoritesController *self = PHOTOS_OFFSET_FAVORITES_CONTROLLER (offset_cntrlr);
+ GApplication *app;
GObject *collection;
+ PhotosSearchContextState *state;
gint flags;
collection = photos_base_manager_get_active_object (self->priv->col_mngr);
@@ -54,7 +59,10 @@ photos_offset_favorites_controller_get_query (PhotosOffsetController *offset_cnt
else
flags = PHOTOS_QUERY_FLAGS_FAVORITES;
- return photos_query_builder_count_query (flags);
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ return photos_query_builder_count_query (state, flags);
}
@@ -93,11 +101,16 @@ static void
photos_offset_favorites_controller_init (PhotosOffsetFavoritesController *self)
{
PhotosOffsetFavoritesControllerPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_offset_favorites_controller_get_instance_private (self);
priv = self->priv;
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ priv->col_mngr = g_object_ref (state->col_mngr);
}
diff --git a/src/photos-offset-overview-controller.c b/src/photos-offset-overview-controller.c
index d953dfe..4551fd9 100644
--- a/src/photos-offset-overview-controller.c
+++ b/src/photos-offset-overview-controller.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012, 2013 Red Hat, Inc.
+ * Copyright © 2012, 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,8 +25,11 @@
#include "config.h"
+#include <gio/gio.h>
+
#include "photos-query-builder.h"
#include "photos-offset-overview-controller.h"
+#include "photos-search-context.h"
G_DEFINE_TYPE (PhotosOffsetOverviewController, photos_offset_overview_controller,
PHOTOS_TYPE_OFFSET_CONTROLLER);
@@ -35,7 +38,13 @@ G_DEFINE_TYPE (PhotosOffsetOverviewController, photos_offset_overview_controller
static PhotosQuery *
photos_offset_overview_controller_get_query (PhotosOffsetController *offset_cntrlr)
{
- return photos_query_builder_count_query (PHOTOS_QUERY_FLAGS_OVERVIEW);
+ GApplication *app;
+ PhotosSearchContextState *state;
+
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ return photos_query_builder_count_query (state, PHOTOS_QUERY_FLAGS_OVERVIEW);
}
diff --git a/src/photos-offset-search-controller.c b/src/photos-offset-search-controller.c
index e4c9e56..e1b4d7d 100644
--- a/src/photos-offset-search-controller.c
+++ b/src/photos-offset-search-controller.c
@@ -25,8 +25,11 @@
#include "config.h"
+#include <gio/gio.h>
+
#include "photos-query-builder.h"
#include "photos-offset-search-controller.h"
+#include "photos-search-context.h"
G_DEFINE_TYPE (PhotosOffsetSearchController, photos_offset_search_controller, PHOTOS_TYPE_OFFSET_CONTROLLER);
@@ -35,7 +38,13 @@ G_DEFINE_TYPE (PhotosOffsetSearchController, photos_offset_search_controller, PH
static PhotosQuery *
photos_offset_search_controller_get_query (PhotosOffsetController *offset_cntrlr)
{
- return photos_query_builder_count_query (PHOTOS_QUERY_FLAGS_SEARCH);
+ GApplication *app;
+ PhotosSearchContextState *state;
+
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
+ return photos_query_builder_count_query (state, PHOTOS_QUERY_FLAGS_SEARCH);
}
diff --git a/src/photos-organize-collection-model.c b/src/photos-organize-collection-model.c
index ec7433a..dcb9533 100644
--- a/src/photos-organize-collection-model.c
+++ b/src/photos-organize-collection-model.c
@@ -25,11 +25,14 @@
#include "config.h"
+#include <gio/gio.h>
+
#include "photos-base-item.h"
-#include "photos-collection-manager.h"
+#include "photos-base-manager.h"
#include "photos-fetch-collection-state-job.h"
#include "photos-filterable.h"
#include "photos-organize-collection-model.h"
+#include "photos-search-context.h"
struct _PhotosOrganizeCollectionModelPrivate
@@ -195,16 +198,21 @@ static void
photos_organize_collection_model_init (PhotosOrganizeCollectionModel *self)
{
PhotosOrganizeCollectionModelPrivate *priv;
+ GApplication *app;
GType columns[] = {G_TYPE_STRING, /* ID */
G_TYPE_STRING, /* NAME */
G_TYPE_INT}; /* STATE */
+ PhotosSearchContextState *state;
self->priv = photos_organize_collection_model_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
gtk_list_store_set_column_types (GTK_LIST_STORE (self), sizeof (columns) / sizeof (columns[0]), columns);
- priv->manager = photos_collection_manager_dup_singleton ();
+ priv->manager = g_object_ref (state->col_mngr);
g_signal_connect_object (priv->manager,
"object-added",
diff --git a/src/photos-organize-collection-view.c b/src/photos-organize-collection-view.c
index bd29048..076bfd4 100644
--- a/src/photos-organize-collection-view.c
+++ b/src/photos-organize-collection-view.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012, 2013 Red Hat, Inc.
+ * Copyright © 2012, 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,17 +25,18 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
#include <libgd/gd.h>
#include "photos-base-item.h"
-#include "photos-collection-manager.h"
+#include "photos-base-manager.h"
#include "photos-create-collection-job.h"
#include "photos-fetch-collection-state-job.h"
#include "photos-organize-collection-model.h"
#include "photos-organize-collection-view.h"
#include "photos-query.h"
-#include "photos-source-manager.h"
+#include "photos-search-context.h"
#include "photos-set-collection-job.h"
#include "photos-utils.h"
@@ -285,10 +286,15 @@ static void
photos_organize_collection_view_init (PhotosOrganizeCollectionView *self)
{
PhotosOrganizeCollectionViewPrivate *priv;
+ GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_organize_collection_view_get_instance_private (self);
priv = self->priv;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->model = photos_organize_collection_model_new ();
gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (priv->model));
@@ -329,8 +335,8 @@ photos_organize_collection_view_init (PhotosOrganizeCollectionView *self)
self,
NULL);
- priv->col_mngr = photos_collection_manager_dup_singleton ();
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->src_mngr);
+ priv->src_mngr = g_object_ref (state->src_mngr);
gtk_widget_show (GTK_WIDGET (self));
}
diff --git a/src/photos-overview-searchbar.c b/src/photos-overview-searchbar.c
index ec5f592..8233527 100644
--- a/src/photos-overview-searchbar.c
+++ b/src/photos-overview-searchbar.c
@@ -28,14 +28,12 @@
#include <gio/gio.h>
#include <libgd/gd.h>
-#include "photos-collection-manager.h"
+#include "photos-base-manager.h"
#include "photos-filterable.h"
#include "photos-overview-searchbar.h"
+#include "photos-search-context.h"
#include "photos-search-controller.h"
-#include "photos-search-match-manager.h"
#include "photos-search-type.h"
-#include "photos-search-type-manager.h"
-#include "photos-source-manager.h"
struct _PhotosOverviewSearchbarPrivate
@@ -345,42 +343,45 @@ photos_overview_searchbar_init (PhotosOverviewSearchbar *self)
{
PhotosOverviewSearchbarPrivate *priv;
GApplication *app;
+ PhotosSearchContextState *state;
self->priv = photos_overview_searchbar_get_instance_private (self);
priv = self->priv;
app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
priv->select_all = g_action_map_lookup_action (G_ACTION_MAP (app), "select-all");
- priv->src_mngr = photos_source_manager_dup_singleton ();
+ priv->src_mngr = g_object_ref (state->src_mngr);
g_signal_connect_object (priv->src_mngr,
"active-changed",
G_CALLBACK (photos_overview_searchbar_source_active_changed),
self,
G_CONNECT_SWAPPED);
- priv->srch_mtch_mngr = photos_search_match_manager_dup_singleton ();
+ priv->srch_mtch_mngr = g_object_ref (state->srch_mtch_mngr);
g_signal_connect_object (priv->srch_mtch_mngr,
"active-changed",
G_CALLBACK (photos_overview_searchbar_search_match_active_changed),
self,
G_CONNECT_SWAPPED);
- priv->srch_typ_mngr = photos_search_type_manager_dup_singleton ();
+ priv->srch_typ_mngr = g_object_ref (state->srch_typ_mngr);
g_signal_connect_object (priv->srch_typ_mngr,
"active-changed",
G_CALLBACK (photos_overview_searchbar_search_type_active_changed),
self,
G_CONNECT_SWAPPED);
- priv->col_mngr = photos_collection_manager_dup_singleton ();
+ priv->col_mngr = g_object_ref (state->col_mngr);
g_signal_connect_object (priv->col_mngr,
"active-changed",
G_CALLBACK (photos_overview_searchbar_collection_active_changed),
self,
G_CONNECT_SWAPPED);
- priv->srch_cntrlr = photos_search_controller_dup_singleton ();
+ priv->srch_cntrlr = g_object_ref (state->srch_cntrlr);
}
diff --git a/src/photos-query-builder.c b/src/photos-query-builder.c
index e617bfd..1daf62d 100644
--- a/src/photos-query-builder.c
+++ b/src/photos-query-builder.c
@@ -53,24 +53,16 @@ photos_query_builder_convert_path_to_uri (const gchar *path)
static gchar *
-photos_query_builder_filter (gint flags)
+photos_query_builder_filter (PhotosSearchContextState *state, gint flags)
{
- PhotosBaseManager *src_mngr;
- PhotosBaseManager *srch_mtch_mngr;
- PhotosBaseManager *srch_typ_mngr;
gchar *sparql;
gchar *src_mngr_filter;
gchar *srch_mtch_mngr_filter;
gchar *srch_typ_mngr_filter;
- src_mngr = photos_source_manager_dup_singleton ();
- src_mngr_filter = photos_base_manager_get_filter (src_mngr, flags);
-
- srch_mtch_mngr = photos_search_match_manager_dup_singleton ();
- srch_mtch_mngr_filter = photos_base_manager_get_filter (srch_mtch_mngr, flags);
-
- srch_typ_mngr = photos_search_type_manager_dup_singleton ();
- srch_typ_mngr_filter = photos_base_manager_get_filter (srch_typ_mngr, flags);
+ src_mngr_filter = photos_base_manager_get_filter (state->src_mngr, flags);
+ srch_mtch_mngr_filter = photos_base_manager_get_filter (state->srch_mtch_mngr, flags);
+ srch_typ_mngr_filter = photos_base_manager_get_filter (state->srch_typ_mngr, flags);
sparql = g_strdup_printf ("FILTER (%s && %s && %s)",
src_mngr_filter,
@@ -78,13 +70,8 @@ photos_query_builder_filter (gint flags)
srch_typ_mngr_filter);
g_free (srch_typ_mngr_filter);
- g_object_unref (srch_typ_mngr);
-
g_free (srch_mtch_mngr_filter);
- g_object_unref (srch_mtch_mngr);
-
g_free (src_mngr_filter);
- g_object_unref (src_mngr);
return sparql;
}
@@ -99,21 +86,15 @@ photos_query_builder_optional (void)
static gchar *
-photos_query_builder_where (gboolean global, gint flags)
+photos_query_builder_where (PhotosSearchContextState *state, gboolean global, gint flags)
{
- PhotosBaseManager *col_mngr;
- PhotosBaseManager *srch_typ_mngr;
gchar *col_mngr_where = NULL;
gchar *filter = NULL;
gchar *optional = NULL;
gchar *sparql;
gchar *srch_typ_mngr_where = NULL;
- col_mngr = photos_collection_manager_dup_singleton ();
-
- srch_typ_mngr = photos_search_type_manager_dup_singleton ();
- srch_typ_mngr_where = photos_base_manager_get_where (srch_typ_mngr, flags);
-
+ srch_typ_mngr_where = photos_base_manager_get_where (state->srch_typ_mngr, flags);
optional = photos_query_builder_optional ();
if (!(flags & PHOTOS_QUERY_FLAGS_UNFILTERED))
@@ -122,10 +103,10 @@ photos_query_builder_where (gboolean global, gint flags)
{
/* TODO: SearchCategoryManager */
- col_mngr_where = photos_base_manager_get_where (col_mngr, flags);
+ col_mngr_where = photos_base_manager_get_where (state->col_mngr, flags);
}
- filter = photos_query_builder_filter (flags);
+ filter = photos_query_builder_filter (state, flags);
}
sparql = g_strdup_printf ("WHERE { %s %s %s %s }",
@@ -137,21 +118,22 @@ photos_query_builder_where (gboolean global, gint flags)
g_free (col_mngr_where);
g_free (filter);
g_free (srch_typ_mngr_where);
- g_object_unref (col_mngr);
- g_object_unref (srch_typ_mngr);
return sparql;
}
static gchar *
-photos_query_builder_query (gboolean global, gint flags, PhotosOffsetController *offset_cntrlr)
+photos_query_builder_query (PhotosSearchContextState *state,
+ gboolean global,
+ gint flags,
+ PhotosOffsetController *offset_cntrlr)
{
gchar *sparql;
gchar *tail_sparql = NULL;
gchar *where_sparql;
- where_sparql = photos_query_builder_where (global, flags);
+ where_sparql = photos_query_builder_where (state, global, flags);
if (global)
{
@@ -199,7 +181,7 @@ photos_query_builder_query (gboolean global, gint flags, PhotosOffsetController
PhotosQuery *
-photos_query_builder_create_collection_query (const gchar *name)
+photos_query_builder_create_collection_query (PhotosSearchContextState *state, const gchar *name)
{
GTimeVal tv;
gchar *sparql;
@@ -221,12 +203,12 @@ photos_query_builder_create_collection_query (const gchar *name)
name);
g_free (time);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_collection_icon_query (const gchar *resource)
+photos_query_builder_collection_icon_query (PhotosSearchContextState *state, const gchar *resource)
{
gchar *sparql;
@@ -235,68 +217,73 @@ photos_query_builder_collection_icon_query (const gchar *resource)
"WHERE { ?urn nie:isPartOf <%s> } "
"ORDER BY DESC (?mtime) LIMIT 4",
resource);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_count_query (gint flags)
+photos_query_builder_count_query (PhotosSearchContextState *state, gint flags)
{
gchar *sparql;
gchar *where_sparql;
- where_sparql = photos_query_builder_where (TRUE, flags);
+ where_sparql = photos_query_builder_where (state, TRUE, flags);
sparql = g_strconcat ("SELECT DISTINCT COUNT(?urn) ", where_sparql, NULL);
g_free (where_sparql);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_delete_resource_query (const gchar *resource)
+photos_query_builder_delete_resource_query (PhotosSearchContextState *state, const gchar *resource)
{
gchar *sparql;
sparql = g_strdup_printf ("DELETE { <%s> a rdfs:Resource }", resource);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_equipment_query (GQuark equipment)
+photos_query_builder_equipment_query (PhotosSearchContextState *state, GQuark equipment)
{
const gchar *resource;
gchar *sparql;
resource = g_quark_to_string (equipment);
sparql = g_strdup_printf ("SELECT nfo:manufacturer (<%s>) nfo:model (<%s>) WHERE {}", resource, resource);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_fetch_collections_query (const gchar *resource)
+photos_query_builder_fetch_collections_query (PhotosSearchContextState *state, const gchar *resource)
{
gchar *sparql;
sparql = g_strdup_printf ("SELECT ?urn WHERE { ?urn a nfo:DataContainer . <%s> nie:isPartOf ?urn }",
resource);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_global_query (gint flags, PhotosOffsetController *offset_cntrlr)
+photos_query_builder_global_query (PhotosSearchContextState *state,
+ gint flags,
+ PhotosOffsetController *offset_cntrlr)
{
gchar *sparql;
- sparql = photos_query_builder_query (TRUE, flags, offset_cntrlr);
- return photos_query_new (sparql);
+ sparql = photos_query_builder_query (state, TRUE, flags, offset_cntrlr);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_set_collection_query (const gchar *item_urn, const gchar *collection_urn, gboolean
setting)
+photos_query_builder_set_collection_query (PhotosSearchContextState *state,
+ const gchar *item_urn,
+ const gchar *collection_urn,
+ gboolean setting)
{
gchar *sparql;
@@ -304,19 +291,19 @@ photos_query_builder_set_collection_query (const gchar *item_urn, const gchar *c
setting ? "INSERT" : "DELETE",
item_urn,
collection_urn);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_single_query (gint flags, const gchar *resource)
+photos_query_builder_single_query (PhotosSearchContextState *state, gint flags, const gchar *resource)
{
GRegex *regex;
gchar *replacement;
gchar *sparql;
gchar *tmp;
- tmp = photos_query_builder_query (FALSE, flags, NULL);
+ tmp = photos_query_builder_query (state, FALSE, flags, NULL);
regex = g_regex_new ("\\?urn", 0, 0, NULL);
replacement = g_strconcat ("<", resource, ">", NULL);
@@ -325,12 +312,12 @@ photos_query_builder_single_query (gint flags, const gchar *resource)
g_free (tmp);
g_regex_unref (regex);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
PhotosQuery *
-photos_query_builder_update_mtime_query (const gchar *resource)
+photos_query_builder_update_mtime_query (PhotosSearchContextState *state, const gchar *resource)
{
GTimeVal tv;
gchar *sparql;
@@ -345,7 +332,7 @@ photos_query_builder_update_mtime_query (const gchar *resource)
sparql = g_strdup_printf ("INSERT OR REPLACE { <%s> nie:contentLastModified \"%s\" }", resource, time);
g_free (time);
- return photos_query_new (sparql);
+ return photos_query_new (state, sparql);
}
diff --git a/src/photos-query-builder.h b/src/photos-query-builder.h
index 0a451aa..f7a9e23 100644
--- a/src/photos-query-builder.h
+++ b/src/photos-query-builder.h
@@ -29,30 +29,36 @@
#include "photos-offset-controller.h"
#include "photos-query.h"
+#include "photos-search-context.h"
G_BEGIN_DECLS
-PhotosQuery *photos_query_builder_create_collection_query (const gchar *name);
+PhotosQuery *photos_query_builder_create_collection_query (PhotosSearchContextState *state, const gchar
*name);
-PhotosQuery *photos_query_builder_collection_icon_query (const gchar *resource);
+PhotosQuery *photos_query_builder_collection_icon_query (PhotosSearchContextState *state, const gchar
*resource);
-PhotosQuery *photos_query_builder_count_query (gint flags);
+PhotosQuery *photos_query_builder_count_query (PhotosSearchContextState *state, gint flags);
-PhotosQuery *photos_query_builder_delete_resource_query (const gchar *resource);
+PhotosQuery *photos_query_builder_delete_resource_query (PhotosSearchContextState *state, const gchar
*resource);
-PhotosQuery *photos_query_builder_equipment_query (GQuark equipment);
+PhotosQuery *photos_query_builder_equipment_query (PhotosSearchContextState *state, GQuark equipment);
-PhotosQuery *photos_query_builder_fetch_collections_query (const gchar *resource);
+PhotosQuery *photos_query_builder_fetch_collections_query (PhotosSearchContextState *state, const gchar
*resource);
-PhotosQuery *photos_query_builder_global_query (gint flags, PhotosOffsetController *offset_cntrlr);
+PhotosQuery *photos_query_builder_global_query (PhotosSearchContextState *state,
+ gint flags,
+ PhotosOffsetController *offset_cntrlr);
-PhotosQuery *photos_query_builder_set_collection_query (const gchar *item_urn,
+PhotosQuery *photos_query_builder_set_collection_query (PhotosSearchContextState *state,
+ const gchar *item_urn,
const gchar *collection_urn,
gboolean setting);
-PhotosQuery *photos_query_builder_single_query (gint flags, const gchar *resource);
+PhotosQuery *photos_query_builder_single_query (PhotosSearchContextState *state,
+ gint flags,
+ const gchar *resource);
-PhotosQuery *photos_query_builder_update_mtime_query (const gchar *resource);
+PhotosQuery *photos_query_builder_update_mtime_query (PhotosSearchContextState *state, const gchar
*resource);
gchar *photos_query_builder_filter_local (void);
diff --git a/src/photos-query.c b/src/photos-query.c
index 7571360..dfc93e4 100644
--- a/src/photos-query.c
+++ b/src/photos-query.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012, 2013 Red Hat, Inc.
+ * Copyright © 2012, 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,8 +25,8 @@
#include "config.h"
+#include "photos-base-manager.h"
#include "photos-query.h"
-#include "photos-source-manager.h"
const gchar *PHOTOS_QUERY_COLLECTIONS_IDENTIFIER = "photos:collection:";
@@ -34,19 +34,16 @@ const gchar *PHOTOS_QUERY_LOCAL_COLLECTIONS_IDENTIFIER = "photos:collection:loca
PhotosQuery *
-photos_query_new (gchar *sparql)
+photos_query_new (PhotosSearchContextState *state, gchar *sparql)
{
- PhotosBaseManager *src_mngr;
GObject *active_object;
PhotosQuery *query;
query = g_slice_new0 (PhotosQuery);
- src_mngr = photos_source_manager_dup_singleton ();
- active_object = photos_base_manager_get_active_object (src_mngr);
+ active_object = photos_base_manager_get_active_object (state->src_mngr);
if (active_object != NULL)
query->source = PHOTOS_SOURCE (g_object_ref (active_object));
- g_object_unref (src_mngr);
query->sparql = sparql;
diff --git a/src/photos-query.h b/src/photos-query.h
index 78a59b0..36ebd35 100644
--- a/src/photos-query.h
+++ b/src/photos-query.h
@@ -28,6 +28,7 @@
#include <glib.h>
#include "photos-query.h"
+#include "photos-search-context.h"
#include "photos-source.h"
G_BEGIN_DECLS
@@ -78,7 +79,7 @@ struct _PhotosQuery
gchar *sparql;
};
-PhotosQuery *photos_query_new (gchar *sparql);
+PhotosQuery *photos_query_new (PhotosSearchContextState *state, gchar *sparql);
void photos_query_free (PhotosQuery *query);
diff --git a/src/photos-search-context.c b/src/photos-search-context.c
index d7f5083..cf31977 100644
--- a/src/photos-search-context.c
+++ b/src/photos-search-context.c
@@ -29,6 +29,7 @@
#include "photos-collection-manager.h"
#include "photos-search-context.h"
+#include "photos-search-controller.h"
#include "photos-search-match-manager.h"
#include "photos-search-type-manager.h"
#include "photos-source-manager.h"
@@ -44,14 +45,14 @@ photos_search_context_default_init (PhotosSearchContextInterface *iface)
PhotosSearchContextState *
-photos_search_context_state_new (void)
+photos_search_context_state_new (PhotosSearchContext *self)
{
PhotosSearchContextState *state;
state = g_slice_new0 (PhotosSearchContextState);
state->col_mngr = photos_collection_manager_new ();
state->src_mngr = photos_source_manager_new ();
- state->srch_mtch_mngr = photos_search_match_manager_new ();
+ state->srch_mtch_mngr = photos_search_match_manager_new (self);
state->srch_typ_mngr = photos_search_type_manager_new ();
state->srch_cntrlr = photos_search_controller_new ();
@@ -75,5 +76,5 @@ PhotosSearchContextState *
photos_search_context_get_state (PhotosSearchContext *self)
{
g_return_val_if_fail (PHOTOS_IS_SEARCH_CONTEXT (self), NULL);
- return PHOTOS_SEARCH_CONTEXT_GET_INTERFACE (self)->get_state (iface);
+ return PHOTOS_SEARCH_CONTEXT_GET_INTERFACE (self)->get_state (self);
}
diff --git a/src/photos-search-context.h b/src/photos-search-context.h
index bf14493..95303c1 100644
--- a/src/photos-search-context.h
+++ b/src/photos-search-context.h
@@ -27,10 +27,6 @@
#include <glib-object.h>
-#include "photos-base-manager.h"
-#include "photos-offset-controller.h"
-#include "photos-search-controller.h"
-
G_BEGIN_DECLS
#define PHOTOS_TYPE_SEARCH_CONTEXT (photos_search_context_get_type ())
@@ -49,21 +45,22 @@ G_BEGIN_DECLS
typedef struct _PhotosSearchContextState PhotosSearchContextState;
+typedef struct _PhotosSearchContext PhotosSearchContext;
+typedef struct _PhotosSearchContextInterface PhotosSearchContextInterface;
+
struct _PhotosSearchContextState
{
- PhotosBaseManager *col_mngr;
- PhotosBaseManager *src_mngr;
- PhotosBaseManager *srch_mtch_mngr;
- PhotosBaseManager *srch_typ_mngr;
- PhotosOffsetController *offset_cntrlr;
- PhotosSearchController *srch_cntrlr;
+ gpointer col_mngr;
+ gpointer src_mngr;
+ gpointer srch_mtch_mngr;
+ gpointer srch_typ_mngr;
+ gpointer offset_cntrlr;
+ gpointer srch_cntrlr;
};
-PhotosSearchContextState *photos_search_context_state_new (void);
-void photos_search_context_state_free (PhotosSearchContextState *state);
+PhotosSearchContextState *photos_search_context_state_new (PhotosSearchContext *self);
-typedef struct _PhotosSearchContext PhotosSearchContext;
-typedef struct _PhotosSearchContextInterface PhotosSearchContextInterface;
+void photos_search_context_state_free (PhotosSearchContextState *state);
struct _PhotosSearchContextInterface
{
diff --git a/src/photos-search-controller.c b/src/photos-search-controller.c
index 18fa666..a1a9681 100644
--- a/src/photos-search-controller.c
+++ b/src/photos-search-controller.c
@@ -48,24 +48,6 @@ static guint signals[LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE_WITH_PRIVATE (PhotosSearchController, photos_search_controller, G_TYPE_OBJECT);
-static GObject *
-photos_search_controller_constructor (GType type, guint n_construct_params, GObjectConstructParam
*construct_params)
-{
- static GObject *self = NULL;
-
- if (self == NULL)
- {
- self = G_OBJECT_CLASS (photos_search_controller_parent_class)->constructor (type,
- n_construct_params,
- construct_params);
- g_object_add_weak_pointer (self, (gpointer) &self);
- return self;
- }
-
- return g_object_ref (self);
-}
-
-
static void
photos_search_controller_finalize (GObject *object)
{
@@ -94,7 +76,6 @@ photos_search_controller_class_init (PhotosSearchControllerClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
- object_class->constructor = photos_search_controller_constructor;
object_class->finalize = photos_search_controller_finalize;
signals[SEARCH_STRING_CHANGED] = g_signal_new ("search-string-changed",
@@ -112,7 +93,7 @@ photos_search_controller_class_init (PhotosSearchControllerClass *class)
PhotosSearchController *
-photos_search_controller_dup_singleton (void)
+photos_search_controller_new (void)
{
return g_object_new (PHOTOS_TYPE_SEARCH_CONTROLLER, NULL);
}
diff --git a/src/photos-search-controller.h b/src/photos-search-controller.h
index e2337a2..d3d89f2 100644
--- a/src/photos-search-controller.h
+++ b/src/photos-search-controller.h
@@ -71,7 +71,7 @@ struct _PhotosSearchControllerClass
GType photos_search_controller_get_type (void) G_GNUC_CONST;
-PhotosSearchController *photos_search_controller_dup_singleton (void);
+PhotosSearchController *photos_search_controller_new (void);
const gchar *photos_search_controller_get_string (PhotosSearchController *self);
diff --git a/src/photos-search-match-manager.c b/src/photos-search-match-manager.c
index 1f0c9f1..9f33e6a 100644
--- a/src/photos-search-match-manager.c
+++ b/src/photos-search-match-manager.c
@@ -100,23 +100,19 @@ photos_search_match_manager_get_filter (PhotosBaseManager *mngr, gint flags)
}
-static GObject *
-photos_search_match_manager_constructor (GType type,
- guint n_construct_params,
- GObjectConstructParam *construct_params)
+static void
+photos_search_match_manager_constructed (GObject *object)
{
- static GObject *self = NULL;
+ PhotosSearchMatchManager *self = PHOTOS_SEARCH_MATCH_MANAGER (object);
+ PhotosSearchContext *context;
+ PhotosSearchContextState *state;
- if (self == NULL)
- {
- self = G_OBJECT_CLASS (photos_search_match_manager_parent_class)->constructor (type,
- n_construct_params,
- construct_params);
- g_object_add_weak_pointer (self, (gpointer) &self);
- return self;
- }
+ G_OBJECT_CLASS (photos_search_match_manager_parent_class)->constructed (object);
- return g_object_ref (self);
+ g_object_get (self, "context", &context, NULL);
+ state = photos_search_context_get_state (context);
+ self->priv->srch_cntrlr = g_object_ref (state->srch_cntrlr);
+ g_object_unref (context);
}
@@ -134,15 +130,11 @@ photos_search_match_manager_dispose (GObject *object)
static void
photos_search_match_manager_init (PhotosSearchMatchManager *self)
{
- PhotosSearchMatchManagerPrivate *priv;
PhotosSearchMatch *search_match;
const gchar *author_filter;
const gchar *title_filter;
self->priv = photos_search_match_manager_get_instance_private (self);
- priv = self->priv;
-
- priv->srch_cntrlr = photos_search_controller_dup_singleton ();
author_filter = "fn:contains ("
" tracker:case-fold (tracker:coalesce (nco:fullname (?creator),
nco:fullname(?publisher))),"
@@ -181,17 +173,17 @@ photos_search_match_manager_class_init (PhotosSearchMatchManagerClass *class)
GObjectClass *object_class = G_OBJECT_CLASS (class);
PhotosBaseManagerClass *base_manager_class = PHOTOS_BASE_MANAGER_CLASS (class);
- object_class->constructor = photos_search_match_manager_constructor;
+ object_class->constructed = photos_search_match_manager_constructed;
object_class->dispose = photos_search_match_manager_dispose;
base_manager_class->get_filter = photos_search_match_manager_get_filter;
}
PhotosBaseManager *
-photos_search_match_manager_dup_singleton (void)
+photos_search_match_manager_new (PhotosSearchContext *context)
{
/* Translators: this is a verb that refers to "All", "Title" and
* "Author", as in "Match All", "Match Title" and "Match Author".
*/
- return g_object_new (PHOTOS_TYPE_SEARCH_MATCH_MANAGER, "title", _("Match"), NULL);
+ return g_object_new (PHOTOS_TYPE_SEARCH_MATCH_MANAGER, "context", context, "title", _("Match"), NULL);
}
diff --git a/src/photos-search-match-manager.h b/src/photos-search-match-manager.h
index 04df7f0..bccec62 100644
--- a/src/photos-search-match-manager.h
+++ b/src/photos-search-match-manager.h
@@ -26,6 +26,7 @@
#define PHOTOS_SEARCH_MATCH_MANAGER_H
#include "photos-base-manager.h"
+#include "photos-search-context.h"
G_BEGIN_DECLS
@@ -68,7 +69,7 @@ struct _PhotosSearchMatchManagerClass
GType photos_search_match_manager_get_type (void) G_GNUC_CONST;
-PhotosBaseManager *photos_search_match_manager_dup_singleton (void);
+PhotosBaseManager *photos_search_match_manager_new (PhotosSearchContext *context);
G_END_DECLS
diff --git a/src/photos-search-provider.c b/src/photos-search-provider.c
index def5b35..9a6df40 100644
--- a/src/photos-search-provider.c
+++ b/src/photos-search-provider.c
@@ -178,6 +178,7 @@ photos_search_provider_get_initial_result_set (PhotosSearchProvider *self,
job = photos_fetch_ids_job_new (terms);
photos_fetch_ids_job_run (job,
+ self->state,
self->cancellable,
photos_search_provider_fetch_ids_executed,
g_object_ref (invocation));
@@ -254,6 +255,7 @@ photos_search_provider_get_subsearch_result_set (PhotosSearchProvider *self,
job = photos_fetch_ids_job_new (terms);
photos_fetch_ids_job_run (job,
+ self->state,
self->cancellable,
photos_search_provider_fetch_ids_executed,
g_object_ref (invocation));
@@ -309,7 +311,7 @@ photos_search_provider_init (PhotosSearchProvider *self)
{
self->cancellable = g_cancellable_new ();
self->cache = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, (GDestroyNotify)
photos_fetch_meta_free);
- self->state = photos_search_context_state_new ();
+ self->state = photos_search_context_state_new (PHOTOS_SEARCH_CONTEXT (self));
self->skeleton = shell_search_provider2_skeleton_new ();
g_signal_connect_swapped (self->skeleton,
diff --git a/src/photos-search-type-manager.c b/src/photos-search-type-manager.c
index 440ea14..28c7734 100644
--- a/src/photos-search-type-manager.c
+++ b/src/photos-search-type-manager.c
@@ -85,26 +85,6 @@ photos_search_type_manager_get_where (PhotosBaseManager *mngr, gint flags)
}
-static GObject *
-photos_search_type_manager_constructor (GType type,
- guint n_construct_params,
- GObjectConstructParam *construct_params)
-{
- static GObject *self = NULL;
-
- if (self == NULL)
- {
- self = G_OBJECT_CLASS (photos_search_type_manager_parent_class)->constructor (type,
- n_construct_params,
- construct_params);
- g_object_add_weak_pointer (self, (gpointer) &self);
- return self;
- }
-
- return g_object_ref (self);
-}
-
-
static void
photos_search_type_manager_init (PhotosSearchTypeManager *self)
{
@@ -157,17 +137,15 @@ photos_search_type_manager_init (PhotosSearchTypeManager *self)
static void
photos_search_type_manager_class_init (PhotosSearchTypeManagerClass *class)
{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
PhotosBaseManagerClass *base_manager_class = PHOTOS_BASE_MANAGER_CLASS (class);
- object_class->constructor = photos_search_type_manager_constructor;
base_manager_class->get_filter = photos_search_type_manager_get_filter;
base_manager_class->get_where = photos_search_type_manager_get_where;
}
PhotosBaseManager *
-photos_search_type_manager_dup_singleton (void)
+photos_search_type_manager_new (void)
{
/* Translators: "Type" refers to a search filter. eg., All, Albums,
* Favorites and Photos.
diff --git a/src/photos-search-type-manager.h b/src/photos-search-type-manager.h
index 0b0dc41..5c2a88a 100644
--- a/src/photos-search-type-manager.h
+++ b/src/photos-search-type-manager.h
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012, 2013 Red Hat, Inc.
+ * Copyright © 2012, 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -68,7 +68,7 @@ struct _PhotosSearchTypeManagerClass
GType photos_search_type_manager_get_type (void) G_GNUC_CONST;
-PhotosBaseManager *photos_search_type_manager_dup_singleton (void);
+PhotosBaseManager *photos_search_type_manager_new (void);
G_END_DECLS
diff --git a/src/photos-set-collection-job.c b/src/photos-set-collection-job.c
index 3c5f222..ec698d2 100644
--- a/src/photos-set-collection-job.c
+++ b/src/photos-set-collection-job.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2013 Red Hat, Inc.
+ * Copyright © 2013, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -25,11 +25,13 @@
#include "config.h"
+#include <gio/gio.h>
#include <glib.h>
#include <tracker-sparql.h>
#include "photos-query.h"
#include "photos-query-builder.h"
+#include "photos-search-context.h"
#include "photos-selection-controller.h"
#include "photos-set-collection-job.h"
#include "photos-tracker-queue.h"
@@ -212,8 +214,10 @@ photos_set_collection_job_run (PhotosSetCollectionJob *self,
gpointer user_data)
{
PhotosSetCollectionJobPrivate *priv = self->priv;
+ GApplication *app;
GList *l;
GList *urns;
+ PhotosSearchContextState *state;
if (G_UNLIKELY (priv->queue == NULL))
{
@@ -225,6 +229,9 @@ photos_set_collection_job_run (PhotosSetCollectionJob *self,
priv->callback = callback;
priv->user_data = user_data;
+ app = g_application_get_default ();
+ state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+
urns = photos_selection_controller_get_selection (priv->sel_cntrlr);
for (l = urns; l != NULL; l = l->next)
{
@@ -235,7 +242,7 @@ photos_set_collection_job_run (PhotosSetCollectionJob *self,
continue;
priv->running_jobs++;
- query = photos_query_builder_set_collection_query (urn, priv->collection_urn, priv->setting);
+ query = photos_query_builder_set_collection_query (state, urn, priv->collection_urn, priv->setting);
photos_tracker_queue_update (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-single-item-job.c b/src/photos-single-item-job.c
index b74339b..7434c71 100644
--- a/src/photos-single-item-job.c
+++ b/src/photos-single-item-job.c
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012 Red Hat, Inc.
+ * Copyright © 2012, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -201,6 +201,7 @@ photos_single_item_job_new (const gchar *urn)
void
photos_single_item_job_run (PhotosSingleItemJob *self,
+ PhotosSearchContextState *state,
gint flags,
PhotosSingleItemJobCallback callback,
gpointer user_data)
@@ -218,7 +219,7 @@ photos_single_item_job_run (PhotosSingleItemJob *self,
priv->callback = callback;
priv->user_data = user_data;
- query = photos_query_builder_single_query (flags, priv->urn);
+ query = photos_query_builder_single_query (state, flags, priv->urn);
photos_tracker_queue_select (priv->queue,
query->sparql,
NULL,
diff --git a/src/photos-single-item-job.h b/src/photos-single-item-job.h
index 24e5c6b..fdad9d0 100644
--- a/src/photos-single-item-job.h
+++ b/src/photos-single-item-job.h
@@ -1,6 +1,6 @@
/*
* Photos - access, organize and share your photos on GNOME
- * Copyright © 2012 Red Hat, Inc.
+ * Copyright © 2012, 2014 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -28,6 +28,8 @@
#include <gio/gio.h>
#include <tracker-sparql.h>
+#include "photos-search-context.h"
+
G_BEGIN_DECLS
#define PHOTOS_TYPE_SINGLE_ITEM_JOB (photos_single_item_job_get_type ())
@@ -74,6 +76,7 @@ GType photos_single_item_job_get_type (void) G_GNUC
PhotosSingleItemJob *photos_single_item_job_new (const gchar *urn);
void photos_single_item_job_run (PhotosSingleItemJob *self,
+ PhotosSearchContextState *state,
gint flags,
PhotosSingleItemJobCallback callback,
gpointer user_data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]