X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Fdetailedevents%2Fevents.c;h=27330c8d1cd58fe4a81442c176adb29704efa736;hb=d42da122532e20016c897790ca07183ed85cbc63;hp=7c9b66accbab489e8ab12cf046d9016b709fb5fa;hpb=8f31828398b8a4fcdb679324291132f4f0e3dce6;p=lttv.git diff --git a/lttv/modules/gui/detailedevents/events.c b/lttv/modules/gui/detailedevents/events.c index 7c9b66ac..27330c8d 100644 --- a/lttv/modules/gui/detailedevents/events.c +++ b/lttv/modules/gui/detailedevents/events.c @@ -47,6 +47,7 @@ #include #include +#include #include #include #include @@ -98,6 +99,7 @@ gboolean update_current_time(void * hook_data, void * call_data); gboolean update_current_position(void * hook_data, void * call_data); //gboolean show_event_detail(void * hook_data, void * call_data); gboolean traceset_changed(void * hook_data, void * call_data); +gboolean timespan_changed(void * hook_data, void * call_data); gboolean filter_changed(void * hook_data, void * call_data); static void request_background_data(EventViewerData *event_viewer_data); @@ -182,6 +184,11 @@ h_gui_events(LttvPlugin *plugin) EventViewerData * gui_events(LttvPluginTab *ptab) { + /*To disable the error bell when we reach the end(or the top) of the list of + event. Since we overload the management of the list*/ + GtkSettings* gtk_settings = gtk_settings_get_default(); + g_object_set(gtk_settings, "gtk-error-bell", FALSE, NULL); + LttTime end; GtkTreeViewColumn *column; GtkCellRenderer *renderer; @@ -210,6 +217,8 @@ gui_events(LttvPluginTab *ptab) update_current_position,event_viewer_data); lttvwindow_register_traceset_notify(tab, traceset_changed,event_viewer_data); + lttvwindow_register_timespan_notify(tab, + timespan_changed,event_viewer_data); lttvwindow_register_filter_notify(tab, filter_changed, event_viewer_data); lttvwindow_register_redraw_notify(tab, @@ -448,12 +457,14 @@ gui_events(LttvPluginTab *ptab) g_signal_connect (G_OBJECT (event_viewer_data->vadjust_c), "value-changed", G_CALLBACK (v_scroll_cb), event_viewer_data); + //TODO ybrosseau 2011-01-06: Fix comment /* Set the upper bound to the last event number */ event_viewer_data->previous_value = 0; event_viewer_data->vadjust_c->lower = 0.0; //event_viewer_data->vadjust_c->upper = event_viewer_data->number_of_events; LttTime time = lttvwindow_get_current_time(tab); time = ltt_time_sub(time, tsc->time_span.start_time); + //TODO ybrosseau 2011-01-06: Which one do we keep? event_viewer_data->vadjust_c->value = ltt_time_to_double(time); event_viewer_data->vadjust_c->value = 0.0; event_viewer_data->vadjust_c->step_increment = 1.0; @@ -511,7 +522,6 @@ gui_events(LttvPluginTab *ptab) static gint background_ready(void *hook_data, void *call_data) { EventViewerData *event_viewer_data = (EventViewerData *)hook_data; - LttvTrace *trace = (LttvTrace*)call_data; event_viewer_data->background_info_waiting--; @@ -599,8 +609,6 @@ header_size_allocate(GtkWidget *widget, void tree_v_set_cursor(EventViewerData *event_viewer_data) { - GtkTreePath *path; - g_debug("set cursor cb"); #if 0 @@ -619,9 +627,6 @@ void tree_v_set_cursor(EventViewerData *event_viewer_data) void tree_v_get_cursor(EventViewerData *event_viewer_data) { - GtkTreePath *path; - gint *indices; - g_debug("get cursor cb"); @@ -660,8 +665,6 @@ void tree_v_move_cursor_cb (GtkWidget *widget, gpointer data) { GtkTreePath *path; // = gtk_tree_path_new(); - gint *indices; - gdouble value; EventViewerData *event_viewer_data = (EventViewerData*)data; g_debug("move cursor cb"); @@ -1040,7 +1043,6 @@ static void filter_button (GtkToolButton *toolbutton, gboolean tree_v_scroll_handler (GtkWidget *widget, GdkEventScroll *event, gpointer data) { EventViewerData *event_viewer_data = (EventViewerData*) data; - Tab *tab = event_viewer_data->tab; switch(event->direction) { case GDK_SCROLL_UP: @@ -1095,7 +1097,6 @@ static void tree_selection_changed_cb (GtkTreeSelection *selection, gpointer data) { g_debug("tree sel changed cb"); - EventViewerData *event_viewer_data = (EventViewerData*) data; #if 0 /* Set the cursor to currently selected event */ @@ -1144,9 +1145,6 @@ static gint key_snooper(GtkWidget *grab_widget, GdkEventKey *event, void v_scroll_cb (GtkAdjustment *adjustment, gpointer data) { EventViewerData *event_viewer_data = (EventViewerData*)data; - LttvTracesetStats *tss = - lttvwindow_get_traceset_stats(event_viewer_data->tab); - LttvTracesetContext *tsc = (LttvTracesetContext*)tss; g_debug("SCROLL begin"); g_debug("SCROLL values : %g , %g, %g", adjustment->value, event_viewer_data->previous_value, @@ -1304,7 +1302,6 @@ static gboolean events_check_handler(guint count, gboolean *stop_flag, static void get_events(double new_value, EventViewerData *event_viewer_data) { - GtkTreePath *tree_path; LttvTracesetStats *tss = lttvwindow_get_traceset_stats(event_viewer_data->tab); LttvTracesetContext *tsc = (LttvTracesetContext*)tss; @@ -1419,15 +1416,14 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) /* Get the beginning position of the read (with seek backward or seek forward) */ if(relative_position > 0) { - guint count; - count = lttv_process_traceset_seek_n_forward(tsc, relative_position, + + lttv_process_traceset_seek_n_forward(tsc, relative_position, events_check_handler, &event_viewer_data->tab->stop_foreground, event_viewer_data->main_win_filter, event_viewer_data->filter, NULL, event_viewer_data); } else if(relative_position < 0) { - guint count; - + /* Get an idea of currently shown event dispersion */ LttTime first_event_time = lttv_traceset_context_position_get_time(event_viewer_data->first_event); @@ -1437,7 +1433,7 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) if(ltt_time_compare(time_diff, ltt_time_zero) == 0) time_diff = seek_back_default_offset; - count = lttv_process_traceset_seek_n_backward(tsc, + lttv_process_traceset_seek_n_backward(tsc, abs(relative_position), time_diff, (seek_time_fct)lttv_state_traceset_seek_time_closest, @@ -1683,7 +1679,6 @@ gboolean update_current_time(void * hook_data, void * call_data) const LttTime * current_time = (LttTime*)call_data; LttvTracesetContext * tsc = lttvwindow_get_traceset_context(event_viewer_data->tab); - GtkTreePath *path; /* If the currently selected event time != current time, set the first event * with this time as currently selected. */ @@ -1783,7 +1778,27 @@ gboolean update_current_position(void * hook_data, void * call_data) return FALSE; } +gboolean timespan_changed(void * hook_data, void * call_data) +{ + EventViewerData *event_viewer_data = (EventViewerData*) hook_data; + LttvTracesetContext * tsc = + lttvwindow_get_traceset_context(event_viewer_data->tab); + TimeInterval time_span = tsc->time_span; + + LttTime end; + + end = ltt_time_sub(time_span.end_time, time_span.start_time); + event_viewer_data->vadjust_c->upper = ltt_time_to_double(end); + if(event_viewer_data->pos->len < event_viewer_data->num_visible_events ) { + + + get_events(event_viewer_data->vadjust_c->value, event_viewer_data); + + request_background_data(event_viewer_data); + } + return FALSE; +} gboolean traceset_changed(void * hook_data, void * call_data) { @@ -1825,8 +1840,6 @@ gboolean traceset_changed(void * hook_data, void * call_data) gboolean filter_changed(void * hook_data, void * call_data) { EventViewerData *event_viewer_data = (EventViewerData*) hook_data; - LttvTracesetContext * tsc = - lttvwindow_get_traceset_context(event_viewer_data->tab); event_viewer_data->main_win_filter = (LttvFilter*)call_data; @@ -1879,6 +1892,8 @@ void gui_events_free(gpointer data) // show_event_detail, event_viewer_data); lttvwindow_unregister_traceset_notify(tab, traceset_changed, event_viewer_data); + lttvwindow_unregister_timespan_notify(tab, + timespan_changed,event_viewer_data); lttvwindow_unregister_filter_notify(tab, filter_changed, event_viewer_data); lttvwindow_unregister_redraw_notify(tab,