]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaGui.ml
new signature of auto_tac, with a new optional argument "full", to invoke the
[helm.git] / helm / matita / matitaGui.ml
index 153d474abe09b6a5e22baff307ebcaac3cc0283a..8351426f88702e4191141634596cafd1c2323c6a 100644 (file)
@@ -67,7 +67,8 @@ let clean_current_baseuri status =
 
 let ask_and_save_moo_if_needed parent fname status = 
   let save () =
-    MatitacLib.dump_moo_to_file fname status.MatitaTypes.moo_content_rev in
+    let moo_fname = MatitaMisc.obj_file_of_script fname in
+    MatitaMoo.save_moo moo_fname status.MatitaTypes.moo_content_rev in
   if (MatitaScript.instance ())#eos &&
      status.MatitaTypes.proof_status = MatitaTypes.No_proof
   then
@@ -171,9 +172,7 @@ class gui () =
         (*~comments:"comments"*)
         ~copyright:"Copyright (C) 2005, the HELM team"
         ~license:(String.concat "\n" (parse_txt_file "LICENSE"))
-        ~logo:
-          (GdkPixbuf.from_file
-            (BuildTimeConf.runtime_base_dir ^ "/logo/matita_medium.png"))
+        ~logo:(GdkPixbuf.from_file (MatitaMisc.image_path "/matita_medium.png"))
         ~name:"Matita"
         ~version:BuildTimeConf.version
         ~website:"http://helm.cs.unibo.it"
@@ -396,7 +395,7 @@ class gui () =
       let get_devel_selected () = 
         match model#easy_mselection () with
         | [[name;_]] -> MatitamakeLib.development_for_name name
-        | _ -> assert false 
+        | _ -> None
       in
       let refresh () = 
         while Glib.Main.pending () do 
@@ -496,9 +495,9 @@ class gui () =
             let fname = fileSel#fileSelectionWin#filename in
             if Sys.file_exists fname then
               begin
-                if is_regular fname && not(_only_directory) then 
+                if HExtlib.is_regular fname && not (_only_directory) then 
                   return (Some fname) 
-                else if _only_directory && is_dir fname then 
+                else if _only_directory && HExtlib.is_dir fname then 
                   return (Some fname)
               end
             else
@@ -550,7 +549,7 @@ class gui () =
         (tac_w_term (A.Transitivity (loc, hole)));
       connect_button tbar#assumptionButton (tac (A.Assumption loc));
       connect_button tbar#cutButton (tac_w_term (A.Cut (loc, None, hole)));
-      connect_button tbar#autoButton (tac (A.Auto (loc,None,None,None)));
+      connect_button tbar#autoButton (tac (A.Auto (loc,None,None,None,None)));
       MatitaGtkMisc.toggle_widget_visibility
        ~widget:(main#tacticsButtonsHandlebox :> GObj.widget)
        ~check:main#tacticsBarMenuItem;
@@ -568,7 +567,10 @@ class gui () =
         (* log *)
       MatitaLog.set_log_callback self#console#log_callback;
       GtkSignal.user_handler :=
-        (fun exn -> MatitaLog.error (MatitaExcPp.to_string exn));
+        (fun exn ->
+          if Helm_registry.get_bool "matita.catch_top_level_exn" then
+            MatitaLog.error (MatitaExcPp.to_string exn)
+          else raise exn);
         (* script *)
       let _ =
         match GSourceView.source_language_from_file BuildTimeConf.lang_file with
@@ -606,19 +608,19 @@ class gui () =
         let script = s () in 
         let status = script#status in
         try 
-          if source_view#buffer#modified then
-            begin
-              match ask_unsaved main#toplevel with
-              | `YES -> saveScript ()
-              | `NO -> ()
-              | `CANCEL -> raise MatitaTypes.Cancel
-            end;
-          (match script_fname with
-          | None -> ()
-          | Some fname -> 
-              ask_and_save_moo_if_needed main#toplevel fname status);
           match self#chooseFile () with
           | Some f -> 
+                if source_view#buffer#modified then
+                  begin
+                    match ask_unsaved main#toplevel with
+                    | `YES -> saveScript ()
+                    | `NO -> ()
+                    | `CANCEL -> raise MatitaTypes.Cancel
+                  end;
+                (match script_fname with
+                | None -> ()
+                | Some fname -> 
+                    ask_and_save_moo_if_needed main#toplevel fname status);
                 script#reset (); 
                 script#assignFileName f;
                 source_view#source_buffer#begin_not_undoable_action ();
@@ -1057,9 +1059,7 @@ let interactive_interp_choice () choices =
   let selection = dialog#interpChoiceTreeView#selection in
   ignore (selection#connect#changed (fun _ ->
     match selection#get_selected_rows with
-    | [path] ->
-        MatitaLog.debug (sprintf "selection: %d" (model#get_interp_no path));
-        interp_no := Some (model#get_interp_no path)
+    | [path] -> interp_no := Some (model#get_interp_no path)
     | _ -> assert false));
   dialog#interpChoiceDialog#show ();
   GtkThread.main ();