[gnome-photos] Cancel create_collection_job during destruction
- From: Debarshi Ray <debarshir src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-photos] Cancel create_collection_job during destruction
- Date: Wed, 13 Apr 2016 15:34:13 +0000 (UTC)
commit 6bc1aaf632578875c34ca0cd6c33eb8118ac08ef
Author: Rafael Fonseca <r4f4rfs gmail com>
Date: Thu Mar 24 15:45:11 2016 +0100
Cancel create_collection_job during destruction
https://bugzilla.gnome.org/show_bug.cgi?id=763908
src/photos-organize-collection-view.c | 26 +++++++++++++++++++++-----
1 files changed, 21 insertions(+), 5 deletions(-)
---
diff --git a/src/photos-organize-collection-view.c b/src/photos-organize-collection-view.c
index 51e8309..0c1309f 100644
--- a/src/photos-organize-collection-view.c
+++ b/src/photos-organize-collection-view.c
@@ -43,6 +43,7 @@
struct _PhotosOrganizeCollectionViewPrivate
{
+ GCancellable *cancellable;
GtkCellRenderer *renderer_check;
GtkCellRenderer *renderer_detail;
GtkCellRenderer *renderer_text;
@@ -126,8 +127,16 @@ photos_organize_collection_view_create_collection_executed (GObject *source_obje
created_urn = photos_create_collection_job_finish (col_job, res, &error);
if (error != NULL)
{
- g_warning ("Unable to create collection: %s", error->message);
- g_error_free (error);
+ if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ {
+ g_error_free (error);
+ goto out;
+ }
+ else
+ {
+ g_warning ("Unable to create collection: %s", error->message);
+ g_error_free (error);
+ }
}
self = PHOTOS_ORGANIZE_COLLECTION_VIEW (user_data);
@@ -152,7 +161,6 @@ photos_organize_collection_view_create_collection_executed (GObject *source_obje
out:
g_clear_object (&set_job);
gtk_tree_path_free (path);
- g_object_unref (self);
}
@@ -223,9 +231,9 @@ photos_organize_collection_view_text_edited_real (PhotosOrganizeCollectionView *
job = photos_create_collection_job_new (new_text);
photos_create_collection_job_run (job,
- NULL,
+ priv->cancellable,
photos_organize_collection_view_create_collection_executed,
- g_object_ref (self));
+ self);
g_object_unref (job);
}
@@ -289,6 +297,12 @@ photos_organize_collection_view_dispose (GObject *object)
PhotosOrganizeCollectionView *self = PHOTOS_ORGANIZE_COLLECTION_VIEW (object);
PhotosOrganizeCollectionViewPrivate *priv = self->priv;
+ if (priv->cancellable != NULL)
+ {
+ g_cancellable_cancel (priv->cancellable);
+ g_clear_object (&priv->cancellable);
+ }
+
g_clear_object (&priv->model);
g_clear_object (&priv->col_mngr);
g_clear_object (&priv->src_mngr);
@@ -310,6 +324,8 @@ photos_organize_collection_view_init (PhotosOrganizeCollectionView *self)
app = g_application_get_default ();
state = photos_search_context_get_state (PHOTOS_SEARCH_CONTEXT (app));
+ priv->cancellable = g_cancellable_new ();
+
priv->model = photos_organize_collection_model_new ();
gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (priv->model));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]