ids_to_terms, ids_to_hypotheses, ids_to_father_ids,
Hashtbl.create 1, None));
if BuildTimeConf.debug then begin
- let name = "sequent_viewer.xml" in
+ let name =
+ "/tmp/sequent_viewer_" ^ string_of_int (Unix.getuid ()) ^ ".xml" in
HLog.debug ("load_sequent: dumping MathML to ./" ^ name);
ignore (domImpl#saveDocumentToFile ~name ~doc:mathml ())
end;
self#thaw
| _ ->
if BuildTimeConf.debug then begin
- let name = "cic_browser.xml" in
+ let name =
+ "/tmp/cic_browser_" ^ string_of_int (Unix.getuid ()) ^ ".xml" in
HLog.debug ("cic_browser: dumping MathML to ./" ^ name);
ignore (domImpl#saveDocumentToFile ~name ~doc:mathml ())
end;
let load_easter_egg = lazy (
win#browserImage#set_file (MatitaMisc.image_path "meegg.png"))
in
- let load_coerchgraph () =
+ let load_coerchgraph tred () =
let str = CoercGraph.generate_dot_file () in
let filename, oc = Filename.open_temp_file "matita" ".dot" in
output_string oc str;
close_out oc;
- gviz#load_graph_from_file filename;
+ if tred then
+ gviz#load_graph_from_file ~gviz_cmd:"tred|dot" filename
+ else
+ gviz#load_graph_from_file filename;
HExtlib.safe_remove filename
in
object (self)
match self#currentCicUri with
| Some uri -> self#load (`Metadata (`Deps (`Back, uri)))
| None -> ());
+ connect_menu_item win#hBugsTutorsMenuItem (fun () ->
+ self#load (`HBugs `Tutors));
+ connect_menu_item win#browserUrlMenuItem (fun () ->
+ win#browserUri#entry#misc#grab_focus ());
(* fill dep graph contextual menu *)
let go_menu_item =
*
* Use only these functions to switch between the tabs
*)
- method private _showMath = win#mathOrListNotebook#goto_page 0
- method private _showList = win#mathOrListNotebook#goto_page 1
- method private _showGviz = win#mathOrListNotebook#goto_page 3
+ method private _showMath = win#mathOrListNotebook#goto_page 0
+ method private _showList = win#mathOrListNotebook#goto_page 1
+ method private _showGviz = win#mathOrListNotebook#goto_page 3
+ method private _showHBugs = win#mathOrListNotebook#goto_page 4
method private back () =
try
method private _load ?(force=false) entry =
handle_error (fun () ->
if entry <> current_entry || entry = `About `Current_proof || entry =
- `About `Coercions || force then
+ `About `Coercions || entry = `About `CoercionsFull || force then
begin
(match entry with
| `About `Current_proof -> self#home ()
| `About `Blank -> self#blank ()
| `About `Us -> self#egg ()
- | `About `Coercions -> self#coerchgraph ()
+ | `About `CoercionsFull -> self#coerchgraph false ()
+ | `About `Coercions -> self#coerchgraph true ()
| `Check term -> self#_loadCheck term
| `Cic (term, metasenv) -> self#_loadTermCic term metasenv
| `Development d -> self#_showDevelDeps d
| `Dir dir -> self#_loadDir dir
+ | `HBugs `Tutors -> self#_loadHBugsTutors
| `Metadata (`Deps ((`Fwd | `Back) as dir, uri)) ->
self#dependencies dir uri ()
| `Uri uri -> self#_loadUriManagerUri uri
self#redraw_gviz ~center_on:uri ();
self#_showGviz
- method private coerchgraph () =
- load_coerchgraph ();
+ method private coerchgraph tred () =
+ load_coerchgraph tred ();
self#_showGviz
method private home () =
lastDir <- dir;
self#_loadList l
+ method private _loadHBugsTutors =
+ self#_showHBugs
+
method private setEntry entry =
win#browserUri#entry#set_text (MatitaTypes.string_of_entry entry);
current_entry <- entry
`Uri (UriManager.uri_of_string ((*fix_uri*) txt))
| txt when is_dir txt -> `Dir (MatitaMisc.normalize_dir txt)
| txt when is_metadata txt -> `Metadata (parse_metadata txt)
+ | "hbugs:/tutors/" -> `HBugs `Tutors
| txt ->
(try
MatitaTypes.entry_of_string txt