gitk: add text wrapping preferences
Add a new preference "wrapdefault" which allows enabling char/word wrap. Impacts all text in the ctext widget for which no other preference exists. Also make the (existing) preference "wrapcomment" configurable graphically. Its setting impacts only the "comment" part of the ctext widget. Signed-off-by: Christoph Sommer <sommer@cms-labs.org> Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Christoph Sommer committed
Dec 5, 2024 at 20:33 UTC
904b36b815ff174ad6abc37b8aa5b8b0f4cedc32
1 file changed
+27
-8
gitk
+27
-8
@@ -2089,7 +2089,7 @@ proc makewindow {} {
2089
global diffcontextstring diffcontext
2090
global ignorespace
2091
global maincursor textcursor curtextcursor
2092
- global rowctxmenu fakerowmenu mergemax wrapcomment
2092
+ global rowctxmenu fakerowmenu mergemax wrapcomment wrapdefault
2093
global highlight_files gdttype
2094
global searchstring sstring
2095
global bgcolor fgcolor bglist fglist diffcolors diffbgcolors selectbgcolor
@@ -2431,7 +2431,7 @@ proc makewindow {} {
2431
set ctext .bleft.bottom.ctext
2432
text $ctext -background $bgcolor -foreground $fgcolor \
2433
-state disabled -undo 0 -font textfont \
2434
- -yscrollcommand scrolltext -wrap none \
2434
+ -yscrollcommand scrolltext -wrap $wrapdefault \
2435
-xscrollcommand ".bleft.bottom.sbhorizontal set"
2436
if {$have_tk85} {
2437
$ctext conf -tabstyle wordprocessor
@@ -11576,7 +11576,7 @@ proc create_prefs_page {w} {
11576
11577
proc prefspage_general {notebook} {
11578
global NS maxwidth maxgraphpct showneartags showlocalchanges
11579
- global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs
11579
+ global tabstop wrapcomment wrapdefault limitdiffs autoselect autosellen extdifftool perfile_attrs
11580
global hideremotes want_ttk have_ttk maxrefs web_browser
11581
11582
set page [create_prefs_page $notebook.general]
@@ -11607,6 +11607,17 @@ proc prefspage_general {notebook} {
11607
${NS}::label $page.tabstopl -text [mc "Tab spacing"]
11608
spinbox $page.tabstop -from 1 -to 20 -width 4 -textvariable tabstop
11609
grid x $page.tabstopl $page.tabstop -sticky w
11610
+
11611
+ ${NS}::label $page.wrapcommentl -text [mc "Wrap comment text"]
11612
+ ${NS}::combobox $page.wrapcomment -values {none char word} -state readonly \
11613
+ -textvariable wrapcomment
11614
+ grid x $page.wrapcommentl $page.wrapcomment -sticky w
11615
+
11616
+ ${NS}::label $page.wrapdefaultl -text [mc "Wrap other text"]
11617
+ ${NS}::combobox $page.wrapdefault -values {none char word} -state readonly \
11618
+ -textvariable wrapdefault
11619
+ grid x $page.wrapdefaultl $page.wrapdefault -sticky w
11620
+
11621
${NS}::checkbutton $page.ntag -text [mc "Display nearby tags/heads"] \
11622
-variable showneartags
11623
grid x $page.ntag -sticky w
@@ -11725,7 +11736,7 @@ proc doprefs {} {
11736
global oldprefs prefstop showneartags showlocalchanges
11737
global uicolor bgcolor fgcolor ctext diffcolors selectbgcolor markbgcolor
11738
global tabstop limitdiffs autoselect autosellen extdifftool perfile_attrs
11728
- global hideremotes want_ttk have_ttk
11739
+ global hideremotes want_ttk have_ttk wrapcomment wrapdefault
11740
11741
set top .gitkprefs
11742
set prefstop $top
@@ -11734,7 +11745,7 @@ proc doprefs {} {
11745
return
11746
}
11747
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
11737
- limitdiffs tabstop perfile_attrs hideremotes want_ttk} {
11748
+ limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault} {
11749
set oldprefs($v) [set $v]
11750
}
11751
ttk_toplevel $top
@@ -11860,7 +11871,7 @@ proc prefscan {} {
11871
global oldprefs prefstop
11872
11873
foreach v {maxwidth maxgraphpct showneartags showlocalchanges \
11863
- limitdiffs tabstop perfile_attrs hideremotes want_ttk} {
11874
+ limitdiffs tabstop perfile_attrs hideremotes want_ttk wrapcomment wrapdefault} {
11875
global $v
11876
set $v $oldprefs($v)
11877
}
@@ -11874,7 +11885,8 @@ proc prefsok {} {
11885
global oldprefs prefstop showneartags showlocalchanges
11886
global fontpref mainfont textfont uifont
11887
global limitdiffs treediffs perfile_attrs
11877
- global hideremotes
11888
+ global hideremotes wrapcomment wrapdefault
11889
+ global ctext
11890
11891
catch {destroy $prefstop}
11892
unset prefstop
@@ -11923,6 +11935,12 @@ proc prefsok {} {
11935
if {$hideremotes != $oldprefs(hideremotes)} {
11936
rereadrefs
11937
}
11938
+ if {$wrapcomment != $oldprefs(wrapcomment)} {
11939
+ $ctext tag conf comment -wrap $wrapcomment
11940
+ }
11941
+ if {$wrapdefault != $oldprefs(wrapdefault)} {
11942
+ $ctext configure -wrap $wrapdefault
11943
+ }
11944
}
11945
11946
proc formatdate {d} {
@@ -12392,6 +12410,7 @@ set downarrowlen 5
12410
set mingaplen 100
12411
set cmitmode "patch"
12412
set wrapcomment "none"
12413
+set wrapdefault "none"
12414
set showneartags 1
12415
set hideremotes 0
12416
set maxrefs 20
@@ -12497,7 +12516,7 @@ config_check_tmp_exists 50
12516
12517
set config_variables {
12518
mainfont textfont uifont tabstop findmergefiles maxgraphpct maxwidth
12500
- cmitmode wrapcomment autoselect autosellen showneartags maxrefs visiblerefs
12519
+ cmitmode wrapcomment wrapdefault autoselect autosellen showneartags maxrefs visiblerefs
12520
hideremotes showlocalchanges datetimeformat limitdiffs uicolor want_ttk
12521
bgcolor fgcolor uifgcolor uifgdisabledcolor colors diffcolors mergecolors
12522
markbgcolor diffcontext selectbgcolor foundbgcolor currentsearchhitbgcolor