X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=ltt%2Fbranches%2Fpoly%2Flttv%2Fmodules%2Fgui%2Flttvwindow%2Flttvwindow%2Fcallbacks.c;h=8bf819e631ec9de4e9e1a74137b283d8f175e3fd;hb=45653836d75635b5b841d0d03f1f0789348adc56;hp=b526c3913413c8e45b6a87bd9f59c0e6f816005b;hpb=57ca4914796fdfc719a8427851796713f4a43df8;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 b526c391..8bf819e6 100644 --- a/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c +++ b/ltt/branches/poly/lttv/modules/gui/lttvwindow/lttvwindow/callbacks.c @@ -46,7 +46,6 @@ #include #include #include -#include static LttTime lttvwindow_default_time_width = { 1, 0 }; @@ -64,10 +63,13 @@ static char remember_trace_dir[PATH_MAX] = ""; MainWindow * get_window_data_struct(GtkWidget * widget); -char * get_load_module(char ** load_module_name, int nb_module); -char * get_unload_module(char ** loaded_module_name, int nb_module); -char * get_remove_trace(char ** all_trace_name, int nb_trace); -char * get_selection(char ** all_name, int nb, char *title, char * column_title); +char * get_load_module(MainWindow *mw, + char ** load_module_name, int nb_module); +char * get_unload_module(MainWindow *mw, + char ** loaded_module_name, int nb_module); +char * get_remove_trace(MainWindow *mw, char ** all_trace_name, int nb_trace); +char * get_selection(MainWindow *mw, + char ** all_name, int nb, char *title, char * column_title); Tab* create_tab(MainWindow * mw, Tab *copy_tab, GtkNotebook * notebook, char * label); @@ -804,6 +806,9 @@ void open_traceset(GtkWidget * widget, gpointer user_data) gtk_file_selection_hide_fileop_buttons(file_selector); + gtk_window_set_transient_for(GTK_WINDOW(file_selector), + GTK_WINDOW(mw_data->mwindow)); + id = gtk_dialog_run(GTK_DIALOG(file_selector)); switch(id){ case GTK_RESPONSE_ACCEPT: @@ -1698,18 +1703,23 @@ void add_trace(GtkWidget * widget, gpointer user_data) tab = (Tab *)g_object_get_data(G_OBJECT(page), "Tab_Info"); } - GtkDirSelection * file_selector = (GtkDirSelection *)gtk_dir_selection_new("Select a trace"); - gtk_dir_selection_hide_fileop_buttons(file_selector); + //GtkDirSelection * file_selector = (GtkDirSelection *)gtk_dir_selection_new("Select a trace"); + GtkFileSelection * file_selector = (GtkFileSelection *)gtk_file_selection_new("Select a trace"); + gtk_widget_hide( (file_selector)->file_list->parent) ; + gtk_file_selection_hide_fileop_buttons(file_selector); + gtk_window_set_transient_for(GTK_WINDOW(file_selector), + GTK_WINDOW(mw_data->mwindow)); if(remember_trace_dir[0] != '\0') - gtk_dir_selection_set_filename(file_selector, remember_trace_dir); + gtk_file_selection_set_filename(file_selector, remember_trace_dir); id = gtk_dialog_run(GTK_DIALOG(file_selector)); switch(id){ case GTK_RESPONSE_ACCEPT: case GTK_RESPONSE_OK: - dir = gtk_dir_selection_get_dir (file_selector); + dir = gtk_file_selection_get_filename (file_selector); strncpy(remember_trace_dir, dir, PATH_MAX); + strncat(remember_trace_dir, "/", PATH_MAX); if(!dir || strlen(dir) == 0){ gtk_widget_destroy((GtkWidget*)file_selector); break; @@ -1790,7 +1800,7 @@ void remove_trace(GtkWidget *widget, gpointer user_data) name[i] = g_quark_to_string(ltt_trace_name(trace)); } - remove_trace_name = get_remove_trace(name, nb_trace); + remove_trace_name = get_remove_trace(mw_data, name, nb_trace); if(remove_trace_name){ @@ -2477,7 +2487,8 @@ on_load_library_activate (GtkMenuItem *menuitem, g_ptr_array_add(name, path); } - load_module_path = get_selection((char **)(name->pdata), name->len, + load_module_path = get_selection(mw_data, + (char **)(name->pdata), name->len, "Select a library path", "Library paths"); if(load_module_path != NULL) strncpy(load_module_path_alter, load_module_path, PATH_MAX-1); // -1 for / @@ -2510,6 +2521,9 @@ on_load_library_activate (GtkMenuItem *menuitem, gtk_file_selection_set_filename(file_selector, load_module_path_alter); gtk_file_selection_hide_fileop_buttons(file_selector); + gtk_window_set_transient_for(GTK_WINDOW(file_selector), + GTK_WINDOW(mw_data->mwindow)); + str[0] = '\0'; id = gtk_dialog_run(GTK_DIALOG(file_selector)); switch(id){ @@ -2584,7 +2598,7 @@ on_unload_library_activate (GtkMenuItem *menuitem, gchar *path = lib_info[i].name; g_ptr_array_add(name, path); } - lib_name = get_selection((char **)(name->pdata), name->len, + lib_name = get_selection(mw_data, (char **)(name->pdata), name->len, "Select a library", "Libraries"); if(lib_name != NULL) { for(i=0;ipdata), name->len, + lib_name = get_selection(mw_data,(char **)(name->pdata), name->len, "Select a library", "Libraries"); if(lib_name != NULL) { for(i=0;ipdata), name->len, + module_name = get_selection(mw_data, (char **)(name->pdata), name->len, "Select a module", "Modules"); if(module_name != NULL) { for(i=0;ipdata), name->len, + lib_name = get_selection(mw_data, (char **)(name->pdata), name->len, "Select a library", "Libraries"); if(lib_name != NULL) { for(i=0;i 0) g_ptr_array_add(name, path); } - module_name = get_selection((char **)(name->pdata), name->len, + module_name = get_selection(mw_data, (char **)(name->pdata), name->len, "Select a module", "Modules"); if(module_name != NULL) { for(i=0;ifile_list->parent) ; + + gtk_window_set_transient_for(GTK_WINDOW(file_selector), + GTK_WINDOW(mw_data->mwindow)); + const char * dir; gint id; - MainWindow * mw_data = get_window_data_struct((GtkWidget*)menuitem); if(remember_plugins_dir[0] != '\0') - gtk_dir_selection_set_filename(file_selector, remember_plugins_dir); + gtk_file_selection_set_filename(file_selector, remember_plugins_dir); id = gtk_dialog_run(GTK_DIALOG(file_selector)); switch(id){ case GTK_RESPONSE_ACCEPT: case GTK_RESPONSE_OK: - dir = gtk_dir_selection_get_dir (file_selector); + dir = gtk_file_selection_get_filename (file_selector); strncpy(remember_plugins_dir,dir,PATH_MAX); strncat(remember_plugins_dir,"/",PATH_MAX); lttv_library_path_add(dir); @@ -2891,7 +2911,7 @@ on_remove_library_search_path_activate (GtkMenuItem *menuitem, gchar *path = lttv_library_path_get(i); g_ptr_array_add(name, path); } - lib_path = get_selection((char **)(name->pdata), name->len, + lib_path = get_selection(mw_data, (char **)(name->pdata), name->len, "Select a library path", "Library paths"); g_ptr_array_free(name, TRUE); @@ -2976,7 +2996,7 @@ on_about_activate (GtkMenuItem *menuitem, Contributors :\n\ \n\ Michel Dagenais (New trace format, lttv main)\n\ -Mathieu Desnoyers (Kernel Tracer Directory structure, build with automake/conf,\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\ @@ -3601,6 +3621,8 @@ void current_position_change_manager(Tab *tab, g_assert(lttv_process_traceset_seek_position(tsc, pos) == 0); LttTime new_time = lttv_traceset_context_position_get_time(pos); + /* Put the context in a state coherent position */ + lttv_state_traceset_seek_time_closest((LttvTracesetState*)tsc, ltt_time_zero); current_time_change_manager(tab, new_time); @@ -3723,9 +3745,10 @@ void scroll_value_changed_cb(GtkWidget *scrollbar, /* Select a trace which will be removed from traceset */ -char * get_remove_trace(char ** all_trace_name, int nb_trace) +char * get_remove_trace(MainWindow *mw_data, + char ** all_trace_name, int nb_trace) { - return get_selection(all_trace_name, nb_trace, + return get_selection(mw_data, all_trace_name, nb_trace, "Select a trace", "Trace pathname"); } @@ -3733,9 +3756,10 @@ char * get_remove_trace(char ** all_trace_name, int nb_trace) /* Select a module which will be loaded */ -char * get_load_module(char ** load_module_name, int nb_module) +char * get_load_module(MainWindow *mw_data, + char ** load_module_name, int nb_module) { - return get_selection(load_module_name, nb_module, + return get_selection(mw_data, load_module_name, nb_module, "Select a module to load", "Module name"); } @@ -3745,9 +3769,10 @@ char * get_load_module(char ** load_module_name, int nb_module) /* Select a module which will be unloaded */ -char * get_unload_module(char ** loaded_module_name, int nb_module) +char * get_unload_module(MainWindow *mw_data, + char ** loaded_module_name, int nb_module) { - return get_selection(loaded_module_name, nb_module, + return get_selection(mw_data, loaded_module_name, nb_module, "Select a module to unload", "Module name"); } @@ -3756,8 +3781,9 @@ char * get_unload_module(char ** loaded_module_name, int nb_module) * select one of them */ -char * get_selection(char ** loaded_module_name, int nb_module, - char *title, char * column_title) +char * get_selection(MainWindow *mw_data, + char ** loaded_module_name, int nb_module, + char *title, char * column_title) { GtkWidget * dialogue; GtkWidget * scroll_win; @@ -3777,6 +3803,8 @@ char * get_selection(char ** loaded_module_name, int nb_module, GTK_STOCK_CANCEL,GTK_RESPONSE_REJECT, NULL); gtk_window_set_default_size((GtkWindow*)dialogue, 500, 200); + gtk_window_set_transient_for(GTK_WINDOW(dialogue), + GTK_WINDOW(mw_data->mwindow)); scroll_win = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show ( scroll_win);