X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Fcallbacks.c;h=98f58d60a7845ccdb7fb71a52abac55d3f2d7a44;hb=f5f1a04ee9c3fdb8c42308863fb7288a8560a613;hp=bb8932373df05c6c500563c3011a38cabcd3b0e6;hpb=e433e6d6da2cc572a3d14257abe18bc3afd5c7e6;p=lttv.git diff --git a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c index bb893237..98f58d60 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c @@ -928,6 +928,8 @@ gboolean lttvwindow_process_pending_requests(Tab *tab) 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; @@ -2168,6 +2170,7 @@ void stop_processing(GtkWidget *widget, gpointer user_data) 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); } @@ -3082,7 +3085,7 @@ on_about_activate (GtkMenuItem *menuitem, 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); @@ -3101,7 +3104,7 @@ on_about_activate (GtkMenuItem *menuitem, GtkWidget *label1 = gtk_label_new(""); gtk_misc_set_padding(GTK_MISC(label1), 10, 20); gtk_label_set_markup(GTK_LABEL(label1), "\ -Linux Trace Toolkit"); +Linux Trace Toolkit " VERSION ""); gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_CENTER); GtkWidget *label2 = gtk_label_new(""); @@ -3120,12 +3123,12 @@ Xang-Xiu Yang (new trace reading library and converter, lttv gui, \n\ 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\ @@ -4771,6 +4774,8 @@ void init_tab(Tab *tab, MainWindow * mw, Tab *copy_tab, /* 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", @@ -4847,9 +4852,9 @@ gboolean execute_events_requests(Tab *tab) } -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); @@ -4869,37 +4874,40 @@ void create_main_window_with_trace(const gchar *path) 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;