chiark / gitweb /
more flexible approval UI
authorIan Jackson <ian@liberator.relativity.greenend.org.uk>
Fri, 3 Jul 2009 19:11:42 +0000 (20:11 +0100)
committerIan Jackson <ian@liberator.relativity.greenend.org.uk>
Fri, 3 Jul 2009 19:11:42 +0000 (20:11 +0100)
pctb/dictionary-manager

index 5d8ea10..911cb63 100755 (executable)
@@ -1153,7 +1153,7 @@ proc string2unicodenames {str} {
 }
 
 proc approve_showentry {ix file specdata} {
-    global approve_ixes reqkind
+    global approve_ixes reqkind approve_entryhow
     
     approve_decompose_data $specdata
 
@@ -1185,9 +1185,14 @@ proc approve_showentry {ix file specdata} {
        grid configure $wb-div -columnspan 5 -sticky ew -padx 5
     }
 
-    frame $wb-act
-    button $wb-act.rej -text Reject -command [list approve_reject $ix]
-    pack $wb-act.rej
+    frame $wb-act -bd 2 -relief groove
+    set approve_entryhow($ix) approve
+    foreach how {approve reject defer} {
+       set w $wb-act.$how
+       radiobutton $w -variable approve_entryhow($ix) \
+           -text [string totitle $how] -value $how
+       pack $w -side left
+    }
 
     grid $wb-def $wb-image $wb-xinfo $wb-act $wb-inf -padx 3
     grid configure $wb-image -ipadx 3 -ipady 3 -sticky w
@@ -1216,16 +1221,18 @@ proc approve_check_server {} {
     must_gets_exactly_server ok
 }
 
-proc approve_reject {ix} {
+proc approve_confirm {} {
+    global approve_ixes approve_entryhow
     approve_check_server
-    approve_approve_reject_one $ix 0
-    approve_fetch_list
-}
-
-proc approve_these {} {
-    global approve_ixes
-    approve_check_server
-    foreach ix $approve_ixes { approve_approve_reject_one $ix 1 }
+    foreach ix $approve_ixes {
+       set how $approve_entryhow($ix)
+       switch -exact $how {
+           approve { approve_approve_reject_one $ix 1 }
+           reject  { approve_approve_reject_one $ix 0 }
+           defer   { }
+           default { error $how? }
+       }
+    }
     approve_fetch_list
 }
 
@@ -1279,7 +1286,7 @@ proc main/approve {} {
 
     label .title -text {}
     frame .app -bd 2 -relief groove
-    button .ok -text "Approve These" -command approve_these
+    button .ok -text "Confirm" -command approve_confirm
     pack .title .app -side top
     pack .left -side left
     pack .right -side right