# # # patch "main.ml" # from [70813e7c9d7f0d58c41579cafa259440cee406e6] # to [8e7e32724f4bd07a10a9c6caee878dfff2b33281] # # patch "ui.ml" # from [5d2ebd801054b92512d011851d90237dcbc33ab5] # to [dc1213e5a0d7abeadbd2c592f0e0a95d031a9e59] # ============================================================ --- main.ml 70813e7c9d7f0d58c41579cafa259440cee406e6 +++ main.ml 8e7e32724f4bd07a10a9c6caee878dfff2b33281 @@ -100,12 +100,19 @@ (!aa, parse_options (Q.to_list !anons)) -let exn_handler parent exn = - Ui.error_notice ~parent - (match exn with - | Viz_types.Error msg -> msg - | exn -> - Printf.sprintf "Uncaught exception: %s" (Printexc.to_string exn)) +let exn_handler ctrl = function + | Sqlite3.Error (Sqlite3.LOCKED, _) -> + () + | exn -> + ctrl#error_notice + begin + match exn with + | Viz_types.Error msg -> msg + | exn -> + Printf.sprintf + "Uncaught exception: %s" + (Printexc.to_string exn) + end let main = let w = GWindow.window @@ -115,12 +122,12 @@ let (aa, mt_options) = parse_cli () in - GtkSignal.user_handler := exn_handler w ; - let prefs = Viz_style.load () in let ctrl = App.make w ~aa ~prefs in + GtkSignal.user_handler := exn_handler ctrl ; + ignore (Glib.Idle.add (fun () -> @@ -135,12 +142,7 @@ ctrl#open_db ~branch fname | MTopt_full (fname, branch, id) -> ctrl#open_db ~id ~branch fname - with - | Viz_types.Error msg -> - ctrl#error_notice msg - | exn -> - ctrl#error_notice - (Printf.sprintf "Unexpected error:\n%s" (Printexc.to_string exn)) + with exn -> exn_handler ctrl exn end ; false)) ; ============================================================ --- ui.ml 5d2ebd801054b92512d011851d90237dcbc33ab5 +++ ui.ml dc1213e5a0d7abeadbd2c592f0e0a95d031a9e59 @@ -312,7 +312,7 @@ vbox#set_border_width 12 ; let hbox = GPack.hbox ~spacing:12 ~border_width:12 ~packing:vbox#pack () in ignore (GMisc.image - ~stock:`DIALOG_INFO + ~stock:`DIALOG_WARNING ~icon_size:`DIALOG ~yalign:0. ~packing:hbox#pack