aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide/ideutils.ml
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2015-02-15 21:02:33 +0100
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2015-02-15 21:15:26 +0100
commit6b5bc2ceb986913bf28a08dadb1e4ef01a595a3b (patch)
treee28dd5aaf812b28f0043577e0ce3cbaf00bfc53a /ide/ideutils.ml
parent1d39965a694698c3df238fc424203c6b77b067e7 (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.ml14
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 ;