Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
5c01220382 | ||
|
b74fe77bad | ||
|
3a442f6288 | ||
|
20030d43e4 | ||
|
b44849661d |
39
autoinstall/arm-kt-att
Normal file
39
autoinstall/arm-kt-att
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ АТТЕСТАТ” для документов об основном общем, среднем общем образовании.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-4"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ АТТЕСТАТ"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
39
autoinstall/arm-kt-dpp
Normal file
39
autoinstall/arm-kt-dpp
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ ДПП” для заполнения бланков документов о повышении квалификации и профессиональной переподготовке.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ ДПП"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
35
autoinstall/arm-kt-es
Normal file
35
autoinstall/arm-kt-es
Normal file
@@ -0,0 +1,35 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ НШ” для заполнения бланков документов об окончании начальной школы.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-1"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ НШ"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.exe" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_EXE" ; then
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
38
autoinstall/arm-kt-med
Normal file
38
autoinstall/arm-kt-med
Normal file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ МЕД” для заполнения бланков документов о послевузовском профессиональном образовании и сертификатов специалиста.######################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-3"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ МЕД"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
39
autoinstall/arm-kt-prof
Normal file
39
autoinstall/arm-kt-prof
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ ПРОФЕССИЯ” для заполнения бланков документов профессионального обучения.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-5"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ ПРОФЕССИЯ"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
39
autoinstall/arm-kt-spo
Normal file
39
autoinstall/arm-kt-spo
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ СПО” для заполнения бланков документов о среднем профессиональном образовании.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-2"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ СПО"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
39
autoinstall/arm-kt-vuz
Normal file
39
autoinstall/arm-kt-vuz
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# info_ru: Программа “АРМ КТ ПРОФ ВУЗ” для заполнения бланков документов о высшем образовании.
|
||||
########################################################################
|
||||
export PROG_URL="https://armregistr.ru/programmnoe-obespechenie/licenziya-na-programmnoe-obespechenie-dlya-zapolneniya-blank-6"
|
||||
export WH_WINE_USE="wine_x_tkg_10-0_amd64"
|
||||
export WINEPREFIX="arm-kt"
|
||||
export PROG_NAME="АРМ КТ ПРОФ ВУЗ"
|
||||
export PROG_ICON="armkt"
|
||||
export BASE_PFX="none"
|
||||
export WINEARCH="win64"
|
||||
export INSTALL_DLL=""
|
||||
export WH_WINDOWS_VER="7"
|
||||
|
||||
AUTOINSTALL_URL=$(curl -s "$PROG_URL" | grep "setup.zip" | awk -F'"' '{print $2}')
|
||||
SHORT_NAME=$(echo $AUTOINSTALL_URL | awk -F'/' '{print $5}')
|
||||
VER_EXE=$(echo $AUTOINSTALL_URL | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
|
||||
AUTOINSTALL_ZIP="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.zip"
|
||||
AUTOINSTALL_EXE="${WH_TMP_DIR}/$SHORT_NAME-$VER_EXE-setup.exe"
|
||||
|
||||
if [[ -z $VER_EXE ]]
|
||||
then fatal "Не удалось получить версию ПО со страницы на сайте!"
|
||||
else print_info "Устанавливаем $PROG_NAME версии $VER_EXE"
|
||||
fi
|
||||
|
||||
prepair_wine
|
||||
|
||||
if try_download "$AUTOINSTALL_URL" "$AUTOINSTALL_ZIP" ; then
|
||||
unpack "$AUTOINSTALL_ZIP" "${WH_TMP_DIR}"
|
||||
try_remove_file "$AUTOINSTALL_ZIP"
|
||||
|
||||
wine_run_install "${AUTOINSTALL_EXE}" /VERYSILENT
|
||||
try_remove_file "${AUTOINSTALL_EXE}"
|
||||
|
||||
create_desktop "$PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/$SHORT_NAME.exe" "$PROG_ICON"
|
||||
|
||||
create_desktop "Регистрация $PROG_NAME" \
|
||||
"$DRIVE_C/Program Files/KtSoftware/$SHORT_NAME/${SHORT_NAME}Reg.exe" "$PROG_ICON"
|
||||
fi
|
BIN
image/armkt.png
Normal file
BIN
image/armkt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
@@ -20,7 +20,7 @@ if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then
|
||||
CHANGELOG_FILE="/usr/share/doc/winehelper-$WH_VERSION/CHANGELOG"
|
||||
LICENSE_FILE="/usr/share/doc/winehelper-$WH_VERSION/LICENSE"
|
||||
AGREEMENT="/usr/share/doc/winehelper-$WH_VERSION/LICENSE_AGREEMENT"
|
||||
THIRD_PARTY_FILE="/usr/share/doc/winehelper-$WH_VERSION/THIRD_PARTY"
|
||||
THIRD_PARTY_FILE="/usr/share/doc/winehelper-$WH_VERSION/THIRD-PARTY"
|
||||
else
|
||||
# переменные для тестового запуска WineHelper из репозитория
|
||||
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
|
||||
|
@@ -1571,6 +1571,12 @@ class WineHelperGUI(QMainWindow):
|
||||
|
||||
# Загружаем состояние после создания всех виджетов
|
||||
self._load_created_prefixes()
|
||||
# После загрузки выбираем первый элемент, если он доступен
|
||||
if self.created_prefix_selector.count() > 0:
|
||||
self.created_prefix_selector.setCurrentIndex(0)
|
||||
else:
|
||||
# Если список пуст, сбрасываем панель управления
|
||||
self.on_created_prefix_selected(-1)
|
||||
|
||||
# Инициализируем состояние, которое будет использоваться для логов
|
||||
self._reset_log_state()
|
||||
@@ -2112,10 +2118,17 @@ class WineHelperGUI(QMainWindow):
|
||||
self.change_wine_version_button.setToolTip("Изменение версии Wine или Proton для выбранного префикса.")
|
||||
management_layout.addWidget(self.change_wine_version_button, 3, 0, 1, 2)
|
||||
|
||||
# Добавляем небольшой отступ
|
||||
spacer_widget = QWidget()
|
||||
spacer_widget.setFixedHeight(5)
|
||||
management_layout.addWidget(spacer_widget, 4, 0, 1, 2)
|
||||
self.esync_button = QPushButton("ESync")
|
||||
self.esync_button.setCheckable(True)
|
||||
self.esync_button.setToolTip("Включить/выключить Eventfd-based synchronization.")
|
||||
self.esync_button.clicked.connect(lambda: self.update_sync_option("WINEESYNC", self.esync_button.isChecked()))
|
||||
management_layout.addWidget(self.esync_button, 4, 0)
|
||||
|
||||
self.fsync_button = QPushButton("FSync")
|
||||
self.fsync_button.setCheckable(True)
|
||||
self.fsync_button.setToolTip("Включить/выключить Futex-based synchronization.")
|
||||
self.fsync_button.clicked.connect(lambda: self.update_sync_option("WINEFSYNC", self.fsync_button.isChecked()))
|
||||
management_layout.addWidget(self.fsync_button, 4, 1)
|
||||
|
||||
self.dxvk_manage_button = QPushButton("Управление DXVK")
|
||||
self.dxvk_manage_button.setMinimumHeight(32)
|
||||
@@ -2133,14 +2146,13 @@ class WineHelperGUI(QMainWindow):
|
||||
self.prefix_info_display = QTextBrowser()
|
||||
self.prefix_info_display.setReadOnly(True)
|
||||
self.prefix_info_display.setFrameStyle(QFrame.StyledPanel)
|
||||
# Увеличиваем rowspan, чтобы учесть добавленный отступ
|
||||
# Увеличиваем rowspan, чтобы охватить все строки с кнопками
|
||||
management_layout.addWidget(self.prefix_info_display, 0, 2, 6, 1)
|
||||
|
||||
management_layout.setColumnStretch(0, 1)
|
||||
management_layout.setColumnStretch(1, 1)
|
||||
management_layout.setColumnStretch(2, 2)
|
||||
|
||||
# --- Separator and Installer ---
|
||||
separator = QFrame()
|
||||
separator.setFrameShape(QFrame.HLine)
|
||||
separator.setFrameShadow(QFrame.Sunken)
|
||||
@@ -2206,7 +2218,7 @@ class WineHelperGUI(QMainWindow):
|
||||
self.created_prefix_selector.removeItem(index_to_remove)
|
||||
|
||||
def _load_created_prefixes(self):
|
||||
"""Загружает список созданных префиксов, сканируя файловую систему, и восстанавливает последнее выбранное состояние."""
|
||||
"""Загружает и обновляет список созданных префиксов в выпадающем списке."""
|
||||
prefixes_root_path = os.path.join(Var.USER_WORK_PATH, "prefixes")
|
||||
if not os.path.isdir(prefixes_root_path):
|
||||
self.management_container_groupbox.setVisible(False)
|
||||
@@ -2234,13 +2246,6 @@ class WineHelperGUI(QMainWindow):
|
||||
|
||||
self.management_container_groupbox.setVisible(True)
|
||||
|
||||
# По умолчанию выбираем первый элемент в списке, если он есть.
|
||||
if self.created_prefix_selector.count() > 0:
|
||||
self.created_prefix_selector.setCurrentIndex(0)
|
||||
else:
|
||||
# Если список пуст, убедимся, что панель управления сброшена.
|
||||
self.on_created_prefix_selected(-1)
|
||||
|
||||
def on_created_prefix_selected(self, index):
|
||||
"""Обрабатывает выбор префикса из выпадающего списка."""
|
||||
if index == -1:
|
||||
@@ -2332,6 +2337,9 @@ class WineHelperGUI(QMainWindow):
|
||||
else:
|
||||
self.prefix_info_display.clear()
|
||||
self.prefix_install_path_edit.clear()
|
||||
# Сбрасываем состояние кнопок, когда префикс не выбран
|
||||
self.esync_button.setChecked(False)
|
||||
self.fsync_button.setChecked(False)
|
||||
|
||||
self.update_prefix_install_button_state()
|
||||
|
||||
@@ -2339,12 +2347,16 @@ class WineHelperGUI(QMainWindow):
|
||||
"""Обновляет информационный блок для созданного префикса, читая данные из last.conf."""
|
||||
if not prefix_name:
|
||||
self.prefix_info_display.clear()
|
||||
self.esync_button.setChecked(False)
|
||||
self.fsync_button.setChecked(False)
|
||||
return
|
||||
|
||||
last_conf_path = os.path.join(Var.USER_WORK_PATH, "prefixes", prefix_name, "last.conf")
|
||||
|
||||
if not os.path.exists(last_conf_path):
|
||||
self.prefix_info_display.setHtml(f"<p>Файл конфигурации last.conf не найден для префикса '{prefix_name}'.</p>")
|
||||
self.esync_button.setChecked(False)
|
||||
self.fsync_button.setChecked(False)
|
||||
return
|
||||
|
||||
# Словарь для хранения всех переменных из файла
|
||||
@@ -2363,6 +2375,17 @@ class WineHelperGUI(QMainWindow):
|
||||
self.prefix_info_display.setHtml(f"<p>Ошибка чтения last.conf: {e}</p>")
|
||||
return
|
||||
|
||||
# --- Обновить кнопки ESync/FSync ---
|
||||
# Блокировать сигналы, чтобы предотвратить запуск метода обновления, когда мы устанавливаем состояние
|
||||
self.esync_button.blockSignals(True)
|
||||
self.fsync_button.blockSignals(True)
|
||||
|
||||
self.esync_button.setChecked(all_vars.get("WINEESYNC") == "1")
|
||||
self.fsync_button.setChecked(all_vars.get("WINEFSYNC") == "1")
|
||||
|
||||
self.esync_button.blockSignals(False)
|
||||
self.fsync_button.blockSignals(False)
|
||||
|
||||
# Карта для красивого отображения известных переменных
|
||||
display_map = {
|
||||
"WINEPREFIX": ("Путь", lambda v: v),
|
||||
@@ -2371,8 +2394,10 @@ class WineHelperGUI(QMainWindow):
|
||||
"BASE_PFX": ("Тип", lambda v: 'Чистый' if v == "none" else 'С рекомендуемыми библиотеками'),
|
||||
"DXVK_VER": ("Версия DXVK", lambda v: v if v else "Не установлено"),
|
||||
"VKD3D_VER": ("Версия VKD3D", lambda v: v if v else "Не установлено"),
|
||||
"WINEESYNC": ("ESync", lambda v: "Включен" if v == "1" else "Выключен"),
|
||||
"WINEFSYNC": ("FSync", lambda v: "Включен" if v == "1" else "Выключен"),
|
||||
}
|
||||
display_order = ["WINEPREFIX", "WINEARCH", "WH_WINE_USE", "BASE_PFX", "DXVK_VER", "VKD3D_VER"]
|
||||
display_order = ["WINEPREFIX", "WINEARCH", "WH_WINE_USE", "BASE_PFX", "DXVK_VER", "VKD3D_VER", "WINEESYNC", "WINEFSYNC"]
|
||||
|
||||
html_content = f'<p style="line-height: 1.3; font-size: 9pt;">'
|
||||
html_content += f"<b>Имя:</b> {html.escape(prefix_name)}<br>"
|
||||
@@ -3340,6 +3365,43 @@ class WineHelperGUI(QMainWindow):
|
||||
"Будет использована системная версия Wine.")
|
||||
return 'wine' # По умолчанию системный wine
|
||||
|
||||
def update_sync_option(self, var_name, is_enabled):
|
||||
"""Обновляет значение WINEESYNC или WINEFSYNC в last.conf."""
|
||||
prefix_name = self.current_managed_prefix_name
|
||||
if not prefix_name:
|
||||
return
|
||||
|
||||
last_conf_path = os.path.join(Var.USER_WORK_PATH, "prefixes", prefix_name, "last.conf")
|
||||
if not os.path.exists(last_conf_path):
|
||||
QMessageBox.warning(self, "Ошибка", f"Файл last.conf не найден для префикса '{prefix_name}'.")
|
||||
return
|
||||
|
||||
new_value = "1" if is_enabled else "0"
|
||||
updated = False
|
||||
lines = []
|
||||
|
||||
try:
|
||||
with open(last_conf_path, 'r', encoding='utf-8') as f:
|
||||
lines = f.readlines()
|
||||
|
||||
for i, line in enumerate(lines):
|
||||
if line.strip().startswith(f"export {var_name}="):
|
||||
lines[i] = f'export {var_name}="{new_value}"\n'
|
||||
updated = True
|
||||
break
|
||||
|
||||
if not updated:
|
||||
lines.append(f'export {var_name}="{new_value}"\n')
|
||||
|
||||
with open(last_conf_path, 'w', encoding='utf-8') as f:
|
||||
f.writelines(lines)
|
||||
|
||||
# Обновляем информационную панель, чтобы отразить изменения
|
||||
self.update_prefix_info_display(prefix_name)
|
||||
|
||||
except IOError as e:
|
||||
QMessageBox.critical(self, "Ошибка записи", f"Не удалось обновить файл last.conf:\n{e}")
|
||||
|
||||
def _run_wine_util(self, util_name, prefix_name=None):
|
||||
"""Запускает стандартную утилиту Wine для выбранного префикса."""
|
||||
if not prefix_name:
|
||||
@@ -4048,13 +4110,18 @@ class WineHelperGUI(QMainWindow):
|
||||
self._load_created_prefixes()
|
||||
|
||||
new_prefix_name = None
|
||||
selected_new = False
|
||||
if new_prefixes:
|
||||
# Обычно создается один префикс, берем первый из найденных
|
||||
# Обычно создается один префикс, берем первый из найденных.
|
||||
new_prefix_name = new_prefixes.pop()
|
||||
# Находим и выбираем его в выпадающем списке
|
||||
# Находим и выбираем его в выпадающем списке.
|
||||
index = self.created_prefix_selector.findText(new_prefix_name)
|
||||
if index != -1:
|
||||
self.created_prefix_selector.setCurrentIndex(index)
|
||||
selected_new = True
|
||||
|
||||
if not selected_new and self.created_prefix_selector.count() > 0:
|
||||
self.created_prefix_selector.setCurrentIndex(0)
|
||||
# --- Конец обновления списка префиксов ---
|
||||
|
||||
# Создаем кастомный диалог, чтобы кнопка была на русском
|
||||
|
Reference in New Issue
Block a user