wok diff sane-backends/stuff/tazpanel/sane.cgi @ rev 22920
gtk+3 with cups disabled
author | Hans-G?nter Theisgen |
---|---|
date | Mon Feb 24 16:38:08 2020 +0100 (2020-02-24) |
parents | 808a9e7827f1 |
children |
line diff
1.1 --- a/sane-backends/stuff/tazpanel/sane.cgi Mon Jul 01 17:09:09 2019 +0200 1.2 +++ b/sane-backends/stuff/tazpanel/sane.cgi Mon Feb 24 16:38:08 2020 +0100 1.3 @@ -287,15 +287,23 @@ 1.4 cat "$(echo $device | sed 's/,.*//').log" 2> /dev/null || 1.5 scanimage --help -d "$(echo $device | sed 's/,.*//')" 1.6 } | dos2unix | sed 's|\[=| [|;s/||/|/g' | awk ' 1.7 +function unit(s) 1.8 +{ 1.9 + if (match(s,/[0-9]*mm$/) || match(s,/[0-9]*mm /)) u="mm" 1.10 + else if (match(s,/[0-9]*%$/) || match(s,/[0-9]*% /)) u="%" 1.11 + else if (match(s,/[0-9]*dpi$/) || match(s,/[0-9]*dpi /)) u="dpi" 1.12 + else u="none" 1.13 +} 1.14 + 1.15 function minmax() 1.16 { 1.17 inactive=1 1.18 if (match($2,"[0-9]")) { 1.19 i=$2; sub(/\.\..*/,"",i) 1.20 j=$2; sub(/.*\.\./,"",j) 1.21 - sub(/\..*/,"",j); sub(/[dm%].*/,"",j) 1.22 + unit(j); sub(/\..*/,"",j); sub(/[dm%].*/,"",j) 1.23 k=$0; sub(/.* \[/,"",k); sub(/\].*/,"",k) 1.24 - printf("\n%s",$1 " " int(k) " " int(i) " " int(j)) 1.25 + printf("\n%s",$1 " " int(k) " " int(i) " " int(j) " " u) 1.26 inactive=0 1.27 } 1.28 } 1.29 @@ -306,12 +314,12 @@ 1.30 inactive=1 1.31 if (index(i,"|")) { 1.32 sub(/^ *--*[a-z-]* */,"",i) 1.33 - sub(/\[\(/,"",i); sub(/\)\]/,"",i) 1.34 + sub(/\[\(/,"",i); sub(/\)\]/,"",i); unit(i) 1.35 sub(/dpi .*/,"",i); gsub(/ \[.*\].*/,"",i) 1.36 k=$0; sub(/.* \[/,"",k); sub(/\].*/,"",k) 1.37 gsub(/ /,"=",k) 1.38 gsub(/ /,"=",i) 1.39 - printf("\n%s",$1 " " k " enum " i) 1.40 + printf("\n%s",$1 " " k " enum " i " " u) 1.41 inactive=0 1.42 } 1.43 else minmax() 1.44 @@ -321,23 +329,26 @@ 1.45 if (/scanimage --help/) end=1 1.46 if (end != 0) next 1.47 if (/:$/) parse=0 1.48 - if (/Scan mode/ || /Mode/ || /Advanced/ || /Geometry/) parse=1 1.49 + if (/[Mm]ode/ || /[Aa]dvanced/ || /[Gg]eometry/) parse=1 1.50 + if (/brightness/ || /contrast/ || /orientation/) parse=1 1.51 if (parse != 1) next 1.52 if (/\[inactive\]/) { inactive=1; next } 1.53 - if (match("-l-t-x-y", $1)) minmax() 1.54 + if (/[0-9]\.\.[0-9]/) minmax() 1.55 else if (/^ --/) enum() 1.56 else if (!/:$/ && inactive == 0) printf(" %s",$0) 1.57 } END { print "" } 1.58 ' | sed 1d)" 1.59 fi 1.60 output="$(n=$(echo "$params" | wc -l); echo "$params" | \ 1.61 -while read name def min max help; do 1.62 +while read name def min max unit help; do 1.63 name="${name#-}" 1.64 name="${name#-}" 1.65 name="${name//-/_}" 1.66 help="$(echo $help | sed 's| | |g;s|"|\"|g')" 1.67 def="${def//=/ }" 1.68 max="${max//=/ }" 1.69 + [ "$unit" = "none" ] && unit="" 1.70 + [ "$name" ] || continue 1.71 if [ "$min" == "enum" ]; then 1.72 res_min=1000000 1.73 res_max=0 1.74 @@ -357,13 +368,16 @@ 1.75 fi 1.76 shift 1.77 done 1.78 - echo "</select>" 1.79 + echo "</select> $unit" 1.80 else 1.81 [ "$(xPOST $name)" ] && def=$(xPOST $name) 1.82 [ $def -lt $min ] && def=$min 1.83 [ $def -gt $max ] && def=$max 1.84 - f="<fieldset><legend>$(_ "$name")</legend><input type=\"range\" min=\"$min\" max=\"$max\" name=\"$name\" value=\"$def\"" 1.85 - u="" 1.86 + [ "$idrange" ] || idrange=1 1.87 + f="<fieldset><legend>$(_ "$name")</legend> 1.88 +<input type=\"range\" id=\"range$idrange\" min=\"$min\" max=\"$max\" 1.89 +name=\"$name\" value=\"$def\" onchange=\"updaterange(this)\"" 1.90 + u="<div id=\"range$((idrange++))val\">$def${unit+ $unit}</div>" 1.91 case "$name" in 1.92 x|y|l|t) cat <<EOT 1.93 :${name}_max=$max 1.94 @@ -374,7 +388,7 @@ 1.95 [ "$name" == "$name2" ] || continue 1.96 [ "$(xPOST geometry_$name)" ] && 1.97 val="$(xPOST geometry_$name)" 1.98 - f="<fieldset><legend>$(_ "$n2")</legend><input name=\"geometry_$name\" id=\"$id\" value=\"$val\"" 1.99 + f="<fieldset><legend>$(_ "$n2")</legend><input type=\"text\" name=\"geometry_$name\" id=\"$id\" value=\"$val\"" 1.100 u=" mm" 1.101 break 1.102 done <<EOT 1.103 @@ -385,7 +399,7 @@ 1.104 EOT 1.105 esac 1.106 [ "$name" == "resolution" ] && f="$f onchange=showGeometry()" 1.107 - echo "<td>$f type=\"text\" title=\"$min .. $max. $help\" size=5 maxlength=5>$u" 1.108 + echo "<td>$f title=\"$min .. $max. $help\" size=5 maxlength=5>$u" 1.109 res_min=$min 1.110 res_max=$max 1.111 fi 1.112 @@ -393,10 +407,9 @@ 1.113 resolution) cat <<EOT 1.114 <input type="hidden" name="res_min" value="$res_min"> 1.115 <input type="hidden" name="res_max" value="$res_max"> 1.116 - dpi 1.117 EOT 1.118 esac 1.119 - echo "</filedset></td>" 1.120 + echo "</fieldset></td>" 1.121 n=$(($n - 2)) 1.122 case "$n" in 1.123 1|2) echo "</tr><tr>" 1.124 @@ -430,6 +443,11 @@ 1.125 alert((Math.round(x * y / 100000)/10) + ' Mpixels\n' + x + 'x' + y); 1.126 } 1.127 } 1.128 + 1.129 +function updaterange(r) { 1.130 + var e=document.getElementById(r.id+"val") 1.131 + if (e) e.innerHTML=e.innerHTML.replace(/[0-9]*/,r.value) 1.132 +} 1.133 --> 1.134 </script> 1.135