mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-07 21:50:54 +00:00
libsysprof-ui: reload logs when selection changes
This commit is contained in:
@ -580,11 +580,12 @@ sysprof_capture_view_load_logs_cb (GObject *object,
|
|||||||
GAsyncResult *result,
|
GAsyncResult *result,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
g_autoptr(SysprofLogModel) model = NULL;
|
SysprofLogsView *logs_view = (SysprofLogsView *)object;
|
||||||
g_autoptr(GError) error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
g_autoptr(GTask) task = user_data;
|
g_autoptr(GTask) task = user_data;
|
||||||
LoadAsync *state;
|
LoadAsync *state;
|
||||||
|
|
||||||
|
g_assert (SYSPROF_IS_LOGS_VIEW (logs_view));
|
||||||
g_assert (G_IS_ASYNC_RESULT (result));
|
g_assert (G_IS_ASYNC_RESULT (result));
|
||||||
g_assert (G_IS_TASK (task));
|
g_assert (G_IS_TASK (task));
|
||||||
|
|
||||||
@ -593,13 +594,8 @@ sysprof_capture_view_load_logs_cb (GObject *object,
|
|||||||
g_assert (state->reader != NULL);
|
g_assert (state->reader != NULL);
|
||||||
g_assert (state->n_active > 0);
|
g_assert (state->n_active > 0);
|
||||||
|
|
||||||
if ((model = sysprof_log_model_new_finish (result, &error)))
|
if (!sysprof_logs_view_load_finish (logs_view, result, &error))
|
||||||
{
|
g_warning ("Failed to load logs: %s", error->message);
|
||||||
SysprofCaptureView *self = g_task_get_source_object (task);
|
|
||||||
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
|
||||||
|
|
||||||
sysprof_logs_view_set_model (priv->logs_view, model);
|
|
||||||
}
|
|
||||||
|
|
||||||
state->n_active--;
|
state->n_active--;
|
||||||
|
|
||||||
@ -646,11 +642,12 @@ sysprof_capture_view_load_scan_cb (GObject *object,
|
|||||||
if (priv->features.has_logs)
|
if (priv->features.has_logs)
|
||||||
{
|
{
|
||||||
state->n_active++;
|
state->n_active++;
|
||||||
sysprof_log_model_new_async (state->reader,
|
sysprof_logs_view_load_async (priv->logs_view,
|
||||||
state->selection,
|
state->reader,
|
||||||
g_task_get_cancellable (task),
|
state->selection,
|
||||||
sysprof_capture_view_load_logs_cb,
|
g_task_get_cancellable (task),
|
||||||
g_object_ref (task));
|
sysprof_capture_view_load_logs_cb,
|
||||||
|
g_object_ref (task));
|
||||||
}
|
}
|
||||||
|
|
||||||
sysprof_visualizer_view_set_reader (priv->visualizer_view, state->reader);
|
sysprof_visualizer_view_set_reader (priv->visualizer_view, state->reader);
|
||||||
@ -765,6 +762,10 @@ sysprof_capture_view_selection_changed_cb (SysprofCaptureView *self,
|
|||||||
priv->reader,
|
priv->reader,
|
||||||
selection,
|
selection,
|
||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
|
sysprof_logs_view_load_async (priv->logs_view,
|
||||||
|
priv->reader,
|
||||||
|
selection,
|
||||||
|
NULL, NULL, NULL);
|
||||||
sysprof_marks_view_load_async (priv->marks_view,
|
sysprof_marks_view_load_async (priv->marks_view,
|
||||||
priv->reader,
|
priv->reader,
|
||||||
selection,
|
selection,
|
||||||
|
|||||||
@ -49,12 +49,64 @@ sysprof_logs_view_init (SysprofLogsView *self)
|
|||||||
gtk_widget_init_template (GTK_WIDGET (self));
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
static void
|
||||||
sysprof_logs_view_set_model (SysprofLogsView *self,
|
sysprof_logs_view_load_cb (GObject *object,
|
||||||
SysprofLogModel *model)
|
GAsyncResult *result,
|
||||||
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
g_return_if_fail (SYSPROF_IS_LOGS_VIEW (self));
|
g_autoptr(SysprofLogModel) model = NULL;
|
||||||
g_return_if_fail (!model || SYSPROF_IS_LOG_MODEL (model));
|
g_autoptr(GTask) task = user_data;
|
||||||
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
gtk_tree_view_set_model (GTK_TREE_VIEW (self->tree_view), GTK_TREE_MODEL (model));
|
g_assert (G_IS_ASYNC_RESULT (result));
|
||||||
}
|
g_assert (G_IS_TASK (task));
|
||||||
|
|
||||||
|
if (!(model = sysprof_log_model_new_finish (result, &error)))
|
||||||
|
{
|
||||||
|
g_task_return_error (task, g_steal_pointer (&error));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
SysprofLogsView *self;
|
||||||
|
|
||||||
|
self = g_task_get_source_object (task);
|
||||||
|
gtk_tree_view_set_model (GTK_TREE_VIEW (self->tree_view), GTK_TREE_MODEL (model));
|
||||||
|
g_task_return_boolean (task, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sysprof_logs_view_load_async (SysprofLogsView *self,
|
||||||
|
SysprofCaptureReader *reader,
|
||||||
|
SysprofSelection *selection,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GAsyncReadyCallback callback,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
g_autoptr(GTask) task = NULL;
|
||||||
|
|
||||||
|
g_return_if_fail (SYSPROF_IS_LOGS_VIEW (self));
|
||||||
|
g_return_if_fail (reader != NULL);
|
||||||
|
g_return_if_fail (!selection || SYSPROF_IS_SELECTION (selection));
|
||||||
|
g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
|
||||||
|
|
||||||
|
task = g_task_new (self, cancellable, callback, user_data);
|
||||||
|
g_task_set_source_tag (task, sysprof_logs_view_load_async);
|
||||||
|
|
||||||
|
sysprof_log_model_new_async (reader,
|
||||||
|
selection,
|
||||||
|
cancellable,
|
||||||
|
sysprof_logs_view_load_cb,
|
||||||
|
g_steal_pointer (&task));
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
sysprof_logs_view_load_finish (SysprofLogsView *self,
|
||||||
|
GAsyncResult *result,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (SYSPROF_IS_LOGS_VIEW (self), FALSE);
|
||||||
|
g_return_val_if_fail (G_IS_TASK (result), FALSE);
|
||||||
|
|
||||||
|
return g_task_propagate_boolean (G_TASK (result), error);
|
||||||
|
}
|
||||||
|
|||||||
@ -30,7 +30,14 @@ G_BEGIN_DECLS
|
|||||||
|
|
||||||
G_DECLARE_FINAL_TYPE (SysprofLogsView, sysprof_logs_view, SYSPROF, LOGS_VIEW, GtkBin)
|
G_DECLARE_FINAL_TYPE (SysprofLogsView, sysprof_logs_view, SYSPROF, LOGS_VIEW, GtkBin)
|
||||||
|
|
||||||
void sysprof_logs_view_set_model (SysprofLogsView *self,
|
void sysprof_logs_view_load_async (SysprofLogsView *self,
|
||||||
SysprofLogModel *model);
|
SysprofCaptureReader *reader,
|
||||||
|
SysprofSelection *selection,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GAsyncReadyCallback callback,
|
||||||
|
gpointer user_data);
|
||||||
|
gboolean sysprof_logs_view_load_finish (SysprofLogsView *self,
|
||||||
|
GAsyncResult *result,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
Reference in New Issue
Block a user