summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@daimi.au.dk>2010-11-09 07:07:40 -0500
committerSøren Sandmann Pedersen <sandmann@daimi.au.dk>2011-06-29 02:48:21 -0400
commite061ff84c185a74c658cae0f582a30a543fb155a (patch)
treeed30be74e2154cf7f22e629e7757862499b62468
parent4ff3d534674bdced0d78f56738cfd21847b90d47 (diff)
Initial WIP new ui
-rw-r--r--sysprof.c116
-rw-r--r--sysprof.glade76
-rw-r--r--tracker.c4
3 files changed, 39 insertions, 157 deletions
diff --git a/sysprof.c b/sysprof.c
index 17efcce..c7d81de 100644
--- a/sysprof.c
+++ b/sysprof.c
@@ -53,7 +53,6 @@ struct Application
GtkWidget * main_window;
- GtkTreeView * object_view;
GtkTreeView * callers_view;
GtkTreeView * descendants_view;
@@ -71,7 +70,6 @@ struct Application
GtkWidget * screenshot_item;
GtkWidget * about_item;
GtkWidget * quit_item;
- GtkWidget * hpaned;
GtkWidget * vpaned;
GtkTreeSelection * object_selection;
@@ -85,7 +83,6 @@ struct Application
GtkWidget * screenshot_window;
Profile * profile;
- ProfileDescendant * descendants;
ProfileCaller * callers;
int timeout_id;
@@ -233,7 +230,6 @@ update_sensitivity (Application *app)
sensitive_reset_button);
#endif
- gtk_widget_set_sensitive (GTK_WIDGET (app->object_view), sensitive_tree_views);
gtk_widget_set_sensitive (GTK_WIDGET (app->callers_view), sensitive_tree_views);
gtk_widget_set_sensitive (GTK_WIDGET (app->descendants_view), sensitive_tree_views);
gtk_widget_set_sensitive (GTK_WIDGET (app->samples_hbox), sensitive_samples_hbox);
@@ -309,7 +305,6 @@ delete_data (Application *app)
profile_free (app->profile);
app->profile = NULL;
- gtk_tree_view_set_model (GTK_TREE_VIEW (app->object_view), NULL);
gtk_tree_view_set_model (GTK_TREE_VIEW (app->callers_view), NULL);
gtk_tree_view_set_model (GTK_TREE_VIEW (app->descendants_view), NULL);
}
@@ -384,14 +379,6 @@ on_start_toggled (GtkWidget *widget, gpointer data)
enum
{
- OBJECT_NAME,
- OBJECT_SELF,
- OBJECT_TOTAL,
- OBJECT_OBJECT
-};
-
-enum
-{
CALLERS_NAME,
CALLERS_SELF,
CALLERS_TOTAL,
@@ -416,7 +403,7 @@ get_current_object (Application *app)
if (gtk_tree_selection_get_selected (app->object_selection, &model, &selected))
{
gtk_tree_model_get (model, &selected,
- OBJECT_OBJECT, &object,
+ DESCENDANTS_OBJECT, &object,
-1);
return object;
}
@@ -427,54 +414,6 @@ get_current_object (Application *app)
}
static void
-fill_main_list (Application *app)
-{
- GList *list;
- GtkListStore *list_store;
- Profile *profile = app->profile;
- GList *objects;
-
- if (profile)
- {
- list_store = gtk_list_store_new (4,
- G_TYPE_STRING,
- G_TYPE_DOUBLE,
- G_TYPE_DOUBLE,
- G_TYPE_POINTER);
-
- objects = profile_get_objects (profile);
- for (list = objects; list != NULL; list = list->next)
- {
- ProfileObject *object = list->data;
- GtkTreeIter iter;
- double profile_size = profile_get_size (profile);
-
- gtk_list_store_append (list_store, &iter);
-
- gtk_list_store_set (list_store, &iter,
- OBJECT_NAME, object->name,
- OBJECT_SELF, 100.0 * object->self / profile_size,
- OBJECT_TOTAL, 100.0 * object->total / profile_size,
-#if 0
- OBJECT_SELF, (double)object->self,
- OBJECT_TOTAL, (double)object->total,
-#endif
- OBJECT_OBJECT, object->name,
- -1);
- }
- g_list_foreach (objects, (GFunc)g_free, NULL);
- g_list_free (objects);
-
- tree_view_set_model_with_default_sort (app->object_view, GTK_TREE_MODEL (list_store),
- OBJECT_TOTAL, GTK_SORT_DESCENDING);
-
- g_object_unref (G_OBJECT (list_store));
- }
-
- gtk_tree_view_columns_autosize (app->object_view);
-}
-
-static void
add_node (FooTreeStore *store,
int size,
const GtkTreeIter *parent,
@@ -484,7 +423,7 @@ add_node (FooTreeStore *store,
if (!node)
return;
-
+
foo_tree_store_insert (store, &iter, (GtkTreeIter *)parent, 0);
foo_tree_store_set (store, &iter,
@@ -507,12 +446,6 @@ fill_descendants_tree (Application *app)
{
FooTreeStore *tree_store;
- if (app->descendants)
- {
- profile_descendant_free (app->descendants);
- app->descendants = NULL;
- }
-
tree_store =
foo_tree_store_new (4,
G_TYPE_STRING,
@@ -625,12 +558,9 @@ enter_display_mode (Application *app)
app->inhibit_forced_redraw = TRUE;
- fill_main_list (app);
-
- /* This has the side effect of selecting the first row, which in turn causes
- * the other lists to be filled out
- */
- gtk_widget_grab_focus (GTK_WIDGET (app->object_view));
+ fill_descendants_tree (app);
+
+ gtk_widget_grab_focus (GTK_WIDGET (app->descendants_view));
app->inhibit_forced_redraw = FALSE;
}
@@ -925,7 +855,7 @@ expand_descendants_tree (Application *app)
gtk_tree_model_get_iter (model, &iter, first_path);
gtk_tree_model_get (model, &iter,
- OBJECT_TOTAL, &top_value,
+ DESCENDANTS_CUMULATIVE, &top_value,
-1);
while (all_paths && n_rows < max_rows)
@@ -950,7 +880,7 @@ expand_descendants_tree (Application *app)
{
double value;
gtk_tree_model_get (model, &iter,
- OBJECT_TOTAL, &value,
+ DESCENDANTS_CUMULATIVE, &value,
-1);
if (value >= best_value)
@@ -1106,6 +1036,7 @@ update_screenshot_window_idle (gpointer data)
gtk_text_buffer_set_text (text_buffer, "", -1);
+#if 0
if (app->descendants)
{
AddTextInfo info;
@@ -1127,6 +1058,7 @@ update_screenshot_window_idle (gpointer data)
g_string_free (info.text, TRUE);
}
+#endif
app->update_screenshot_id = 0;
@@ -1196,6 +1128,7 @@ on_object_selection_changed (GtkTreeSelection *selection,
set_busy (app->main_window, FALSE);
}
+#if 0
static void
really_goto_object (Application *app,
char *object)
@@ -1233,7 +1166,9 @@ really_goto_object (Application *app,
gtk_tree_view_set_cursor (app->object_view, path, 0, FALSE);
}
}
+#endif
+#if 0
static void
goto_object (Application *app,
GtkTreeView *tree_view,
@@ -1254,6 +1189,7 @@ goto_object (Application *app,
really_goto_object (app, object);
}
+#endif
static void
on_descendants_row_activated (GtkTreeView *tree_view,
@@ -1263,7 +1199,9 @@ on_descendants_row_activated (GtkTreeView *tree_view,
{
Application *app = data;
+#if 0
goto_object (app, tree_view, path, DESCENDANTS_OBJECT);
+#endif
gtk_widget_grab_focus (GTK_WIDGET (app->descendants_view));
}
@@ -1276,7 +1214,9 @@ on_callers_row_activated (GtkTreeView *tree_view,
{
Application *app = data;
+#if 0
goto_object (app, tree_view, path, CALLERS_OBJECT);
+#endif
gtk_widget_grab_focus (GTK_WIDGET (app->callers_view));
}
@@ -1314,7 +1254,6 @@ on_screenshot_close_button_clicked (GtkWidget *widget,
static void
set_sizes (GtkWindow *window,
GtkWindow *screenshot_window,
- GtkWidget *hpaned,
GtkWidget *vpaned)
{
GdkScreen *screen;
@@ -1333,8 +1272,7 @@ set_sizes (GtkWindow *window,
gtk_window_resize (window, width, height);
- gtk_paned_set_position (GTK_PANED (vpaned), height / 2);
- gtk_paned_set_position (GTK_PANED (hpaned), width * 3 / 8);
+ gtk_paned_set_position (GTK_PANED (vpaned), 10 * height / 13);
width = monitor.width * 5 / 8;
height = monitor.height * 5 / 8;
@@ -1371,14 +1309,12 @@ gather_widgets (Application *app)
{ &app->screenshot_item, "screenshot_item" },
{ &app->quit_item, "quit" },
{ &app->about_item, "about" },
- { &app->object_view, "object_view" },
{ &app->callers_view, "callers_view" },
{ &app->descendants_view, "descendants_view" },
{ &app->screenshot_window, "screenshot_window" },
{ &app->screenshot_textview, "screenshot_textview" },
{ &app->screenshot_close_button, "screenshot_close_button" },
{ &app->vpaned, "vpaned" },
- { &app->hpaned, "hpaned" },
};
GladeXML *xml = glade_xml_new (GLADE_FILE, NULL, NULL);
@@ -1422,7 +1358,9 @@ connect_signals (Application *app)
{ app->screenshot_item, "activate", on_screenshot_activated, app },
{ app->quit_item, "activate", on_delete, NULL },
{ app->about_item, "activate", on_about_activated, app },
+#if 0
{ app->object_selection, "changed", on_object_selection_changed, app },
+#endif
{ app->callers_view, "row-activated", on_callers_row_activated, app },
{ app->descendants_view, "row-activated", on_descendants_row_activated, app },
{ app->descendants_view, "row-expanded", on_descendants_row_expanded_or_collapsed, app },
@@ -1528,17 +1466,6 @@ build_gui (Application *app)
/* TreeViews */
- /* object view */
- gtk_tree_view_set_enable_search (app->object_view, FALSE);
- col = add_plain_text_column (app->object_view, _("Functions"),
- OBJECT_NAME);
- add_double_format_column (app->object_view, _("Self"),
- OBJECT_SELF, PCT_FORMAT);
- add_double_format_column (app->object_view, _("Total"),
- OBJECT_TOTAL, PCT_FORMAT);
- app->object_selection = gtk_tree_view_get_selection (app->object_view);
- gtk_tree_view_column_set_expand (col, TRUE);
-
/* callers view */
gtk_tree_view_set_enable_search (app->callers_view, FALSE);
col = add_plain_text_column (app->callers_view, _("Callers"),
@@ -1564,14 +1491,13 @@ build_gui (Application *app)
/* set sizes */
set_sizes (GTK_WINDOW (app->main_window),
GTK_WINDOW (app->screenshot_window),
- app->hpaned, app->vpaned);
+ app->vpaned);
/* hide/show widgets */
gtk_widget_show_all (app->main_window);
gtk_widget_hide (app->dummy_button);
gtk_widget_hide (app->screenshot_window);
- gtk_widget_grab_focus (GTK_WIDGET (app->object_view));
queue_show_samples (app);
connect_signals (app);
diff --git a/sysprof.glade b/sysprof.glade
index dea0ade..4263841 100644
--- a/sysprof.glade
+++ b/sysprof.glade
@@ -473,7 +473,7 @@
<property name="justify">GTK_JUSTIFY_LEFT</property>
<property name="wrap">False</property>
<property name="selectable">False</property>
- <property name="xalign">1.0</property>
+ <property name="xalign">1</property>
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
@@ -670,72 +670,32 @@
<property name="spacing">0</property>
<child>
- <widget class="GtkHPaned" id="hpaned">
- <property name="border_width">3</property>
+ <widget class="GtkVPaned" id="vpaned">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="position">0</property>
<child>
- <widget class="GtkVPaned" id="vpaned">
+ <widget class="GtkScrolledWindow" id="scrolledwindow2">
<property name="visible">True</property>
<property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="object_view">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="shrink">True</property>
- <property name="resize">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow3">
+ <widget class="GtkTreeView" id="descendants_view">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="callers_view">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">True</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">True</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
</widget>
- <packing>
- <property name="shrink">True</property>
- <property name="resize">True</property>
- </packing>
</child>
</widget>
<packing>
@@ -745,7 +705,7 @@
</child>
<child>
- <widget class="GtkScrolledWindow" id="scrolledwindow2">
+ <widget class="GtkScrolledWindow" id="scrolledwindow3">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
@@ -754,7 +714,7 @@
<property name="window_placement">GTK_CORNER_TOP_LEFT</property>
<child>
- <widget class="GtkTreeView" id="descendants_view">
+ <widget class="GtkTreeView" id="callers_view">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="headers_visible">True</property>
diff --git a/tracker.c b/tracker.c
index d7e89ba..193cddf 100644
--- a/tracker.c
+++ b/tracker.c
@@ -964,8 +964,6 @@ static const context_info_t context_info[] =
{ PERF_CONTEXT_GUEST_USER, "- - guest user - -" },
};
-static const char *const everything = "[Everything]";
-
static const context_info_t *
get_context_info (enum perf_callchain_context context)
{
@@ -1061,8 +1059,6 @@ process_sample (state_t *state, StackStash *resolved, sample_t *sample)
cmdline = make_message (state, "[%s]", process->comm);
resolved_traces[len++] = POINTER_TO_U64 (cmdline);
- resolved_traces[len++] = POINTER_TO_U64 (
- unique_dup (state->unique_symbols, everything));
stack_stash_add_trace (resolved, resolved_traces, len, 1);