зеркало из https://github.com/microsoft/git.git
git-gui: Offer repository management features in menu bar
When we show the repository chooser as the primary toplevel (".") we now offer the major choices not just on the window as hyperlinks but they also now are shown in the Repository menu, including the recent repository list. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Родитель
28e86952dd
Коммит
9c1b1b1e45
|
@ -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]} {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче