Add Dispatch_V0.1.1

This commit is contained in:
2026-04-29 08:18:54 +04:00
commit a7ede6ded4
404 changed files with 39167 additions and 0 deletions

View File

@@ -0,0 +1,270 @@
# -*- coding: utf-8 -*-
# gui/styles/labels.py
"""Стили для QLabel и текстовых меток"""
LABELS = {
"ERROR_LABEL": """
color: #c0392b;
font-weight: bold;
""",
"INFO_LABEL": """
QLabel {
font-size: 22px;
font-weight: 600;
color: palette(window-text);
background-color: transparent;
}
""",
"INFO_LABEL_LIGHT": """
QLabel {
font-size: 22px;
font-weight: 600;
color: #172B4D;
background-color: transparent;
}
""",
"INFO_NOTE_LABEL": """
color: #42526E;
font-size: 12px;
""",
"INFO_TEXT_BORDERED": """
QLabel {
font-size: 14px;
font-weight: 600;
color: palette(window-text);
background-color: palette(base);
border: 1px solid palette(mid);
border-radius: 0px;
padding: 4px 8px;
qproperty-alignment: 'AlignVCenter | AlignLeft';
}
""",
"INFO_TEXT_BORDERED_LIGHT": """
QLabel {
font-size: 14px;
font-weight: 600;
color: #172B4D;
background-color: #FFFFFF;
border: 1px solid #DFE1E6;
border-radius: 0px;
padding: 4px 8px;
qproperty-alignment: 'AlignVCenter | AlignLeft';
}
""",
"INFO_TEXT_GRAY": """
QLabel {
font-size: 14px;
font-weight: 600;
color: palette(window-text);
border: none;
qproperty-alignment: 'AlignBottom | AlignLeft';
}
""",
"INFO_TEXT_GRAY_SMALL": """
QLabel {
font-size: 12px;
font-weight: 600;
color: palette(window-text);
border: none;
qproperty-alignment: 'AlignBottom | AlignLeft';
}
""",
"INFO_TEXT": """
QLabel {
font-size: 14px;
font-weight: 600;
color: palette(window-text);
border: none;
padding: 8px 0px;
qproperty-alignment: 'AlignBottom | AlignLeft';
}
""",
"MODULE_TITLE": """
QLabel {
font-size: 32px;
font-weight: bold;
color: palette(window-text);
margin-bottom: 10px;
background-color: transparent;
}
""",
"MODULE_TITLE_LIGHT": """
QLabel {
font-size: 32px;
font-weight: bold;
color: #172B4D;
margin-bottom: 10px;
background-color: transparent;
}
""",
"PROJECT_TREE_LABEL": """
QLabel {
font-size: 14px;
font-weight: 600;
color: palette(window-text);
background-color: palette(base);
border: 1px solid palette(mid);
border-radius: 0px;
min-width: 400px;
min-height: 200px;
}
""",
"STATUS_LABEL": """
QLabel {
font-size: 14px;
color: palette(window-text);
background-color: palette(base);
border: 1px solid palette(mid);
border-radius: 0px;
padding: 2px 8px;
}
""",
"STATUS_LABEL_LIGHT": """
QLabel {
font-size: 14px;
color: #172B4D;
background-color: #FFFFFF;
border: 1px solid #DFE1E6;
border-radius: 0px;
padding: 2px 8px;
}
""",
"TITLE_BAR": """
QLabel {
background-color: #3C3C3C;
color: palette(button-text);
border: 1px solid palette(mid);
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
font-size: 16px;
text-align: center;
}
""",
"TITLE_BAR_LIGHT": """
QLabel {
background-color: #FFFFFF;
color: #172B4D;
border: 1px solid #DFE1E6;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
font-size: 16px;
text-align: center;
}
""",
"WIDGET_LABEL": """
QLabel {
font-size: 48px;
font-weight: bold;
color: palette(window-text);
background-color: palette(base);
border: 1px solid palette(mid);
border-radius: 0px;
min-width: 400px;
min-height: 200px;
}
""",
"ZONE_PROPERTIES_TITLE": """
QLabel {
background-color: #3C3C3C;
color: palette(button-text);
border-left: 0px;
border-right: 0px;
border-top: 0px;
border-bottom: 1px solid palette(mid);
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
font-size: 16px;
text-align: center;
}
""",
"ZONE_PROPERTIES_TITLE_LIGHT": """
QLabel {
background-color: #F4F5F7;
color: #172B4D;
border-left: 0px;
border-right: 0px;
border-top: 0px;
border-bottom: 1px solid #DFE1E6;
border-top-left-radius: 0px;
border-top-right-radius: 0px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
font-size: 16px;
text-align: center;
}
""",
}
# ---------------------------------------------------------------------------
# Module workflow notes
# ---------------------------------------------------------------------------
#
# 1) Назначение модуля:
# Определение QSS-стилей для QLabel и текстовых меток: заголовки модулей,
# информационные метки, статусные строки, title bar'ы, зонные заголовки
# свойств, метки проектного дерева и стилизованные виджет-метки.
# Поддержка тем: стандартная (palette) и _LIGHT-варианты.
#
# 2) Зависимости модуля:
# Импорты: нет
# Хост/базовый класс: нет (модуль-словарь)
# Внешние библиотеки: нет
#
# 3) Экспорт:
# Словарь LABELS: dict[str, str] — ключ → QSS-строка.
# Ключи: ERROR_LABEL, INFO_LABEL, INFO_LABEL_LIGHT, INFO_NOTE_LABEL,
# INFO_TEXT_BORDERED, INFO_TEXT_BORDERED_LIGHT, INFO_TEXT_GRAY,
# INFO_TEXT_GRAY_SMALL, INFO_TEXT, MODULE_TITLE, MODULE_TITLE_LIGHT,
# PROJECT_TREE_LABEL, STATUS_LABEL, STATUS_LABEL_LIGHT,
# TITLE_BAR, TITLE_BAR_LIGHT, WIDGET_LABEL,
# ZONE_PROPERTIES_TITLE, ZONE_PROPERTIES_TITLE_LIGHT.
#
# 4) Состояние (поля):
# LABELS: dict[str, str] — единственный экспортируемый словарь.
#
# 5) Последовательность действий и вызовов:
# Нет вызовов; модуль декларативный.
# Импортируется в gui/styles/__init__.py → APP_STYLES.update(LABELS).
#
# 6) Побочные эффекты:
# Нет побочных эффектов при импорте.
#
# 7) Границы ответственности:
# НЕ применяет стили — только хранит QSS-строки.
# НЕ содержит стили для кнопок (→ buttons.py) или полей ввода (→ inputs.py).
#
# 8) Обработка ошибок:
# Нет; модуль декларативный.
#
# 9) Инварианты и контракты:
# - Каждый ключ с поддержкой светлой темы имеет суффикс _LIGHT.
# - Все QSS-строки — валидный Qt StyleSheet синтаксис.
# - ERROR_LABEL использует inline-стиль (без селектора QLabel {}).
#
# 10) Правило сопровождения:
# Новые стили меток добавлять сюда по паттерну KEY / KEY_LIGHT.
# Для стилей с qproperty-alignment использовать строковые значения
# Qt ('AlignVCenter | AlignLeft'). Не смешивать стили кнопок и меток.