settings program complete overhaul

pull/39/head
Botspot 4 years ago
parent b49e92c751
commit aa1a4169ce

@ -24,7 +24,7 @@ while [ -z $exitloop ];do
IFS='|' IFS='|'
for name in $settings for name in $settings
do do
if [ ! -f "${DIRECTORY}/data/settings/${name}" ];then if [ ! -f "${DIRECTORY}/data/settings/${name}" ] || [ -z "$(cat "${DIRECTORY}/data/settings/${name}")" ];then
cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#' | head -n1 > "${DIRECTORY}/data/settings/${name}" cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#' | head -n1 > "${DIRECTORY}/data/settings/${name}"
fi fi
done done
@ -62,14 +62,17 @@ while [ -z $exitloop ];do
settings="$(ls "${DIRECTORY}/etc/setting-params" | tr '\n' '|')" settings="$(ls "${DIRECTORY}/etc/setting-params" | tr '\n' '|')"
yadparams='' yadparams=''
tooltips=''
PREIFS="$IFS" PREIFS="$IFS"
IFS='|' IFS='|'
i=0
for name in $settings for name in $settings
do do
i=$((i+2))
params="$(cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#')" params="$(cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#')"
#create file if necessary #create file if necessary
if [ ! -f "${DIRECTORY}/data/settings/${name}" ];then if [ ! -f "${DIRECTORY}/data/settings/${name}" ] || [ -z "$(cat "${DIRECTORY}/data/settings/${name}")" ];then
cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#' | head -n1 > "${DIRECTORY}/data/settings/${name}" cat "${DIRECTORY}/etc/setting-params/${name}" | grep -v '#' | head -n1 > "${DIRECTORY}/data/settings/${name}"
fi fi
#get current setting #get current setting
@ -88,22 +91,27 @@ $(echo "$params" | grep -v "$curval")"
#echo "Tooltip of ${name}: ${tooltip}" #echo "Tooltip of ${name}: ${tooltip}"
yadparams="${yadparams} yadparams="${yadparams}
--field=${name}::CB --field=:CB
${params}" ${params}"
tooltips="${tooltips}
--field=${name}:!!${tooltip}:BTN
''"
done done
IFS="$PREIFS" IFS="$PREIFS"
yadparams="$(echo "$yadparams" | tr ' ' '-')" #replace all space ' ' characters with a special kind of space: a punctuation space (). This way, bash won't split the strings into separate words.
echo "$yadparams" yadparams="$(echo "$yadparams" | sed 's/ //g')"
tooltips="$(echo "$tooltips" | sed 's/ //g')"
output="$(yad --center --title='Pi-Apps Settings' --width=310 --height=300 \ output="$(yad --center --title='Pi-Apps Settings' --width=310 --height=300 \
--form --separator='\n' --window-icon="${DIRECTORY}/icons/logo.png" \ --form --separator='\n' --window-icon="${DIRECTORY}/icons/logo.png" --columns=2 \
$yadparams \ $tooltips \
--field='New App'!"${DIRECTORY}/icons/create.png":FBTN "${DIRECTORY}/createapp" \ --field='New App'!"${DIRECTORY}/icons/create.png":FBTN "${DIRECTORY}/createapp" \
$yadparams \
--button='Reset'!"${DIRECTORY}/icons/backup.png"!'Reset all settings to their defaults':2 \ --button='Reset'!"${DIRECTORY}/icons/backup.png"!'Reset all settings to their defaults':2 \
--button=Cancel!"${DIRECTORY}/icons/exit.png":1 \ --button=Cancel!"${DIRECTORY}/icons/exit.png":1 \
--button=Save!"${DIRECTORY}/icons/check.png":0 \ --button=Save!"${DIRECTORY}/icons/check.png":0 \
2>/dev/null)" )"
button=$? #get exit code to determine which button was pressed button=$? #get exit code to determine which button was pressed
#exit if save was not clicked #exit if save was not clicked

Loading…
Cancel
Save