guint count;
LttvTracesetContextPosition *end_position;
+ if(lttvwindow_preempt_count > 0) return TRUE;
+
if(tab == NULL) {
g_critical("Foreground processing : tab does not exist. Processing removed.");
return FALSE;
g_slist_remove_link(tab->events_requests, remove_iter);
}
tab->events_request_pending = FALSE;
+ tab->stop_foreground = TRUE;
g_idle_remove_by_data(tab);
g_assert(g_slist_length(tab->events_requests) == 0);
}
gtk_window_set_title(about_window, "About Linux Trace Toolkit");
gtk_window_set_resizable(about_window, FALSE);
- gtk_window_set_transient_for(GTK_WINDOW(window_widget), about_window);
+ gtk_window_set_transient_for(about_window, GTK_WINDOW(window_widget));
gtk_window_set_destroy_with_parent(about_window, TRUE);
gtk_window_set_modal(about_window, FALSE);
GtkWidget *label1 = gtk_label_new("");
gtk_misc_set_padding(GTK_MISC(label1), 10, 20);
gtk_label_set_markup(GTK_LABEL(label1), "\
-<big>Linux Trace Toolkit</big>");
+<big>Linux Trace Toolkit " VERSION "</big>");
gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_CENTER);
GtkWidget *label2 = gtk_label_new("");
detailed event list and statistics view)\n\
Tom Zanussi (RelayFS)\n\
\n\
-Strongly inspired from the original Linux Trace Toolkit Visualizer made by\n\
+Inspired from the original Linux Trace Toolkit Visualizer made by\n\
Karim Yaghmour");
GtkWidget *label3 = gtk_label_new("");
gtk_label_set_markup(GTK_LABEL(label3), "\
-Linux Trace Toolkit Viewer, Copyright (C) 2004\n\
+Linux Trace Toolkit Viewer, Copyright (C) 2004, 2005, 2006\n\
Michel Dagenais\n\
Mathieu Desnoyers\n\
Xang-Xiu Yang\n\
/* Start with empty events requests list */
tab->events_requests = NULL;
tab->events_request_pending = FALSE;
+ tab->stop_foreground = FALSE;
+
g_signal_connect(G_OBJECT(tab->scrollbar), "value-changed",
}
-void create_main_window_with_trace(const gchar *path)
+void create_main_window_with_trace_list(GSList *traces)
{
- if(path == NULL) return;
+ GSList *iter = NULL;
/* Create window */
MainWindow *mw = construct_main_window(NULL);
tab = ptab->tab;
}
- /* Add trace */
- gchar abs_path[PATH_MAX];
- LttvTrace *trace_v;
- LttTrace *trace;
-
- get_absolute_pathname(path, abs_path);
- trace_v = lttvwindowtraces_get_trace_by_name(abs_path);
- if(trace_v == NULL) {
- trace = ltt_trace_open(abs_path);
- if(trace == NULL) {
- g_warning("cannot open trace %s", abs_path);
-
- GtkWidget *dialogue =
- gtk_message_dialog_new(
- GTK_WINDOW(gtk_widget_get_toplevel(widget)),
- GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR,
- GTK_BUTTONS_OK,
- "Cannot open trace : maybe you should enter in the directory"
- "to select it ?");
- gtk_dialog_run(GTK_DIALOG(dialogue));
- gtk_widget_destroy(dialogue);
+ for(iter=traces; iter!=NULL; iter=g_slist_next(iter)) {
+ gchar *path = (gchar*)iter->data;
+ /* Add trace */
+ gchar abs_path[PATH_MAX];
+ LttvTrace *trace_v;
+ LttTrace *trace;
+
+ get_absolute_pathname(path, abs_path);
+ trace_v = lttvwindowtraces_get_trace_by_name(abs_path);
+ if(trace_v == NULL) {
+ trace = ltt_trace_open(abs_path);
+ if(trace == NULL) {
+ g_warning("cannot open trace %s", abs_path);
+
+ GtkWidget *dialogue =
+ gtk_message_dialog_new(
+ GTK_WINDOW(gtk_widget_get_toplevel(widget)),
+ GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_OK,
+ "Cannot open trace : maybe you should enter in the directory "
+ "to select it ?");
+ gtk_dialog_run(GTK_DIALOG(dialogue));
+ gtk_widget_destroy(dialogue);
+ } else {
+ trace_v = lttv_trace_new(trace);
+ lttvwindowtraces_add_trace(trace_v);
+ lttvwindow_add_trace(tab, trace_v);
+ }
} else {
- trace_v = lttv_trace_new(trace);
- lttvwindowtraces_add_trace(trace_v);
lttvwindow_add_trace(tab, trace_v);
}
- } else {
- lttvwindow_add_trace(tab, trace_v);
}
-
+
LttvTraceset *traceset;
traceset = tab->traceset_info->traceset;