{"thread":{"id":"27827","subject":"[PATCH 1/2] git-gui blame, add a Control-G goto line option","startedAt":"2011-07-16T16:58:50Z","lastAt":"2011-07-17T01:47:14Z","messageCount":2,"participants":["David Fries"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"171484","messageId":"20110716165850.GA9694@spacedout.fries.net","threadId":"27827","inReplyTo":null,"subject":"[PATCH 1/2] git-gui blame, add a Control-G goto line option","fromName":"David Fries","fromEmail":"david@fries.net","sentAt":"2011-07-16T16:58:50Z","receivedAt":"2011-07-16T16:58:50Z","isPatch":true,"sender":{"key":"david@fries.net","avatar":"https://avatars.githubusercontent.com/u/2767875?v=4"},"body":"Add a goto input field to jump to the specified line similar to the\ncurrent search field. \n\nSigned-off-by: David Fries <David@Fries.net>\n\n---\n git-gui/lib/blame.tcl |   11 ++++++++\n git-gui/lib/line.tcl  |   62 +++++++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 73 insertions(+), 0 deletions(-)\n create mode 100644 git-gui/lib/line.tcl\n\ndiff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl\nindex 61e358f..062091b 100644\n--- a/git-gui/lib/blame.tcl\n+++ b/git-gui/lib/blame.tcl\n@@ -22,6 +22,7 @@ field w_asim     ; # text column: annotations (simple computation)\n field w_file     ; # text column: actual file data\n field w_cviewer  ; # pane showing commit message\n field finder     ; # find mini-dialog frame\n+field gotoline   ; # line goto mini-dialog frame\n field status     ; # status mega-widget instance\n field old_height ; # last known height of $w.file_pane\n \n@@ -231,6 +232,11 @@ constructor new {i_commit i_path i_jump} {\n \t\t-column [expr {[llength $w_columns] - 1}] \\\n \t\t]\n \n+\tset gotoline [::linebar::new \\\n+\t\t$w.file_pane.out.lf $w_file \\\n+\t\t-column [expr {[llength $w_columns] - 1}] \\\n+\t\t]\n+\n \tset w_cviewer $w.file_pane.cm.t\n \ttext $w_cviewer \\\n \t\t-background white \\\n@@ -275,6 +281,10 @@ constructor new {i_commit i_path i_jump} {\n \t\t-label [mc \"Find Text...\"] \\\n \t\t-accelerator F7 \\\n \t\t-command [list searchbar::show $finder]\n+\t$w.ctxm add command \\\n+\t\t-label [mc \"Goto Line...\"] \\\n+\t\t-accelerator Control-Key-g \\\n+\t\t-command [list linebar::show $gotoline]\n \tmenu $w.ctxm.enc\n \tbuild_encoding_menu $w.ctxm.enc [cb _setencoding]\n \t$w.ctxm add cascade \\\n@@ -345,6 +355,7 @@ constructor new {i_commit i_path i_jump} {\n \tbind $top       <Escape>     [list searchbar::hide $finder]\n \tbind $top       <F3>         [list searchbar::find_next $finder]\n \tbind $top       <Shift-F3>   [list searchbar::find_prev $finder]\n+\tbind $top    <Control-Key-g> [list linebar::show $gotoline]\n \tcatch { bind $top <Shift-Key-XF86_Switch_VT_3> [list searchbar::find_prev $finder] }\n \n \tgrid configure $w.header -sticky ew\ndiff --git a/git-gui/lib/line.tcl b/git-gui/lib/line.tcl\nnew file mode 100644\nindex 0000000..e8b1d33\n--- /dev/null\n+++ b/git-gui/lib/line.tcl\n@@ -0,0 +1,62 @@\n+# goto line number\n+# based on code from gitk, Copyright (C) Paul Mackerras\n+\n+class linebar {\n+\n+field w\n+field ctext\n+\n+field linenum   {}\n+\n+constructor new {i_w i_text args} {\n+\tglobal use_ttk NS\n+\tset w      $i_w\n+\tset ctext  $i_text\n+\n+\t${NS}::frame  $w\n+\t${NS}::label  $w.l       -text [mc \"Goto Line:\"]\n+\tentry  $w.ent -textvariable ${__this}::linenum -background lightgreen\n+\t${NS}::button $w.bn      -text [mc Go] -command [cb _incrgoto]\n+\n+\tpack   $w.l   -side left\n+\tpack   $w.bn  -side right\n+\tpack   $w.ent -side left -expand 1 -fill x\n+\n+\teval grid conf $w -sticky we $args\n+\tgrid remove $w\n+\n+\tbind $w.ent <Return> [cb _incrgoto]\n+\n+\tbind $w <Destroy> [list delete_this $this]\n+\treturn $this\n+}\n+\n+method show {} {\n+\tif {![visible $this]} {\n+\t\tgrid $w\n+\t}\n+\tfocus -force $w.ent\n+}\n+\n+method hide {} {\n+\tif {[visible $this]} {\n+\t\tfocus $ctext\n+\t\tgrid remove $w\n+\t}\n+}\n+\n+method visible {} {\n+\treturn [winfo ismapped $w]\n+}\n+\n+method editor {} {\n+\treturn $w.ent\n+}\n+\n+method _incrgoto {} {\n+\tif {$linenum ne {}} {\n+\t\t$ctext see $linenum.0\n+\t}\n+}\n+\n+}\n-- \n1.7.2.5\n"},{"id":"171494","messageId":"20110717014714.GD26701@spacedout.fries.net","threadId":"27827","inReplyTo":"20110716165850.GA9694@spacedout.fries.net","subject":"Re: [PATCH 1/2] git-gui blame, add a Control-G goto line option","fromName":"David Fries","fromEmail":"david@fries.net","sentAt":"2011-07-17T01:47:14Z","receivedAt":"2011-07-17T01:47:14Z","isPatch":true,"sender":{"key":"david@fries.net","avatar":"https://avatars.githubusercontent.com/u/2767875?v=4"},"body":"Add a goto input field to jump to the specified line similar to the             current search field.\n\nSigned-off-by: David Fries <David@Fries.net>\n---\nThis version hides the goto widget when pressing return or escape.\nPatch 2/2 is unchanged.\n\n git-gui/lib/blame.tcl |   11 ++++++++\n git-gui/lib/line.tcl  |   64 +++++++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 75 insertions(+), 0 deletions(-)\n create mode 100644 git-gui/lib/line.tcl\n\ndiff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl\nindex 61e358f..062091b 100644\n--- a/git-gui/lib/blame.tcl\n+++ b/git-gui/lib/blame.tcl\n@@ -22,6 +22,7 @@ field w_asim     ; # text column: annotations (simple computation)\n field w_file     ; # text column: actual file data\n field w_cviewer  ; # pane showing commit message\n field finder     ; # find mini-dialog frame\n+field gotoline   ; # line goto mini-dialog frame\n field status     ; # status mega-widget instance\n field old_height ; # last known height of $w.file_pane\n \n@@ -231,6 +232,11 @@ constructor new {i_commit i_path i_jump} {\n \t\t-column [expr {[llength $w_columns] - 1}] \\\n \t\t]\n \n+\tset gotoline [::linebar::new \\\n+\t\t$w.file_pane.out.lf $w_file \\\n+\t\t-column [expr {[llength $w_columns] - 1}] \\\n+\t\t]\n+\n \tset w_cviewer $w.file_pane.cm.t\n \ttext $w_cviewer \\\n \t\t-background white \\\n@@ -275,6 +281,10 @@ constructor new {i_commit i_path i_jump} {\n \t\t-label [mc \"Find Text...\"] \\\n \t\t-accelerator F7 \\\n \t\t-command [list searchbar::show $finder]\n+\t$w.ctxm add command \\\n+\t\t-label [mc \"Goto Line...\"] \\\n+\t\t-accelerator Control-Key-g \\\n+\t\t-command [list linebar::show $gotoline]\n \tmenu $w.ctxm.enc\n \tbuild_encoding_menu $w.ctxm.enc [cb _setencoding]\n \t$w.ctxm add cascade \\\n@@ -345,6 +355,7 @@ constructor new {i_commit i_path i_jump} {\n \tbind $top       <Escape>     [list searchbar::hide $finder]\n \tbind $top       <F3>         [list searchbar::find_next $finder]\n \tbind $top       <Shift-F3>   [list searchbar::find_prev $finder]\n+\tbind $top    <Control-Key-g> [list linebar::show $gotoline]\n \tcatch { bind $top <Shift-Key-XF86_Switch_VT_3> [list searchbar::find_prev $finder] }\n \n \tgrid configure $w.header -sticky ew\ndiff --git a/git-gui/lib/line.tcl b/git-gui/lib/line.tcl\nnew file mode 100644\nindex 0000000..4913bdd\n--- /dev/null\n+++ b/git-gui/lib/line.tcl\n@@ -0,0 +1,64 @@\n+# goto line number\n+# based on code from gitk, Copyright (C) Paul Mackerras\n+\n+class linebar {\n+\n+field w\n+field ctext\n+\n+field linenum   {}\n+\n+constructor new {i_w i_text args} {\n+\tglobal use_ttk NS\n+\tset w      $i_w\n+\tset ctext  $i_text\n+\n+\t${NS}::frame  $w\n+\t${NS}::label  $w.l       -text [mc \"Goto Line:\"]\n+\tentry  $w.ent -textvariable ${__this}::linenum -background lightgreen\n+\t${NS}::button $w.bn      -text [mc Go] -command [cb _incrgoto]\n+\n+\tpack   $w.l   -side left\n+\tpack   $w.bn  -side right\n+\tpack   $w.ent -side left -expand 1 -fill x\n+\n+\teval grid conf $w -sticky we $args\n+\tgrid remove $w\n+\n+\tbind $w.ent <Return> [cb _incrgoto]\n+\tbind $w.ent <Escape> [list linebar::hide $this]\n+\n+\tbind $w <Destroy> [list delete_this $this]\n+\treturn $this\n+}\n+\n+method show {} {\n+\tif {![visible $this]} {\n+\t\tgrid $w\n+\t}\n+\tfocus -force $w.ent\n+}\n+\n+method hide {} {\n+\tif {[visible $this]} {\n+\t\tfocus $ctext\n+\t\tgrid remove $w\n+\t}\n+}\n+\n+method visible {} {\n+\treturn [winfo ismapped $w]\n+}\n+\n+method editor {} {\n+\treturn $w.ent\n+}\n+\n+method _incrgoto {} {\n+\tif {$linenum ne {}} {\n+\t\t$ctext see $linenum.0\n+\t\thide $this\n+\t}\n+}\n+\n+}\n-- \n1.7.2.5\n"}]}