X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=lttv%2Fmodules%2Fgui%2Fdetailedevents%2Fevents.c;h=1c95569a8613e4421da0eb026ed25a433c9bc4c6;hb=c73ce169d9ddd488b2dbee4d6062b75814e379e0;hp=585acbc09b35b2cd937c515d95e84c1f1514b0fc;hpb=9a366873e0ed6ecc7f23e2d3a959ecddd4f2f91d;p=lttv.git diff --git a/lttv/modules/gui/detailedevents/events.c b/lttv/modules/gui/detailedevents/events.c index 585acbc0..1c95569a 100644 --- a/lttv/modules/gui/detailedevents/events.c +++ b/lttv/modules/gui/detailedevents/events.c @@ -148,7 +148,6 @@ int event_hook(void *hook_data, void *call_data); enum { TRACE_NAME_COLUMN, - TRACEFILE_NAME_COLUMN, CPUID_COLUMN, EVENT_COLUMN, TIME_S_COLUMN, @@ -234,11 +233,11 @@ gui_events(LttvPluginTab *ptab) GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER); event_viewer_data->currently_selected_position = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); event_viewer_data->first_event = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); event_viewer_data->last_event = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); event_viewer_data->main_win_filter = lttvwindow_get_filter(tab); event_viewer_data->update_cursor = TRUE; @@ -252,7 +251,6 @@ gui_events(LttvPluginTab *ptab) event_viewer_data->store_m = gtk_list_store_new ( N_COLUMNS, /* Total number of columns */ G_TYPE_STRING, /* Trace name */ - G_TYPE_STRING, /* Tracefile name */ G_TYPE_UINT, /* CPUID */ G_TYPE_STRING, /* Event */ G_TYPE_UINT, /* Time s */ @@ -321,19 +319,6 @@ gui_events(LttvPluginTab *ptab) G_CALLBACK(header_size_allocate), (gpointer)event_viewer_data); - - - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes ("Tracefile", - renderer, - "text", TRACEFILE_NAME_COLUMN, - NULL); - gtk_tree_view_column_set_alignment (column, 0.0); - gtk_tree_view_column_set_fixed_width (column, 120); - gtk_tree_view_append_column (GTK_TREE_VIEW (event_viewer_data->tree_v), - column); - - renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes ("CPUID", renderer, @@ -1390,9 +1375,12 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) pos = (LttvTracesetPosition*)g_ptr_array_index( event_viewer_data->pos, 0); - lttv_traceset_seek_to_position(pos); + lttv_state_traceset_seek_position(ts,pos); } - } + } else { + lttv_state_traceset_seek_time(ts,time); + + } /* Note that, as we mess with the tsc position, this function CANNOT be called * from a hook inside the lttv_process_traceset_middle. */ @@ -1431,7 +1419,7 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) /* Save the first event position */ - event_viewer_data->first_event = lttv_traceset_create_position(ts); + event_viewer_data->first_event = lttv_traceset_create_current_position(ts); time = ltt_time_from_uint64(lttv_traceset_position_get_timestamp( event_viewer_data->first_event)); @@ -1441,11 +1429,11 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) LttTime time_val = ltt_time_sub(time,time_span.start_time); event_viewer_data->previous_value = ltt_time_to_double(time_val); - lttv_traceset_seek_to_position(event_viewer_data->first_event); + lttv_state_traceset_seek_position(ts, event_viewer_data->first_event); } else { /* Seek by time */ - lttv_traceset_seek_to_position(timePos); + lttv_state_traceset_seek_time(ts, time); LttTime time_val = ltt_time_sub(time,time_span.start_time); @@ -1487,7 +1475,7 @@ static void get_events(double new_value, EventViewerData *event_viewer_data) event_viewer_data->pos->len - 1); event_viewer_data->last_event = cur_pos; } else - event_viewer_data->last_event =lttv_traceset_create_position(ts); + event_viewer_data->last_event =lttv_traceset_create_current_position(ts); gtk_adjustment_set_value(event_viewer_data->vadjust_c, event_viewer_data->previous_value); @@ -1557,10 +1545,12 @@ int event_hook(void *hook_data, void *call_data) GtkTreeIter iter; GString *desc = g_string_new(""); + GString *name = g_string_new(""); - LttvTracesetPosition *pos = lttv_traceset_create_position(traceState->trace->traceset); + LttvTracesetPosition *pos = lttv_traceset_create_current_position(traceState->trace->traceset); - lttv_event_to_string(e, desc, TRUE); + lttv_event_to_string(e, desc, TRUE, FALSE); + lttv_event_get_name(e,name); g_info("detail : %s", desc->str); @@ -1568,9 +1558,8 @@ int event_hook(void *hook_data, void *call_data) gtk_list_store_set (event_viewer_data->store_m, &iter, TRACE_NAME_COLUMN, "TraceName", - TRACEFILE_NAME_COLUMN,"TraceFile" /*traceState->trace->traceset->filename*/, CPUID_COLUMN, cpu, - EVENT_COLUMN,"EventName" /*bt_ctf_event_name(e->bt_event)*/, + EVENT_COLUMN,name->str, TIME_S_COLUMN, time.tv_sec, TIME_NS_COLUMN, time.tv_nsec, PID_COLUMN, process->pid, @@ -1581,6 +1570,7 @@ int event_hook(void *hook_data, void *call_data) g_ptr_array_add(event_viewer_data->pos, pos); g_string_free(desc, TRUE); + g_string_free(name, TRUE); if(event_viewer_data->update_cursor) { if(lttv_traceset_position_compare(pos, @@ -1609,6 +1599,9 @@ static void event_update_selection(EventViewerData *event_viewer_data) guint i; GPtrArray *positions = event_viewer_data->pos; g_info("event_update_selection"); + + int isFound = FALSE; + for(i=0;ilen;i++) { LttvTracesetPosition *cur_pos = @@ -1619,11 +1612,28 @@ static void event_update_selection(EventViewerData *event_viewer_data) if(path) { gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE); + gtk_widget_grab_focus(event_viewer_data->tree_v ); gtk_tree_path_free(path); + isFound = TRUE; break; } } } + if(isFound){ + return; + } + /* If the current selection is not in the currently displayed events*/ + LttTime currentTime = lttv_traceset_position_get_time( + event_viewer_data->currently_selected_position); + LttTime time; + + LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab); + TimeInterval time_span = lttv_traceset_get_time_span_real(ts); + time = ltt_time_sub(currentTime, time_span.start_time); + gtk_adjustment_set_value(event_viewer_data->vadjust_c, + ltt_time_to_double(time)); + gtk_widget_grab_focus(event_viewer_data->tree_v ); + } static int current_time_get_first_event_hook(void *hook_data, void *call_data) @@ -1662,8 +1672,7 @@ gboolean update_current_time(void * hook_data, void * call_data) EventViewerData *event_viewer_data = (EventViewerData*) hook_data; const LttTime * current_time = (LttTime*)call_data; - LttvTraceset * ts = - lttvwindow_get_traceset(event_viewer_data->tab); + LttvTraceset * ts = lttvwindow_get_traceset(event_viewer_data->tab); /* If the currently selected event time != current time, set the first event * with this time as currently selected. */ @@ -1671,17 +1680,14 @@ gboolean update_current_time(void * hook_data, void * call_data) event_viewer_data->currently_selected_position); if(ltt_time_compare(pos_time, *current_time) != 0) { - /*create position*/ LttvTracesetPosition *currentPosition = lttv_traceset_create_time_position(ts,*current_time ); /*seek to current position*/ - lttv_traceset_seek_to_position(currentPosition); + lttv_state_traceset_seek_time(ts, *current_time); event_viewer_data->currently_selected_position = - lttv_traceset_create_position(ts); - - + lttv_traceset_create_current_position(ts); } event_viewer_data->report_position = FALSE; @@ -1750,15 +1756,16 @@ gboolean traceset_changed(void * hook_data, void * call_data) lttv_traceset_destroy_position(event_viewer_data->currently_selected_position); lttv_traceset_destroy_position(event_viewer_data->first_event); lttv_traceset_destroy_position(event_viewer_data->last_event); - + event_viewer_data->currently_selected_position = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); event_viewer_data->first_event = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); event_viewer_data->last_event = - lttv_traceset_create_position(ts); + lttv_traceset_create_current_position(ts); get_events(event_viewer_data->vadjust_c->value, event_viewer_data); + #endif //babel_cleanup // event_viewer_data->vadjust_c->value = 0;