add enable dev mode info

This commit is contained in:
Your Name 2026-01-09 03:48:15 +03:00
parent 60e42e44aa
commit 5c9dc557dd

View File

@ -17,7 +17,9 @@ class AboutScreen(QWidget):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
self._dev_taps = 0 self._dev_taps = 0
self._dev_hint = QLabel("") self._build_row: _InfoRow | None = None
self.dev_is_unlocked = build_info.DEV_MODE_ENABLE
layout = QVBoxLayout(self) layout = QVBoxLayout(self)
layout.setContentsMargins(0, 0, 0, 0) layout.setContentsMargins(0, 0, 0, 0)
@ -44,26 +46,22 @@ class AboutScreen(QWidget):
info.setContentsMargins(0, 0, 0, 0) info.setContentsMargins(0, 0, 0, 0)
info.setSpacing(8) info.setSpacing(8)
info.addWidget(_info_row("Приложение", build_info.APP_NAME)) info.addWidget(_InfoRow("Приложение", build_info.APP_NAME))
info.addWidget(_info_row("Версия", build_info.VERSION)) info.addWidget(_InfoRow("Версия", build_info.VERSION))
build_row = _info_row("Сборка", build_info.BUILD_DATE, clickable=True) self._build_row = _InfoRow("Сборка", build_info.BUILD_DATE, clickable=True)
build_row.clicked.connect(self._on_build_tap) self._build_row.clicked.connect(self._on_build_tap)
info.addWidget(build_row) info.addWidget(self._build_row)
self._dev_hint.setObjectName("DevHint") info.addWidget(_InfoRow("Коммит", build_info.GIT_HASH))
self._dev_hint.setFont(QFont("", 12, 600)) info.addWidget(_InfoRow("Устройство", build_info.get_device_model()))
self._dev_hint.setAlignment(Qt.AlignRight | Qt.AlignVCenter) info.addWidget(_InfoRow("ОС", build_info.get_os_pretty_name()))
info.addWidget(self._dev_hint) info.addWidget(_InfoRow("Ядро", build_info.get_kernel_version()))
info.addWidget(_info_row("Коммит", build_info.GIT_HASH)) info.addWidget(_InfoRow("RAM (используется/всего)", build_info.get_ram_info()))
info.addWidget(_info_row("Устройство", build_info.get_device_model())) info.addWidget(_InfoRow("Диск (используется/всего)", build_info.get_disk_info()))
info.addWidget(_info_row("ОС", build_info.get_os_pretty_name())) info.addWidget(_InfoRow("Экран", build_info.get_display_resolution()))
info.addWidget(_info_row("Ядро", build_info.get_kernel_version())) info.addWidget(_InfoRow("Экран (факт)", _get_runtime_resolution()))
info.addWidget(_info_row("RAM (используется/всего)", build_info.get_ram_info())) info.addWidget(_InfoRow("Серийный номер", build_info.get_serial_number()))
info.addWidget(_info_row("Диск (используется/всего)", build_info.get_disk_info())) info.addWidget(_InfoRow("IP", build_info.get_ip_address()))
info.addWidget(_info_row("Экран", build_info.get_display_resolution())) info.addWidget(_InfoRow("Температура CPU", build_info.get_cpu_temp()))
info.addWidget(_info_row("Экран (факт)", _get_runtime_resolution()))
info.addWidget(_info_row("Серийный номер", build_info.get_serial_number()))
info.addWidget(_info_row("IP", build_info.get_ip_address()))
info.addWidget(_info_row("Температура CPU", build_info.get_cpu_temp()))
content_layout.addLayout(info) content_layout.addLayout(info)
content_layout.addStretch(1) content_layout.addStretch(1)
@ -72,47 +70,60 @@ class AboutScreen(QWidget):
layout.addWidget(scroll) layout.addWidget(scroll)
def _on_build_tap(self): def _on_build_tap(self):
if self.dev_is_unlocked:
return
self._dev_taps += 1 self._dev_taps += 1
remaining = 5 - self._dev_taps remaining = 5 - self._dev_taps
if self._build_row is None:
return
if remaining > 0: if remaining > 0:
self._dev_hint.setText(f"Осталось {remaining} нажат.") self._build_row.set_suffix(f"(Осталось {remaining} нажат.)")
return return
if self._dev_taps >= 5: if self._dev_taps >= 5:
self._dev_taps = 0 #self._dev_taps = 0
self._dev_hint.setText("Режим разработчика включен") self._build_row.set_suffix("(Режим разработчика включен)")
self.dev_unlocked.emit() self.dev_unlocked.emit()
self.dev_is_unlocked = True
class _ClickableRow(QWidget): class _InfoRow(QWidget):
clicked = Signal() clicked = Signal()
def __init__(self): def __init__(self, label: str, value: str, clickable: bool = False):
super().__init__() super().__init__()
self.setCursor(Qt.PointingHandCursor) self._base_label = label
if clickable:
self.setCursor(Qt.PointingHandCursor)
layout = QHBoxLayout(self)
layout.setContentsMargins(12, 6, 12, 6)
layout.setSpacing(12)
self._label = QLabel(label)
self._label.setFont(QFont("", 15, 600))
self._value = QLabel(value)
self._value.setFont(QFont("", 15))
self._value.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
layout.addWidget(self._label)
layout.addStretch(1)
layout.addWidget(self._value)
self._clickable = clickable
def mousePressEvent(self, event): def mousePressEvent(self, event):
if event.button() == Qt.LeftButton: if self._clickable and event.button() == Qt.LeftButton:
self.clicked.emit() self.clicked.emit()
super().mousePressEvent(event) super().mousePressEvent(event)
def set_suffix(self, suffix: str):
def _info_row(label: str, value: str, clickable: bool = False) -> QWidget: suffix = suffix.strip()
row = _ClickableRow() if clickable else QWidget() if suffix:
layout = QHBoxLayout(row) self._label.setText(f"{self._base_label} {suffix}")
layout.setContentsMargins(12, 6, 12, 6) else:
layout.setSpacing(12) self._label.setText(self._base_label)
lbl = QLabel(label)
lbl.setFont(QFont("", 15, 600))
val = QLabel(value)
val.setFont(QFont("", 15))
val.setAlignment(Qt.AlignRight | Qt.AlignVCenter)
layout.addWidget(lbl)
layout.addStretch(1)
layout.addWidget(val)
return row
def _get_runtime_resolution() -> str: def _get_runtime_resolution() -> str: