summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-09-26 19:31:42 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2007-09-26 19:31:42 (GMT)
commit96225dbe966fdbf00ef1a3a1dd801534953c9919 (patch)
treec61a66c84ed6993135f76135a15ec641f9341d09
parenta7cb8f583ff6ef01c23b1694f30e9004271264f9 (diff)
downloadgit-96225dbe966fdbf00ef1a3a1dd801534953c9919.zip
git-96225dbe966fdbf00ef1a3a1dd801534953c9919.tar.gz
git-96225dbe966fdbf00ef1a3a1dd801534953c9919.tar.bz2
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>
-rw-r--r--lib/choose_repository.tcl4
-rw-r--r--lib/status_bar.tcl38
-rw-r--r--po/de.po4
-rw-r--r--po/git-gui.pot2
-rw-r--r--po/hu.po4
-rw-r--r--po/it.po4
-rw-r--r--po/ja.po4
-rw-r--r--po/ru.po4
-rw-r--r--po/zh_cn.po2
9 files changed, 47 insertions, 19 deletions
diff --git a/lib/choose_repository.tcl b/lib/choose_repository.tcl
index 8d3c81e..16bf67c 100644
--- a/lib/choose_repository.tcl
+++ b/lib/choose_repository.tcl
@@ -481,7 +481,7 @@ method _do_clone2 {} {
switch -exact -- $clone_type {
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
$o_cons start \
@@ -780,7 +780,7 @@ method _do_clone_checkout {HEAD} {
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
$o_cons start \
[mc "Creating working directory"] \
diff --git a/lib/status_bar.tcl b/lib/status_bar.tcl
index 769ef81..5c5bf7c 100644
--- a/lib/status_bar.tcl
+++ b/lib/status_bar.tcl
@@ -6,6 +6,7 @@ class status_bar {
field w ; # our own window path
field w_l ; # text widget we draw messages 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 prefix {}; # text we format into status
field units {}; # unit of progress
@@ -24,6 +25,29 @@ constructor new {path} {
-anchor w \
-justify 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]
return $this
@@ -34,13 +58,12 @@ method start {msg uds} {
$w_c coords bar 0 0 0 20
} else {
canvas $w_c \
- -width 100 \
-height [expr {int([winfo reqheight $w_l] * 0.6)}] \
-borderwidth 1 \
-relief groove \
-highlightt 0
$w_c create rectangle 0 0 0 20 -tags bar -fill navy
- pack $w_c -side right
+ eval $c_pack
}
set status $msg
@@ -53,11 +76,16 @@ method update {have total} {
set pdone 0
if {$total > 0} {
set pdone [expr {100 * $have / $total}]
+ set cdone [expr {[winfo width $w_c] * $have / $total}]
}
- set status [mc "%s ... %i of %i %s (%2i%%)" \
- $prefix $have $total $units $pdone]
- $w_c coords bar 0 0 $pdone 20
+ set prec [string length [format %i $total]]
+ set status [mc "%s ... %*i of %*i %s (%3i%%)" \
+ $prefix \
+ $prec $have \
+ $prec $total \
+ $units $pdone]
+ $w_c coords bar 0 0 $cdone 20
}
method update_meter {buf} {
diff --git a/po/de.po b/po/de.po
index 7d57dd1..94b7463 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1350,8 +1350,8 @@ msgstr "Fehler beim Erstellen des Icons:"
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
-msgstr "%s ... %i von %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
+msgstr "%s ... %*i von %*i %s (%3i%%)"
#: lib/transport.tcl:7
#, tcl-format
diff --git a/po/git-gui.pot b/po/git-gui.pot
index 991efea..b352302 100644
--- a/po/git-gui.pot
+++ b/po/git-gui.pot
@@ -1216,7 +1216,7 @@ msgstr ""
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr ""
#: lib/transport.tcl:7
diff --git a/po/hu.po b/po/hu.po
index faac58f..1e189b6 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1344,8 +1344,8 @@ msgstr "Nem sikerült írni az ikont:"
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
-msgstr "%s ... %i / %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
+msgstr "%s ... %*i / %*i %s (%3i%%)"
#: lib/transport.tcl:7
#, tcl-format
diff --git a/po/it.po b/po/it.po
index 17a5c21..ad5cd9e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1344,8 +1344,8 @@ msgstr "Impossibile scrivere icona:"
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
-msgstr "%s ... %i di %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
+msgstr "%s ... %*i di %*i %s (%3i%%)"
#: lib/transport.tcl:7
#, tcl-format
diff --git a/po/ja.po b/po/ja.po
index 1713908..cdbc981 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -1333,8 +1333,8 @@ msgstr "アイコンが書けません:"
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
-msgstr "%1$s ... %3$i %4$s 中の %$2i (%5$2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
+msgstr "%1$s ... %3$*i %4$s 中の %$2*i (%5$3i%%)"
#: lib/transport.tcl:7
#, tcl-format
diff --git a/po/ru.po b/po/ru.po
index c44d30a..2008033 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1434,8 +1434,8 @@ msgstr "Невозможно записать значок:"
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
-msgstr "%s ... %i из %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
+msgstr "%s ... %*i из %*i %s (%3i%%)"
#: lib/transport.tcl:7
#, tcl-format
diff --git a/po/zh_cn.po b/po/zh_cn.po
index 45eb5b5..d1ed94f 100644
--- a/po/zh_cn.po
+++ b/po/zh_cn.po
@@ -1238,7 +1238,7 @@ msgstr ""
#: lib/status_bar.tcl:58
#, tcl-format
-msgid "%s ... %i of %i %s (%2i%%)"
+msgid "%s ... %*i of %*i %s (%3i%%)"
msgstr ""
#: lib/transport.tcl:7