X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Fcallbacks.c;h=018947aaf9778e05825c3052fa87a8207fe4c2fe;hb=7c3c01d14690eee4d3c262f300a888680ae7a053;hp=b370026810f3f004f6e5703f2e86410cd3f6d9df;hpb=88bf15f0f2a239186b5cf6fcf8711786907ca483;p=lttv.git diff --git a/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c b/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c index b3700268..018947aa 100644 --- a/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c +++ b/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c @@ -31,9 +31,7 @@ #include "callbacks.h" #include "interface.h" #include "support.h" -#include -#include -#include +#include #include #include #include @@ -283,7 +281,7 @@ int SetTraceset(Tab * tab, LttvTraceset *traceset) } #endif /*BABEL_CLEANUP*/ - time_span = lttv_traceset_get_time_span(traceset); + time_span = lttv_traceset_get_time_span_real(traceset); tab->traceset_info->traceset = traceset; @@ -344,7 +342,7 @@ int SetTraceset(Tab * tab, LttvTraceset *traceset) events_request->before_chunk_traceset = NULL; events_request->before_chunk_trace = NULL; events_request->before_chunk_tracefile = NULL; - events_request->event = traceset->event_hooks; + events_request->event = NULL; events_request->after_chunk_tracefile = NULL; events_request->after_chunk_trace = NULL; events_request->after_chunk_traceset = NULL; @@ -1030,12 +1028,12 @@ gboolean lttvwindow_process_pending_requests(Tab *tab) /* Process the traceset with only state hooks */ #ifdef DEBUG seek_count = - +#endif lttv_process_traceset_middle(ts, ltt_time_infinite, G_MAXUINT, events_request->start_position); -#endif + //g_assert(lttv_traceset_context_ctx_pos_compare(tsc, // events_request->start_position) == 0); @@ -1047,7 +1045,6 @@ gboolean lttvwindow_process_pending_requests(Tab *tab) /* 1.3 Add hooks and call before request for all list_in members */ { GSList *iter = NULL; - for(iter=list_in;iter!=NULL;iter=g_slist_next(iter)) { EventsRequest *events_request = (EventsRequest*)iter->data; /* 1.3.1 If !servicing */ @@ -1063,13 +1060,14 @@ gboolean lttvwindow_process_pending_requests(Tab *tab) */ //TODO ybrosseau 2012-07-10: || TRUE added since we only support // traceset wide requests - if(events_request->trace == -1 || TRUE) + if(events_request->trace == -1 || TRUE) { + lttv_process_traceset_begin(ts, events_request->before_chunk_traceset, events_request->before_chunk_trace, events_request->event ); - else { + } else { guint nb_trace = lttv_traceset_number(ts); g_assert((guint)events_request->trace < nb_trace && events_request->trace > -1); @@ -1378,15 +1376,12 @@ gboolean lttvwindow_process_pending_requests(Tab *tab) */ //TODO ybrosseau 2012-07-10: || TRUE added since we only support // traceset wide requests - if(events_request->trace == -1 || TRUE) + if(events_request->trace == -1 || TRUE) { lttv_process_traceset_end(ts, events_request->after_chunk_traceset, events_request->after_chunk_trace, - events_request->event); - - - else { + } else { guint nb_trace = lttv_traceset_number(ts); g_assert(events_request->trace < nb_trace && events_request->trace > -1); @@ -1683,23 +1678,12 @@ void add_trace(GtkWidget * widget, gpointer user_data) ptab = (LttvPluginTab *)g_object_get_data(G_OBJECT(page), "Tab_Plugin"); tab = ptab->tab; } -//TODO fdeslauriers 2012-07-06: Remove this popup when we support multiple traces - traceset = lttvwindow_get_traceset(tab); - if(traceset != NULL && lttv_traceset_number(traceset) > 0){ - 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, - "Loading multiple traces is not supported at the moment."); - gtk_dialog_run(GTK_DIALOG(dialogue)); - gtk_widget_destroy(dialogue); - return; - } - + /* Create a new traceset*/ - traceset = lttv_traceset_new(); + traceset = tab->traceset_info->traceset; + if(traceset == NULL) { + traceset = lttv_traceset_new(); + } /* File open dialog management */ #ifdef BABEL_CLEANUP GtkWidget *extra_live_button; @@ -2282,7 +2266,7 @@ LttvPluginTab *create_new_tab(GtkWidget* widget, gpointer user_data) gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook))); Tab *copy_tab; - if(!page) { + if(!page || TRUE ) { copy_tab = NULL; } else { LttvPluginTab *ptab; @@ -3013,90 +2997,36 @@ on_content_activate (GtkMenuItem *menuitem, } -static void -on_about_close_activate (GtkButton *button, - gpointer user_data) -{ - GtkWidget *about_widget = GTK_WIDGET(user_data); - - gtk_widget_destroy(about_widget); -} - void on_about_activate (GtkMenuItem *menuitem, gpointer user_data) { MainWindow *main_window = get_window_data_struct(GTK_WIDGET(menuitem)); - GtkWidget *window_widget = main_window->mwindow; - GtkWidget *about_widget = gtk_window_new(GTK_WINDOW_TOPLEVEL); - GtkWindow *about_window = GTK_WINDOW(about_widget); - - gtk_window_set_title(about_window, "About Linux Trace Toolkit"); - - gtk_window_set_resizable(about_window, FALSE); - 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); - - /* Put the about window at the center of the screen */ - gtk_window_set_position(about_window, GTK_WIN_POS_CENTER_ALWAYS); - - GtkWidget *vbox = gtk_vbox_new(FALSE, 1); - - gtk_container_add(GTK_CONTAINER(about_widget), vbox); - /* Text to show */ - GtkWidget *label1 = gtk_label_new(""); - gtk_misc_set_padding(GTK_MISC(label1), 10, 20); - gtk_label_set_markup(GTK_LABEL(label1), "\ -Linux Trace Toolkit " VERSION ""); - gtk_label_set_justify(GTK_LABEL(label1), GTK_JUSTIFY_CENTER); + gchar * authors[] = { "Yannick Brosseau", + "Francis Deslauriers", + "Mathieu Desnoyer", + "Michel Dagenais", + "Benoit Des Ligneris", + "Eric Clement", + "Xang-Xiu Yang", + "Tom Zanussi", + NULL }; + + static const gchar *comments = "Trace visualiser for LTTng 2.x data\ +\nInspired from the original Linux Trace Toolkit Visualizer made by Karim Yaghmour"; - GtkWidget *label2 = gtk_label_new(""); - gtk_misc_set_padding(GTK_MISC(label2), 10, 20); - gtk_label_set_markup(GTK_LABEL(label2), "\ -Contributors :\n\ -\n\ -Michel Dagenais (New trace format, lttv main)\n\ -Mathieu Desnoyers (Kernel Tracer, Directory structure, build with automake/conf,\n\ - lttv gui, control flow view, gui cooperative trace reading\n\ - scheduler with interruptible foreground and background\n\ - computation, detailed event list (rewrite), trace reading\n\ - library (rewrite))\n\ -Benoit Des Ligneris, Eric Clement (Cluster adaptation, work in progress)\n\ -Xang-Xiu Yang (new trace reading library and converter, lttv gui, \n\ - detailed event list and statistics view)\n\ -Tom Zanussi (RelayFS)\n\ -\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, 2005, 2006\n\ - Michel Dagenais\n\ - Mathieu Desnoyers\n\ - Xang-Xiu Yang\n\ -Linux Trace Toolkit comes with ABSOLUTELY NO WARRANTY.\n\ -This is free software, and you are welcome to redistribute it\n\ -under certain conditions. See COPYING for details."); - gtk_misc_set_padding(GTK_MISC(label3), 10, 20); - - gtk_box_pack_start_defaults(GTK_BOX(vbox), label1); - gtk_box_pack_start_defaults(GTK_BOX(vbox), label2); - gtk_box_pack_start_defaults(GTK_BOX(vbox), label3); - - GtkWidget *hbox = gtk_hbox_new(TRUE, 0); - gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); - GtkWidget *close_button = gtk_button_new_with_mnemonic("_Close"); - gtk_box_pack_end(GTK_BOX(hbox), close_button, FALSE, FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(close_button), 20); - - g_signal_connect(G_OBJECT(close_button), "clicked", - G_CALLBACK(on_about_close_activate), - (gpointer)about_widget); - - gtk_widget_show_all(about_widget); + static const gchar *copyright = "Copyright \xc2\xa9 2004-2013"; + + gtk_show_about_dialog(main_window->mwindow, + "authors", authors, + "comments", comments, + "version", VERSION, + "program-name", "LTTV", + "license", "GPLv2, see COPYING file for details", + "website", "http://lttng.org/lttv/", + "copyright", copyright, + NULL); } @@ -3104,7 +3034,19 @@ void on_button_new_clicked (GtkButton *button, gpointer user_data) { +#ifdef BABEL_CLEANUP create_new_window((GtkWidget*)button, user_data, TRUE); +#else + GtkWidget *dialogue = + gtk_message_dialog_new( + GTK_WINDOW(gtk_widget_get_toplevel(button)), + GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "Opening multiple windows is disabled."); + gtk_dialog_run(GTK_DIALOG(dialogue)); + gtk_widget_destroy(dialogue); +#endif } void @@ -3323,9 +3265,8 @@ void time_change_manager (Tab *tab, TimeInterval time_span; LttvTraceset *ts = tab->traceset_info->traceset; - time_span.start_time =ltt_time_from_uint64( lttv_traceset_get_timestamp_begin(ts)); - time_span.end_time = ltt_time_from_uint64(lttv_traceset_get_timestamp_end(ts)); + time_span = lttv_traceset_get_time_span_real(ts); LttTime start_time = new_time_window.start_time; LttTime end_time = new_time_window.end_time; @@ -3432,7 +3373,7 @@ static void on_timebar_starttime_changed(Timebar *timebar, { Tab *tab = (Tab *)user_data; LttvTraceset * ts =tab->traceset_info->traceset; - TimeInterval time_span = lttv_traceset_get_time_span(ts); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); TimeWindow new_time_window = tab->time_window; new_time_window.start_time = timebar_get_start_time(timebar); @@ -3468,7 +3409,7 @@ static void on_timebar_endtime_changed(Timebar *timebar, { Tab *tab = (Tab *)user_data; LttvTraceset * ts =tab->traceset_info->traceset; - TimeInterval time_span = lttv_traceset_get_time_span(ts); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); TimeWindow new_time_window = tab->time_window; @@ -3519,7 +3460,7 @@ void scroll_value_changed_cb(GtkWidget *scrollbar, gdouble page_size; LttvTraceset * ts = tab->traceset_info->traceset; - TimeInterval time_span = lttv_traceset_get_time_span(ts); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); time = ltt_time_add(ltt_time_from_double(value), time_span.start_time);