[frogr] Refactor code for adding pictures to sets / groups
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Refactor code for adding pictures to sets / groups
- Date: Fri, 2 Nov 2012 08:49:53 +0000 (UTC)
commit f017dfadc23a5935c28d50b16bab9eefcd90406e
Author: Mario Sanchez Prada <msanchez gnome org>
Date: Thu Nov 1 02:45:48 2012 +0100
Refactor code for adding pictures to sets / groups
src/frogr-controller.c | 200 ++++++++++++++++++++++++-----------------------
1 files changed, 102 insertions(+), 98 deletions(-)
---
diff --git a/src/frogr-controller.c b/src/frogr-controller.c
index 977f84d..6d751d3 100644
--- a/src/frogr-controller.c
+++ b/src/frogr-controller.c
@@ -176,17 +176,21 @@ static void _set_location_cb (GObject *object, GAsyncResult *res, gpointer data)
static void _set_location_for_picture (FrogrController *self, UploadOnePictureData *uop_data);
-static gboolean _add_picture_to_sets_or_create (FrogrController *self, UploadOnePictureData *uop_data);
+static gboolean _add_picture_to_photosets_or_create (FrogrController *self, UploadOnePictureData *uop_data);
+
+static void _create_photoset_for_picture (FrogrController *self, UploadOnePictureData *uop_data);
static void _create_photoset_cb (GObject *object, GAsyncResult *res, gpointer data);
+static void _add_picture_to_photoset (FrogrController *self, UploadOnePictureData *uop_data);
+
static void _add_to_photoset_cb (GObject *object, GAsyncResult *res, gpointer data);
-static void _add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data);
+static gboolean _add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data);
-static void _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data);
+static void _add_picture_to_group (FrogrController *self, UploadOnePictureData *uop_data);
-static void _notify_adding_to_group (FrogrController *self, FrogrPicture *picture, FrogrGroup *group);
+static void _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data);
static gboolean _complete_picture_upload_on_idle (gpointer data);
@@ -770,7 +774,7 @@ _upload_picture_cb (GObject *object, GAsyncResult *res, gpointer data)
if (g_slist_length (frogr_picture_get_photosets (picture)) > 0)
{
uop_data->photosets = frogr_picture_get_photosets (picture);
- _add_picture_to_sets_or_create (controller, uop_data);
+ _add_picture_to_photosets_or_create (controller, uop_data);
}
/* Add picture to groups if needed */
@@ -935,69 +939,60 @@ _set_location_for_picture (FrogrController *self, UploadOnePictureData *uop_data
}
static gboolean
-_add_picture_to_sets_or_create (FrogrController *self, UploadOnePictureData *uop_data)
+_add_picture_to_photosets_or_create (FrogrController *self, UploadOnePictureData *uop_data)
{
FrogrControllerPrivate *priv = NULL;
- FrogrPicture *picture = NULL;
FrogrPhotoSet *set = NULL;
const gchar *id = NULL;
- GSList *photosets = NULL;
- photosets = uop_data->photosets;
- if (g_slist_length (photosets) == 0)
+ if (g_slist_length (uop_data->photosets) == 0)
return FALSE;
- set = FROGR_PHOTOSET (photosets->data);
+ set = FROGR_PHOTOSET (uop_data->photosets->data);
id = frogr_photoset_get_id (set);
priv = FROGR_CONTROLLER_GET_PRIVATE (self);
priv->adding_to_set = TRUE;
- picture = uop_data->picture;
if (id != NULL)
- {
- gchar *debug_msg = NULL;
-
- /* Set with ID: Add picture to it */
- fsp_session_add_to_photoset (priv->session,
- frogr_picture_get_id (picture),
- frogr_photoset_get_id (set),
- priv->cancellable,
- _add_to_photoset_cb,
- uop_data);
-
- debug_msg = g_strdup_printf ("Adding picture %s to photoset %sâ",
- frogr_picture_get_title (picture),
- frogr_photoset_get_title (set));
- DEBUG ("%s", debug_msg);
- g_free (debug_msg);
- }
+ _add_picture_to_photoset (self, uop_data);
else
- {
- gchar *debug_msg = NULL;
-
- /* Set with ID: Create set along with this picture */
- fsp_session_create_photoset (priv->session,
- frogr_photoset_get_title (set),
- frogr_photoset_get_description (set),
- frogr_picture_get_id (picture),
- NULL,
- _create_photoset_cb,
- uop_data);
-
- debug_msg = g_strdup_printf ("Creating new photoset for picture %s. "
- "Title: %s / Description: %s",
- frogr_picture_get_title (picture),
- frogr_photoset_get_title (set),
- frogr_photoset_get_description (set));
- DEBUG ("%s", debug_msg);
- g_free (debug_msg);
- }
+ _create_photoset_for_picture (self, uop_data);
return TRUE;
}
static void
+_create_photoset_for_picture (FrogrController *self, UploadOnePictureData *uop_data)
+{
+ FrogrControllerPrivate *priv = NULL;
+ FrogrPicture *picture = NULL;
+ FrogrPhotoSet *set = NULL;
+ gchar *debug_msg = NULL;
+
+ priv = FROGR_CONTROLLER_GET_PRIVATE (self);
+ picture = uop_data->picture;
+ set = FROGR_PHOTOSET (uop_data->photosets->data);
+
+ /* Set with ID: Create set along with this picture */
+ fsp_session_create_photoset (priv->session,
+ frogr_photoset_get_title (set),
+ frogr_photoset_get_description (set),
+ frogr_picture_get_id (picture),
+ NULL,
+ _create_photoset_cb,
+ uop_data);
+
+ debug_msg = g_strdup_printf ("Creating new photoset for picture %s. "
+ "Title: %s / Description: %s",
+ frogr_picture_get_title (picture),
+ frogr_photoset_get_title (set),
+ frogr_photoset_get_description (set));
+ DEBUG ("%s", debug_msg);
+ g_free (debug_msg);
+}
+
+static void
_create_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
{
FspSession *session = NULL;
@@ -1029,7 +1024,7 @@ _create_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
/* When adding pictures to photosets, we only stop if the process
was not explicitly cancelled by the user */
if (!error || error->code != FSP_ERROR_CANCELLED)
- keep_going = _add_picture_to_sets_or_create (controller, uop_data);
+ keep_going = _add_picture_to_photosets_or_create (controller, uop_data);
if (error && error->code != FSP_ERROR_CANCELLED)
{
@@ -1050,6 +1045,33 @@ _create_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
}
static void
+_add_picture_to_photoset (FrogrController *self, UploadOnePictureData *uop_data)
+{
+ FrogrControllerPrivate *priv = NULL;
+ FrogrPicture *picture = NULL;
+ FrogrPhotoSet *set = NULL;
+ gchar *debug_msg = NULL;
+
+ priv = FROGR_CONTROLLER_GET_PRIVATE (self);
+ picture = uop_data->picture;
+ set = FROGR_PHOTOSET (uop_data->photosets->data);
+
+ /* Set with ID: Add picture to it */
+ fsp_session_add_to_photoset (priv->session,
+ frogr_picture_get_id (picture),
+ frogr_photoset_get_id (set),
+ priv->cancellable,
+ _add_to_photoset_cb,
+ uop_data);
+
+ debug_msg = g_strdup_printf ("Adding picture %s to photoset %sâ",
+ frogr_picture_get_title (picture),
+ frogr_photoset_get_title (set));
+ DEBUG ("%s", debug_msg);
+ g_free (debug_msg);
+}
+
+static void
_add_to_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
{
FspSession *session = NULL;
@@ -1077,7 +1099,7 @@ _add_to_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
/* When adding pictures to photosets, we only stop if the process
was not explicitly cancelled by the user */
if (!error || error->code != FSP_ERROR_CANCELLED)
- keep_going = _add_picture_to_sets_or_create (controller, uop_data);
+ keep_going = _add_picture_to_photosets_or_create (controller, uop_data);
if (error && error->code != FSP_ERROR_CANCELLED)
{
@@ -1097,24 +1119,34 @@ _add_to_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
priv->adding_to_set = FALSE;
}
-static void
+static gboolean
_add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data)
{
FrogrControllerPrivate *priv = NULL;
- FrogrPicture *picture = NULL;
- FrogrGroup *group = NULL;
- GSList *groups = NULL;
/* Add pictures to groups, if any */
- groups = uop_data->groups;
- if (g_slist_length (groups) == 0)
- return;
-
- group = FROGR_GROUP (uop_data->groups->data);
+ if (g_slist_length (uop_data->groups) == 0)
+ return FALSE;
priv = FROGR_CONTROLLER_GET_PRIVATE (self);
priv->adding_to_group = TRUE;
+
+ _add_picture_to_group (self, uop_data);
+
+ return TRUE;
+}
+
+static void
+_add_picture_to_group (FrogrController *self, UploadOnePictureData *uop_data)
+{
+ FrogrControllerPrivate *priv = NULL;
+ FrogrPicture *picture = NULL;
+ FrogrGroup *group = NULL;
+ gchar *debug_msg = NULL;
+
+ priv = FROGR_CONTROLLER_GET_PRIVATE (self);
picture = uop_data->picture;
+ group = FROGR_GROUP (uop_data->groups->data);
fsp_session_add_to_group (priv->session,
frogr_picture_get_id (picture),
@@ -1123,7 +1155,11 @@ _add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data)
_add_to_group_cb,
uop_data);
- _notify_adding_to_group (self, picture, group);
+ debug_msg = g_strdup_printf ("Adding picture %s to group %sâ",
+ frogr_picture_get_title (picture),
+ frogr_group_get_name (group));
+ DEBUG ("%s", debug_msg);
+ g_free (debug_msg);
}
static void
@@ -1133,9 +1169,7 @@ _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data)
UploadOnePictureData *uop_data = NULL;
FrogrController *controller = NULL;
FrogrControllerPrivate *priv = NULL;
- FrogrPicture *picture = NULL;
FrogrGroup *group = NULL;
- FrogrGroup *last_group = NULL;
GSList *groups = NULL;
GError *error = NULL;
gboolean keep_going = FALSE;
@@ -1143,7 +1177,6 @@ _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data)
session = FSP_SESSION (object);
uop_data = (UploadOnePictureData*) data;
controller = uop_data->controller;
- picture = uop_data->picture;
groups = uop_data->groups;
fsp_session_add_to_group_finish (session, res, &error);
@@ -1151,28 +1184,13 @@ _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data)
priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
- last_group = FROGR_GROUP (groups->data);
- groups = g_slist_next (groups);
+ group = FROGR_GROUP (groups->data);
+ uop_data->groups = g_slist_next (groups);
/* When adding pictures to groups, we only stop if the process was
not explicitly cancelled by the user */
if (!error || error->code != FSP_ERROR_CANCELLED)
- {
- if (g_slist_length (groups) > 0)
- {
- group = FROGR_GROUP (groups->data);
- uop_data->groups = groups;
-
- _notify_adding_to_group (controller, picture, group);
- fsp_session_add_to_group (session,
- frogr_picture_get_id (picture),
- frogr_group_get_id (group),
- priv->cancellable,
- _add_to_group_cb,
- uop_data);
- keep_going = TRUE;
- }
- }
+ keep_going = _add_picture_to_groups (controller, uop_data);
if (error && error->code != FSP_ERROR_CANCELLED)
{
@@ -1182,30 +1200,16 @@ _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data)
g_error_free (error);
uop_data->error = NULL;
}
- else if (!error && last_group)
+ else if (!error)
{
/* Update the number of items in the group */
- frogr_group_set_n_photos (last_group, frogr_group_get_n_photos (last_group) + 1);
+ frogr_group_set_n_photos (group, frogr_group_get_n_photos (group) + 1);
}
if (!keep_going)
priv->adding_to_group = FALSE;
}
-static void
-_notify_adding_to_group (FrogrController *self,
- FrogrPicture *picture,
- FrogrGroup *group)
-{
- gchar *debug_msg = NULL;
-
- debug_msg = g_strdup_printf ("Adding picture %s to group %sâ",
- frogr_picture_get_title (picture),
- frogr_group_get_name (group));
- DEBUG ("%s", debug_msg);
- g_free (debug_msg);
-}
-
static gboolean
_complete_picture_upload_on_idle (gpointer data)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]