diff options
-rw-r--r-- | kernel-shark.c | 34 | ||||
-rw-r--r-- | trace-dialog.c | 19 | ||||
-rw-r--r-- | trace-graph-main.c | 28 | ||||
-rw-r--r-- | trace-gui.h | 2 | ||||
-rw-r--r-- | trace-view-main.c | 28 |
5 files changed, 56 insertions, 55 deletions
diff --git a/kernel-shark.c b/kernel-shark.c index 58aa860..d913ae0 100644 --- a/kernel-shark.c +++ b/kernel-shark.c | |||
@@ -141,28 +141,21 @@ load_clicked (gpointer data) | |||
141 | { | 141 | { |
142 | struct shark_info *info = data; | 142 | struct shark_info *info = data; |
143 | struct tracecmd_input *handle; | 143 | struct tracecmd_input *handle; |
144 | GtkWidget *dialog; | ||
145 | gchar *filename; | 144 | gchar *filename; |
146 | 145 | ||
147 | dialog = gtk_file_chooser_dialog_new("Load File", | 146 | filename = trace_get_file_dialog("Load File"); |
148 | NULL, | 147 | if (!filename) |
149 | GTK_FILE_CHOOSER_ACTION_OPEN, | 148 | return; |
150 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 149 | |
151 | GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, | 150 | handle = tracecmd_open(filename); |
152 | NULL); | 151 | if (handle) { |
153 | if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { | 152 | tracecmd_close(info->handle); |
154 | filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | 153 | info->handle = handle; |
155 | handle = tracecmd_open(filename); | 154 | trace_graph_load_handle(info->ginfo, handle); |
156 | if (handle) { | 155 | trace_view_reload(info->treeview, handle, info->spin); |
157 | tracecmd_close(info->handle); | 156 | update_title(info->window, filename); |
158 | info->handle = handle; | ||
159 | trace_graph_load_handle(info->ginfo, handle); | ||
160 | trace_view_reload(info->treeview, handle, info->spin); | ||
161 | update_title(info->window, filename); | ||
162 | } | ||
163 | g_free(filename); | ||
164 | } | 157 | } |
165 | gtk_widget_destroy(dialog); | 158 | g_free(filename); |
166 | } | 159 | } |
167 | 160 | ||
168 | /* Callback for the clicked signal of the Exit button */ | 161 | /* Callback for the clicked signal of the Exit button */ |
@@ -763,12 +756,11 @@ void kernel_shark(int argc, char **argv) | |||
763 | 756 | ||
764 | /* --- File - Load Option --- */ | 757 | /* --- File - Load Option --- */ |
765 | 758 | ||
766 | sub_item = gtk_menu_item_new_with_label("Load info"); | 759 | sub_item = gtk_menu_item_new_with_label("Load data"); |
767 | 760 | ||
768 | /* Add them to the menu */ | 761 | /* Add them to the menu */ |
769 | gtk_menu_shell_append(GTK_MENU_SHELL (menu), sub_item); | 762 | gtk_menu_shell_append(GTK_MENU_SHELL (menu), sub_item); |
770 | 763 | ||
771 | /* We can attach the Quit menu item to our exit function */ | ||
772 | g_signal_connect_swapped (G_OBJECT (sub_item), "activate", | 764 | g_signal_connect_swapped (G_OBJECT (sub_item), "activate", |
773 | G_CALLBACK (load_clicked), | 765 | G_CALLBACK (load_clicked), |
774 | (gpointer) info); | 766 | (gpointer) info); |
diff --git a/trace-dialog.c b/trace-dialog.c index 65d184d..e27245d 100644 --- a/trace-dialog.c +++ b/trace-dialog.c | |||
@@ -77,3 +77,22 @@ void trace_dialog(GtkWindow *parent, enum trace_dialog_type type, | |||
77 | gtk_dialog_run(GTK_DIALOG(dialog)); | 77 | gtk_dialog_run(GTK_DIALOG(dialog)); |
78 | gtk_widget_destroy(dialog); | 78 | gtk_widget_destroy(dialog); |
79 | } | 79 | } |
80 | |||
81 | gchar *trace_get_file_dialog(const gchar *title) | ||
82 | { | ||
83 | GtkWidget *dialog; | ||
84 | gchar *filename = NULL; | ||
85 | |||
86 | dialog = gtk_file_chooser_dialog_new(title, | ||
87 | NULL, | ||
88 | GTK_FILE_CHOOSER_ACTION_OPEN, | ||
89 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | ||
90 | GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, | ||
91 | NULL); | ||
92 | if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) | ||
93 | filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | ||
94 | |||
95 | gtk_widget_destroy(dialog); | ||
96 | |||
97 | return filename; | ||
98 | } | ||
diff --git a/trace-graph-main.c b/trace-graph-main.c index b373dd2..303f342 100644 --- a/trace-graph-main.c +++ b/trace-graph-main.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "trace-cmd.h" | 29 | #include "trace-cmd.h" |
30 | #include "trace-graph.h" | 30 | #include "trace-graph.h" |
31 | #include "trace-filter.h" | 31 | #include "trace-filter.h" |
32 | #include "trace-gui.h" | ||
32 | 33 | ||
33 | #define version "0.1.1" | 34 | #define version "0.1.1" |
34 | 35 | ||
@@ -52,26 +53,19 @@ load_clicked (gpointer data) | |||
52 | { | 53 | { |
53 | struct graph_info *ginfo = data; | 54 | struct graph_info *ginfo = data; |
54 | struct tracecmd_input *handle; | 55 | struct tracecmd_input *handle; |
55 | GtkWidget *dialog; | ||
56 | gchar *filename; | 56 | gchar *filename; |
57 | 57 | ||
58 | dialog = gtk_file_chooser_dialog_new("Load File", | 58 | filename = trace_get_file_dialog("Load File"); |
59 | NULL, | 59 | if (!filename) |
60 | GTK_FILE_CHOOSER_ACTION_OPEN, | 60 | return; |
61 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 61 | |
62 | GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, | 62 | handle = tracecmd_open(filename); |
63 | NULL); | 63 | if (handle) { |
64 | if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { | 64 | trace_graph_load_handle(ginfo, handle); |
65 | filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | 65 | /* Free handle when freeing graph */ |
66 | handle = tracecmd_open(filename); | 66 | tracecmd_close(handle); |
67 | if (handle) { | ||
68 | trace_graph_load_handle(ginfo, handle); | ||
69 | /* Free handle when freeing graph */ | ||
70 | tracecmd_close(handle); | ||
71 | } | ||
72 | g_free(filename); | ||
73 | } | 67 | } |
74 | gtk_widget_destroy(dialog); | 68 | g_free(filename); |
75 | } | 69 | } |
76 | 70 | ||
77 | /* Callback for the clicked signal of the Exit button */ | 71 | /* Callback for the clicked signal of the Exit button */ |
diff --git a/trace-gui.h b/trace-gui.h index 97b8e41..55778bf 100644 --- a/trace-gui.h +++ b/trace-gui.h | |||
@@ -34,5 +34,7 @@ void trace_show_help(GtkWidget *window, const gchar *link, GError **error); | |||
34 | void trace_dialog(GtkWindow *parent, enum trace_dialog_type type, | 34 | void trace_dialog(GtkWindow *parent, enum trace_dialog_type type, |
35 | gchar *message, ...); | 35 | gchar *message, ...); |
36 | 36 | ||
37 | gchar *trace_get_file_dialog(const gchar *title); | ||
38 | |||
37 | 39 | ||
38 | #endif /* _TRACE_GUI */ | 40 | #endif /* _TRACE_GUI */ |
diff --git a/trace-view-main.c b/trace-view-main.c index 52678ce..7f1461b 100644 --- a/trace-view-main.c +++ b/trace-view-main.c | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | #include "trace-cmd.h" | 29 | #include "trace-cmd.h" |
30 | #include "trace-view.h" | 30 | #include "trace-view.h" |
31 | #include "trace-gui.h" | ||
31 | 32 | ||
32 | #define version "0.1.1" | 33 | #define version "0.1.1" |
33 | 34 | ||
@@ -55,26 +56,19 @@ load_clicked (gpointer data) | |||
55 | { | 56 | { |
56 | struct trace_tree_info *info = data; | 57 | struct trace_tree_info *info = data; |
57 | struct tracecmd_input *handle; | 58 | struct tracecmd_input *handle; |
58 | GtkWidget *dialog; | ||
59 | gchar *filename; | 59 | gchar *filename; |
60 | 60 | ||
61 | dialog = gtk_file_chooser_dialog_new("Load File", | 61 | filename = trace_get_file_dialog("Load File"); |
62 | NULL, | 62 | if (!filename) |
63 | GTK_FILE_CHOOSER_ACTION_OPEN, | 63 | return; |
64 | GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | 64 | |
65 | GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, | 65 | handle = tracecmd_open(filename); |
66 | NULL); | 66 | if (handle) { |
67 | if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { | 67 | trace_view_reload(info->trace_tree, handle, info->spin); |
68 | filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | 68 | /* Free handle when freeing the trace tree */ |
69 | handle = tracecmd_open(filename); | 69 | tracecmd_close(handle); |
70 | if (handle) { | ||
71 | trace_view_reload(info->trace_tree, handle, info->spin); | ||
72 | /* Free handle when freeing the trace tree */ | ||
73 | tracecmd_close(handle); | ||
74 | } | ||
75 | g_free(filename); | ||
76 | } | 70 | } |
77 | gtk_widget_destroy(dialog); | 71 | g_free(filename); |
78 | } | 72 | } |
79 | 73 | ||
80 | /* Callback for the clicked signal of the Exit button */ | 74 | /* Callback for the clicked signal of the Exit button */ |