From 8695c884a196c62a308f509c76b6564fd95ba8a8 Mon Sep 17 00:00:00 2001 From: Htylol Date: Sun, 20 Oct 2024 13:38:46 +0500 Subject: [PATCH] Improvements for name_desktop --- data_from_portwine/locales/PortProton.pot | 4 +++ .../locales/es/LC_MESSAGES/PortProton.po | 5 +++ .../locales/ru/LC_MESSAGES/PortProton.po | 7 ++++ data_from_portwine/scripts/functions_helper | 34 ++++++++++++++++--- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index f0ec6caa..ae1265b7 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -41,6 +41,10 @@ msgstr "" msgid "Newest DXVK, VKD3D, D8VK (Vulkan v1.3+)" msgstr "" +msgid "A higher number of duplicate desktop files were found for this file." + "\\nShould I delete the extra ones or not?" +msgstr "" + msgid "Gallium Nine (DirectX 9 for MESA)" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index fd4a3c39..5dfd2e07 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -1872,6 +1872,11 @@ msgstr "Agregar acceso directo a la biblioteca de STEAM" msgid "Name" msgstr "Nombre" +msgid "" +"A higher number of duplicate desktop files were found for this file." +"\\nShould I delete the extra ones or not?" +msgstr "" + msgid "For adding shortcut to STEAM, needed restart.\\n\\nRestart STEAM now?" msgstr "" "Para agregar el acceso directo a STEAM, es necesario reiniciar.\\n\\¿Quieres " diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 932cc075..5d9408ad 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -55,6 +55,13 @@ msgstr "Gallium Zink (трансляция OpenGL в Vulkan)" msgid "CREATE SHORTCUT" msgstr "СОЗДАТЬ ЯРЛЫК" +msgid "" +"A higher number of duplicate desktop files were found for this file." +"\\nShould I delete the extra ones or not?" +msgstr "" +"Для этого файла было обнаружено большее количество дубликатов\\nфайлов " +"рабочего стола. Удалить лишние или нет?" + msgid "Create shortcut for select file..." msgstr "Создать ярлык для выбранного файла..." diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 20b8b675..87ce82ad 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -786,7 +786,7 @@ debug_timer () { # Поиск нужного .desktop файла по $portwine_exe search_desktop_file () { - local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j df + local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY count=0 for desktop_file in "$PORT_WINE_PATH"/* ; do @@ -5424,10 +5424,26 @@ portwine_create_shortcut () { [[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE" [[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE" - if [[ -z "${PORTPROTON_NAME}" ]] ; then - name_desktop="$(basename "$portwine_exe")" + name_desktop_basename="$(basename "${portwine_exe//.exe/}")" + search_desktop_file + if [[ -n $df ]] ; then + name_desktop_df="${df//"$PORT_WINE_PATH/"/}" + name_desktop_df="${name_desktop_df//.desktop/}" + if [[ $(echo "$name_desktop_basename" | tr '[:lower:]' '[:upper:]') =~ $(echo "$name_desktop_df" | tr '[:lower:]' '[:upper:]') ]] + then + name_desktop="$name_desktop_df" + elif [[ -n $PORTPROTON_NAME ]] && [[ ${DESKTOP_FILES_ARRAY[*]} =~ $PORTPROTON_NAME ]] + then + name_desktop="$PORTPROTON_NAME" + else + name_desktop="$name_desktop_df" + fi else - name_desktop="${PORTPROTON_NAME}" + if [[ -z $PORTPROTON_NAME ]] ; then + name_desktop="$name_desktop_basename" + else + name_desktop="$PORTPROTON_NAME" + fi fi export name_desktop @@ -5477,7 +5493,15 @@ portwine_create_shortcut () { edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM - try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop" + if [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then + if yad_question "${translations[A higher number of duplicate desktop files were found for this file.\\nShould I delete the extra ones or not?]}" ; then + for rm in "${DESKTOP_FILES_ARRAY[@]}" ; do + rm -f "$rm" + done + fi + else + try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop" + fi echo "[Desktop Entry]" > "${PORT_WINE_PATH}/${name_desktop}.desktop" echo "Name=${name_desktop}" >> "${PORT_WINE_PATH}/${name_desktop}.desktop"