fix(main_window): prevent RuntimeError when modifying deleted QVBoxLayout in HLTB callback
All checks were successful
Code and build check / Check code (push) Successful in 1m35s
Code and build check / Build with uv (push) Successful in 52s
renovate / renovate (push) Successful in 22s

Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
This commit is contained in:
2025-07-18 20:54:45 +05:00
parent 1b743026c2
commit e91037708a

View File

@ -1518,6 +1518,8 @@ class MainWindow(QMainWindow):
self._animations = {} self._animations = {}
imageLabel = QLabel() imageLabel = QLabel()
imageLabel.setFixedSize(300, 400) imageLabel.setFixedSize(300, 400)
self._detail_page_active = True
self._current_detail_page = detailPage
if cover_path: if cover_path:
def on_pixmap_ready(pixmap): def on_pixmap_ready(pixmap):
@ -1768,6 +1770,11 @@ class MainWindow(QMainWindow):
# Время прохождения (Main Story, Main + Sides, Completionist) # Время прохождения (Main Story, Main + Sides, Completionist)
def on_hltb_results(results): def on_hltb_results(results):
if not hasattr(self, '_detail_page_active') or not self._detail_page_active:
return
if not self._current_detail_page or self._current_detail_page.isHidden() or not self._current_detail_page.parent():
return
if results: if results:
game = results[0] # Берем первый результат game = results[0] # Берем первый результат
main_story_time = hltb.format_game_time(game, "main_story") main_story_time = hltb.format_game_time(game, "main_story")
@ -1941,6 +1948,8 @@ class MainWindow(QMainWindow):
def goBackDetailPage(self, page: QWidget | None) -> None: def goBackDetailPage(self, page: QWidget | None) -> None:
if page is None or page != self.stackedWidget.currentWidget(): if page is None or page != self.stackedWidget.currentWidget():
return return
self._detail_page_active = False
self._current_detail_page = None
self.stackedWidget.setCurrentIndex(0) self.stackedWidget.setCurrentIndex(0)
self.stackedWidget.removeWidget(page) self.stackedWidget.removeWidget(page)
page.deleteLater() page.deleteLater()