method private _cb__remove_opt_button_clicked = fun () ->
let select_around = fun path ->
let rec select_around = fun () ->
if not (path_is_valid sopts_store path) then begin
ignore(GTree.Path.prev path);
if not (path_is_valid sopts_store path) then begin
if GTree.Path.get_depth path > 1 then begin
i_bool (GTree.Path.up path);
i_bool (sopts_store#remove (sopts_store#get_iter path));
select_around ()
end
end
end
in
select_around ();
if GTree.Path.get_depth path > 0 then
sopts_view.sopt_view#selection#select_path path
in
match sopts_view.sopt_view#selection#get_selected_rows with
| [path] ->
let iter = sopts_store#get_iter path in
i_bool (sopts_store#remove iter);
select_around path
| _ ->
()