commit c474a15e4e5141511157dfa72b2da0a16647d533
parent 7c594acbf14ce9126a66a098f1d78febb9f69b73
Author: Luxferre <lux@ferre>
Date: Wed, 23 Oct 2024 17:28:18 +0300
Implemented configuration tab in tiix
Diffstat:
M | config.txt | | | 12 | ++++++------ |
M | tiix.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