diff --git a/Common/Views.cpp b/Common/Views.cpp index 23786f02058f66a52107ce9da0175e899d9fbff2..8179eb42e82dedb160d595123c7a6af95d1d8d8f 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.157 2004-12-29 04:14:27 geuzaine Exp $ +// $Id: Views.cpp,v 1.158 2004-12-30 00:30:04 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -426,7 +426,7 @@ void EndView(Post_View * v, int add_in_gui, char *file_name, char *name) v->smooth(); #if defined(HAVE_FLTK) - if(!CTX.post.force_num && add_in_gui) + if(add_in_gui) UpdateViewsInGUI(); #endif @@ -984,7 +984,8 @@ void ReadView(FILE *file, char *filename) List_Nbr(v->T2D), List_Nbr(v->T2C), List_Nbr(v->T3D), List_Nbr(v->T3C)); - EndView(v, 1, filename, name); + // don't update the ui after each view, but only at the end + EndView(v, 0, filename, name); } do { @@ -995,6 +996,10 @@ void ReadView(FILE *file, char *filename) } /* while 1 ... */ +#if defined(HAVE_FLTK) + UpdateViewsInGUI(); +#endif + Msg(INFO, "Read post-processing file '%s'", filename); Msg(STATUS2N, "Read '%s'", filename); } diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 160a6255ba1ada01fc677472835c51f04cd789db..a68539e7665c4be392df1840b0d05a4d9c73ec49 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -1,5 +1,5 @@ %{ -// $Id: Gmsh.y,v 1.190 2004-12-27 01:13:57 geuzaine Exp $ +// $Id: Gmsh.y,v 1.191 2004-12-30 00:30:04 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -440,13 +440,15 @@ Printf : View : tSTRING tBIGSTR '{' Views '}' tEND { - if(!strcmp($1, "View") && !CheckViewErrorFlags(View)) - EndView(View, 1, yyname, $2); + if(!strcmp($1, "View") && !CheckViewErrorFlags(View)){ + EndView(View, 0, yyname, $2); + } } | tSTRING tBIGSTR tSTRING VExpr '{' Views '}' tEND { - if(!strcmp($1, "View") && !CheckViewErrorFlags(View)) - EndView(View, 1, yyname, $2); + if(!strcmp($1, "View") && !CheckViewErrorFlags(View)){ + EndView(View, 0, yyname, $2); + } } ; @@ -2392,6 +2394,10 @@ Delete : if(v->empty()) RemoveViewByIndex(i); } +#if defined(HAVE_FLTK) + if(!CTX.batch) + UpdateViewsInGUI(); +#endif } else{ yymsg(GERROR, "Unknown command 'Delete %s %s'", $2, $3); diff --git a/Parser/OpenFile.cpp b/Parser/OpenFile.cpp index 58d10763c700082c9601915252e28ff339643e07..e692c0c285aed6c486520cb08e3e850549f73953 100644 --- a/Parser/OpenFile.cpp +++ b/Parser/OpenFile.cpp @@ -1,4 +1,4 @@ -// $Id: OpenFile.cpp,v 1.66 2004-11-25 02:10:40 geuzaine Exp $ +// $Id: OpenFile.cpp,v 1.67 2004-12-30 00:30:04 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -42,6 +42,7 @@ #include "Draw.h" #include "GUI.h" extern GUI *WID; +void UpdateViewsInGUI(); #endif extern Mesh *THEM, M; @@ -117,7 +118,7 @@ int ParseFile(char *f, int silent, int close, int warn_if_missing) { char yyname_old[256], tmp[256]; FILE *yyin_old, *fp; - int yylineno_old, yyerrorstate_old, status; + int yylineno_old, yyerrorstate_old, numviews_old, status; if(!(fp = fopen(f, "r"))){ if(warn_if_missing) @@ -129,7 +130,8 @@ int ParseFile(char *f, int silent, int close, int warn_if_missing) yyin_old = yyin; yyerrorstate_old = yyerrorstate; yylineno_old = yylineno; - + numviews_old = List_Nbr(CTX.post.list); + strncpy(yyname, f, 255); yyin = fp; yyerrorstate = 0; @@ -171,6 +173,12 @@ int ParseFile(char *f, int silent, int close, int warn_if_missing) yyerrorstate = yyerrorstate_old; yylineno = yylineno_old; + if(List_Nbr(CTX.post.list) > numviews_old){ +#if defined(HAVE_FLTK) + UpdateViewsInGUI(); +#endif + } + GMSH_Solve_Plugin *sp = GMSH_PluginManager::instance()->findSolverPlugin(); if(sp) { sp->readSolverFile(f);