mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 16:10:54 +00:00
sysprof: make escape stop the current profiler
This commit is contained in:
@ -254,13 +254,11 @@ stop_recording_cb (GSimpleAction *action,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
SysprofDisplay *self = user_data;
|
SysprofDisplay *self = user_data;
|
||||||
SysprofDisplayPrivate *priv = sysprof_display_get_instance_private (self);
|
|
||||||
|
|
||||||
g_assert (G_IS_SIMPLE_ACTION (action));
|
g_assert (G_IS_SIMPLE_ACTION (action));
|
||||||
g_assert (SYSPROF_IS_DISPLAY (self));
|
g_assert (SYSPROF_IS_DISPLAY (self));
|
||||||
|
|
||||||
if (priv->profiler != NULL)
|
sysprof_display_stop_recording (self);
|
||||||
sysprof_profiler_stop (priv->profiler);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -572,3 +570,14 @@ sysprof_display_get_can_save (SysprofDisplay *self)
|
|||||||
|
|
||||||
return sysprof_capture_view_get_reader (priv->capture_view) != NULL;
|
return sysprof_capture_view_get_reader (priv->capture_view) != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
sysprof_display_stop_recording (SysprofDisplay *self)
|
||||||
|
{
|
||||||
|
SysprofDisplayPrivate *priv = sysprof_display_get_instance_private (self);
|
||||||
|
|
||||||
|
g_return_if_fail (SYSPROF_IS_DISPLAY (self));
|
||||||
|
|
||||||
|
if (priv->profiler != NULL)
|
||||||
|
sysprof_profiler_stop (priv->profiler);
|
||||||
|
}
|
||||||
|
|||||||
@ -41,19 +41,21 @@ struct _SysprofDisplayClass
|
|||||||
} __attribute__((aligned(8)));
|
} __attribute__((aligned(8)));
|
||||||
|
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
GtkWidget *sysprof_display_new (void);
|
GtkWidget *sysprof_display_new (void);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
gchar *sysprof_display_dup_title (SysprofDisplay *self);
|
gchar *sysprof_display_dup_title (SysprofDisplay *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
SysprofProfiler *sysprof_display_get_profiler (SysprofDisplay *self);
|
SysprofProfiler *sysprof_display_get_profiler (SysprofDisplay *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
gboolean sysprof_display_is_empty (SysprofDisplay *self);
|
gboolean sysprof_display_is_empty (SysprofDisplay *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
void sysprof_display_open (SysprofDisplay *self,
|
void sysprof_display_open (SysprofDisplay *self,
|
||||||
GFile *file);
|
GFile *file);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
void sysprof_display_save (SysprofDisplay *self);
|
void sysprof_display_save (SysprofDisplay *self);
|
||||||
SYSPROF_AVAILABLE_IN_ALL
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
gboolean sysprof_display_get_can_save (SysprofDisplay *self);
|
gboolean sysprof_display_get_can_save (SysprofDisplay *self);
|
||||||
|
SYSPROF_AVAILABLE_IN_ALL
|
||||||
|
void sysprof_display_stop_recording (SysprofDisplay *self);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
@ -133,6 +133,21 @@ save_capture_cb (GSimpleAction *action,
|
|||||||
sysprof_notebook_save (self->notebook);
|
sysprof_notebook_save (self->notebook);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
stop_recording_cb (GSimpleAction *action,
|
||||||
|
GVariant *param,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
SysprofWindow *self = user_data;
|
||||||
|
SysprofDisplay *current;
|
||||||
|
|
||||||
|
g_assert (G_IS_SIMPLE_ACTION (action));
|
||||||
|
g_assert (SYSPROF_IS_WINDOW (self));
|
||||||
|
|
||||||
|
if ((current = sysprof_notebook_get_current (self->notebook)))
|
||||||
|
sysprof_display_stop_recording (current);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sysprof_window_finalize (GObject *object)
|
sysprof_window_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@ -164,11 +179,13 @@ sysprof_window_class_init (SysprofWindowClass *klass)
|
|||||||
static void
|
static void
|
||||||
sysprof_window_init (SysprofWindow *self)
|
sysprof_window_init (SysprofWindow *self)
|
||||||
{
|
{
|
||||||
|
DzlShortcutController *controller;
|
||||||
static GActionEntry actions[] = {
|
static GActionEntry actions[] = {
|
||||||
{ "close-tab", close_tab_cb },
|
{ "close-tab", close_tab_cb },
|
||||||
{ "new-tab", new_tab_cb },
|
{ "new-tab", new_tab_cb },
|
||||||
{ "switch-tab", switch_tab_cb, "i" },
|
{ "switch-tab", switch_tab_cb, "i" },
|
||||||
{ "save-capture", save_capture_cb },
|
{ "save-capture", save_capture_cb },
|
||||||
|
{ "stop-recording", stop_recording_cb },
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk_widget_init_template (GTK_WIDGET (self));
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
@ -189,6 +206,13 @@ sysprof_window_init (SysprofWindow *self)
|
|||||||
g_object_bind_property (self->notebook, "current", self->bindings, "source",
|
g_object_bind_property (self->notebook, "current", self->bindings, "source",
|
||||||
G_BINDING_SYNC_CREATE);
|
G_BINDING_SYNC_CREATE);
|
||||||
|
|
||||||
|
controller = dzl_shortcut_controller_find (GTK_WIDGET (self));
|
||||||
|
dzl_shortcut_controller_add_command_action (controller,
|
||||||
|
"org.gnome.sysprof3.stop-recording",
|
||||||
|
"Escape",
|
||||||
|
DZL_SHORTCUT_PHASE_BUBBLE,
|
||||||
|
"win.stop-recording");
|
||||||
|
|
||||||
dzl_gtk_widget_action_set (GTK_WIDGET (self), "win", "save-capture",
|
dzl_gtk_widget_action_set (GTK_WIDGET (self), "win", "save-capture",
|
||||||
"enabled", FALSE,
|
"enabled", FALSE,
|
||||||
NULL);
|
NULL);
|
||||||
|
|||||||
Reference in New Issue
Block a user