forked from CastroFidel/PortWINE
Added portwine_change_shortcut
This commit is contained in:
@ -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// /@_@})
|
||||
|
@ -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 ;;
|
||||
|
Reference in New Issue
Block a user