X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtermViewer.ml;h=be755821ef29f79ecd0f85b9aa5bff3e002f6a46;hb=60f8a4de1287ea04ee5722460bdc6ff16a3eb4be;hp=192bbb413b6d203eddfc48c1faa06d3c22670af8;hpb=f7b2e35a7bdadb4fdf0e640428e694703ddf67a5;p=helm.git diff --git a/helm/gTopLevel/termViewer.ml b/helm/gTopLevel/termViewer.ml index 192bbb413..be755821e 100644 --- a/helm/gTopLevel/termViewer.ml +++ b/helm/gTopLevel/termViewer.ml @@ -33,7 +33,7 @@ (* *) (******************************************************************************) -let use_stylesheets = ref true;;(* false performs the transformations in OCaml*) +let use_stylesheets = ref false;;(* false performs the transformations in OCaml*) (* List utility functions *) exception Skip;; @@ -150,6 +150,7 @@ class proof_viewer obj = initializer self#set_font_size 10 val mutable current_infos = None + val mutable current_mml = None method make_sequent_of_selected_term = match self#get_selection with @@ -202,6 +203,7 @@ class proof_viewer obj = ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types in self#load_doc ~dom:mml ; + current_mml <- Some mml ; current_infos <- Some (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ; @@ -210,23 +212,12 @@ class proof_viewer obj = Cic.ACurrentProof (id,idbody,n,conjectures,bo,ty,params) -> let time1 = Sys.time () in let content = - Cic2content.acic2content - (ref 0) ~name:(Some "prova") ~ids_to_inner_sorts - ~ids_to_inner_types bo in - let content2pres = - (Content2pres.proof2pres - (function p -> - (Cexpr2pres.cexpr2pres_charcount - (Content_expressions.acic2cexpr ids_to_inner_sorts p)))) in - let pres = content2pres content in + Cic2content.annobj2content + ~ids_to_inner_sorts ~ids_to_inner_types acic in + let pres = Content2pres.content2pres ~ids_to_inner_sorts content in let time2 = Sys.time () in (* prerr_endline ("Fine trasformazione:" ^ (string_of_float (time2 -. time1))); *) - let xmlpres = - Xml.xml_nempty "math" - ["xmlns","http://www.w3.org/1998/Math/MathML" ; - "xmlns:helm","http://www.cs.unibo.it/helm" ; - "xmlns:xlink","http://www.w3.org/1999/xlink" - ] (Mpresentation.print_mpres pres) in + let xmlpres = Mpresentation.print_mpres pres in let time25 = Sys.time () in (* prerr_endline ("FINE printing to stream:" ^ (string_of_float (time25 -. time2))); @@ -235,12 +226,32 @@ class proof_viewer obj = prerr_endline ("FINE valutazione e printing dello stream:" ^ (string_of_float (time3 -. time25))); *) (try - (* prerr_endline "(******** INIZIO DOM **********)"; *) - let mml = Xml2Gdomexmath.document_of_xml Misc.domImpl xmlpres in + prerr_endline "(******** INIZIO DOM **********)"; + let mml = Xml2Gdome.document_of_xml Misc.domImpl xmlpres in let time3 = Sys.time () in (* ignore (Misc.domImpl#saveDocumentToFile mml "tmp1" ()); *) - (* prerr_endline "(******** FINE DOM **********)"; *) - self#load_doc ~dom:mml; + prerr_endline "(******** FINE DOM **********)"; + (match current_mml with + None -> + let time1 = Sys.time () in + self#load_doc ~dom:mml ; + let time2 = Sys.time () in + prerr_endline ("Loading and displaying the proof took " ^ string_of_float (time2 -. time1) ^ "seconds") ; + current_mml <- Some mml + | Some current_mml' -> + self#freeze ; + let time1 = Sys.time () in + XmlDiff.update_dom ~from:current_mml' mml ; + let time2 = Sys.time () in + prerr_endline ("XMLDIFF took " ^ string_of_float (time2 -. time1) ^ "seconds") ; + self#thaw ; + let time3 = Sys.time () in + prerr_endline ("The refresh of the widget took " ^ string_of_float (time3 -. time2) ^ "seconds") + ) ; +(* + self#load_doc ~dom:mml ; + current_mml <- Some mml ; +*) prerr_endline ("Fine loading:" ^ (string_of_float (time3 -. time2))) (* self#load_uri "tmp";