@ -30,14 +30,11 @@ constructor pick {} {
menu $w.mbar -tearoff 0
menu $w.mbar -tearoff 0
$top configure -menu $w.mbar
$top configure -menu $w.mbar
set m_repo $w.mbar.repository
$w.mbar add cascade \
$w.mbar add cascade \
-label [mc Repository] \
-label [mc Repository] \
-menu $w.mbar.repository
-menu $m_repo
menu $w.mbar.repository
menu $m_repo
$w.mbar.repository add command \
-label [mc Quit] \
-command exit \
-accelerator $M1T-Q
if {[is_MacOSX]} {
if {[is_MacOSX]} {
$w.mbar add cascade -label [mc Apple] -menu .mbar.apple
$w.mbar add cascade -label [mc Apple] -menu .mbar.apple
@ -60,6 +57,7 @@ constructor pick {} {
} else {
} else {
wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
wm geometry $top "+[winfo rootx .]+[winfo rooty .]"
bind $top <Key-Escape> [list destroy $top]
bind $top <Key-Escape> [list destroy $top]
set m_repo {}
}
}
pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10
pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10
@ -81,19 +79,44 @@ constructor pick {} {
$opts tag bind link_new <1> [cb _next new]
$opts tag bind link_new <1> [cb _next new]
$opts insert end [mc "Create New Repository"] link_new
$opts insert end [mc "Create New Repository"] link_new
$opts insert end "\n"
$opts insert end "\n"
if {$m_repo ne {}} {
$m_repo add command \
-command [cb _next new] \
-accelerator $M1T-N \
-label [mc "New..."]
}
$opts tag conf link_clone -foreground blue -underline 1
$opts tag conf link_clone -foreground blue -underline 1
$opts tag bind link_clone <1> [cb _next clone]
$opts tag bind link_clone <1> [cb _next clone]
$opts insert end [mc "Clone Existing Repository"] link_clone
$opts insert end [mc "Clone Existing Repository"] link_clone
$opts insert end "\n"
$opts insert end "\n"
if {$m_repo ne {}} {
$m_repo add command \
-command [cb _next clone] \
-accelerator $M1T-C \
-label [mc "Clone..."]
}
$opts tag conf link_open -foreground blue -underline 1
$opts tag conf link_open -foreground blue -underline 1
$opts tag bind link_open <1> [cb _next open]
$opts tag bind link_open <1> [cb _next open]
$opts insert end [mc "Open Existing Repository"] link_open
$opts insert end [mc "Open Existing Repository"] link_open
$opts insert end "\n"
$opts insert end "\n"
if {$m_repo ne {}} {
$m_repo add command \
-command [cb _next open] \
-accelerator $M1T-O \
-label [mc "Open..."]
}
set sorted_recent [_get_recentrepos]
set sorted_recent [_get_recentrepos]
if {[llength $sorted_recent] > 0} {
if {[llength $sorted_recent] > 0} {
if {$m_repo ne {}} {
$m_repo add separator
$m_repo add command \
-state disabled \
-label [mc "Recent Repositories"]
}
label $w_body.space
label $w_body.space
label $w_body.recentlabel \
label $w_body.recentlabel \
-anchor w \
-anchor w \
@ -112,12 +135,19 @@ constructor pick {} {
set home "[file normalize $::env(HOME)][file separator]"
set home "[file normalize $::env(HOME)][file separator]"
set hlen [string length $home]
set hlen [string length $home]
foreach p $sorted_recent {
foreach p $sorted_recent {
set path $p
if {[string equal -length $hlen $home $p]} {
if {[string equal -length $hlen $home $p]} {
set p "~[file separator][string range $p $hlen end]"
set p "~[file separator][string range $p $hlen end]"
}
}
regsub -all "\n" $p "\\n" p
regsub -all "\n" $p "\\n" p
$w_recentlist insert end $p link
$w_recentlist insert end $p link
$w_recentlist insert end "\n"
$w_recentlist insert end "\n"
if {$m_repo ne {}} {
$m_repo add command \
-command [cb _open_recent_path $path] \
-label " $p"
}
}
}
$w_recentlist conf -state disabled
$w_recentlist conf -state disabled
$w_recentlist tag bind link <1> [cb _open_recent %x,%y]
$w_recentlist tag bind link <1> [cb _open_recent %x,%y]
@ -136,6 +166,14 @@ constructor pick {} {
pack $w_quit -side right -padx 5
pack $w_quit -side right -padx 5
pack $w.buttons -side bottom -fill x -padx 10 -pady 10
pack $w.buttons -side bottom -fill x -padx 10 -pady 10
if {$m_repo ne {}} {
$m_repo add separator
$m_repo add command \
-label [mc Quit] \
-command exit \
-accelerator $M1T-Q
}
bind $top <Return> [cb _invoke_next]
bind $top <Return> [cb _invoke_next]
bind $top <Visibility> "
bind $top <Visibility> "
[cb _center]
[cb _center]
@ -217,6 +255,11 @@ method _open_recent {xy} {
_do_open2 $this
_do_open2 $this
}
}
method _open_recent_path {p} {
set local_path $p
_do_open2 $this
}
method _next {action} {
method _next {action} {
destroy $w_body
destroy $w_body
if {![winfo exists $w_next]} {
if {![winfo exists $w_next]} {