[frogr] Fixed bug with list of groups/sets/tags when switching across accounts
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Fixed bug with list of groups/sets/tags when switching across accounts
- Date: Wed, 19 Jan 2011 01:15:47 +0000 (UTC)
commit c3e628f96eb56f6c0efd2790c299f66ae750f5e5
Author: Mario Sanchez Prada <msanchez igalia com>
Date: Wed Jan 19 02:15:33 2011 +0100
Fixed bug with list of groups/sets/tags when switching across accounts
src/frogr-controller.c | 64 +++++++++++++++++++++++++++--------------------
1 files changed, 37 insertions(+), 27 deletions(-)
---
diff --git a/src/frogr-controller.c b/src/frogr-controller.c
index 5ab043b..36f3649 100644
--- a/src/frogr-controller.c
+++ b/src/frogr-controller.c
@@ -1071,36 +1071,39 @@ _fetch_sets_cb (GObject *object, GAsyncResult *res, gpointer data)
FspSession *session = NULL;
FrogrController *controller = NULL;
FrogrControllerPrivate *priv = NULL;
- GSList *photosets_list = NULL;
+ FrogrMainViewModel *mainview_model = NULL;
+ GSList *data_sets_list = NULL;
+ GSList *sets_list = NULL;
GError *error = NULL;
session = FSP_SESSION (object);
controller = FROGR_CONTROLLER (data);
priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
- photosets_list = fsp_session_get_photosets_finish (session, res, &error);
+ data_sets_list = fsp_session_get_photosets_finish (session, res, &error);
if (error != NULL)
{
- g_debug ("Fetching list of sets: %s", error->message);
+ g_debug ("Fetching list of sets: %s (%d)", error->message, error->code);
if (error->code == FSP_ERROR_NOT_AUTHENTICATED)
frogr_controller_revoke_authorization (controller);
+ /* If no photosets are found is a valid outcome */
+ if (error->code == FSP_ERROR_MISSING_DATA)
+ priv->sets_fetched = TRUE;
+
g_error_free (error);
}
else
{
- FrogrMainViewModel *mainview_model = NULL;
- GSList *sets_list = NULL;
-
priv->sets_fetched = TRUE;
- if (photosets_list)
+ if (data_sets_list)
{
GSList *item = NULL;
FspDataPhotoSet *current_data_set = NULL;
FrogrPhotoSet *current_set = NULL;
- for (item = photosets_list; item; item = g_slist_next (item))
+ for (item = data_sets_list; item; item = g_slist_next (item))
{
current_data_set = FSP_DATA_PHOTO_SET (item->data);
current_set = frogr_photoset_new (current_data_set->title,
@@ -1114,14 +1117,14 @@ _fetch_sets_cb (GObject *object, GAsyncResult *res, gpointer data)
fsp_data_free (FSP_DATA (current_data_set));
}
- g_slist_free (photosets_list);
+ g_slist_free (data_sets_list);
}
-
- /* Update main view's model */
- mainview_model = frogr_main_view_get_model (priv->mainview);
- frogr_main_view_model_set_sets (mainview_model, sets_list);
}
+ /* Update main view's model */
+ mainview_model = frogr_main_view_get_model (priv->mainview);
+ frogr_main_view_model_set_sets (mainview_model, sets_list);
+
priv->fetching_sets = FALSE;
}
@@ -1149,7 +1152,9 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
FspSession *session = NULL;
FrogrController *controller = NULL;
FrogrControllerPrivate *priv = NULL;
+ FrogrMainViewModel *mainview_model = NULL;
GSList *data_groups_list = NULL;
+ GSList *groups_list = NULL;
GError *error = NULL;
session = FSP_SESSION (object);
@@ -1159,18 +1164,19 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
data_groups_list = fsp_session_get_groups_finish (session, res, &error);
if (error != NULL)
{
- g_debug ("Fetching list of groups: %s", error->message);
+ g_debug ("Fetching list of groups: %s (%d)", error->message, error->code);
if (error->code == FSP_ERROR_NOT_AUTHENTICATED)
frogr_controller_revoke_authorization (controller);
+ /* If no groups are found is a valid outcome */
+ if (error->code == FSP_ERROR_MISSING_DATA)
+ priv->groups_fetched = TRUE;
+
g_error_free (error);
}
else
{
- FrogrMainViewModel *mainview_model = NULL;
- GSList *groups_list = NULL;
-
priv->groups_fetched = TRUE;
if (data_groups_list)
@@ -1193,12 +1199,12 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
g_slist_free (data_groups_list);
}
-
- /* Update main view's model */
- mainview_model = frogr_main_view_get_model (priv->mainview);
- frogr_main_view_model_set_groups (mainview_model, groups_list);
}
+ /* Update main view's model */
+ mainview_model = frogr_main_view_get_model (priv->mainview);
+ frogr_main_view_model_set_groups (mainview_model, groups_list);
+
priv->fetching_groups = FALSE;
}
@@ -1385,16 +1391,20 @@ _fetch_tags_cb (GObject *object, GAsyncResult *res, gpointer data)
if (error->code == FSP_ERROR_NOT_AUTHENTICATED)
frogr_controller_revoke_authorization (controller);
+ /* If no tags are found is a valid outcome */
+ if (error->code == FSP_ERROR_MISSING_DATA)
+ priv->tags_fetched = TRUE;
+
+ tags_list = NULL;
+
g_error_free (error);
}
else
- {
- /* Update main view's model */
- mainview_model = frogr_main_view_get_model (priv->mainview);
- frogr_main_view_model_set_tags_list (mainview_model, tags_list);
+ priv->tags_fetched = TRUE;
- priv->tags_fetched = TRUE;
- }
+ /* Update main view's model */
+ mainview_model = frogr_main_view_get_model (priv->mainview);
+ frogr_main_view_model_set_tags_list (mainview_model, tags_list);
priv->fetching_tags = FALSE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]