Commit 8781ca6e authored by Vladislav's avatar Vladislav

Rewrite PW_DESKTOP_FILES

parent 6bb1c63e
......@@ -602,35 +602,42 @@ if [[ -f "${portwine_exe}" ]] ; then
portwine_launch
fi
else
PW_ALL_DF="$(ls "${PORT_WINE_PATH}"/ | grep .desktop | grep -vE '(PortProton|readme)')"
if [[ -z "${PW_ALL_DF}" ]]
then export PW_GUI_SORT_TABS=(1 2 3 4 5)
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
if [[ "$RESTART_PP_USED" == "userconf" ]] ; then
unset RESTART_PP_USED
gui_userconf
fi
export KEY_MENU="$RANDOM"
AMOUNT_GENERATE_BUTTONS="0"
for desktop_file in "${PORT_WINE_PATH}"/* ; do
if [[ $desktop_file =~ .desktop ]] ; then
if [[ ! $desktop_file =~ (/PortProton|/readme) ]] ; then
while IFS= read -r line ; do
[[ $line =~ ^Exec= ]] && PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]="${line//Exec=/}"
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
done < "$desktop_file"
desktop_file="${desktop_file//"${PORT_WINE_PATH}"\//}"
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="${desktop_file}"
DESKTOP_FILE_ARRAY+=($AMOUNT_GENERATE_BUTTONS)
(( AMOUNT_GENERATE_BUTTONS++ ))
fi
fi
done
IFS=$'\n'
AMOUNT_GENERATE_BUTTONS="1"
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do
if check_flatpak ; then
PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F'=' '{print $2}' |
sed -e 's|flatpak run ru.linux_gaming.PortProton||' -e 's|"||g' -e 's|^[ \t]*||')"
else
PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F"=env " '{print $2}' |
sed -e "s|${PORT_SCRIPTS_PATH}/start.sh||" -e 's|"||g' -e 's|^[ \t]*||')"
fi
PW_ICON_PATH="$(grep Icon "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F= '{print $2}')"
PW_NAME_D_ICON_48="${PW_ICON_PATH%.png}_48"
PW_NAME_D_ICON_128="${PW_ICON_PATH%.png}"
if [[ -f "${PW_NAME_D_ICON}" ]] ; then
resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
for df in "${DESKTOP_FILE_ARRAY[@]}" ; do
PW_DESKTOP_FILES="${PW_ALL_DF[$df]}"
if [[ -n ${PW_NAME_D_ICON[$df]} ]] ; then
PW_NAME_D_ICON_48="${PW_ICON_PATH[$df]%.png}_48"
PW_NAME_D_ICON_128="${PW_ICON_PATH[$df]%.png}"
if check_flatpak ; then
PW_NAME_D_ICON_NEW=${PW_NAME_D_ICON[$df]//flatpak run ru.linux_gaming.PortProton /}
else
PW_NAME_D_ICON_NEW=${PW_NAME_D_ICON[$df]//"${PORT_SCRIPTS_PATH}/start.sh" /}
fi
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON_NEW//\"/}"
resize_png "${PW_NAME_D_ICON_NEW}" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
resize_png "${PW_NAME_D_ICON_NEW}" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
fi
if [[ $PW_DESKTOP_FILES =~ [\(\)\!\$\%\&\`\'\"\>\<\\\|\;] ]] ; then
export PW_DESKTOP_FILES_REGEX="1"
......@@ -658,9 +665,15 @@ else
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES}"
fi
PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%"
(( AMOUNT_GENERATE_BUTTONS++ ))
done
MAIN_GUI_ROWS="$(( AMOUNT_GENERATE_BUTTONS / MAIN_GUI_COLUMNS + 1 ))"
MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))"
if [[ -z "${PW_ALL_DF[0]}" ]]
then export PW_GUI_SORT_TABS=(1 2 3 4 5)
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
fi
KEY_MENU="$RANDOM"
IFS="%"
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[4]}" --form --columns="$MAIN_GUI_ROWS" --homogeneous-column \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment