tii

Tcl-based suite for working with ii/idec protocol
git clone git://git.luxferre.top/tii.git
Log | Files | Refs | README

commit c474a15e4e5141511157dfa72b2da0a16647d533
parent 7c594acbf14ce9126a66a098f1d78febb9f69b73
Author: Luxferre <lux@ferre>
Date:   Wed, 23 Oct 2024 17:28:18 +0300

Implemented configuration tab in tiix

Diffstat:
Mconfig.txt | 12++++++------
Mtiix.tcl | 51+++++++++++++++++++++++++++++++++++++++++++--------
2 files changed, 49 insertions(+), 14 deletions(-)

diff --git a/config.txt b/config.txt @@ -1,8 +1,8 @@ -useragent "curl/7.54.1" +useragent "curl/7.54.2" proxyhost "" -proxyport 0 +proxyport "0" tiix_font "Fira Code" -tiix_fontsize 12 -tiix_fgcolor #eee -tiix_bgcolor #111 -tiix_linkcolor cyan +tiix_fontsize "12" +tiix_fgcolor "#eee" +tiix_bgcolor "#111" +tiix_linkcolor "cyan" diff --git a/tiix.tcl b/tiix.tcl @@ -20,28 +20,34 @@ source [file join $appdir "tiipost.tcl"] # populate general configuration set cfg {} -set textfont TkFixedFont -set textfontsize 10 +set tiix_font TkFixedFont +set tiix_fontsize 10 set tiix_fgcolor black set tiix_bgcolor white set tiix_linkcolor blue +set useragent "" +set proxyhost "" +set proxyport 0 set cfgfile [file join $appdir "config.txt"] if {[file exists $cfgfile]} { set cfg [readfile $cfgfile] if {[dict exists $cfg useragent]} { - ::http::config -useragent [dict get $cfg useragent] + set useragent [dict get $cfg useragent] + ::http::config -useragent $useragent } if {[dict exists $cfg proxyhost]} { - ::http::config -proxyhost [dict get $cfg proxyhost] + set proxyhost [dict get $cfg proxyhost] + ::http::config -proxyhost $proxyhost } if {[dict exists $cfg proxyport]} { - ::http::config -proxyport [dict get $cfg proxyport] + set proxyport [dict get $cfg proxyport] + ::http::config -proxyport $proxyport } if {[dict exists $cfg tiix_font]} { - set textfont [dict get $cfg tiix_font] + set tiix_font [dict get $cfg tiix_font] } if {[dict exists $cfg tiix_fontsize]} { - set textfontsize [dict get $cfg tiix_fontsize] + set tiix_fontsize [dict get $cfg tiix_fontsize] } if {[dict exists $cfg tiix_fgcolor]} { set tiix_fgcolor [dict get $cfg tiix_fgcolor] @@ -55,7 +61,7 @@ if {[file exists $cfgfile]} { } # create the font -font create tiix_font -family "$textfont" -size $textfontsize -weight normal +font create tiix_font -family "$tiix_font" -size $tiix_fontsize -weight normal # create the widget font font create tiix_widget_font -family "sans-serif" -size 11 @@ -240,6 +246,7 @@ pack .infoframe.author -side right grid .infoframe -row 1 -column 0 -sticky we # Viewer widgets + ttk::frame .tabbar.r.addrframe ttk::frame .tabbar.r.addrframe.f ttk::frame .tabbar.r.addrframe.c @@ -289,6 +296,7 @@ grid rowconfigure .tabbar.r 0 -weight 0 grid rowconfigure .tabbar.r 1 -weight 1 # Poster widgets + ttk::frame .tabbar.p.addrframe ttk::label .tabbar.p.addrframe.el -text "Echo name" ttk::combobox .tabbar.p.addrframe.echo -width 25 -textvariable tiix_post_echoname -postcommand { @@ -371,6 +379,33 @@ grid columnconfigure .tabbar.p 0 -weight 1 grid rowconfigure .tabbar.p 0 -weight 0 grid rowconfigure .tabbar.p 1 -weight 1 +# Configuration widgets + +set rownum 0 +dict for {cname cval} $cfg { + ttk::label .tabbar.c.cfglbl_$cname -text $cname + if {[string match *color $cname]} { + ttk::button .tabbar.c.cfgtxt_$cname -textvariable $cname -command "set $cname \[tk_chooseColor -initialcolor $cval -title {Choose color}\]" + } else { + ttk::entry .tabbar.c.cfgtxt_$cname -textvariable $cname + } + grid .tabbar.c.cfglbl_$cname -row $rownum -column 0 -sticky nsw -padx 5 -pady 5 + grid .tabbar.c.cfgtxt_$cname -row $rownum -column 1 -sticky nswe -pady 5 + incr rownum +} +ttk::button .tabbar.c.cfgsave -text "Save configuration" -command { + set answer [tk_messageBox -title "tiix config" -message "Save the config file?" -icon question -type yesno] + if {$answer eq "yes"} { + set cfgtext "" + dict for {cname cval} $cfg { + append cfgtext "$cname \"[set $cname]\"\n" + } + writefileln $cfgfile [string trim $cfgtext] + tk_messageBox -title "tiix config" -type ok -icon info -message "Configuration saved!" -detail "Restart tiix to see the changes" + } +} +grid .tabbar.c.cfgsave -row $rownum -column 0 -sticky nsw -padx 5 +grid columnconfigure .tabbar.c 1 -weight 1 # Custom keybindings