forked from CastroFidel/PortWINE
Fixes
This commit is contained in:
parent
11dff46137
commit
38e880d3af
@ -7,7 +7,7 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Project-Id-Version: PACKAGE VERSION\n"
|
msgstr "Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -239,7 +239,7 @@ msgstr ""
|
|||||||
msgid "hours"
|
msgid "hours"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "not known yet"
|
msgid "less than a minute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
|
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: 2024-09-19 23:35+0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -262,7 +262,7 @@ msgstr ""
|
|||||||
msgid "hours"
|
msgid "hours"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "not known yet"
|
msgid "less than a minute"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
|
@ -7,8 +7,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \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-10-07 15:52+0500\n"
|
"PO-Revision-Date: 2024-10-08 10:15+0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"Language: ru_RU\n"
|
"Language: ru_RU\n"
|
||||||
@ -73,7 +73,6 @@ msgstr "Основные настройки"
|
|||||||
msgid "Edit database file for"
|
msgid "Edit database file for"
|
||||||
msgstr "Редактировать файл настроек для"
|
msgstr "Редактировать файл настроек для"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Global settings"
|
msgid "Global settings"
|
||||||
msgstr "Глобальные настройки"
|
msgstr "Глобальные настройки"
|
||||||
|
|
||||||
@ -152,7 +151,6 @@ msgstr "История изменений"
|
|||||||
msgid "Change language"
|
msgid "Change language"
|
||||||
msgstr "Сменить язык"
|
msgstr "Сменить язык"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Global settings (user.conf)"
|
msgid "Global settings (user.conf)"
|
||||||
msgstr "Глобальные настройки (user.conf)"
|
msgstr "Глобальные настройки (user.conf)"
|
||||||
|
|
||||||
@ -263,8 +261,8 @@ msgstr "и"
|
|||||||
msgid "hours"
|
msgid "hours"
|
||||||
msgstr "часов"
|
msgstr "часов"
|
||||||
|
|
||||||
msgid "not known yet"
|
msgid "less than a minute"
|
||||||
msgstr "пока неизвестно"
|
msgstr "меньше минуты"
|
||||||
|
|
||||||
msgid "minute"
|
msgid "minute"
|
||||||
msgstr "минута"
|
msgstr "минута"
|
||||||
@ -1730,7 +1728,6 @@ msgstr "Выключить"
|
|||||||
msgid "Enable"
|
msgid "Enable"
|
||||||
msgstr "Включить"
|
msgstr "Включить"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Change global settings"
|
msgid "Change global settings"
|
||||||
msgstr "Изменить глобальные настройки"
|
msgstr "Изменить глобальные настройки"
|
||||||
|
|
||||||
@ -1815,7 +1812,6 @@ msgstr ""
|
|||||||
"Эта настройка сортирует ярлыки в главном меню в зависимости от времени, "
|
"Эта настройка сортирует ярлыки в главном меню в зависимости от времени, "
|
||||||
"проведенного в приложении или игре"
|
"проведенного в приложении или игре"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "GLOBAL SETTINGS (USER.CONF)"
|
msgid "GLOBAL SETTINGS (USER.CONF)"
|
||||||
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
|
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
|
||||||
|
|
||||||
@ -2146,6 +2142,9 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
|
|||||||
msgid "THIRD PARTY LIBRARIES"
|
msgid "THIRD PARTY LIBRARIES"
|
||||||
msgstr "БИБЛИОТЕКИ"
|
msgstr "БИБЛИОТЕКИ"
|
||||||
|
|
||||||
|
#~ msgid "not known yet"
|
||||||
|
#~ msgstr "пока неизвестно"
|
||||||
|
|
||||||
#~ msgid "Emulator for Nintendo game consoles with high compatibility"
|
#~ msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||||
#~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью"
|
#~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью"
|
||||||
|
|
||||||
|
@ -186,6 +186,7 @@ eval_translations () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
create_translations () {
|
create_translations () {
|
||||||
|
local po_file msgid msgstr
|
||||||
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
|
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
|
||||||
create_new_dir "${PW_CACHE_LANG_PATH}"
|
create_new_dir "${PW_CACHE_LANG_PATH}"
|
||||||
fi
|
fi
|
||||||
@ -456,12 +457,13 @@ try_download () {
|
|||||||
no_mirror=true
|
no_mirror=true
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
local filename
|
||||||
if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \
|
if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \
|
||||||
&& [[ "$no_mirror" == "true" ]]
|
&& [[ "$no_mirror" == "true" ]]
|
||||||
then
|
then
|
||||||
local filename="$(basename "${PW_AUTOINSTALL_EXE}")"
|
filename="$(basename "${PW_AUTOINSTALL_EXE}")"
|
||||||
else
|
else
|
||||||
local filename="$(basename "$1")"
|
filename="$(basename "$1")"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${MIRROR}" == CLOUD ]] \
|
if [[ "${MIRROR}" == CLOUD ]] \
|
||||||
@ -778,6 +780,9 @@ debug_timer () {
|
|||||||
|
|
||||||
# Поиск нужного .desktop файла по $portwine_exe
|
# Поиск нужного .desktop файла по $portwine_exe
|
||||||
search_desktop_file () {
|
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
|
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||||
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
||||||
if [[ $desktop_file_new =~ .desktop ]] ; then
|
if [[ $desktop_file_new =~ .desktop ]] ; then
|
||||||
@ -789,89 +794,117 @@ search_desktop_file () {
|
|||||||
else
|
else
|
||||||
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
EXEC_DESKTOP_NEW="${EXEC_DESKTOP//\"/}"
|
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
||||||
fi
|
fi
|
||||||
|
if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
||||||
if [[ $line =~ ^#Time= ]] ; then
|
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
|
||||||
TIME_CURRENT=${line//#Time=/}
|
TIME_CURRENT=${line//#Time=/}
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
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"
|
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
|
fi
|
||||||
|
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
||||||
|
unset TIME_CURRENT
|
||||||
|
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
||||||
|
(( count++ ))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
IFS="$orig_IFS"
|
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 () {
|
seconds_to_time () {
|
||||||
[[ -z $1 ]] && return 0
|
[[ -z $1 ]] && return 0
|
||||||
local seconds=$1
|
local seconds days hours minutes
|
||||||
|
seconds=$1
|
||||||
|
|
||||||
local days=$((seconds / (60 * 60 * 24)))
|
days=$((seconds / (60 * 60 * 24)))
|
||||||
local seconds=$((seconds % (60 * 60 * 24)))
|
seconds=$((seconds % (60 * 60 * 24)))
|
||||||
|
|
||||||
local hours=$((seconds / (60 * 60)))
|
hours=$((seconds / (60 * 60)))
|
||||||
local seconds=$((seconds % (60 * 60)))
|
seconds=$((seconds % (60 * 60)))
|
||||||
|
|
||||||
local minutes=$((seconds / 60))
|
minutes=$((seconds / 60))
|
||||||
local seconds=$((seconds % 60))
|
seconds=$((seconds % 60))
|
||||||
|
|
||||||
if [[ $days =~ ^0$ ]] ; then
|
if [[ $days =~ ^0$ ]] ; then
|
||||||
local days=
|
days=
|
||||||
elif [[ $days =~ ^1$ ]] ; then
|
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
|
elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||||
local days="$days ${translations[day]}, "
|
days="$days ${translations[day]}, "
|
||||||
elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] \
|
elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||||
&& [[ $LANGUAGE == ru ]] ; then
|
days="$days дня, "
|
||||||
local days="$days дня, "
|
|
||||||
else
|
else
|
||||||
local days="$days ${translations[days]}, "
|
days="$days ${translations[days]}, "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $hours =~ ^0$ ]] ; then
|
if [[ $hours =~ ^0$ ]] ; then
|
||||||
local hours=
|
hours=
|
||||||
elif [[ $hours =~ ^1$ ]] ; then
|
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
|
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
|
elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||||
local hours="$hours ${translations[hour]} ${translations[and]} "
|
hours="$hours ${translations[hour]} ${translations[and]} "
|
||||||
else
|
else
|
||||||
local hours="$hours ${translations[hours]} ${translations[and]} "
|
hours="$hours ${translations[hours]} ${translations[and]} "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $minutes =~ ^0$ ]] ; then
|
if [[ $minutes =~ ^0$ ]] ; then
|
||||||
local hours=${hours//" ${translations[and]} "/}
|
hours=${hours//" ${translations[and]} "/}
|
||||||
local minutes=
|
minutes=
|
||||||
if [[ $days == "" ]] || [[ $hours == "" ]] ; then
|
if [[ $days == "" ]] || [[ $hours == "" ]] ; then
|
||||||
local days=${days//","/}
|
days=${days//","/}
|
||||||
fi
|
fi
|
||||||
if [[ $days == "" ]] && [[ $hours == "" ]] ; then
|
if [[ $days == "" ]] && [[ $hours == "" ]] ; then
|
||||||
local minutes="${translations[not known yet]}"
|
minutes="${translations[less than a minute]}"
|
||||||
fi
|
fi
|
||||||
elif [[ $minutes =~ ^1$ ]] ; then
|
elif [[ $minutes =~ ^1$ ]] ; then
|
||||||
local minutes="$minutes ${translations[minute]}"
|
minutes="$minutes ${translations[minute]}"
|
||||||
elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then
|
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
|
elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||||
local minutes="$minutes минуты"
|
minutes="$minutes минуты"
|
||||||
else
|
else
|
||||||
local minutes="$minutes ${translations[minutes]}"
|
minutes="$minutes ${translations[minutes]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "<b>\n${translations[Time spent]}: $days$hours$minutes</b>"
|
echo -e "<b>\n${translations[Time spent]}: $days$hours$minutes</b>"
|
||||||
@ -882,32 +915,34 @@ combobox_fix () {
|
|||||||
print_error "no argument specified for combobox_fix"
|
print_error "no argument specified for combobox_fix"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
|
local name1 name2
|
||||||
if [[ "$1" == "--disabled" ]] ; then
|
if [[ "$1" == "--disabled" ]] ; then
|
||||||
if [[ -z "$3" ]] ; then
|
if [[ -z "$3" ]] ; then
|
||||||
echo "disabled"
|
echo "disabled"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
local name1="$2"
|
name1="$2"
|
||||||
local name2="$3"
|
name2="$3"
|
||||||
elif [[ "$1" == "--empty" ]] ; then
|
elif [[ "$1" == "--empty" ]] ; then
|
||||||
if [[ -z "$3" ]] ; then
|
if [[ -z "$3" ]] ; then
|
||||||
echo ""
|
echo ""
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
local name1="$2"
|
name1="$2"
|
||||||
local name2="$3"
|
name2="$3"
|
||||||
else
|
else
|
||||||
local name1="$1"
|
name1="$1"
|
||||||
if [[ -z "$2" ]] ; then
|
if [[ -z "$2" ]] ; then
|
||||||
echo "${name1}"
|
echo "${name1}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
local name2="$2"
|
name2="$2"
|
||||||
fi
|
fi
|
||||||
local name3="${name2//\!${name1}\!/\!}"
|
local name3 name4
|
||||||
local name3="!${name3//${name1}\!/\!}"
|
name3="${name2//\!${name1}\!/\!}"
|
||||||
local name3="${name3//\!\!/\!}"
|
name3="!${name3//${name1}\!/\!}"
|
||||||
local name4="${name3//*\!/}"
|
name3="${name3//\!\!/\!}"
|
||||||
|
name4="${name3//*\!/}"
|
||||||
if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]]
|
if [[ ${name1} == "${name4}" ]] || [[ ${name1} == "\\${name4}" ]]
|
||||||
then name3="${name3%\!"${name1}"}"
|
then name3="${name3%\!"${name1}"}"
|
||||||
fi
|
fi
|
||||||
@ -2320,14 +2355,12 @@ pw_find_exe () {
|
|||||||
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
--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)"
|
--button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)"
|
||||||
YAD_STATUS="$?"
|
YAD_STATUS="$?"
|
||||||
|
|
||||||
|
IFS="$orig_IFS"
|
||||||
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
|
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
|
||||||
if [[ -z "${PW_SET_FIND_EXE}" ]] ; then
|
|
||||||
print_info "Restarting..."
|
print_info "Restarting..."
|
||||||
restart_pp
|
restart_pp
|
||||||
fi
|
fi
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
IFS="$orig_IFS"
|
|
||||||
|
|
||||||
if [[ -n "${PW_SET_FIND_EXE}" ]] ; then
|
if [[ -n "${PW_SET_FIND_EXE}" ]] ; then
|
||||||
portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
|
portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
|
||||||
@ -5483,6 +5516,7 @@ portwine_create_shortcut () {
|
|||||||
fi
|
fi
|
||||||
elif [[ "$PW_YAD_OUT" == "2" ]] ; then
|
elif [[ "$PW_YAD_OUT" == "2" ]] ; then
|
||||||
print_info "Restarting PP..."
|
print_info "Restarting PP..."
|
||||||
|
[[ -n $KEY_MENU ]] && unset portwine_exe
|
||||||
[[ "${PW_GUI_START}" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
[[ "${PW_GUI_START}" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||||
restart_pp
|
restart_pp
|
||||||
fi
|
fi
|
||||||
@ -5511,7 +5545,7 @@ pw_auto_create_shortcut () {
|
|||||||
[[ -z "${LINKS[0]}" ]] && return 0
|
[[ -z "${LINKS[0]}" ]] && return 0
|
||||||
SORTED_LINKS=()
|
SORTED_LINKS=()
|
||||||
while IFS= read -r line ; do
|
while IFS= read -r line ; do
|
||||||
SORTED_LINKS+=("$line");
|
SORTED_LINKS+=("$line")
|
||||||
done < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u)
|
done < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u)
|
||||||
IFS="$orig_IFS"
|
IFS="$orig_IFS"
|
||||||
|
|
||||||
@ -5562,6 +5596,7 @@ pw_auto_create_shortcut () {
|
|||||||
PORTPROTON_NAME="$link_name"
|
PORTPROTON_NAME="$link_name"
|
||||||
export portwine_exe="$exe_path"
|
export portwine_exe="$exe_path"
|
||||||
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
resize_png "$portwine_exe" "${PORTPROTON_NAME}" "128"
|
||||||
|
export PW_NO_RESTART_PPDB=1
|
||||||
portwine_create_shortcut
|
portwine_create_shortcut
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -6002,8 +6037,8 @@ button_click () {
|
|||||||
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1
|
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//#@_@#/ }"
|
PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }"
|
||||||
if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then
|
if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then
|
||||||
count=1
|
local count=1
|
||||||
for y in ${PW_DESKTOP_FILES_REGEX[@]} ; do
|
for y in "${PW_DESKTOP_FILES_REGEX[@]}" ; do
|
||||||
PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}"
|
PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}"
|
||||||
(( count++ ))
|
(( count++ ))
|
||||||
done
|
done
|
||||||
|
@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then
|
|||||||
export PORT_SCRIPTS_PATH
|
export PORT_SCRIPTS_PATH
|
||||||
export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*}
|
export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*}
|
||||||
else
|
else
|
||||||
fatal
|
echo "The PORT_SCRIPTS_PATH directory was not found!"
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck source=/dev/null
|
# 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 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 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_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 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_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"
|
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
|
||||||
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
|
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
|
[[ "$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
|
unset PW_SANDBOX_HOME_PATH
|
||||||
pw_init_runtime
|
pw_init_runtime
|
||||||
if check_flatpak
|
if check_flatpak
|
||||||
@ -500,9 +502,9 @@ if [[ -f "${portwine_exe}" ]] ; then
|
|||||||
[[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file
|
[[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file
|
||||||
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
||||||
if [[ -n "${PORTPROTON_NAME}" ]] ; then
|
if [[ -n "${PORTPROTON_NAME}" ]] ; then
|
||||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")$(seconds_to_time "$TIME_CURRENT")</b>"
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
else
|
else
|
||||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")$(seconds_to_time "$TIME_CURRENT")</b>"
|
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
|
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
|
--button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null
|
||||||
PW_YAD_SET="$?"
|
PW_YAD_SET="$?"
|
||||||
fi
|
fi
|
||||||
case $PW_YAD_SET in
|
case "$PW_YAD_SET" in
|
||||||
128)
|
128)
|
||||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
[[ "$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..."
|
print_info "Restarting..."
|
||||||
restart_pp
|
restart_pp
|
||||||
;;
|
;;
|
||||||
@ -622,32 +628,25 @@ else
|
|||||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [[ $line =~ ^Icon= ]] ; then
|
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
|
||||||
PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
|
[[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
|
||||||
fi
|
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
||||||
if [[ $line =~ ^#Time= ]] ; then
|
|
||||||
WITH_TIME="1"
|
|
||||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
|
|
||||||
fi
|
|
||||||
done < "$desktop_file"
|
done < "$desktop_file"
|
||||||
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
||||||
# Чтобы новый ярлык показало первым при первом запуске, потом уже по времени
|
if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then
|
||||||
if [[ $WITH_TIME != 1 ]] ; then
|
unset NEW_DESKTOP
|
||||||
echo "#Time=0" >> "$desktop_file"
|
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
|
||||||
if [[ $SORT_WITH_TIME == enabled ]] ; then
|
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
PW_AMOUNT_NO_TIME+=($AMOUNT_GENERATE_BUTTONS)
|
|
||||||
else
|
else
|
||||||
PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS)
|
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||||
fi
|
fi
|
||||||
else
|
# Для фикса битых #Time=
|
||||||
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then
|
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then
|
||||||
sed -i '/^#Time=/d' "$desktop_file"
|
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
||||||
echo "#Time=0" >> "$desktop_file"
|
search_desktop_file
|
||||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="0"
|
unset portwine_exe
|
||||||
|
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]}
|
||||||
fi
|
fi
|
||||||
PW_AMOUNT_WITH_TIME+=($AMOUNT_GENERATE_BUTTONS)
|
|
||||||
fi
|
|
||||||
unset WITH_TIME
|
|
||||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -681,7 +680,7 @@ else
|
|||||||
# Генерация .desktop баттанов для главного меню
|
# Генерация .desktop баттанов для главного меню
|
||||||
IFS=$'\n'
|
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\"%"
|
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_48="${PW_ICON_PATH[dp]%.png}_48"
|
||||||
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
||||||
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
||||||
@ -694,12 +693,12 @@ else
|
|||||||
PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<)
|
PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<)
|
||||||
PW_DESKTOP_FILES_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/}"
|
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}"
|
||||||
done
|
done
|
||||||
|
|
||||||
count=1
|
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#}"
|
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}"
|
||||||
(( count++ ))
|
(( count++ ))
|
||||||
done
|
done
|
||||||
@ -868,7 +867,7 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
|
|||||||
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
|
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $PW_YAD_SET in
|
case "$PW_YAD_SET" in
|
||||||
gui_pw_reinstall_pp|open_changelog|\
|
gui_pw_reinstall_pp|open_changelog|\
|
||||||
128|gui_pw_update|gui_rm_portproton|\
|
128|gui_pw_update|gui_rm_portproton|\
|
||||||
change_loc|gui_open_scripts_from_backup|\
|
change_loc|gui_open_scripts_from_backup|\
|
||||||
@ -898,7 +897,7 @@ case $PW_YAD_SET in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case $PW_YAD_SET in
|
case "$PW_YAD_SET" in
|
||||||
98) portwine_delete_shortcut ;;
|
98) portwine_delete_shortcut ;;
|
||||||
100) portwine_create_shortcut ;;
|
100) portwine_create_shortcut ;;
|
||||||
DEBUG|102) portwine_start_debug ;;
|
DEBUG|102) portwine_start_debug ;;
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user