diff --git a/src/plugins/gui/file_manager.ml b/src/plugins/gui/file_manager.ml index cec5d5568bcd4f32b511967fce6ddd4cba9d595a..dbb6c0b960199bcf6a6d91fbecc186e351d2f07a 100644 --- a/src/plugins/gui/file_manager.ml +++ b/src/plugins/gui/file_manager.ml @@ -171,6 +171,30 @@ let preferences (host_window: Design.main_window_extension_points) = (* Save and cancel buttons. *) let hbox_buttons = dialog#action_area in let packing = hbox_buttons#pack ~expand:true ~padding:3 in + + let reset_box = GPack.vbox ~spacing:5 ~border_width:10 () in + main_box#pack reset_box#coerce; + let reset_packing = reset_box#pack in + let reset_button = GButton.button + ~label:"Reset GUI to factory defaults" ~packing:reset_packing () + in + ignore (reset_button#event#connect#button_release + ~callback:(fun _ -> + let answer = + GToolbox.question_box + ~title:"Reset GUI to factory defaults?" + ~buttons:["Reset GUI" ; "Cancel"] ~default:2 + "This will restore all GUI-related settings \ + to factory defaults,\n\ + including panel sizes and preferences." + in + if answer = 1 then begin + Gtk_helper.Configuration.reset (); + GToolbox.message_box + ~title:"GUI reset" + "GUI reset will take place after restarting Frama-C."; + end; false)); + let wb_ok = GButton.button ~label:"Save" ~packing () in let wb_cancel = GButton.button ~label:"Cancel" ~packing () in wb_ok#grab_default (); diff --git a/src/plugins/gui/gtk_helper.ml b/src/plugins/gui/gtk_helper.ml index 24f8b32bd9b57253fcc8bffd85fe726c751c6ad8..0580f8f605498a7341dd3e77ec5b1106670f7ced 100644 --- a/src/plugins/gui/gtk_helper.ml +++ b/src/plugins/gui/gtk_helper.ml @@ -51,6 +51,8 @@ module Configuration = struct with Gui_parameters.Config.No_dir -> "" let load () = loadConfiguration (configuration_file ()) let save () = saveConfiguration (configuration_file ()) + let reset () = Extlib.safe_remove (configuration_file ()); + loadConfiguration (configuration_file ()) let () = Cmdline.at_normal_exit save let set = setConfiguration diff --git a/src/plugins/gui/gtk_helper.mli b/src/plugins/gui/gtk_helper.mli index c07246254458ee9ab58d18160fa79967b68dd951..13d7715a7e7d0f5e30781cc71be1a312ffa44295 100644 --- a/src/plugins/gui/gtk_helper.mli +++ b/src/plugins/gui/gtk_helper.mli @@ -74,6 +74,7 @@ module Configuration: sig val load : unit -> unit val save : unit -> unit + val reset: unit -> unit val set : string -> configData -> unit (** Set a configuration element, with a key. Overwrites the previous values *)