Compare commits

..

2 Commits

Author SHA1 Message Date
Sergey Palcheh
1ad2c6cfa8 The Manual sub-tab has been renamed to General 2025-10-23 11:31:43 +06:00
Sergey Palcheh
16a686dc37 added a new file with general information 2025-10-23 11:30:37 +06:00
4 changed files with 43 additions and 37 deletions

View File

@@ -1,2 +0,0 @@
Для 10 платформы: https://www.basealt.ru/fileadmin/user_upload/compatibility/P10-view2.html
Для 11 платформы: https://www.basealt.ru/fileadmin/user_upload/compatibility/P11-view2.html

7
GENERAL Normal file
View File

@@ -0,0 +1,7 @@
# Руководство пользователя
Подробное и актуальное руководство по использованию WineHelper смотрите на сайте: https://www.altlinux.org/Winehelper
# Совместимость ПО и сертификаты
С полным списком совместимого ПО и сертификатами можно ознакомиться по следующим ссылкам:
Для 10 платформы: https://www.basealt.ru/fileadmin/user_upload/compatibility/P10-view2.html
Для 11 платформы: https://www.basealt.ru/fileadmin/user_upload/compatibility/P11-view2.html

View File

@@ -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 ACCORDANCE
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,7 +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"
ACCORDANCE="/usr/share/doc/winehelper-$WH_VERSION/ACCORDANCE"
GENERAL="/usr/share/doc/winehelper-$WH_VERSION/GENERAL"
else
# переменные для тестового запуска WineHelper из репозитория
USER_WORK_PATH="$HOME/test-$SCRIPT_NAME"
@@ -34,7 +34,7 @@ else
LICENSE_FILE="$DATA_PATH/LICENSE"
AGREEMENT="$DATA_PATH/LICENSE_AGREEMENT"
THIRD_PARTY_FILE="$DATA_PATH/THIRD-PARTY"
ACCORDANCE="$DATA_PATH/ACCORDANCE"
GENERAL="$DATA_PATH/GENERAL"
WH_DEVEL="1"
# минимальная проверка синтаксиса скриптов

View File

@@ -30,7 +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")
ACCORDANCE = os.environ.get("ACCORDANCE")
GENERAL = os.environ.get("GENERAL")
class DependencyManager:
"""Класс для управления проверкой и установкой системных зависимостей."""
@@ -3254,43 +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)
# Подвкладка "Общее"
general_tab = QWidget()
general_layout = QVBoxLayout(general_tab)
general_text = QTextBrowser()
general_text.setOpenExternalLinks(True)
# --- Блок Совместимость ---
accordance_html = ""
try:
accordance_file_path = Var.ACCORDANCE
if not accordance_file_path or not os.path.exists(accordance_file_path):
if not Var.GENERAL or not os.path.exists(Var.GENERAL):
raise FileNotFoundError
with open(accordance_file_path, 'r', encoding='utf-8') as f_acc:
accordance_lines = f_acc.read().strip().splitlines()
with open(Var.GENERAL, 'r', encoding='utf-8') as f:
general_content = f.read()
if accordance_lines:
accordance_html += '<hr><h2>Совместимость ПО и сертификаты</h2>'
accordance_html += '<p>С полным списком совместимого ПО и сертификатами можно ознакомиться по следующим ссылкам:</p><ul>'
for line in accordance_lines:
url_match = re.search(r'(https?://[^\s]+)', line)
if url_match:
url = url_match.group(1)
description = line[:url_match.start()].strip()
accordance_html += f'<li>{html.escape(description)} <a href="{url}">{url}</a></li>'
else:
accordance_html += f'<li>{html.escape(line)}</li>'
accordance_html += '</ul>'
except Exception as e:
print(f"Не удалось обработать файл ACCORDANCE: {e}")
html_content = ""
url_re = re.compile(r'(https?://[^\s]+)')
guide_text.setHtml(f"""
<h2>Руководство пользователя</h2>
<p>Подробное и актуальное руководство по использованию WineHelper смотрите на сайте: <a href="https://www.altlinux.org/Winehelper">https://www.altlinux.org/Winehelper</a></p>
""" + accordance_html)
guide_layout.addWidget(guide_text)
help_subtabs.addTab(guide_tab, "Руководство")
for line in general_content.splitlines():
line = line.strip()
if not line:
html_content += "<br>"
continue
line = html.escape(line)
line = url_re.sub(r'<a href="\1">\1</a>', line)
if line.startswith('# '):
html_content += f'<h2>{line[2:]}</h2>'
elif line.startswith('Для '):
html_content += f'<p style="margin-left: 10px;">&bull; {line}</p>'
else:
html_content += f'<p>{line}</p>'
general_text.setHtml(html_content)
except (FileNotFoundError, TypeError):
general_text.setHtml(f'<h2>Ошибка</h2><p>Не удалось загрузить файл с общей информацией по пути:<br>{Var.GENERAL}</p>')
general_layout.addWidget(general_text)
help_subtabs.addTab(general_tab, "Общее")
# Подвкладка "Авторы"
authors_tab = QWidget()