From 7cb3be3d087f1ef6912b5e609ad4c1994ed26d3c Mon Sep 17 00:00:00 2001 From: Htylol Date: Sat, 26 Oct 2024 17:34:49 +0500 Subject: [PATCH] Added portwine_change_shortcut --- data_from_portwine/locales/PortProton.pot | 15 ++++- .../locales/es/LC_MESSAGES/PortProton.po | 26 +++++-- .../locales/ru/LC_MESSAGES/PortProton.po | 26 +++++-- data_from_portwine/scripts/functions_helper | 67 ++++++++++++++----- data_from_portwine/scripts/start.sh | 8 +-- 5 files changed, 103 insertions(+), 39 deletions(-) diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index ba94dcf..62eef70 100644 --- a/data_from_portwine/locales/PortProton.pot +++ b/data_from_portwine/locales/PortProton.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" - "POT-Creation-Date: 2024-10-26 03:57+0500\n" + "POT-Creation-Date: 2024-10-26 06:41+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -59,10 +59,10 @@ msgstr "" msgid "Create shortcut for select file..." msgstr "" -msgid "DELETE SHORTCUT" +msgid "CHANGE SHORTCUT" msgstr "" -msgid "Delete shortcut for select file..." +msgid "Change shortcut for select file..." msgstr "" msgid "Launching" @@ -1444,6 +1444,12 @@ msgstr "" msgid "Restarting STEAM... Please wait." msgstr "" +msgid "The shortcut will be changed in the PortProton directory." +msgstr "" + +msgid "REMOVE SHORTCUT" +msgstr "" + msgid "Could not find the file:" msgstr "" @@ -1451,6 +1457,9 @@ msgid "ATTENTION:\\nIf you forgot to mount the disk with the running " "application, click CANCEL!" msgstr "" +msgid "DELETE SHORTCUT" +msgstr "" + msgid "Starting prefix manager:" msgstr "" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index aa931d3..e4b5999 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,15 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-26 03:57+0500\n" -"PO-Revision-Date: 2024-10-24 13:51+0500\n" +"POT-Creation-Date: 2024-10-26 06:41+0500\n" +"PO-Revision-Date: 2024-10-26 13:58+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.4.2\n" +"X-Generator: Poedit 3.4.4\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -64,11 +64,11 @@ msgstr "CREAR ACCESO DIRECTO" msgid "Create shortcut for select file..." msgstr "Crear un acceso directo para el archivo seleccionado..." -msgid "DELETE SHORTCUT" -msgstr "ELIMINAR ACCESO DIRECTO" +msgid "CHANGE SHORTCUT" +msgstr "CAMBIAR ACCESO DIRECTO" -msgid "Delete shortcut for select file..." -msgstr "Eliminar el acceso directo del archivo seleccionado..." +msgid "Change shortcut for select file..." +msgstr "Cambiar un acceso directo para el archivo seleccionado..." msgid "Launching" msgstr "Lanzamiento" @@ -1878,6 +1878,12 @@ msgstr "" msgid "Restarting STEAM... Please wait." msgstr "Restarting STEAM... Please wait." +msgid "The shortcut will be changed in the PortProton directory." +msgstr "El acceso directo se cambiará en el directorio de PortProton." + +msgid "REMOVE SHORTCUT" +msgstr "ELIMINAR ACCESO DIRECTO" + msgid "Could not find the file:" msgstr "No se pudo encontrar el archivo:" @@ -1889,6 +1895,9 @@ msgstr "" "Si olvidaste montar el disco con la aplicación en ejecución, ¡haz clic en " "CANCELAR!" +msgid "DELETE SHORTCUT" +msgstr "ELIMINAR ACCESO DIRECTO" + msgid "Starting prefix manager:" msgstr "Iniciando el administrador de prefijos:" @@ -2173,6 +2182,9 @@ msgstr "Por favor, espera. Descargando portadas para" #~ "Se encontraron un mayor número de archivos de escritorio duplicados para " #~ "este archivo.\\n¿Debería eliminar los adicionales o no?" +#~ msgid "Delete shortcut for select file..." +#~ msgstr "Eliminar el acceso directo del archivo seleccionado..." + #~ msgid "Forced activation of vertical sync" #~ msgstr "Activación forzada de la sincronización vertical" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 57b1bc2..3c2bff3 100644 --- a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-26 03:57+0500\n" -"PO-Revision-Date: 2024-10-24 12:45+0500\n" +"POT-Creation-Date: 2024-10-26 06:41+0500\n" +"PO-Revision-Date: 2024-10-26 06:43+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" -"X-Generator: Poedit 3.4.2\n" +"X-Generator: Poedit 3.4.4\n" msgid "" "A running PortProton session was detected.\\nDo you want to end the previous " @@ -64,11 +64,11 @@ msgstr "СОЗДАТЬ ЯРЛЫК" msgid "Create shortcut for select file..." msgstr "Создать ярлык для выбранного файла..." -msgid "DELETE SHORTCUT" -msgstr "УДАЛИТЬ ЯРЛЫК" +msgid "CHANGE SHORTCUT" +msgstr "ИЗМЕНИТЬ ЯРЛЫК" -msgid "Delete shortcut for select file..." -msgstr "Удалить ярлык для выбранного файла..." +msgid "Change shortcut for select file..." +msgstr "Изменить ярлык для выбранного файла..." msgid "Launching" msgstr "Запуск" @@ -1856,6 +1856,12 @@ msgstr "" msgid "Restarting STEAM... Please wait." msgstr "Перезапускаем STEAM... Пожалуйста, подождите." +msgid "The shortcut will be changed in the PortProton directory." +msgstr "Ярлык будет изменён в каталоге PortProton." + +msgid "REMOVE SHORTCUT" +msgstr "УДАЛИТЬ ЯРЛЫК" + msgid "Could not find the file:" msgstr "Не удалось найти файл:" @@ -1866,6 +1872,9 @@ msgstr "" "ВНИМАНИЕ:\\nЕсли вы забыли примонтировать диск с запускаемым приложением, " "нажмите ОТМЕНИТЬ!" +msgid "DELETE SHORTCUT" +msgstr "УДАЛИТЬ ЯРЛЫК" + msgid "Starting prefix manager:" msgstr "Запуск менеджера префиксов:" @@ -2157,6 +2166,9 @@ msgstr "Пожалуйста, подождите. Загрузка обложе #~ "\\nShould I delete the extra ones or not?" #~ msgstr "Найдены дубликаты создаваемого ярлыка.\\nУдалить лишние ярлыки?" +#~ msgid "Delete shortcut for select file..." +#~ msgstr "Удалить ярлык для выбранного файла..." + #~ msgid "Forced activation of vertical sync" #~ msgstr "Принудительное включение вертикальной синхронизации" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 4e6e4ba..78734b9 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -851,7 +851,7 @@ debug_timer () { # Параллельное создание базы по времени после завершения приложения search_desktop_file () { local desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL count line1 line2 ENTRY_POINT_FIND - unset TIME_CURRENT DESKTOP_FILES_ARRAY + unset TIME_CURRENT DESKTOP_CORRECT_FILE count=0 for desktop_file in "$PORT_WINE_PATH"/* ; do desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}" @@ -876,16 +876,15 @@ search_desktop_file () { fi done < "$PW_DATABASE_PATH/times_current" if [[ $portwine_exe == "${EXEC_DESKTOP//\"/}" ]] ; then - DESKTOP_FILES_ARRAY["$count"]="$desktop_file" - (( count++ )) + DESKTOP_CORRECT_FILE="$desktop_file" fi fi fi done IFS="$orig_IFS" - if [[ $PW_NEW_DESKTOP == 1 ]] && [[ -z ${line2[3]} ]] ; then + if [[ $PW_NEW_DESKTOP == 1 ]] && [[ ${line2[3]} != NEW_DESKTOP ]] ; then if [[ -n $TIME_CURRENT ]] ; then - sed -i "s|${line2[1]} ${line2[2]}|${line2[1]} ${line2[2]} NEW_DESKTOP|g" "$PW_DATABASE_PATH/times_current" + sed -i "s|${line2[1]} ${line2[2]} ${line2[3]}|${line2[1]} ${line2[2]} NEW_DESKTOP|g" "$PW_DATABASE_PATH/times_current" else TIME_CURRENT=0 echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_CURRENT NEW_DESKTOP" >> "$PW_DATABASE_PATH/times_current" @@ -899,11 +898,11 @@ search_desktop_file () { else TIME_CURRENT=0 TIME_TOTAL=$(( $TIME_CURRENT + PW_TIME_IN_GAME )) - echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL" >> "$PW_DATABASE_PATH/times_current" + echo "${portwine_exe// /#@_@#} $ENTRY_POINT $TIME_TOTAL OLD_DESKTOP" >> "$PW_DATABASE_PATH/times_current" fi else if [[ $ENTRY_POINT_FIND == 1 ]] ; then - [[ -z $TIME_CURRENT ]] && TIME_CURRENT=0 + TIME_CURRENT=${line2[2]} if [[ -n $PW_TIME_IN_GAME ]] then TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME )) else TIME_TOTAL=$TIME_CURRENT @@ -928,9 +927,8 @@ create_name_desktop () { elif [[ -n $name_desktop ]] ; then DESKTOP_NAME_FILE="$name_desktop" unset name_desktop - elif [[ -n ${DESKTOP_FILES_ARRAY[0]} ]] \ - && [[ -z ${DESKTOP_FILES_ARRAY[1]} ]] ; then - DESKTOP_NAME_FILE="${DESKTOP_FILES_ARRAY[0]//"$PORT_WINE_PATH/"/}" + elif [[ -n $DESKTOP_CORRECT_FILE ]] ; then + DESKTOP_NAME_FILE="${DESKTOP_CORRECT_FILE//"$PORT_WINE_PATH/"/}" DESKTOP_NAME_FILE="${DESKTOP_NAME_FILE//.desktop/}" fi @@ -5593,7 +5591,10 @@ portwine_create_shortcut () { --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":2 \ --button="${translations[CREATE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) PW_YAD_OUT=$? + portwine_output_yad_shortcut +} +portwine_output_yad_shortcut () { if [[ "$PW_YAD_OUT" == "0" ]] ; then name_desktop=$(echo "$OUTPUT" | awk -F'|' '{print $1}' | sed "s/\`//g" | sed "s/\"//g" | sed "s/'//g" | sed "s/\!//g") PW_SHORTCUT_MENU=$(echo "$OUTPUT" | awk -F'|' '{print $2}') @@ -5602,13 +5603,7 @@ portwine_create_shortcut () { edit_user_conf_from_gui PW_SHORTCUT_MENU PW_SHORTCUT_DESKTOP PW_SHORTCUT_STEAM - if [[ -n ${DESKTOP_FILES_ARRAY[0]} && $name_desktop != "$DESKTOP_NAME_FILE" ]] || [[ -n ${DESKTOP_FILES_ARRAY[1]} ]] ; then - for rm in "${DESKTOP_FILES_ARRAY[@]}" ; do - rm -f "$rm" - done - else - try_remove_file "${PORT_WINE_PATH}/${name_desktop}.desktop" - fi + portwine_delete_shortcut [[ -z $name_desktop ]] && create_name_desktop && export name_desktop="$PW_NAME_DESKTOP_PROXY" @@ -5685,7 +5680,7 @@ portwine_create_shortcut () { [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB restart_pp fi - elif [[ "$PW_YAD_OUT" == "2" ]] ; then + elif [[ "$PW_YAD_OUT" =~ (^1$|^2$|^252$) ]] ; then print_info "Restarting PP..." [[ -n $KEY_MENU ]] && unset portwine_exe [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB @@ -5760,6 +5755,42 @@ pw_auto_create_shortcut () { } export -f pw_auto_create_shortcut +# GUI CHANGE SHORTCUT +portwine_change_shortcut () { + export GDK_BACKEND="x11" + + [[ -z "${PW_SHORTCUT_MENU}" ]] && PW_SHORTCUT_MENU="TRUE" + [[ -z "${PW_SHORTCUT_DESKTOP}" ]] && PW_SHORTCUT_DESKTOP="TRUE" + [[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE" + + unset name_desktop + create_name_desktop + export name_desktop="$PW_NAME_DESKTOP_PROXY" + + [[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}" + + OUTPUT=$("${pw_yad}" --title="${translations[Choices]}" --form \ + --gui-type="settings-shortcut" \ + --gui-type-box="${NOTEBOOK_GUI_TYPE_BOX}" --gui-type-layout="${NOTEBOOK_GUI_TYPE_LAYOUT}" \ + --gui-type-text="${NOTEBOOK_GUI_TYPE_TEXT}" --gui-type-images="${NOTEBOOK_GUI_TYPE_IMAGE}" \ + --window-icon "$PW_GUI_ICON_PATH/portproton.svg" \ + --image "${PORT_WINE_PATH}/data/img/${name_desktop_png}.png" \ + --text-align="center" --text "${translations[The shortcut will be changed in the PortProton directory.]}" \ + --field="${translations[Name]}" "${name_desktop}" \ + --field=" ${translations[Add shortcut to MENU -> GAMES]}":CHK "$PW_SHORTCUT_MENU" \ + --field=" ${translations[Add shortcut to Desktop]}":CHK "$PW_SHORTCUT_DESKTOP" \ + --field=" ${translations[Add shortcut to STEAM library]}":CHK "$PW_SHORTCUT_STEAM" \ + --button="${translations[REMOVE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ + --button="${translations[CHANGE SHORTCUT]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null) + PW_YAD_OUT=$? + if [[ $PW_YAD_OUT == 1 ]] ; then + [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB + portwine_delete_shortcut + restart_pp + fi + portwine_output_yad_shortcut +} + portwine_delete_shortcut () { PW_DELETE_MENU="$(grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop 2>/dev/null)" PW_DELETE_SHORTCUT+=(${PW_DELETE_MENU// /@_@}) diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index c99c8da..9092623 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -492,10 +492,10 @@ if [[ -f "${portwine_exe}" ]] ; then fi if [[ "${PW_GUI_DISABLED_CS}" != 1 ]] ; then pw_create_gui_png - if ! grep -il "${portwine_exe}" "${HOME}/.local/share/applications"/*.desktop &>/dev/null ; then + if ! grep -il "${portwine_exe}" "$PORT_WINE_PATH"/*.desktop &>/dev/null ; then PW_SHORTCUT="${translations[CREATE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Create shortcut for select file...]}:100" else - PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98" + PW_SHORTCUT="${translations[CHANGE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Change shortcut for select file...]}:98" fi create_name_desktop @@ -647,7 +647,7 @@ else done < "$PW_DATABASE_PATH/times_current" if [[ $SORT_WITH_TIME == enabled ]] && [[ $NEW_DESKTOP == 1 ]] ; then unset NEW_DESKTOP - sed -i "s/${line2[1]} ${line2[2]} ${line2[3]}/${line2[1]} ${line2[2]}/" "$PW_DATABASE_PATH/times_current" + sed -i "s/${line2[1]} ${line2[2]} ${line2[3]}/${line2[1]} ${line2[2]} OLD_DESKTOP/" "$PW_DATABASE_PATH/times_current" PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) else PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) @@ -899,7 +899,7 @@ case "$PW_YAD_SET" in esac case "$PW_YAD_SET" in - 98) portwine_delete_shortcut ;; + 98) portwine_change_shortcut ;; 100) portwine_create_shortcut ;; DEBUG|102) portwine_start_debug ;; 106) portwine_launch ;;