mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
libsysprof-ui: dont change pages if operation was cancelled
This commit is contained in:
@ -63,6 +63,8 @@ typedef struct
|
|||||||
GtkRadioButton *all_allocs;
|
GtkRadioButton *all_allocs;
|
||||||
GtkRadioButton *temp_allocs;
|
GtkRadioButton *temp_allocs;
|
||||||
|
|
||||||
|
GCancellable *cancellable;
|
||||||
|
|
||||||
GQueue *history;
|
GQueue *history;
|
||||||
|
|
||||||
SysprofMemprofMode mode;
|
SysprofMemprofMode mode;
|
||||||
@ -812,11 +814,12 @@ sysprof_memprof_page_generate_cb (GObject *object,
|
|||||||
priv = sysprof_memprof_page_get_instance_private (self);
|
priv = sysprof_memprof_page_get_instance_private (self);
|
||||||
|
|
||||||
if (!sysprof_profile_generate_finish (profile, result, &error))
|
if (!sysprof_profile_generate_finish (profile, result, &error))
|
||||||
g_task_return_error (task, g_steal_pointer (&error));
|
g_task_return_error (task, g_error_copy (error));
|
||||||
else
|
else
|
||||||
sysprof_memprof_page_set_profile (self, SYSPROF_MEMPROF_PROFILE (profile));
|
sysprof_memprof_page_set_profile (self, SYSPROF_MEMPROF_PROFILE (profile));
|
||||||
|
|
||||||
gtk_stack_set_visible_child_name (priv->stack, "callgraph");
|
if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
gtk_stack_set_visible_child_name (priv->stack, "callgraph");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -839,6 +842,13 @@ sysprof_memprof_page_load_async (SysprofPage *page,
|
|||||||
g_assert (SYSPROF_IS_SELECTION (selection));
|
g_assert (SYSPROF_IS_SELECTION (selection));
|
||||||
g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
|
g_assert (!cancellable || G_IS_CANCELLABLE (cancellable));
|
||||||
|
|
||||||
|
g_cancellable_cancel (priv->cancellable);
|
||||||
|
|
||||||
|
if (cancellable == NULL)
|
||||||
|
cancellable = priv->cancellable = g_cancellable_new ();
|
||||||
|
else
|
||||||
|
g_set_object (&priv->cancellable, cancellable);
|
||||||
|
|
||||||
gtk_stack_set_visible_child_name (priv->stack, "loading");
|
gtk_stack_set_visible_child_name (priv->stack, "loading");
|
||||||
|
|
||||||
task = g_task_new (self, cancellable, callback, user_data);
|
task = g_task_new (self, cancellable, callback, user_data);
|
||||||
@ -874,6 +884,7 @@ do_summary (SysprofMemprofPage *self)
|
|||||||
|
|
||||||
g_assert (SYSPROF_IS_MEMPROF_PAGE (self));
|
g_assert (SYSPROF_IS_MEMPROF_PAGE (self));
|
||||||
|
|
||||||
|
g_cancellable_cancel (priv->cancellable);
|
||||||
gtk_stack_set_visible_child_name (priv->stack, "summary");
|
gtk_stack_set_visible_child_name (priv->stack, "summary");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -919,6 +930,7 @@ sysprof_memprof_page_finalize (GObject *object)
|
|||||||
|
|
||||||
g_clear_pointer (&priv->history, g_queue_free);
|
g_clear_pointer (&priv->history, g_queue_free);
|
||||||
g_clear_object (&priv->profile);
|
g_clear_object (&priv->profile);
|
||||||
|
g_clear_object (&priv->cancellable);
|
||||||
|
|
||||||
G_OBJECT_CLASS (sysprof_memprof_page_parent_class)->finalize (object);
|
G_OBJECT_CLASS (sysprof_memprof_page_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user