diff --git a/data_from_portwine/locales/PortProton.pot b/data_from_portwine/locales/PortProton.pot index 950a7d59..3fbb167d 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-07 15:49+0500\n" + "POT-Creation-Date: 2024-10-08 10:20+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -239,7 +239,7 @@ msgstr "" msgid "hours" msgstr "" -msgid "not known yet" +msgid "less than a minute" msgstr "" msgid "minute" diff --git a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po index 3a0c3860..bf9f7384 100644 --- a/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po +++ b/data_from_portwine/locales/es/LC_MESSAGES/PortProton.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-07 15:49+0500\n" +"POT-Creation-Date: 2024-10-08 10:15+0500\n" "PO-Revision-Date: 2024-09-19 23:35+0500\n" "Last-Translator: \n" "Language-Team: \n" @@ -262,7 +262,7 @@ msgstr "" msgid "hours" msgstr "" -msgid "not known yet" +msgid "less than a minute" msgstr "" msgid "minute" diff --git a/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po b/data_from_portwine/locales/ru/LC_MESSAGES/PortProton.po index 6dac269d..2a24f6e8 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-07 15:49+0500\n" -"PO-Revision-Date: 2024-10-07 15:52+0500\n" +"POT-Creation-Date: 2024-10-08 10:15+0500\n" +"PO-Revision-Date: 2024-10-08 10:15+0500\n" "Last-Translator: \n" "Language-Team: \n" "Language: ru_RU\n" @@ -73,7 +73,6 @@ msgstr "Основные настройки" msgid "Edit database file for" msgstr "Редактировать файл настроек для" -#, fuzzy msgid "Global settings" msgstr "Глобальные настройки" @@ -152,7 +151,6 @@ msgstr "История изменений" msgid "Change language" msgstr "Сменить язык" -#, fuzzy msgid "Global settings (user.conf)" msgstr "Глобальные настройки (user.conf)" @@ -263,8 +261,8 @@ msgstr "и" msgid "hours" msgstr "часов" -msgid "not known yet" -msgstr "пока неизвестно" +msgid "less than a minute" +msgstr "меньше минуты" msgid "minute" msgstr "минута" @@ -1730,7 +1728,6 @@ msgstr "Выключить" msgid "Enable" msgstr "Включить" -#, fuzzy msgid "Change global settings" msgstr "Изменить глобальные настройки" @@ -1815,7 +1812,6 @@ msgstr "" "Эта настройка сортирует ярлыки в главном меню в зависимости от времени, " "проведенного в приложении или игре" -#, fuzzy msgid "GLOBAL SETTINGS (USER.CONF)" msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)" @@ -2146,6 +2142,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ" msgid "THIRD PARTY LIBRARIES" msgstr "БИБЛИОТЕКИ" +#~ msgid "not known yet" +#~ msgstr "пока неизвестно" + #~ msgid "Emulator for Nintendo game consoles with high compatibility" #~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью" diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index da2a69bf..35bdc77f 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -186,6 +186,7 @@ eval_translations () { } create_translations () { + local po_file msgid msgstr if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then create_new_dir "${PW_CACHE_LANG_PATH}" fi @@ -456,12 +457,13 @@ try_download () { no_mirror=true esac + local filename if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \ && [[ "$no_mirror" == "true" ]] then - local filename="$(basename "${PW_AUTOINSTALL_EXE}")" + filename="$(basename "${PW_AUTOINSTALL_EXE}")" else - local filename="$(basename "$1")" + filename="$(basename "$1")" fi if [[ "${MIRROR}" == CLOUD ]] \ @@ -778,6 +780,9 @@ 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 + unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY + count=0 for desktop_file in "$PORT_WINE_PATH"/* ; do desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}" if [[ $desktop_file_new =~ .desktop ]] ; then @@ -789,89 +794,117 @@ search_desktop_file () { else EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} fi - EXEC_DESKTOP_NEW="${EXEC_DESKTOP//\"/}" + EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/} fi - - if [[ $line =~ ^#Time= ]] ; then - if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then - TIME_CURRENT=${line//#Time=/} - fi + if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then + TIME_CURRENT=${line//#Time=/} fi done < "$desktop_file" if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then - if [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then + # Когда новый .desktop файл + if [[ $TIME_CURRENT == "" ]] ; then + echo "#NEW_DESKTOP" >> "$desktop_file" + TIME_CURRENT="0" + # Для битых #Time= + elif [[ ! $TIME_CURRENT == "" ]] && [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then TIME_CURRENT="0" - sed -i '/^#Time=/d' "$desktop_file" - echo "#Time=0" >> "$desktop_file" - fi - if [[ -n $PW_TIME_IN_GAME ]] ; then - TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME )) - sed -i '/^#Time=/d' "$desktop_file" - echo "#Time=$TIME_TOTAL" >> "$desktop_file" fi + TIME_CURRENT_ARRAY+=($TIME_CURRENT) + unset TIME_CURRENT + DESKTOP_FILES_ARRAY["$count"]="$desktop_file" + (( count++ )) fi fi fi done IFS="$orig_IFS" + + # Если существуют .desktop файлы на один и тот же .exe файл, то среди них выбирается + # текущее время берётся из того .desktop файла, в котором проведено больше времени + # и запись этого большего времени будет потом записываться во все .desktop файлы + # у которых общий .exe файл, это нужно для того, чтобы в главном меню .desktop файлы + # упорядочивались нормально. + for i in "${!TIME_CURRENT_ARRAY[@]}" ; do + for j in "${!TIME_CURRENT_ARRAY[@]}" ; do + if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then + tmp=${TIME_CURRENT_ARRAY[$i]} + TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]} + TIME_CURRENT_ARRAY[j]=$tmp + fi + done + done + + TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}" + if [[ -n $PW_TIME_IN_GAME ]] ; then + TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME )) + for df in "${DESKTOP_FILES_ARRAY[@]}" ; do + sed -i '/^#Time=/d' "$df" + echo "#Time=$TIME_TOTAL" >> "$df" + done + else + for df in "${DESKTOP_FILES_ARRAY[@]}" ; do + sed -i '/^#Time=/d' "$df" + echo "#Time=$TIME_CURRENT" >> "$df" + done + fi } # Конвертация секунд в дни, часы, минуты seconds_to_time () { [[ -z $1 ]] && return 0 - local seconds=$1 + local seconds days hours minutes + seconds=$1 - local days=$((seconds / (60 * 60 * 24))) - local seconds=$((seconds % (60 * 60 * 24))) + days=$((seconds / (60 * 60 * 24))) + seconds=$((seconds % (60 * 60 * 24))) - local hours=$((seconds / (60 * 60))) - local seconds=$((seconds % (60 * 60))) + hours=$((seconds / (60 * 60))) + seconds=$((seconds % (60 * 60))) - local minutes=$((seconds / 60)) - local seconds=$((seconds % 60)) + minutes=$((seconds / 60)) + seconds=$((seconds % 60)) if [[ $days =~ ^0$ ]] ; then - local days= + days= elif [[ $days =~ ^1$ ]] ; then - local days="$days ${translations[day]}, " + days="$days ${translations[day]}, " elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then - local days="$days ${translations[day]}, " - elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] \ - && [[ $LANGUAGE == ru ]] ; then - local days="$days дня, " + days="$days ${translations[day]}, " + elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then + days="$days дня, " else - local days="$days ${translations[days]}, " + days="$days ${translations[days]}, " fi if [[ $hours =~ ^0$ ]] ; then - local hours= + hours= elif [[ $hours =~ ^1$ ]] ; then - local hours="$hours ${translations[hour]} ${translations[and]} " + hours="$hours ${translations[hour]} ${translations[and]} " elif [[ $hours =~ ^([2-4]|2[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then - local hours="$hours часа ${translations[and]} " + hours="$hours часа ${translations[and]} " elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then - local hours="$hours ${translations[hour]} ${translations[and]} " + hours="$hours ${translations[hour]} ${translations[and]} " else - local hours="$hours ${translations[hours]} ${translations[and]} " + hours="$hours ${translations[hours]} ${translations[and]} " fi if [[ $minutes =~ ^0$ ]] ; then - local hours=${hours//" ${translations[and]} "/} - local minutes= + hours=${hours//" ${translations[and]} "/} + minutes= if [[ $days == "" ]] || [[ $hours == "" ]] ; then - local days=${days//","/} + days=${days//","/} fi if [[ $days == "" ]] && [[ $hours == "" ]] ; then - local minutes="${translations[not known yet]}" + minutes="${translations[less than a minute]}" fi elif [[ $minutes =~ ^1$ ]] ; then - local minutes="$minutes ${translations[minute]}" + minutes="$minutes ${translations[minute]}" elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then - local minutes="$minutes ${translations[minute]}" + minutes="$minutes ${translations[minute]}" elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then - local minutes="$minutes минуты" + minutes="$minutes минуты" else - local minutes="$minutes ${translations[minutes]}" + minutes="$minutes ${translations[minutes]}" fi echo -e "\n${translations[Time spent]}: $days$hours$minutes" @@ -882,32 +915,34 @@ combobox_fix () { print_error "no argument specified for combobox_fix" return 1 else + local name1 name2 if [[ "$1" == "--disabled" ]] ; then if [[ -z "$3" ]] ; then echo "disabled" return 0 fi - local name1="$2" - local name2="$3" + name1="$2" + name2="$3" elif [[ "$1" == "--empty" ]] ; then if [[ -z "$3" ]] ; then echo "" return 0 fi - local name1="$2" - local name2="$3" + name1="$2" + name2="$3" else - local name1="$1" + name1="$1" if [[ -z "$2" ]] ; then echo "${name1}" return 0 fi - local name2="$2" + name2="$2" fi - local name3="${name2//\!${name1}\!/\!}" - local name3="!${name3//${name1}\!/\!}" - local name3="${name3//\!\!/\!}" - local name4="${name3//*\!/}" + local name3 name4 + name3="${name2//\!${name1}\!/\!}" + name3="!${name3//${name1}\!/\!}" + name3="${name3//\!\!/\!}" + name4="${name3//*\!/}" if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]] then name3="${name3%\!"${name1}"}" fi @@ -2320,14 +2355,12 @@ pw_find_exe () { --button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \ --button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)" YAD_STATUS="$?" - if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then - if [[ -z "${PW_SET_FIND_EXE}" ]] ; then - print_info "Restarting..." - restart_pp - fi - exit 0 - fi + IFS="$orig_IFS" + if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then + print_info "Restarting..." + restart_pp + fi if [[ -n "${PW_SET_FIND_EXE}" ]] ; then portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')" @@ -5483,6 +5516,7 @@ portwine_create_shortcut () { fi elif [[ "$PW_YAD_OUT" == "2" ]] ; then print_info "Restarting PP..." + [[ -n $KEY_MENU ]] && unset portwine_exe [[ "${PW_GUI_START}" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB restart_pp fi @@ -5511,7 +5545,7 @@ pw_auto_create_shortcut () { [[ -z "${LINKS[0]}" ]] && return 0 SORTED_LINKS=() while IFS= read -r line ; do - SORTED_LINKS+=("$line"); + SORTED_LINKS+=("$line") done < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u) IFS="$orig_IFS" @@ -5562,6 +5596,7 @@ pw_auto_create_shortcut () { PORTPROTON_NAME="$link_name" export portwine_exe="$exe_path" resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128" + export PW_NO_RESTART_PPDB=1 portwine_create_shortcut fi done @@ -6002,8 +6037,8 @@ button_click () { kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1 PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }" if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then - count=1 - for y in ${PW_DESKTOP_FILES_REGEX[@]} ; do + local count=1 + for y in "${PW_DESKTOP_FILES_REGEX[@]}" ; do PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}" (( count++ )) done diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 045eec2c..e4869c20 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then export PORT_SCRIPTS_PATH export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*} else - fatal + echo "The PORT_SCRIPTS_PATH directory was not found!" + exit 1 fi # shellcheck source=/dev/null @@ -90,10 +91,11 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR unset PW_CHECK_AUTOINSTALL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE RADV_PERFTEST unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PW_PATH unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY -unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48 unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT -unset PW_DESKTOP_FILES_REGEX PW_TERM +unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES +unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_GENERATE_BUTTONS +unset PW_DESKTOP_FILES_REGEX PW_TERM PW_EXEC_FROM_DESKTOP export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp" rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}* @@ -324,7 +326,7 @@ export SKIP_CHECK_UPDATES="1" [[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut -if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then +if [[ $(basename "${portwine_exe}") =~ .ppack$ ]] ; then unset PW_SANDBOX_HOME_PATH pw_init_runtime if check_flatpak @@ -500,9 +502,9 @@ if [[ -f "${portwine_exe}" ]] ; then [[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file if [[ -z "${PW_COMMENT_DB}" ]] ; then if [[ -n "${PORTPROTON_NAME}" ]] ; then - PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTPROTON_NAME}" "50")$(seconds_to_time "$TIME_CURRENT")" + PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTPROTON_NAME}" "50")$(seconds_to_time "$TIME_CURRENT")" else - PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTWINE_DB}" "50")$(seconds_to_time "$TIME_CURRENT")" + PW_COMMENT_DB="${translations[Launching]} $(print_wrapped "${PORTWINE_DB}" "50")$(seconds_to_time "$TIME_CURRENT")" fi else PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")" @@ -586,10 +588,14 @@ if [[ -f "${portwine_exe}" ]] ; then --button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null PW_YAD_SET="$?" fi - case $PW_YAD_SET in + case "$PW_YAD_SET" in 128) [[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB - unset portwine_exe KEY_START $(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') + PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g') + for db_unset in $PORTWINE_DB_FOR_UNSET ; do + unset "$db_unset" + done + unset portwine_exe KEY_START print_info "Restarting..." restart_pp ;; @@ -622,32 +628,25 @@ else PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /} fi fi - if [[ $line =~ ^Icon= ]] ; then - PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}" - fi - if [[ $line =~ ^#Time= ]] ; then - WITH_TIME="1" - PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}" - fi + [[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}" + [[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}" + [[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1 done < "$desktop_file" PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new" - # Чтобы новый ярлык показало первым при первом запуске, потом уже по времени - if [[ $WITH_TIME != 1 ]] ; then - echo "#Time=0" >> "$desktop_file" - if [[ $SORT_WITH_TIME == enabled ]] ; then - PW_AMOUNT_NO_TIME+=($AMOUNT_GENERATE_BUTTONS) - else - PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS) - fi + if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then + unset NEW_DESKTOP + sed -i '/^#NEW_DESKTOP/d' "$desktop_file" + PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) else - if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then - sed -i '/^#Time=/d' "$desktop_file" - echo "#Time=0" >> "$desktop_file" - PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="0" - fi - PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS) + PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS) + fi + # Для фикса битых #Time= + if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then + portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/} + search_desktop_file + unset portwine_exe + PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]} fi - unset WITH_TIME (( AMOUNT_GENERATE_BUTTONS++ )) fi fi @@ -681,7 +680,7 @@ else # Генерация .desktop баттанов для главного меню IFS=$'\n' PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%" - for dp in "${PW_AMOUNT_NO_TIME[@]}" "${PW_AMOUNT_WITH_TIME[@]}" ; do + for dp in ${PW_AMOUNT_NEW_DESKTOP[@]} ${PW_AMOUNT_OLD_DESKTOP[@]} ; do PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48" PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}" PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}" @@ -694,12 +693,12 @@ else PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<) PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;) - for i in ${PW_DESKTOP_FILES_SHOW_REGEX[@]} ; do + for i in "${PW_DESKTOP_FILES_SHOW_REGEX[@]}" ; do PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}" done count=1 - for j in ${PW_DESKTOP_FILES_REGEX[@]} ; do + for j in "${PW_DESKTOP_FILES_REGEX[@]}" ; do PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}" (( count++ )) done @@ -868,7 +867,7 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME fi -case $PW_YAD_SET in +case "$PW_YAD_SET" in gui_pw_reinstall_pp|open_changelog|\ 128|gui_pw_update|gui_rm_portproton|\ change_loc|gui_open_scripts_from_backup|\ @@ -898,7 +897,7 @@ case $PW_YAD_SET in ;; esac -case $PW_YAD_SET in +case "$PW_YAD_SET" in 98) portwine_delete_shortcut ;; 100) portwine_create_shortcut ;; DEBUG|102) portwine_start_debug ;; diff --git a/data_from_portwine/themes/tray/tray_gui_pp b/data_from_portwine/themes/tray/tray_gui_pp index 904af9d9..42bfd923 100755 Binary files a/data_from_portwine/themes/tray/tray_gui_pp and b/data_from_portwine/themes/tray/tray_gui_pp differ