mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2025-12-31 20:36:25 +00:00
libsysprof-ui: fit-to-zoom and tooltips
This commit is contained in:
@ -258,7 +258,7 @@ sysprof_capture_view_scan_worker (GTask *task,
|
|||||||
if (begin_time < features.begin_time)
|
if (begin_time < features.begin_time)
|
||||||
features.begin_time = begin_time;
|
features.begin_time = begin_time;
|
||||||
|
|
||||||
if (end_time < features.end_time)
|
if (end_time > features.end_time)
|
||||||
features.end_time = end_time;
|
features.end_time = end_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -506,6 +506,26 @@ sysprof_capture_view_selection_changed_cb (SysprofCaptureView *self,
|
|||||||
sysprof_capture_view_generate_callgraph_async (self, priv->reader, selection, NULL, NULL, NULL);
|
sysprof_capture_view_generate_callgraph_async (self, priv->reader, selection, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
fit_zoom_cb (GSimpleAction *action,
|
||||||
|
GVariant *param,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
SysprofCaptureView *self = user_data;
|
||||||
|
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
||||||
|
GtkAllocation alloc;
|
||||||
|
gdouble zoom;
|
||||||
|
gint64 duration;
|
||||||
|
|
||||||
|
g_assert (G_IS_SIMPLE_ACTION (action));
|
||||||
|
g_assert (SYSPROF_IS_CAPTURE_VIEW (self));
|
||||||
|
|
||||||
|
duration = priv->features.end_time - priv->features.begin_time;
|
||||||
|
gtk_widget_get_allocation (GTK_WIDGET (self), &alloc);
|
||||||
|
zoom = sysprof_zoom_manager_fit_zoom_for_duration (priv->zoom_manager, duration, alloc.width);
|
||||||
|
sysprof_zoom_manager_set_zoom (priv->zoom_manager, zoom);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
sysprof_capture_view_finalize (GObject *object)
|
sysprof_capture_view_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@ -583,7 +603,11 @@ static void
|
|||||||
sysprof_capture_view_init (SysprofCaptureView *self)
|
sysprof_capture_view_init (SysprofCaptureView *self)
|
||||||
{
|
{
|
||||||
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
SysprofCaptureViewPrivate *priv = sysprof_capture_view_get_instance_private (self);
|
||||||
|
g_autoptr(GSimpleActionGroup) group = NULL;
|
||||||
SysprofSelection *selection;
|
SysprofSelection *selection;
|
||||||
|
static GActionEntry actions[] = {
|
||||||
|
{ "fit-zoom", fit_zoom_cb },
|
||||||
|
};
|
||||||
|
|
||||||
gtk_widget_init_template (GTK_WIDGET (self));
|
gtk_widget_init_template (GTK_WIDGET (self));
|
||||||
|
|
||||||
@ -597,6 +621,15 @@ sysprof_capture_view_init (SysprofCaptureView *self)
|
|||||||
gtk_widget_insert_action_group (GTK_WIDGET (self),
|
gtk_widget_insert_action_group (GTK_WIDGET (self),
|
||||||
"zoom",
|
"zoom",
|
||||||
G_ACTION_GROUP (priv->zoom_manager));
|
G_ACTION_GROUP (priv->zoom_manager));
|
||||||
|
|
||||||
|
group = g_simple_action_group_new ();
|
||||||
|
g_action_map_add_action_entries (G_ACTION_MAP (group),
|
||||||
|
actions,
|
||||||
|
G_N_ELEMENTS (actions),
|
||||||
|
self);
|
||||||
|
gtk_widget_insert_action_group (GTK_WIDGET (self),
|
||||||
|
"capture-view",
|
||||||
|
G_ACTION_GROUP (group));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -523,7 +523,7 @@ sysprof_zoom_manager_fit_zoom_for_duration (SysprofZoomManager *self,
|
|||||||
{
|
{
|
||||||
g_return_val_if_fail (SYSPROF_IS_ZOOM_MANAGER (self), 1.0);
|
g_return_val_if_fail (SYSPROF_IS_ZOOM_MANAGER (self), 1.0);
|
||||||
g_return_val_if_fail (duration >= 0, 1.0);
|
g_return_val_if_fail (duration >= 0, 1.0);
|
||||||
|
g_return_val_if_fail (width >= 0, 1.0);
|
||||||
|
|
||||||
return ((gdouble)width / DEFAULT_PIXELS_PER_SEC) /
|
return (width / DEFAULT_PIXELS_PER_SEC) / (duration / (gdouble)NSEC_PER_SEC);
|
||||||
((gdouble)duration / (gdouble)NSEC_PER_SEC);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@
|
|||||||
<property name="action-name">zoom.zoom-out</property>
|
<property name="action-name">zoom.zoom-out</property>
|
||||||
<property name="focus-on-click">false</property>
|
<property name="focus-on-click">false</property>
|
||||||
<property name="visible">true</property>
|
<property name="visible">true</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Zoom Out</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage">
|
<object class="GtkImage">
|
||||||
<property name="icon-name">zoom-out-symbolic</property>
|
<property name="icon-name">zoom-out-symbolic</property>
|
||||||
@ -34,16 +35,18 @@
|
|||||||
</child>
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkButton">
|
<object class="GtkButton">
|
||||||
<property name="action-name">zoom.zoom-one</property>
|
<property name="action-name">capture-view.fit-zoom</property>
|
||||||
<property name="focus-on-click">false</property>
|
<property name="focus-on-click">false</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Resize to Fit</property>
|
||||||
<property name="visible">true</property>
|
<property name="visible">true</property>
|
||||||
<style>
|
<style>
|
||||||
<class name="text-label"/>
|
<class name="image-button"/>
|
||||||
</style>
|
</style>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkLabel">
|
<object class="GtkImage">
|
||||||
<property name="label" bind-source="zoom_manager" bind-property="zoom-label" bind-flags="sync-create"/>
|
<property name="margin-start">12</property>
|
||||||
<property name="width-chars">5</property>
|
<property name="margin-end">12</property>
|
||||||
|
<property name="icon-name">zoom-fit-best-symbolic</property>
|
||||||
<property name="visible">true</property>
|
<property name="visible">true</property>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
@ -53,6 +56,7 @@
|
|||||||
<object class="GtkButton">
|
<object class="GtkButton">
|
||||||
<property name="action-name">zoom.zoom-in</property>
|
<property name="action-name">zoom.zoom-in</property>
|
||||||
<property name="focus-on-click">false</property>
|
<property name="focus-on-click">false</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Zoom In</property>
|
||||||
<property name="visible">true</property>
|
<property name="visible">true</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage">
|
<object class="GtkImage">
|
||||||
|
|||||||
Reference in New Issue
Block a user