[gnome-builder] greeter: connect cancel button up to GCancellable
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] greeter: connect cancel button up to GCancellable
- Date: Mon, 13 Mar 2017 05:06:08 +0000 (UTC)
commit 9a78cd42b49a6d7bd0f4b14a9271e4e92485b66a
Author: Christian Hergert <chergert redhat com>
Date: Sun Mar 12 22:03:19 2017 -0700
greeter: connect cancel button up to GCancellable
This was an omission where we just didn't have the cancellable connected
to the cancel button so that clone operations could self-cancel.
https://bugzilla.gnome.org/show_bug.cgi?id=779933
libide/greeter/ide-greeter-perspective.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/libide/greeter/ide-greeter-perspective.c b/libide/greeter/ide-greeter-perspective.c
index f037da1..0d7c527 100644
--- a/libide/greeter/ide-greeter-perspective.c
+++ b/libide/greeter/ide-greeter-perspective.c
@@ -48,6 +48,7 @@ struct _IdeGreeterPerspective
PeasExtensionSet *genesis_set;
GBinding *ready_binding;
+ GCancellable *cancellable;
GtkStack *stack;
GtkStack *top_stack;
@@ -819,6 +820,7 @@ ide_greeter_perspective_genesis_cancel_clicked (IdeGreeterPerspective *self,
g_assert (IDE_IS_GREETER_PERSPECTIVE (self));
g_assert (GTK_IS_BUTTON (genesis_cancel_button));
+ g_cancellable_cancel (self->cancellable);
egg_state_machine_set_state (self->state_machine, "browse");
ide_greeter_perspective_apply_filter_all (self);
}
@@ -940,9 +942,12 @@ ide_greeter_perspective_run_cb (GObject *object,
if (!ide_genesis_addin_run_finish (addin, result, &error))
{
- g_strstrip (error->message);
- gtk_label_set_label (self->info_bar_label, error->message);
- gtk_revealer_set_reveal_child (self->info_bar_revealer, TRUE);
+ if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+ {
+ g_strstrip (error->message);
+ gtk_label_set_label (self->info_bar_label, error->message);
+ gtk_revealer_set_reveal_child (self->info_bar_revealer, TRUE);
+ }
}
/* Update continue button sensitivity */
@@ -970,7 +975,7 @@ run_genesis_addin (PeasExtensionSet *set,
{
gtk_widget_set_sensitive (GTK_WIDGET (state->self->genesis_continue_button), FALSE);
ide_genesis_addin_run_async (addin,
- NULL,
+ state->self->cancellable,
ide_greeter_perspective_run_cb,
g_object_ref (state->self));
}
@@ -989,6 +994,9 @@ ide_greeter_perspective_genesis_continue (IdeGreeterPerspective *self)
state.self = self;
state.name = gtk_stack_get_visible_child_name (self->genesis_stack);
+ g_clear_object (&self->cancellable);
+ self->cancellable = g_cancellable_new ();
+
peas_extension_set_foreach (self->genesis_set, run_genesis_addin, &state);
}
@@ -1107,6 +1115,7 @@ ide_greeter_perspective_finalize (GObject *object)
g_clear_pointer (&self->pattern_spec, ide_pattern_spec_unref);
g_clear_object (&self->signal_group);
g_clear_object (&self->recent_projects);
+ g_clear_object (&self->cancellable);
G_OBJECT_CLASS (ide_greeter_perspective_parent_class)->finalize (object);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]