]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/termViewer.ml
- the mathql interpreter is not helm-dependent any more
[helm.git] / helm / gTopLevel / termViewer.ml
index a54db659d60c8bab686eb021ae20ecc9807a611d..be755821ef29f79ecd0f85b9aa5bff3e002f6a46 100644 (file)
@@ -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) ;
@@ -229,7 +231,27 @@ class proof_viewer obj =
              let time3 = Sys.time () in
              (* ignore (Misc.domImpl#saveDocumentToFile mml "tmp1" ()); *)
              prerr_endline "(******** FINE DOM **********)";
-             self#load_doc ~dom:mml;
+             (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";