visualizer-view: add SpVisualizerView

This adds a new helper widget SpVisualizerView to simplify using
visualizers from applications using libsysprof-ui-2 such as
Builder.

We can manage the view range, zoom, etc from this widget going
forward.
This commit is contained in:
Christian Hergert
2016-09-27 23:03:12 -07:00
parent 2197a0c02e
commit f8a0f2701e
10 changed files with 305 additions and 39 deletions

View File

@ -11,17 +11,17 @@ popover scrolledwindow {
border-top: 1px solid alpha(@borders, 0.75);
}
list.visualizers {
visualizers list {
background: @theme_bg_color;
}
list.visualizers row {
visualizers list row {
background: @content_view_bg;
border-bottom: 1px solid alpha(@borders, 0.2);
}
list.visualizers row:backdrop,
list.visualizers row:last-child {
visualizers list row:backdrop,
visualizers list row:last-child {
border-bottom: none;
}

View File

@ -164,38 +164,16 @@
<property name="orientation">vertical</property>
<property name="visible">true</property>
<child>
<object class="GtkOverlay" id="visualizer_overlay">
<object class="SpVisualizerView" id="visualizers">
<property name="visible">true</property>
<child type="overlay">
<object class="SpVisualizerTicks">
<property name="valign">start</property>
<property name="hexpand">true</property>
<child type="visualizer">
<object class="SpCpuVisualizerRow" id="cpu_row">
<property name="title" translatable="yes">CPU</property>
<property name="height-request">75</property>
<property name="selectable">false</property>
<property name="visible">true</property>
</object>
</child>
<child>
<object class="GtkScrolledWindow">
<property name="min-content-height">75</property>
<property name="max-content-height">225</property>
<property name="visible">true</property>
<child>
<object class="SpVisualizerList" id="visualizer_rows">
<property name="visible">true</property>
<style>
<class name="visualizers"/>
</style>
<child>
<object class="SpCpuVisualizerRow" id="cpu_row">
<property name="title" translatable="yes">CPU</property>
<property name="height-request">75</property>
<property name="selectable">false</property>
<property name="visible">true</property>
<property name="y-lower">0.0</property>
<property name="y-upper">100.0</property>
</object>
</child>
</object>
</child>
<property name="y-lower">0.0</property>
<property name="y-upper">100.0</property>
</object>
</child>
</object>

View File

@ -22,7 +22,7 @@
#include <sysprof-ui.h>
#include "sp-application.h"
#include "sp-visualizer-list.h"
#include "sp-visualizer-view.h"
#include "sp-window.h"
#include "sp-window-settings.h"
@ -49,7 +49,7 @@ struct _SpWindow
GtkLabel *stat_label;
GtkLabel *title;
GtkStack *view_stack;
SpVisualizerList *visualizer_rows;
SpVisualizerView *visualizers;
guint stats_handler;
@ -200,6 +200,7 @@ sp_window_build_profile_cb (GObject *object,
SpProfile *profile = (SpProfile *)object;
g_autoptr(SpWindow) self = user_data;
g_autoptr(GError) error = NULL;
gint64 begin_time;
g_assert (SP_IS_CALLGRAPH_PROFILE (profile));
g_assert (SP_IS_WINDOW (self));
@ -218,7 +219,7 @@ sp_window_build_profile_cb (GObject *object,
GTK_MESSAGE_WARNING,
_("Not enough samples were collected to generate a callgraph"));
sp_visualizer_list_set_reader (self->visualizer_rows, self->reader);
sp_visualizer_view_set_reader (self->visualizers, self->reader);
sp_window_set_state (self, SP_WINDOW_STATE_BROWSING);
}
@ -768,7 +769,7 @@ sp_window_class_init (SpWindowClass *klass)
gtk_widget_class_bind_template_child (widget_class, SpWindow, subtitle);
gtk_widget_class_bind_template_child (widget_class, SpWindow, title);
gtk_widget_class_bind_template_child (widget_class, SpWindow, view_stack);
gtk_widget_class_bind_template_child (widget_class, SpWindow, visualizer_rows);
gtk_widget_class_bind_template_child (widget_class, SpWindow, visualizers);
}
static void