#!/usr/bin/env bash
# SOURCE "winezgui-shortcuts-delete"
# REVIEW
winezgui-shortcuts-delete()
{
  unset COMMAND count SHOW_OPTION NAMES FILES SELECTED_OPTION search_list
    
  SOURCE "script-check-variables-loaded-or-not"
  script-check-variables-loaded-or-not
  SAVEIFS=${IFS}
  IFS=$(echo -en "\n\b")

  count=0
  NAMES=()
  FILES=()
  # Find all exe files in drive_c Exclude windows directory,
  # and common exe files present in Program Files directory
  # Add those files to FILES array and filenames to NAMES array
  BASENAME=$(basename "${SELECTED_EXE}"|sed 's|\.[eE][Xx][eE]||g'\
                                       |sed 's|\.[mM][Ss][iI]||g')
  NEW_SCRIPT_FILE="${PREFIXDIR}/${BASENAME}_otshortcuts-deleteher.sh"
  NEW_SCRIPT_DESKTOP_FILE="${PREFIXDIR}/${BASENAME}_other.desktop"


  search_list=$(find ${APPLICATIONSDIR} -maxdepth 1 -iname "*.desktop" \
                                   -type l -print| tr '\n' '|')

  exe_found=$(echo ${search_list})

  if [ -z "${exe_found}" ] ; then
       ${ZENITY_CMD} --error --title "${APP_WITH_VER} - Prefix!" \
              --text "No Shortcuts found!"
       WineZGUI_Window
  fi
  # if exe_found has value, then only change exe
  for i in $(echo ${search_list}|tr '|' '\n'|sort)
  do
      RealName=$(basename "$i")
      RealFile=$(realpath -m "$i")

      # If 1st value is empty, enable it
      if [ -z "${SHOW_OPTION}" ]; then
           SHOW_OPTION+="0 \"${RealName}\""
           SHOW_OPTION+=" "
           NAMES+=("${RealName}")
           FILES+=("${RealFile}")
      else
           SHOW_OPTION+="0 \"${RealName}\""
           SHOW_OPTION+=" "
           NAMES+=("${RealName}")
           FILES+=("${RealFile}")
      fi
      count=$(expr ${count} + 1)
  done
  
  
   # Generate Height value
   SOURCE "winezgui-get-window-height"
   winezgui-get-window-height ${#FILES[@]}
  # 3. Show the found exe files using zenity
  unset COMMAND
  COMMAND+="${ZENITY_CMD} --title=\"${APP_WITH_VER} - Delete Shortcut!\" "
  COMMAND+="--text \"Delete...\" "
  COMMAND+="--checklist --list --width=460 --height=${HEIGHT} "
  COMMAND+="--hide-header --column \" \" --column \"Action\" ${SHOW_OPTION}"
  SELECTED_OPTION=$(eval ${COMMAND})
  unset count
  
  echo ${SELECTED_OPTION}

  # Question whether to delete select list of files using zenity
  DELETE_ME=$(echo ${SELECTED_OPTION}|sed 's/|/\\n/g')
  # Delete
  ${ZENITY_CMD} --question --no-wrap --title="Delete Shorcuts?" \
                --text "${DELETE_ME}\n\nContinue..?"
       ANSWER=$?
       # 1.1 If user selects no or cancels to locate exe file
       if [ ${ANSWER} -eq 1 ]; then
            dbug "I: Delete Shortcuts: User Cancelled!"
            return 1  # Return to Script window
       fi
  #SHORTCUTS_TO_DELETE=()
  # 4. Find which file the user selected and set th e selected exe into variable
  for i in $(echo ${SELECTED_OPTION}|tr '|' '\n'|sort)
  do
   
     for NAME in "${NAMES[@]}"; do
         if [ "${NAME}" = "${i}" ]; then
              echo "Selected $NAME"
              echo "File is ${NAME}"
              #SHORTCUTS_TO_DELETE+=("${FILES[count]}")
              #echo "${FILES[count]}"
              mv "${FILES[count]}" "${FILES[count]}.bak"
              break
         fi
         count=$(expr ${count} + 1)
     done
  done 
  IFS=${SAVEIFS}

  zenity --info --text="${DELETE_ME}\n\n Deleted!" --title "Deleted Shortcuts!"
  echo "${SHORTCUTS_TO_DELETE}"
#   unset DELETE_DESKTOP_FILE
#   DELETE_DESKTOP_FILE=$(realpath -m "${SELECTED_SHORTCUT}")
#   # Delete other Script file
#   if [[ "${NAME}" == *"_other."* ]]; then
#     echo "$NAME has _other in it"
#     DELETE_SCRIPT_FILE=$(echo "${DELETE_DESKTOP_FILE}"|sed "s|\.desktop|\.sh|g")
#     rm -vf "${DELETE_SCRIPT_FILE}"
#   fi
#   cp "${DELETE_DESKTOP_FILE}" "${DELETE_DESKTOP_FILE}.bak"
#   rm -vf "${DELETE_DESKTOP_FILE}"
  # Clean up broken shortcuts and update shortcuts menu

  SOURCE "winezgui-remove-broken-links"
  winezgui-remove-broken-links
}
