#!/bin/bash
# Monday, 05/10/2021

pth=`dirname "$1"`
if [ -z "$1" ]; then
	DIALOG=Xdialog
	$DIALOG   --rc-file /usr/share/pixmaps/colorboxDOH.rc  --icon /usr/share/pixmaps/doh.xpm  --title "DOH!" \
		--msgbox "\nFile to convert not found\n" 0 0
	exit 1
fi
cd $pth


echo 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAACXBIWXMAAAFpAAABaQHWFPlbAAAA
GXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAilJREFUKJF10k2IVXUYBvDf/5xz
rzN69aLZjDo6hYgDg2hRCtJGEBJcWIgbsYVhRq5aBIIgoulCKVqFy5DciRGIYAUJOi6CasJNfqCY
n1no3M58ODN37jmnxZ25zoz1wLt6/8/zPs/DP+B1rPLfuIC12ICTqM9+EAKPd1t8HRYpxWWKqeXH
ljxcJHn6sv73MkXaqfz+bWMXZwjEwl8N6ztAW2CsMBuHPHDUIxHeUvmhz/A2jEOEAD7tIn2DA8tm
kMfkNquCHH2G365KrmIlJKEpwrq5Tca69snwqcMe+NUzmZmuUo0e9OODpOVg7x9srXL+H99JbXNT
w4txpqGKjUpCrbChmD692gvNMv93yqKvEJ53MIkrhvxuVJeyU1a67zVXrZlxep8OA9YfQJHM9nXG
gDfNc0GPxZKW6BT2W+q4FYIkpllgNLVsKPQZcs5qP1fGW6RfjIgFn+t2wgoBPxpsgyhME/jJsM90
e9yW2/nOqJPLBsGfJnyvxyeWgH4j9rixC1oRvq6m3k0rFojt6h2QdsaObBq3+Wzdl/VXLJQYCrnT
Lw2qPGkoJg/HsXCwq2NB6aPtdVFtQq3RcGxLJisHI5XIpfljvul8ZnUtOLV82BebMj3XJvyWj1xM
ZZdDSRhduuPVtnvdk2YmckqtVC303sj8vTB40hFZ+21Nemfw0F31o6EUhVtJHM2HImraynNRURQl
FIrnvykOoRGCLMuLOe3Ch2mWnfkXdvXCrzXsRY8AAAAASUVORK5CYII=' | base64 -d > /tmp/icon.png

zz=`command -v cjxl`
if [ -z "$zz" ]; then	
	DIALOG=Xdialog
	$DIALOG   --rc-file /usr/share/pixmaps/colorboxDOH.rc  --icon /usr/share/pixmaps/doh.xpm  --title "DOH!" \
		--msgbox "\nThe \"JPEG-XL\" library and tools are needed for this conversion.\n" 0 0
	exit 1
fi


# get rid of spaces in filename
tname="$(echo "$1" | sed 's/ /_/g')"
mv "$1" "$tname" 2> /dev/null
# pull transparency notation for PNG files that I use on WPClipart.
newname="$(echo "$tname" | sed 's/_T\.png/\.png/g')"
jname=`echo "$newname" | sed 's/\.png/\.jxl/I'`

VALUE=`yad --scale --window-icon="applications-accessories" --value "92" --min-value "60" --max-value "100" --title "Output Quality" --center --on-top  --width=320`
# In case user cancels operation:
if [ -z "$VALUE" ]; then
	exit 
fi

$(sleep 1 && wmctrl -a "Converting" -b add,above)&
cjxl "$tname" "$jname" -q $VALUE | zenity --width=400 --title="Converting" --progress --pulsate --window-icon="/tmp/icon.png" --auto-close --text="$ttxt" 2> /dev/null&
####  THE REST of this simply stops conversion if the dialog is cancelled #########
# get zenity process id
PID_ZENITY=${!}
# get firstly created child process id, which is running all tasks
PID_CHILD=$(pgrep -o -P $$)
# loop to check that progress dialog has not been cancelled
while [ "$PID_ZENITY" != "" ]
do
  # get PID of all running tasks
  PID_TASKS=$(pgrep -d ' ' -P ${PID_CHILD})
  # check if zenity PID is still there (dialog box still open)
  PID_ZENITY=$(ps h -o pid --pid ${PID_ZENITY} | xargs)
  # sleep for 2 second
  sleep 2
done
# since dialog is finished or cancelled...
rm -f /tmp/icon.png 2>/dev/null
killall -9 cjxl 2>/dev/null
###################################################################

rm -f /tmp/icon.png 2>/dev/null
echo "Conversion complete"
exit 0
