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;