[gnome-photos/wip/halfline/album-refresh] item-manager: Refresh album view when photos are removed from album
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos/wip/halfline/album-refresh] item-manager: Refresh album view when photos are removed from album
- Date: Wed, 4 May 2022 18:32:19 +0000 (UTC)
commit 3b8b8e0ba9f07a28df920510dce66a7269007427
Author: Ray Strode <rstrode redhat com>
Date: Wed May 4 13:33:50 2022 -0400
item-manager: Refresh album view when photos are removed from album
At the moment removing a photo from a collection gets deferred if the
collection is currently getting viewed; the collection view fails to
update.
This commit forces a refresh of the view to make it react more
dynamically to the user.
src/photos-item-manager.c | 14 ++++++++++++++
src/photos-tracker-collection-view-controller.c | 5 +++++
2 files changed, 19 insertions(+)
---
diff --git a/src/photos-item-manager.c b/src/photos-item-manager.c
index 73ccaaa6..9da3920a 100644
--- a/src/photos-item-manager.c
+++ b/src/photos-item-manager.c
@@ -76,6 +76,7 @@ enum
LOAD_FINISHED,
LOAD_STARTED,
WINDOW_MODE_CHANGED,
+ ACTIVE_COLLECTION_UPDATED,
LAST_SIGNAL
};
@@ -289,6 +290,8 @@ photos_item_manager_info_updated (PhotosBaseItem *item, gpointer user_data)
photos_base_manager_remove_object (self->item_mngr_chldrn[PHOTOS_WINDOW_MODE_FAVORITES], G_OBJECT
(item));
}
+ if (self->active_collection == item)
+ g_signal_emit (self, signals[ACTIVE_COLLECTION_UPDATED], 0, self->active_collection);
out:
return;
}
@@ -1222,6 +1225,17 @@ photos_item_manager_class_init (PhotosItemManagerClass *class)
2,
PHOTOS_TYPE_WINDOW_MODE,
PHOTOS_TYPE_WINDOW_MODE);
+
+ signals[ACTIVE_COLLECTION_UPDATED] = g_signal_new ("active-collection-updated",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_LAST,
+ 0,
+ NULL, /*accumulator */
+ NULL, /*accu_data */
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE,
+ 1,
+ PHOTOS_TYPE_BASE_ITEM);
}
diff --git a/src/photos-tracker-collection-view-controller.c b/src/photos-tracker-collection-view-controller.c
index ad33f9ed..f6dc31b7 100644
--- a/src/photos-tracker-collection-view-controller.c
+++ b/src/photos-tracker-collection-view-controller.c
@@ -165,6 +165,11 @@ photos_tracker_collection_view_controller_init (PhotosTrackerCollectionViewContr
G_CALLBACK (photos_tracker_collection_view_controller_active_collection_changed),
self);
+ g_signal_connect_swapped (self->item_mngr,
+ "active-collection-updated",
+ G_CALLBACK (photos_tracker_controller_refresh_for_object),
+ self);
+
self->offset_cntrlr = photos_offset_collection_view_controller_dup_singleton ();
photos_tracker_controller_set_frozen (PHOTOS_TRACKER_CONTROLLER (self), TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]