method cvs_add_dir =
      let sel = view#selection in
      match sel#get_selected_rows with
        [] -> ()
      |        row :: _ ->
          let it = store#get_iter row in
          let dir = store#get ~row: it ~column: col_complete in
          (
           match GToolbox.select_file ~dir: (ref dir) ~title: Ocvs_messages.add_dir () with
             Some new_d ->
               (
                try
                  if file_exists new_d then
                    (
                     behav#cvs_add_dir new_d;
                     if is_prefix dir new_d then
                       self#update_selected_dir
                     else
                       self#update
                    )
                  else
                    (* ask for confirmation to create the directory *)
                    match GToolbox.question_box
                        ~title: Ocvs_messages.add_dir
                        ~buttons: [ Ocvs_messages.mYes ; Ocvs_messages.mNo ]
                        (Ocvs_messages.should_create_dir new_d)
                    with
                      1 ->
                        behav#cvs_create_and_add_dir new_d;
                        if is_prefix dir new_d then
                          self#update_selected_dir
                        else
                          self#update
                    | _ ->
                        ()
                with
                  Failure s ->
                    GToolbox.message_box Ocvs_messages.error s
               )
           | None ->
               ()
          )