[gnome-photos] item-manager: Handle failures better
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] item-manager: Handle failures better
- Date: Fri, 26 Sep 2014 16:06:04 +0000 (UTC)
commit bbbd84950f6202ff1668698e221deb40175a9a43
Author: Debarshi Ray <debarshir gnome org>
Date: Fri Sep 26 09:22:40 2014 +0200
item-manager: Handle failures better
Emit "active-collection-changed" and update GtkRecentManager only when
the parent's invocation of set_active_item has succeeded.
Fixes: https://bugzilla.gnome.org/737071
src/photos-item-manager.c | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
---
diff --git a/src/photos-item-manager.c b/src/photos-item-manager.c
index 3e062a4..967c174 100644
--- a/src/photos-item-manager.c
+++ b/src/photos-item-manager.c
@@ -217,10 +217,9 @@ photos_item_manager_set_active_object (PhotosBaseManager *manager, GObject *obje
PhotosItemManager *self = PHOTOS_ITEM_MANAGER (manager);
PhotosItemManagerPrivate *priv = self->priv;
GObject *active_item;
- GtkRecentManager *recent;
gboolean active_collection_changed = FALSE;
gboolean ret_val = FALSE;
- const gchar *uri;
+ gboolean start_loading = FALSE;
g_return_val_if_fail (PHOTOS_IS_BASE_ITEM (object) || object == NULL, FALSE);
@@ -256,18 +255,26 @@ photos_item_manager_set_active_object (PhotosBaseManager *manager, GObject *obje
g_clear_object (&priv->active_collection);
priv->active_collection = g_object_ref (object);
active_collection_changed = TRUE;
- goto end;
}
-
- recent = gtk_recent_manager_get_default ();
- uri = photos_base_item_get_uri (PHOTOS_BASE_ITEM (object));
- gtk_recent_manager_add_item (recent, uri);
+ else
+ start_loading = TRUE;
end:
ret_val = PHOTOS_BASE_MANAGER_CLASS (photos_item_manager_parent_class)->set_active_object (manager,
object);
- if (active_collection_changed)
+
+ if (ret_val && active_collection_changed)
g_signal_emit (self, signals[ACTIVE_COLLECTION_CHANGED], 0, priv->active_collection);
+ if (ret_val && start_loading)
+ {
+ GtkRecentManager *recent;
+ const gchar *uri;
+
+ recent = gtk_recent_manager_get_default ();
+ uri = photos_base_item_get_uri (PHOTOS_BASE_ITEM (object));
+ gtk_recent_manager_add_item (recent, uri);
+ }
+
out:
return ret_val;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]