diff options
author | Pat Thoyts <patthoyts@users.sourceforge.net> | 2011-02-15 00:20:36 +0000 |
---|---|---|
committer | Pat Thoyts <patthoyts@users.sourceforge.net> | 2011-02-15 00:20:36 +0000 |
commit | ba44692a2ecedacfc48c28fba642876d49dec90a (patch) | |
tree | ba31b294a322d6c10ba849468eee997dcca29863 | |
parent | git-gui: teach fetch/prune menu to do it for all remotes (diff) | |
download | tgif-ba44692a2ecedacfc48c28fba642876d49dec90a.tar.xz |
git-gui: Include version check and test for tearoff menu entry
The --all option for git fetch was added in v1.6.6 so ensure we have a usable version before adding
the menu items.
Sometimes people use tearoff menus and these offset the entry indices by one.
Acked-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
-rw-r--r-- | lib/remote.tcl | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/lib/remote.tcl b/lib/remote.tcl index 817ca1b6a3..42d2061402 100644 --- a/lib/remote.tcl +++ b/lib/remote.tcl @@ -233,6 +233,8 @@ proc make_sure_remote_submenues_exist {remote_m} { proc update_all_remotes_menu_entry {} { global all_remotes + if {[git-version < 1.6.6]} { return } + set have_remote 0 foreach r $all_remotes { set have_remote 1 @@ -243,27 +245,29 @@ proc update_all_remotes_menu_entry {} { set prune_m $remote_m.prune if {$have_remote} { make_sure_remote_submenues_exist $remote_m - if {[$fetch_m entrycget 0 -label] ne "All"} { + set index [expr {[$fetch_m type 0] eq "tearoff" ? 1 : 0}] + if {[$fetch_m entrycget $index -label] ne "All"} { - $fetch_m insert 0 separator - $fetch_m insert 0 command \ + $fetch_m insert $index separator + $fetch_m insert $index command \ -label "All" \ -command fetch_from_all - $prune_m insert 0 separator - $prune_m insert 0 command \ - -label "All" \ + $prune_m insert $index separator + $prune_m insert $index command \ + -label "All" \ -command prune_from_all } } else { if {[winfo exists $fetch_m]} { + set index [expr {[$fetch_m type 0] eq "tearoff" ? 1 : 0}] if {[$fetch_m type end] eq "separator"} { - delete_from_menu $fetch_m 0 - delete_from_menu $fetch_m 0 + delete_from_menu $fetch_m $index + delete_from_menu $fetch_m $index - delete_from_menu $prune_m 0 - delete_from_menu $prune_m 0 + delete_from_menu $prune_m $index + delete_from_menu $prune_m $index } } } |