From 1ad2c6cfa8c1aace48566d5d16ae1a16b236de92 Mon Sep 17 00:00:00 2001 From: Sergey Palcheh Date: Thu, 23 Oct 2025 11:31:43 +0600 Subject: [PATCH] The Manual sub-tab has been renamed to General --- winehelper | 4 +++- winehelper_gui.py | 55 ++++++++++++++++++++++++++++++++++------------- 2 files changed, 43 insertions(+), 16 deletions(-) diff --git a/winehelper b/winehelper index 5d21d25..5f09472 100755 --- a/winehelper +++ b/winehelper @@ -7,7 +7,7 @@ if [[ $(id -u) -eq 0 ]] ; then fi ##### DEFAULT PATH ##### -export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT THIRD_PARTY_FILE WH_ICON_TRAY +export SCRIPT_NAME USER_WORK_PATH RUN_SCRIPT DATA_PATH CHANGELOG_FILE WH_ICON_PATH LICENSE_FILE AGREEMENT THIRD_PARTY_FILE WH_ICON_TRAY GENERAL SCRIPT_NAME="$(basename "$0")" if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then @@ -22,6 +22,7 @@ if [[ "$(realpath "$0")" == "/usr/bin/$SCRIPT_NAME" ]] ; then 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" + GENERAL="/usr/share/doc/winehelper-$WH_VERSION/GENERAL" else # переменные для тестового запуска WineHelper из репозитория USER_WORK_PATH="$HOME/test-$SCRIPT_NAME" @@ -33,6 +34,7 @@ else LICENSE_FILE="$DATA_PATH/LICENSE" AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT" THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY" + GENERAL="$DATA_PATH/GENERAL" WH_DEVEL="1" # минимальная проверка синтаксиса скриптов diff --git a/winehelper_gui.py b/winehelper_gui.py index 4c682b5..354c3d2 100644 --- a/winehelper_gui.py +++ b/winehelper_gui.py @@ -30,6 +30,7 @@ class Var: LICENSE_FILE = os.environ.get("LICENSE_FILE") LICENSE_AGREEMENT_FILE = os.environ.get("AGREEMENT") THIRD_PARTY_FILE = os.environ.get("THIRD_PARTY_FILE") + GENERAL = os.environ.get("GENERAL") class DependencyManager: """Класс для управления проверкой и установкой системных зависимостей.""" @@ -1793,10 +1794,7 @@ class WineHelperGUI(QMainWindow): title = "Автоматическая установка" html_content = ("

Автоматическая установка

" "

Скрипты из этого списка скачают, установят и настроят приложение за вас. Просто выберите программу и нажмите «Установить».

" - "

Для доступа к экспериментальным скриптам установки отметьте опцию «Показать тестовые версии» внизу списка.

" - "

Совместимость с дистрибутивами Альт

" - "

С полным списком совместимого ПО и сертификатами (не только для WineHelper) можно ознакомиться по следующим ссылкам:
" - "Для 10 платформы | Для 11 платформы

") + "

Для доступа к экспериментальным скриптам установки отметьте опцию «Показать тестовые версии» внизу списка.

") show_global = False elif tab_name == "Ручная установка": title = "Ручная установка" @@ -3256,17 +3254,44 @@ class WineHelperGUI(QMainWindow): help_subtabs = QTabWidget() help_layout.addWidget(help_subtabs) - # Подвкладка "Руководство" - guide_tab = QWidget() - guide_layout = QVBoxLayout(guide_tab) - guide_text = QTextBrowser() - guide_text.setOpenExternalLinks(True) - guide_text.setHtml(""" -

Руководство пользователя

-

Подробное и актуальное руководство по использованию WineHelper смотрите на https://www.altlinux.org/Winehelper

- """) - guide_layout.addWidget(guide_text) - help_subtabs.addTab(guide_tab, "Руководство") + # Подвкладка "Общее" + general_tab = QWidget() + general_layout = QVBoxLayout(general_tab) + general_text = QTextBrowser() + general_text.setOpenExternalLinks(True) + + try: + if not Var.GENERAL or not os.path.exists(Var.GENERAL): + raise FileNotFoundError + + with open(Var.GENERAL, 'r', encoding='utf-8') as f: + general_content = f.read() + + html_content = "" + url_re = re.compile(r'(https?://[^\s]+)') + + for line in general_content.splitlines(): + line = line.strip() + if not line: + html_content += "
" + continue + + line = html.escape(line) + line = url_re.sub(r'\1', line) + + if line.startswith('# '): + html_content += f'

{line[2:]}

' + elif line.startswith('Для '): + html_content += f'

• {line}

' + else: + html_content += f'

{line}

' + + general_text.setHtml(html_content) + except (FileNotFoundError, TypeError): + general_text.setHtml(f'

Ошибка

Не удалось загрузить файл с общей информацией по пути:
{Var.GENERAL}

') + + general_layout.addWidget(general_text) + help_subtabs.addTab(general_tab, "Общее") # Подвкладка "Авторы" authors_tab = QWidget()