@@ -1969,6 +1969,10 @@ proc confirm_popup {msg {owner .}} {
1969
1969
return $confirm_ok
1970
1970
}
1971
1971
1972
+ proc haveselectionclipboard {} {
1973
+ return [expr {[tk windowingsystem] eq " x11" }]
1974
+ }
1975
+
1972
1976
proc setoptions {} {
1973
1977
global use_ttk
1974
1978
@@ -2089,7 +2093,7 @@ proc makewindow {} {
2089
2093
global diffcontextstring diffcontext
2090
2094
global ignorespace
2091
2095
global maincursor textcursor curtextcursor
2092
- global rowctxmenu fakerowmenu mergemax wrapcomment
2096
+ global rowctxmenu fakerowmenu mergemax wrapcomment wrapdefault
2093
2097
global highlight_files gdttype
2094
2098
global searchstring sstring
2095
2099
global bgcolor fgcolor bglist fglist diffcolors diffbgcolors selectbgcolor
@@ -2223,7 +2227,7 @@ proc makewindow {} {
2223
2227
set sha1entry .tf.bar.sha1
2224
2228
set entries $sha1entry
2225
2229
set sha1but .tf.bar.sha1label
2226
- button $sha1but -text " [ mc " SHA1 ID:" ] " -state disabled -relief flat \
2230
+ button $sha1but -text " [ mc " Commit ID:" ] " -state disabled -relief flat \
2227
2231
-command gotocommit -width 8
2228
2232
$sha1but conf -disabledforeground [$sha1but cget -foreground]
2229
2233
pack .tf.bar.sha1label -side left
@@ -2431,7 +2435,7 @@ proc makewindow {} {
2431
2435
set ctext .bleft.bottom.ctext
2432
2436
text $ctext -background $bgcolor -foreground $fgcolor \
2433
2437
-state disabled -undo 0 -font textfont \
2434
- -yscrollcommand scrolltext -wrap none \
2438
+ -yscrollcommand scrolltext -wrap $wrapdefault \
2435
2439
-xscrollcommand " .bleft.bottom.sbhorizontal set"
2436
2440
if {$have_tk85 } {
2437
2441
$ctext conf -tabstyle wordprocessor
@@ -7344,7 +7348,7 @@ proc selectline {l isnew {desired_loc {}} {switch_to_patch 0}} {
7344
7348
global mergemax numcommits pending_select
7345
7349
global cmitmode showneartags allcommits
7346
7350
global targetrow targetid lastscrollrows
7347
- global autoselect autosellen jump_to_here
7351
+ global autocopy autoselect autosellen jump_to_here
7348
7352
global vinlinediff
7349
7353
7350
7354
unset -nocomplain pending_select
@@ -7410,9 +7414,13 @@ proc selectline {l isnew {desired_loc {}} {switch_to_patch 0}} {
7410
7414
7411
7415
$sha1entry delete 0 end
7412
7416
$sha1entry insert 0 $id
7413
- if {$autoselect } {
7417
+ if {$autoselect && [haveselectionclipboard] } {
7414
7418
$sha1entry selection range 0 $autosellen
7415
7419
}
7420
+ if {$autocopy } {
7421
+ clipboard clear
7422
+ clipboard append [string range $id 0 [expr $autosellen - 1]]
7423
+ }
7416
7424
rhighlight_sel $id
7417
7425
7418
7426
$ctext conf -state normal
@@ -8756,7 +8764,7 @@ proc sha1change {n1 n2 op} {
8756
8764
if {$state == " normal" } {
8757
8765
$sha1but conf -state normal -relief raised -text " [ mc " Goto:" ] "
8758
8766
} else {
8759
- $sha1but conf -state disabled -relief flat -text " [ mc " SHA1 ID:" ] "
8767
+ $sha1but conf -state disabled -relief flat -text " [ mc " Commit ID:" ] "
8760
8768
}
8761
8769
}
8762
8770
@@ -8775,7 +8783,7 @@ proc gotocommit {} {
8775
8783
set matches [longid $id ]
8776
8784
if {$matches ne {}} {
8777
8785
if {[llength $matches ] > 1} {
8778
- error_popup [mc " Short SHA1 id %s is ambiguous" $id ]
8786
+ error_popup [mc " Short commit ID %s is ambiguous" $id ]
8779
8787
return
8780
8788
}
8781
8789
set id [lindex $matches 0]
@@ -8792,7 +8800,7 @@ proc gotocommit {} {
8792
8800
return
8793
8801
}
8794
8802
if {[regexp {^[0-9a-fA-F]{4,}$} $sha1string ]} {
8795
- set msg [mc " SHA1 id %s is not known" $sha1string ]
8803
+ set msg [mc " Commit ID %s is not known" $sha1string ]
8796
8804
} else {
8797
8805
set msg [mc " Revision %s is not in the current view" $sha1string ]
8798
8806
}
@@ -11576,12 +11584,13 @@ proc create_prefs_page {w} {
11576
11584
11577
11585
proc prefspage_general {notebook} {
11578
11586
global NS maxwidth maxgraphpct showneartags showlocalchanges
11579
- global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs
11587
+ global tabstop wrapcomment wrapdefault limitdiffs
11588
+ global autocopy autoselect autosellen extdifftool perfile_attrs
11580
11589
global hideremotes want_ttk have_ttk maxrefs web_browser
11581
11590
11582
11591
set page [create_prefs_page $notebook .general]
11583
11592
11584
- ${NS} ::label $page .ldisp -text [mc " Commit list display options" ]
11593
+ ${NS} ::label $page .ldisp -text [mc " Commit list display options" ] -font mainfontbold
11585
11594
grid $page .ldisp - -sticky w -pady 10
11586
11595
${NS} ::label $page .spacer -text " "
11587
11596
${NS} ::label $page .maxwidthl -text [mc " Maximum graph width (lines)" ]
@@ -11594,19 +11603,38 @@ proc prefspage_general {notebook} {
11594
11603
${NS} ::checkbutton $page .showlocal -text [mc " Show local changes" ] \
11595
11604
-variable showlocalchanges
11596
11605
grid x $page .showlocal -sticky w
11597
- ${NS} ::checkbutton $page .autoselect -text [mc " Auto-select SHA1 (length)" ] \
11598
- -variable autoselect
11599
- spinbox $page .autosellen -from 1 -to 40 -width 4 -textvariable autosellen
11600
- grid x $page .autoselect $page .autosellen -sticky w
11601
11606
${NS} ::checkbutton $page .hideremotes -text [mc " Hide remote refs" ] \
11602
11607
-variable hideremotes
11603
11608
grid x $page .hideremotes -sticky w
11604
11609
11605
- ${NS} ::label $page .ddisp -text [mc " Diff display options" ]
11610
+ ${NS} ::checkbutton $page .autocopy -text [mc " Copy commit ID to clipboard" ] \
11611
+ -variable autocopy
11612
+ grid x $page .autocopy -sticky w
11613
+ if {[haveselectionclipboard]} {
11614
+ ${NS} ::checkbutton $page .autoselect -text [mc " Copy commit ID to X11 selection" ] \
11615
+ -variable autoselect
11616
+ grid x $page .autoselect -sticky w
11617
+ }
11618
+ spinbox $page .autosellen -from 1 -to 40 -width 4 -textvariable autosellen
11619
+ ${NS} ::label $page .autosellenl -text [mc " Length of commit ID to copy" ]
11620
+ grid x $page .autosellenl $page .autosellen -sticky w
11621
+
11622
+ ${NS} ::label $page .ddisp -text [mc " Diff display options" ] -font mainfontbold
11606
11623
grid $page .ddisp - -sticky w -pady 10
11607
11624
${NS} ::label $page .tabstopl -text [mc " Tab spacing" ]
11608
11625
spinbox $page .tabstop -from 1 -to 20 -width 4 -textvariable tabstop
11609
11626
grid x $page .tabstopl $page .tabstop -sticky w
11627
+
11628
+ ${NS} ::label $page .wrapcommentl -text [mc " Wrap comment text" ]
11629
+ ${NS} ::combobox $page .wrapcomment -values {none char word} -state readonly \
11630
+ -textvariable wrapcomment
11631
+ grid x $page .wrapcommentl $page .wrapcomment -sticky w
11632
+
11633
+ ${NS} ::label $page .wrapdefaultl -text [mc " Wrap other text" ]
11634
+ ${NS} ::combobox $page .wrapdefault -values {none char word} -state readonly \
11635
+ -textvariable wrapdefault
11636
+ grid x $page .wrapdefaultl $page .wrapdefault -sticky w
11637
+
11610
11638
${NS} ::checkbutton $page .ntag -text [mc " Display nearby tags/heads" ] \
11611
11639
-variable showneartags
11612
11640
grid x $page .ntag -sticky w
@@ -11635,7 +11663,7 @@ proc prefspage_general {notebook} {
11635
11663
pack configure $page .webbrowserf.l -padx 10
11636
11664
grid x $page .webbrowserf $page .webbrowser -sticky ew
11637
11665
11638
- ${NS} ::label $page .lgen -text [mc " General options" ]
11666
+ ${NS} ::label $page .lgen -text [mc " General options" ] -font mainfontbold
11639
11667
grid $page .lgen - -sticky w -pady 10
11640
11668
${NS} ::checkbutton $page .want_ttk -variable want_ttk \
11641
11669
-text [mc " Use themed widgets" ]
@@ -11654,7 +11682,7 @@ proc prefspage_colors {notebook} {
11654
11682
11655
11683
set page [create_prefs_page $notebook .colors]
11656
11684
11657
- ${NS} ::label $page .cdisp -text [mc " Colors: press to choose" ]
11685
+ ${NS} ::label $page .cdisp -text [mc " Colors: press to choose" ] -font mainfontbold
11658
11686
grid $page .cdisp - -sticky w -pady 10
11659
11687
label $page .ui -padx 40 -relief sunk -background $uicolor
11660
11688
${NS} ::button $page .uibut -text [mc " Interface" ] \
@@ -11712,7 +11740,7 @@ proc prefspage_colors {notebook} {
11712
11740
proc prefspage_fonts {notebook} {
11713
11741
global NS
11714
11742
set page [create_prefs_page $notebook .fonts]
11715
- ${NS} ::label $page .cfont -text [mc " Fonts: press to choose" ]
11743
+ ${NS} ::label $page .cfont -text [mc " Fonts: press to choose" ] -font mainfontbold
11716
11744
grid $page .cfont - -sticky w -pady 10
11717
11745
mkfontdisp mainfont $page [mc " Main font" ]
11718
11746
mkfontdisp textfont $page [mc " Diff display font" ]
@@ -11725,7 +11753,7 @@ proc doprefs {} {
11725
11753
global oldprefs prefstop showneartags showlocalchanges
11726
11754
global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
11727
11755
global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs
11728
- global hideremotes want_ttk have_ttk
11756
+ global hideremotes want_ttk have_ttk wrapcomment wrapdefault
11729
11757
11730
11758
set top .gitkprefs
11731
11759
set prefstop $top
@@ -11734,7 +11762,7 @@ proc doprefs {} {
11734
11762
return
11735
11763
}
11736
11764
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
11737
- limitdiffs tabstop perfile_attrs hideremotes want_ttk} {
11765
+ limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault } {
11738
11766
set oldprefs($v ) [set $v ]
11739
11767
}
11740
11768
ttk_toplevel $top
@@ -11860,7 +11888,7 @@ proc prefscan {} {
11860
11888
global oldprefs prefstop
11861
11889
11862
11890
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
11863
- limitdiffs tabstop perfile_attrs hideremotes want_ttk} {
11891
+ limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault } {
11864
11892
global $v
11865
11893
set $v $oldprefs($v)
11866
11894
}
@@ -11874,7 +11902,8 @@ proc prefsok {} {
11874
11902
global oldprefs prefstop showneartags showlocalchanges
11875
11903
global fontpref mainfont textfont uifont
11876
11904
global limitdiffs treediffs perfile_attrs
11877
- global hideremotes
11905
+ global hideremotes wrapcomment wrapdefault
11906
+ global ctext
11878
11907
11879
11908
catch {destroy $prefstop }
11880
11909
unset prefstop
@@ -11923,6 +11952,12 @@ proc prefsok {} {
11923
11952
if {$hideremotes != $oldprefs(hideremotes) } {
11924
11953
rereadrefs
11925
11954
}
11955
+ if {$wrapcomment != $oldprefs(wrapcomment) } {
11956
+ $ctext tag conf comment -wrap $wrapcomment
11957
+ }
11958
+ if {$wrapdefault != $oldprefs(wrapdefault) } {
11959
+ $ctext configure -wrap $wrapdefault
11960
+ }
11926
11961
}
11927
11962
11928
11963
proc formatdate {d} {
@@ -12392,6 +12427,7 @@ set downarrowlen 5
12392
12427
set mingaplen 100
12393
12428
set cmitmode " patch"
12394
12429
set wrapcomment " none"
12430
+ set wrapdefault " none"
12395
12431
set showneartags 1
12396
12432
set hideremotes 0
12397
12433
set maxrefs 20
@@ -12400,6 +12436,7 @@ set maxlinelen 200
12400
12436
set showlocalchanges 1
12401
12437
set limitdiffs 1
12402
12438
set datetimeformat " %Y-%m-%d %H:%M:%S"
12439
+ set autocopy 0
12403
12440
set autoselect 1
12404
12441
set autosellen 40
12405
12442
set perfile_attrs 0
@@ -12497,7 +12534,8 @@ config_check_tmp_exists 50
12497
12534
12498
12535
set config_variables {
12499
12536
mainfont textfont uifont tabstop findmergefiles maxgraphpct maxwidth
12500
- cmitmode wrapcomment autoselect autosellen showneartags maxrefs visiblerefs
12537
+ cmitmode wrapcomment wrapdefault autocopy autoselect autosellen
12538
+ showneartags maxrefs visiblerefs
12501
12539
hideremotes showlocalchanges datetimeformat limitdiffs uicolor want_ttk
12502
12540
bgcolor fgcolor uifgcolor uifgdisabledcolor colors diffcolors mergecolors
12503
12541
markbgcolor diffcontext selectbgcolor foundbgcolor currentsearchhitbgcolor
@@ -12687,7 +12725,7 @@ catch {
12687
12725
wm iconphoto . -default gitlogo gitlogo32
12688
12726
}
12689
12727
# wait for the window to become visible
12690
- tkwait visibility .
12728
+ if {![winfo viewable .]} { tkwait visibility .}
12691
12729
set_window_title
12692
12730
update
12693
12731
readrefs
0 commit comments