X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Fcallbacks.c;h=481b939f3e14062ee40f738833ea7735c55cf723;hb=6c35c85397452fe2f5d3de0badb67ee7df0ee37e;hp=9d5a5da662445d6817ff156c412764aee44bfa43;hpb=8e680509351245867a89f5647c7b926af7652f17;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 9d5a5da6..481b939f 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c @@ -49,7 +49,7 @@ #include -#define DEFAULT_TIME_WIDTH_S 1 +static LttTime lttvwindow_default_time_width = { 1, 0 }; #define CLIP_BUF 256 // size of clipboard buffer extern LttvTrace *g_init_trace ; @@ -421,12 +421,13 @@ int SetTraceset(Tab * tab, LttvTraceset *traceset) new_current_time = time_span.start_time; LttTime tmp_time; - - if(DEFAULT_TIME_WIDTH_S < time_span.end_time.tv_sec) - tmp_time.tv_sec = DEFAULT_TIME_WIDTH_S; + + if(ltt_time_compare(lttvwindow_default_time_width, + ltt_time_sub(time_span.end_time, time_span.start_time)) < 0) + tmp_time = lttvwindow_default_time_width; else - tmp_time.tv_sec = time_span.end_time.tv_sec; - tmp_time.tv_nsec = 0; + tmp_time = time_span.end_time; + new_time_window.time_width = tmp_time ; new_time_window.time_width_double = ltt_time_to_double(tmp_time); new_time_window.end_time = ltt_time_add(new_time_window.start_time, @@ -514,7 +515,7 @@ int SetTraceset(Tab * tab, LttvTraceset *traceset) * 0 : filters updated * 1 : no filter hooks to update; not an error. */ - +#if 0 int SetFilter(Tab * tab, gpointer filter) { LttvHooks * tmp; @@ -530,7 +531,7 @@ int SetFilter(Tab * tab, gpointer filter) return 0; } - +#endif //0 /** @@ -3238,6 +3239,8 @@ void time_change_manager (Tab *tab, LttTime start_time = new_time_window.start_time; LttTime end_time = new_time_window.end_time; + g_assert(ltt_time_compare(start_time, end_time) < 0); + /* Set scrollbar */ GtkAdjustment *adjustment = gtk_range_get_adjustment(GTK_RANGE(tab->scrollbar)); LttTime upper = ltt_time_sub(time_span.end_time, time_span.start_time); @@ -3588,6 +3591,22 @@ void current_time_change_manager (Tab *tab, tab->current_time_manager_lock = FALSE; } +void current_position_change_manager(Tab *tab, + LttvTracesetContextPosition *pos) +{ + LttvTracesetContext *tsc = + LTTV_TRACESET_CONTEXT(tab->traceset_info->traceset_context); + TimeInterval time_span = tsc->time_span; + + g_assert(lttv_process_traceset_seek_position(tsc, pos) == 0); + LttTime new_time = lttv_traceset_context_position_get_time(pos); + + current_time_change_manager(tab, new_time); + + set_current_position(tab, pos); +} + + void on_MEntry5_value_changed (GtkSpinButton *spinbutton, gpointer user_data) @@ -4104,10 +4123,16 @@ Tab* create_tab(MainWindow * mw, Tab *copy_tab, /* We can clone the filter, as we copy the trace set also */ /* The filter must always be in sync with the trace set */ tab->filter = lttv_filter_clone(copy_tab->filter); - + tab->time_window = copy_tab->time_window; + tab->current_time = copy_tab->current_time; } else { tab->traceset_info->traceset = lttv_traceset_new(); tab->filter = NULL; + tab->time_window.start_time = ltt_time_zero; + tab->time_window.time_width = lttvwindow_default_time_width; + tab->time_window.end_time = ltt_time_add(tab->time_window.start_time, + tab->time_window.time_width); + tab->current_time = ltt_time_zero; } #ifdef DEBUG @@ -4166,11 +4191,7 @@ Tab* create_tab(MainWindow * mw, Tab *copy_tab, tab->viewer_container = gtk_vbox_new(TRUE, 2); tab->scrollbar = gtk_hscrollbar_new(NULL); //tab->multivpaned = gtk_multi_vpaned_new(); - tab->time_window.start_time = ltt_time_zero; - tab->time_window.end_time = ltt_time_zero; - tab->time_window.time_width = ltt_time_zero; - tab->current_time = ltt_time_zero; - + gtk_box_pack_start(GTK_BOX(tab->vbox), tab->viewer_container, TRUE, /* expand */