git-gui: convert new/amend commit radiobutton to checkbutton
[gitweb.git] / lib / branch_delete.tcl
index 138e84192c9389e240f1833d2b4223b39e1cc880..a5051637bbc2388c4aab14479ded14d2c41df314 100644 (file)
@@ -9,52 +9,51 @@ field w_check         ; # revision picker for merge test
 field w_delete        ; # delete button
 
 constructor dialog {} {
-       global all_heads current_branch
+       global current_branch use_ttk NS
 
-       make_toplevel top w
-       wm title $top "[appname] ([reponame]): Delete Branch"
+       make_dialog top w
+       wm withdraw $w
+       wm title $top [mc "%s (%s): Delete Branch" [appname] [reponame]]
        if {$top ne {.}} {
                wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
        }
 
-       label $w.header -text {Delete Local Branch} -font font_uibold
+       ${NS}::label $w.header -text [mc "Delete Local Branch"] \
+               -font font_uibold -anchor center
        pack $w.header -side top -fill x
 
-       frame $w.buttons
+       ${NS}::frame $w.buttons
        set w_delete $w.buttons.delete
-       button $w_delete \
-               -text Delete \
+       ${NS}::button $w_delete \
+               -text [mc Delete] \
                -default active \
                -state disabled \
                -command [cb _delete]
        pack $w_delete -side right
-       button $w.buttons.cancel \
-               -text {Cancel} \
+       ${NS}::button $w.buttons.cancel \
+               -text [mc Cancel] \
                -command [list destroy $w]
        pack $w.buttons.cancel -side right -padx 5
        pack $w.buttons -side bottom -fill x -pady 10 -padx 10
 
-       labelframe $w.list -text {Local Branches}
+       ${NS}::labelframe $w.list -text [mc "Local Branches"]
        set w_heads $w.list.l
-       listbox $w_heads \
+       slistbox $w_heads \
                -height 10 \
                -width 70 \
                -selectmode extended \
-               -exportselection false \
-               -yscrollcommand [list $w.list.sby set]
-       scrollbar $w.list.sby -command [list $w.list.l yview]
-       pack $w.list.sby -side right -fill y
+               -exportselection false
        pack $w.list.l -side left -fill both -expand 1
        pack $w.list -fill both -expand 1 -pady 5 -padx 5
 
        set w_check [choose_rev::new \
                $w.check \
-               {Delete Only If Merged Into} \
+               [mc "Delete Only If Merged Into"] \
                ]
-       $w_check none {Always (Do not perform merge test.)}
+       $w_check none [mc "Always (Do not perform merge checks)"]
        pack $w.check -anchor nw -fill x -pady 5 -padx 5
 
-       foreach h $all_heads {
+       foreach h [load_all_heads] {
                if {$h ne $current_branch} {
                        $w_heads insert end $h
                }
@@ -67,6 +66,7 @@ constructor dialog {} {
        "
        bind $w <Key-Escape> [list destroy $w]
        bind $w <Key-Return> [cb _delete]\;break
+       wm deiconify $w
        tkwait window $w
 }
 
@@ -79,8 +79,6 @@ method _select {} {
 }
 
 method _delete {} {
-       global all_heads
-
        if {[catch {set check_cmt [$w_check commit_or_die]}]} {
                return
        }
@@ -102,7 +100,7 @@ method _delete {} {
                lappend to_delete [list $b $o]
        }
        if {$not_merged ne {}} {
-               set msg "The following branches are not completely merged into [$w_check get]:
+               set msg "[mc "The following branches are not completely merged into %s:" [$w_check get]]
 
  - [join $not_merged "\n - "]"
                tk_messageBox \
@@ -114,9 +112,7 @@ method _delete {} {
        }
        if {$to_delete eq {}} return
        if {$check_cmt eq {}} {
-               set msg {Recovering deleted branches is difficult.
-
-Delete the selected branches?}
+               set msg [mc "Recovering deleted branches is difficult.\n\nDelete the selected branches?"]
                if {[tk_messageBox \
                        -icon warning \
                        -type yesno \
@@ -131,13 +127,8 @@ Delete the selected branches?}
        foreach i $to_delete {
                set b [lindex $i 0]
                set o [lindex $i 1]
-               if {[catch {git update-ref -d "refs/heads/$b" $o} err]} {
-                       append failed " - $b: $err\n"
-               } else {
-                       set x [lsearch -sorted -exact $all_heads $b]
-                       if {$x >= 0} {
-                               set all_heads [lreplace $all_heads $x $x]
-                       }
+               if {[catch {git branch -D $b} err]} {
+                       append failed [mc " - %s:" $b] " $err\n"
                }
        }
 
@@ -147,11 +138,9 @@ Delete the selected branches?}
                        -type ok \
                        -title [wm title $w] \
                        -parent $w \
-                       -message "Failed to delete branches:\n$failed"
+                       -message [mc "Failed to delete branches:\n%s" $failed]
        }
 
-       set all_heads [lsort $all_heads]
-       populate_branch_menu
        destroy $w
 }