/
broot
/
flowee
Обзор
Документация
Войти
/
broot
/
flowee
Код
Пакеты
0
Релизы
2
Аналитика
Безопасность
dev
ui/dialogs.py
62 строки
2 KB
broot
Fix orphaned session recovery: correct type, name, and UI refresh
22 июл 2026, 22:58
22 июл 2026, 22:58
7805126
Код
Авторство
О чём код?
""" Диалоговые окна Flowee. """ from PySide2.QtWidgets import ( QDialog, QVBoxLayout, QLabel, QPushButton, QHBoxLayout ) from PySide2.QtCore import Qt class RecoveryDialog(QDialog): """ Диалог, который спрашивает пользователя, что делать с незавершённой сессией. Возвращает одно из трёх значений: - 'continue' - 'discard_and_start' - 'discard_and_stop' """ def __init__(self, session_type: str, task_name: str, parent=None): super().__init__(parent) self.setWindowTitle("Восстановление сессии") self.setMinimumWidth(400) self._choice = None layout = QVBoxLayout(self) layout.setSpacing(16) # Текст сообщения зависит от типа сессии if session_type == "work": text = f"Найдена незавершённая рабочая сессия:\n«{task_name}»\n\nЧто вы хотите сделать?" else: # break text = f"Найден незавершённый перерыв после задачи:\n«{task_name}»\n\nЧто вы хотите сделать?" label = QLabel(text) label.setAlignment(Qt.AlignCenter) layout.addWidget(label) # Кнопки button_layout = QHBoxLayout() btn_continue = QPushButton("Продолжить") btn_continue.clicked.connect(lambda: self._finish("continue")) # noqa: F821 button_layout.addWidget(btn_continue) if session_type == "break": btn_discard_start = QPushButton("Завершить\nи начать работу") btn_discard_start.clicked.connect(lambda: self._finish("discard_and_start")) # noqa: F821 button_layout.addWidget(btn_discard_start) btn_discard_stop = QPushButton("Завершить\nи остановиться") btn_discard_stop.clicked.connect(lambda: self._finish("discard_and_stop")) # noqa: F821 button_layout.addWidget(btn_discard_stop) layout.addLayout(button_layout) def _finish(self, choice: str): self._choice = choice self.accept() def get_choice(self) -> str: """Возвращает выбор пользователя.""" return self._choice