diff options
author | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2010-11-09 07:07:40 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <sandmann@daimi.au.dk> | 2011-06-29 02:48:21 -0400 |
commit | e061ff84c185a74c658cae0f582a30a543fb155a (patch) | |
tree | ed30be74e2154cf7f22e629e7757862499b62468 | |
parent | 4ff3d534674bdced0d78f56738cfd21847b90d47 (diff) |
Initial WIP new ui
-rw-r--r-- | sysprof.c | 116 | ||||
-rw-r--r-- | sysprof.glade | 76 | ||||
-rw-r--r-- | tracker.c | 4 |
3 files changed, 39 insertions, 157 deletions
@@ -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> @@ -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); |