[frogr] Make all locally created photosets show up in "Add to Sets" dialog
- From: Mario Sanchez Prada <msanchez src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [frogr] Make all locally created photosets show up in "Add to Sets" dialog
- Date: Tue, 29 Dec 2015 17:13:27 +0000 (UTC)
commit c86576e21a9bebbbac34adec53a27c3fcbcc9a55
Author: Mario Sanchez Prada <msanchez gnome org>
Date: Tue Dec 29 17:03:41 2015 +0000
Make all locally created photosets show up in "Add to Sets" dialog
I forgot to check the temporary ID created for every local photoset, and
I was checking the normal ID instead, which was NULL for all of them,
causing the dialog to only pick one and ignore the rest.
https://bugzilla.gnome.org/show_bug.cgi?id=759960
src/frogr-model.c | 14 +-------------
src/frogr-photoset.c | 21 +++++++++++++++++++++
src/frogr-photoset.h | 2 ++
src/frogr-picture.c | 33 +--------------------------------
4 files changed, 25 insertions(+), 45 deletions(-)
---
diff --git a/src/frogr-model.c b/src/frogr-model.c
index eefb0e0..1239d76 100644
--- a/src/frogr-model.c
+++ b/src/frogr-model.c
@@ -63,18 +63,6 @@ static guint signals[N_SIGNALS] = { 0 };
/* Private API */
-static gint
-_compare_photosets (FrogrPhotoSet *photoset1, FrogrPhotoSet *photoset2)
-{
- g_return_val_if_fail (FROGR_IS_PHOTOSET (photoset1), 1);
- g_return_val_if_fail (FROGR_IS_PHOTOSET (photoset2), -1);
-
- if (photoset1 == photoset2)
- return 0;
-
- return g_strcmp0 (frogr_photoset_get_id (photoset1), frogr_photoset_get_id (photoset2));
-}
-
static void
_remove_remote_photosets (FrogrModel *self)
{
@@ -497,7 +485,7 @@ frogr_model_get_photosets (FrogrModel *self)
list = g_slist_copy (self->remote_sets);
for (current = self->local_sets; current; current = g_slist_next (current))
{
- if (!g_slist_find_custom (list, current->data, (GCompareFunc)_compare_photosets))
+ if (!g_slist_find_custom (list, current->data, (GCompareFunc)frogr_photoset_compare))
list = g_slist_prepend (list, current->data);
}
diff --git a/src/frogr-photoset.c b/src/frogr-photoset.c
index cb43ac2..18d400e 100644
--- a/src/frogr-photoset.c
+++ b/src/frogr-photoset.c
@@ -412,3 +412,24 @@ frogr_photoset_is_local (FrogrPhotoSet *self)
g_return_val_if_fail(FROGR_IS_PHOTOSET(self), FALSE);
return self->id == NULL && self->local_id != NULL;
}
+
+gint
+frogr_photoset_compare (FrogrPhotoSet *self, FrogrPhotoSet *other)
+{
+ g_return_val_if_fail (FROGR_IS_PHOTOSET (self), 1);
+ g_return_val_if_fail (FROGR_IS_PHOTOSET (other), -1);
+
+ if (self == other)
+ return 0;
+
+ if (self->id != NULL && other->id != NULL)
+ return g_strcmp0 (self->id, other->id);
+
+ if (self->local_id != NULL && other->local_id != NULL)
+ return g_strcmp0 (self->local_id, other->local_id);
+
+ if (self->id != NULL)
+ return 1;
+ else
+ return -1;
+}
diff --git a/src/frogr-photoset.h b/src/frogr-photoset.h
index a620476..00380f9 100644
--- a/src/frogr-photoset.h
+++ b/src/frogr-photoset.h
@@ -66,6 +66,8 @@ void frogr_photoset_set_n_photos (FrogrPhotoSet *self,
gboolean frogr_photoset_is_local (FrogrPhotoSet *self);
+gint frogr_photoset_compare (FrogrPhotoSet *self, FrogrPhotoSet *other);
+
G_END_DECLS
#endif
diff --git a/src/frogr-picture.c b/src/frogr-picture.c
index 75421c3..38cf39e 100644
--- a/src/frogr-picture.c
+++ b/src/frogr-picture.c
@@ -101,7 +101,6 @@ static void _add_tags_to_tags_list (FrogrPicture *self,
const gchar *tags_string);
static void _update_tags_string (FrogrPicture *self);
-static gint _compare_photosets (FrogrPhotoSet *photoset1, FrogrPhotoSet *photoset2);
static gint _compare_groups (FrogrGroup *group1, FrogrGroup *group2);
static JsonNode *_serialize_list (GSList *objects_list, GType g_type);
@@ -205,36 +204,6 @@ _update_tags_string (FrogrPicture *self)
}
static gint
-_compare_photosets (FrogrPhotoSet *photoset1, FrogrPhotoSet *photoset2)
-{
- const gchar *id1 = NULL;
- const gchar *id2 = NULL;
- const gchar *local_id1 = NULL;
- const gchar *local_id2 = NULL;
-
- g_return_val_if_fail (FROGR_IS_PHOTOSET (photoset1), 1);
- g_return_val_if_fail (FROGR_IS_PHOTOSET (photoset2), -1);
-
- if (photoset1 == photoset2)
- return 0;
-
- id1 = frogr_photoset_get_id (photoset1);
- id2 = frogr_photoset_get_id (photoset2);
- if (id1 != NULL && id2 != NULL)
- return g_strcmp0 (id1, id2);
-
- local_id1 = frogr_photoset_get_local_id (photoset1);
- local_id2 = frogr_photoset_get_local_id (photoset2);
- if (local_id1 != NULL && local_id2 != NULL)
- return g_strcmp0 (local_id1, local_id2);
-
- if (id1 != NULL)
- return 1;
- else
- return -1;
-}
-
-static gint
_compare_groups (FrogrGroup *group1, FrogrGroup *group2)
{
const gchar *id1 = NULL;
@@ -1180,7 +1149,7 @@ frogr_picture_in_photoset (FrogrPicture *self, FrogrPhotoSet *photoset)
g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
if (g_slist_find_custom (self->photosets, photoset,
- (GCompareFunc)_compare_photosets))
+ (GCompareFunc)frogr_photoset_compare))
return TRUE;
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]