[gnome-photos] source-manager: Track GoaObjects that implement GoaPhotos
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] source-manager: Track GoaObjects that implement GoaPhotos
- Date: Sat, 6 Jul 2013 13:27:03 +0000 (UTC)
commit 59677e401ff8de310ec9c8c6c9fa73f41df5c6ed
Author: Marek Chalupa <mchalupa redhat com>
Date: Mon Jul 1 13:22:27 2013 +0200
source-manager: Track GoaObjects that implement GoaPhotos
Bump minimum GOA version to 3.8.0 because we need the GoaPhotos
interface.
Fixes: https://bugzilla.gnome.org/697675
configure.ac | 3 ++-
src/photos-source-manager.c | 23 ++++++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 1f0177b..3723b58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,6 +26,7 @@ GLIB_GSETTINGS
EXEMPI_MIN_VERSION=1.99.5
GLIB_MIN_VERSION=2.35.1
+GOA_MIN_VERSION=3.8.0
GTK_MIN_VERSION=3.9.4
LIBEXIF_MIN_VERSION=0.6.14
LIBRSVG_MIN_VERSION=2.26.0
@@ -88,7 +89,7 @@ PKG_CHECK_MODULES(GIO, [gio-2.0])
PKG_CHECK_MODULES(GNOME_DESKTOP, [gnome-desktop-3.0])
AC_DEFINE([GNOME_DESKTOP_USE_UNSTABLE_API], [], [We are aware that GNOME_DESKTOP's API can change])
-PKG_CHECK_MODULES(GOA, [goa-1.0])
+PKG_CHECK_MODULES(GOA, [goa-1.0 >= $GOA_MIN_VERSION])
AC_DEFINE([GOA_API_IS_SUBJECT_TO_CHANGE], [], [We are aware that GOA's API can change])
PKG_CHECK_MODULES(GTK, [gtk+-3.0 >= $GTK_MIN_VERSION])
diff --git a/src/photos-source-manager.c b/src/photos-source-manager.c
index 9651aab..83f7d74 100644
--- a/src/photos-source-manager.c
+++ b/src/photos-source-manager.c
@@ -48,6 +48,9 @@ photos_source_manager_client_account_added (GoaClient *client, GoaObject *object
PhotosSourceManager *self = PHOTOS_SOURCE_MANAGER (user_data);
PhotosSource *source;
+ if (goa_object_peek_photos (object) == NULL)
+ return;
+
source = photos_source_new_from_goa_object (object);
photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (source));
g_object_unref (source);
@@ -71,8 +74,11 @@ static void
photos_source_manager_client_account_changed (GoaClient *client, GoaObject *object, gpointer user_data)
{
PhotosSourceManager *self = PHOTOS_SOURCE_MANAGER (user_data);
- photos_source_manager_client_account_removed (client, object, user_data);
- photos_source_manager_client_account_added (client, object, user_data);
+
+ if (goa_object_peek_photos (object) == NULL)
+ photos_source_manager_client_account_removed (client, object, user_data);
+ else
+ photos_source_manager_client_account_added (client, object, user_data);
}
@@ -86,15 +92,18 @@ photos_source_manager_refresh_accounts (PhotosSourceManager *self)
accounts = goa_client_get_accounts (priv->client);
for (l = accounts; l != NULL; l = l->next)
{
+ GoaObject *object = GOA_OBJECT (l->data);
PhotosSource *source;
- if (goa_object_peek_account (GOA_OBJECT (l->data)) == NULL)
+ if (goa_object_peek_account (object) == NULL)
+ continue;
+
+ if (goa_object_peek_photos (object) == NULL)
continue;
- /* TODO: uncomment when we start supporting online providers */
- /* source = photos_source_new_from_goa_object (GOA_OBJECT (l->data)); */
- /* photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (source)); */
- /* g_object_unref (source); */
+ source = photos_source_new_from_goa_object (GOA_OBJECT (l->data));
+ photos_base_manager_add_object (PHOTOS_BASE_MANAGER (self), G_OBJECT (source));
+ g_object_unref (source);
}
g_list_free_full (accounts, g_object_unref);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]