OSDN Git Service

git-gui: Refactor diff pane popup support for future improvements
authorShawn O. Pearce <spearce@spearce.org>
Thu, 23 Aug 2007 06:39:45 +0000 (02:39 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Thu, 23 Aug 2007 06:39:45 +0000 (02:39 -0400)
The current popup_diff_menu procedure is somewhat messy as it has a
few duplications of the same logic in each of the different legs of
the routine.  We can simplify these by setting a few state variables
in the different legs.

No functional change, just a cleanup to make it easier to implement
future functional changes within this block.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh

index b25b52f..559b62b 100755 (executable)
@@ -2432,20 +2432,19 @@ proc popup_diff_menu {ctxm x y X Y} {
        set ::cursorX $x
        set ::cursorY $y
        if {$::ui_index eq $::current_diff_side} {
-               $ctxm entryconf $::ui_diff_applyhunk \
-                       -state normal \
-                       -label {Unstage Hunk From Commit}
-       } elseif {$current_diff_path eq {}
-               || ![info exists file_states($current_diff_path)]
-               || {_O} eq [lindex $file_states($current_diff_path) 0]} {
-               $ctxm entryconf $::ui_diff_applyhunk \
-                       -state disabled \
-                       -label {Stage Hunk For Commit}
+               set s normal
+               set l "Unstage Hunk From Commit"
        } else {
-               $ctxm entryconf $::ui_diff_applyhunk \
-                       -state normal \
-                       -label {Stage Hunk For Commit}
+               if {$current_diff_path eq {}
+                       || ![info exists file_states($current_diff_path)]
+                       || {_O} eq [lindex $file_states($current_diff_path) 0]} {
+                       set s disabled
+               } else {
+                       set s normal
+               }
+               set l "Stage Hunk For Commit"
        }
+       $ctxm entryconf $::ui_diff_applyhunk -state $s -label $l
        tk_popup $ctxm $X $Y
 }
 bind_button3 $ui_diff [list popup_diff_menu $ctxm %x %y %X %Y]