git-gui: Make the status bar easier to read in the setup wizard

The setup wizard looks better if we layout the progress bar as
two lines:  the first line holds the message text and our text
formatting of the progress while the second line holds the bar
itself.  Both extend the full width of the window and we try to
pad out the message text so the window doesn't expand when the
completed progress number jumps to the next order of magnitude.

This change required updating the progress meter format string
to allow the application to supply the precision.  So we also
are updating all of the translations at once to use the newer
formatting string.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Shawn O. Pearce 2007-09-26 15:31:42 -04:00
Родитель a7cb8f583f
Коммит 96225dbe96
9 изменённых файлов: 47 добавлений и 19 удалений

Просмотреть файл

@ -481,7 +481,7 @@ method _do_clone2 {} {
switch -exact -- $clone_type { switch -exact -- $clone_type {
hardlink { hardlink {
set o_cons [status_bar::new $w_body] set o_cons [status_bar::two_line $w_body]
pack $w_body -fill x -padx 10 -pady 10 pack $w_body -fill x -padx 10 -pady 10
$o_cons start \ $o_cons start \
@ -780,7 +780,7 @@ method _do_clone_checkout {HEAD} {
return return
} }
set o_cons [status_bar::new $w_body] set o_cons [status_bar::two_line $w_body]
pack $w_body -fill x -padx 10 -pady 10 pack $w_body -fill x -padx 10 -pady 10
$o_cons start \ $o_cons start \
[mc "Creating working directory"] \ [mc "Creating working directory"] \

Просмотреть файл

@ -6,6 +6,7 @@ class status_bar {
field w ; # our own window path field w ; # our own window path
field w_l ; # text widget we draw messages into field w_l ; # text widget we draw messages into
field w_c ; # canvas we draw a progress bar into field w_c ; # canvas we draw a progress bar into
field c_pack ; # script to pack the canvas with
field status {}; # single line of text we show field status {}; # single line of text we show
field prefix {}; # text we format into status field prefix {}; # text we format into status
field units {}; # unit of progress field units {}; # unit of progress
@ -24,6 +25,29 @@ constructor new {path} {
-anchor w \ -anchor w \
-justify left -justify left
pack $w_l -side left pack $w_l -side left
set c_pack [cb _oneline_pack]
bind $w <Destroy> [cb _delete %W]
return $this
}
method _oneline_pack {} {
$w_c conf -width 100
pack $w_c -side right
}
constructor two_line {path} {
set w $path
set w_l $w.l
set w_c $w.c
frame $w
label $w_l \
-textvariable @status \
-anchor w \
-justify left
pack $w_l -anchor w -fill x
set c_pack [list pack $w_c -fill x]
bind $w <Destroy> [cb _delete %W] bind $w <Destroy> [cb _delete %W]
return $this return $this
@ -34,13 +58,12 @@ method start {msg uds} {
$w_c coords bar 0 0 0 20 $w_c coords bar 0 0 0 20
} else { } else {
canvas $w_c \ canvas $w_c \
-width 100 \
-height [expr {int([winfo reqheight $w_l] * 0.6)}] \ -height [expr {int([winfo reqheight $w_l] * 0.6)}] \
-borderwidth 1 \ -borderwidth 1 \
-relief groove \ -relief groove \
-highlightt 0 -highlightt 0
$w_c create rectangle 0 0 0 20 -tags bar -fill navy $w_c create rectangle 0 0 0 20 -tags bar -fill navy
pack $w_c -side right eval $c_pack
} }
set status $msg set status $msg
@ -53,11 +76,16 @@ method update {have total} {
set pdone 0 set pdone 0
if {$total > 0} { if {$total > 0} {
set pdone [expr {100 * $have / $total}] set pdone [expr {100 * $have / $total}]
set cdone [expr {[winfo width $w_c] * $have / $total}]
} }
set status [mc "%s ... %i of %i %s (%2i%%)" \ set prec [string length [format %i $total]]
$prefix $have $total $units $pdone] set status [mc "%s ... %*i of %*i %s (%3i%%)" \
$w_c coords bar 0 0 $pdone 20 $prefix \
$prec $have \
$prec $total \
$units $pdone]
$w_c coords bar 0 0 $cdone 20
} }
method update_meter {buf} { method update_meter {buf} {

Просмотреть файл

@ -1350,8 +1350,8 @@ msgstr "Fehler beim Erstellen des Icons:"
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "%s ... %i von %i %s (%2i%%)" msgstr "%s ... %*i von %*i %s (%3i%%)"
#: lib/transport.tcl:7 #: lib/transport.tcl:7
#, tcl-format #, tcl-format

Просмотреть файл

@ -1216,7 +1216,7 @@ msgstr ""
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "" msgstr ""
#: lib/transport.tcl:7 #: lib/transport.tcl:7

Просмотреть файл

@ -1344,8 +1344,8 @@ msgstr "Nem sikerült írni az ikont:"
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "%s ... %i / %i %s (%2i%%)" msgstr "%s ... %*i / %*i %s (%3i%%)"
#: lib/transport.tcl:7 #: lib/transport.tcl:7
#, tcl-format #, tcl-format

Просмотреть файл

@ -1344,8 +1344,8 @@ msgstr "Impossibile scrivere icona:"
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "%s ... %i di %i %s (%2i%%)" msgstr "%s ... %*i di %*i %s (%3i%%)"
#: lib/transport.tcl:7 #: lib/transport.tcl:7
#, tcl-format #, tcl-format

Просмотреть файл

@ -1333,8 +1333,8 @@ msgstr "アイコンが書けません:"
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "%1$s ... %3$i %4$s 中の %$2i (%5$2i%%)" msgstr "%1$s ... %3$*i %4$s 中の %$2*i (%5$3i%%)"
#: lib/transport.tcl:7 #: lib/transport.tcl:7
#, tcl-format #, tcl-format

Просмотреть файл

@ -1434,8 +1434,8 @@ msgstr "Невозможно записать значок:"
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "%s ... %i из %i %s (%2i%%)" msgstr "%s ... %*i из %*i %s (%3i%%)"
#: lib/transport.tcl:7 #: lib/transport.tcl:7
#, tcl-format #, tcl-format

Просмотреть файл

@ -1238,7 +1238,7 @@ msgstr ""
#: lib/status_bar.tcl:58 #: lib/status_bar.tcl:58
#, tcl-format #, tcl-format
msgid "%s ... %i of %i %s (%2i%%)" msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr "" msgstr ""
#: lib/transport.tcl:7 #: lib/transport.tcl:7