diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2015-02-15 21:02:33 +0100 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2015-02-15 21:15:26 +0100 |
commit | 6b5bc2ceb986913bf28a08dadb1e4ef01a595a3b (patch) | |
tree | e28dd5aaf812b28f0043577e0ce3cbaf00bfc53a /ide/ideutils.ml | |
parent | 1d39965a694698c3df238fc424203c6b77b067e7 (diff) |
CoqIDE now remembers the path of the last opened project.
Fixes bug #2762.
Diffstat (limited to 'ide/ideutils.ml')
-rw-r--r-- | ide/ideutils.ml | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/ide/ideutils.ml b/ide/ideutils.ml index 84ef8f40d..473b8dc82 100644 --- a/ide/ideutils.ml +++ b/ide/ideutils.ml @@ -132,8 +132,6 @@ let mktimer () = with Glib.GError _ -> ()); timer := None) } -let last_dir = ref "" - let filter_all_files () = GFile.filter ~name:"All" ~patterns:["*"] () @@ -142,6 +140,10 @@ let filter_coq_files () = GFile.filter ~name:"Coq source code" ~patterns:[ "*.v"] () +let current_dir () = match current.project_path with +| None -> "" +| Some dir -> dir + let select_file_for_open ~title () = let file = ref None in let file_chooser = @@ -152,14 +154,14 @@ let select_file_for_open ~title () = file_chooser#add_filter (filter_coq_files ()); file_chooser#add_filter (filter_all_files ()); file_chooser#set_default_response `OPEN; - ignore (file_chooser#set_current_folder !last_dir); + ignore (file_chooser#set_current_folder (current_dir ())); begin match file_chooser#run () with | `OPEN -> begin file := file_chooser#filename; match !file with | None -> () - | Some s -> last_dir := Filename.dirname s; + | Some s -> current.project_path <- file_chooser#current_folder end | `DELETE_EVENT | `CANCEL -> () end ; @@ -178,7 +180,7 @@ let select_file_for_save ~title ?filename () = file_chooser#set_do_overwrite_confirmation true; file_chooser#set_default_response `SAVE; let dir,filename = match filename with - |None -> !last_dir, "" + |None -> current_dir (), "" |Some f -> Filename.dirname f, Filename.basename f in ignore (file_chooser#set_current_folder dir); @@ -189,7 +191,7 @@ let select_file_for_save ~title ?filename () = file := file_chooser#filename; match !file with None -> () - | Some s -> last_dir := Filename.dirname s; + | Some s -> current.project_path <- file_chooser#current_folder end | `DELETE_EVENT | `CANCEL -> () end ; |