diff --git a/src/TSHIndividualGameTracker.py b/src/TSHIndividualGameTracker.py index ceed0f738..e7a356c11 100644 --- a/src/TSHIndividualGameTracker.py +++ b/src/TSHIndividualGameTracker.py @@ -311,3 +311,21 @@ def SwapStageResults(self): StateManager.Set(f"score.{self.scoreboard_number}.stages.{i+1}.t2_win", stageTeam2Check.isChecked()), StateManager.Set(f"score.{self.scoreboard_number}.stages.{i+1}.tie", stageTieCheck.isChecked()), + + def SetStage(self, index=0, stage_codename=None): + StateManager.BlockSaving() + print(f"Setting stage for game {index+1}") + if self.stage_widget_list: + target = self.findChild(QComboBox, f"stageMenu_{index}") + if stage_codename: + for i in range(1, TSHGameAssetManager.instance.stageModelWithBlank.rowCount()): + current_menu_item_data = TSHGameAssetManager.instance.stageModelWithBlank.item(i).data(Qt.ItemDataRole.UserRole) + if current_menu_item_data.get("codename") in stage_codename: + print(i, stage_codename) + target.setCurrentIndex(i) + target.currentIndexChanged.emit(i) + else: + target.setCurrentIndex(0) + target.currentIndexChanged.emit(0) + + StateManager.ReleaseSaving() diff --git a/src/TSHStageStrikeLogic.py b/src/TSHStageStrikeLogic.py index befb4d481..55dac6bca 100644 --- a/src/TSHStageStrikeLogic.py +++ b/src/TSHStageStrikeLogic.py @@ -2,6 +2,7 @@ from copy import deepcopy from loguru import logger from qtpy.QtCore import QObject, Signal +from .TSHScoreboardManager import TSHScoreboardManager class TSHStageStrikeStateSignals(QObject): @@ -83,6 +84,15 @@ def ExportState(self): }) self.signals.state_updated.emit() + if len(self.history) > 1: + try: + last_known_state = self.history[-1] + sb_widget = TSHScoreboardManager.instance.GetScoreboard(1) # Update the game tracker + for i in range(1, len(last_known_state.stagesPicked)): + sb_widget.individualGameTracker.SetStage(i-1, last_known_state.stagesPicked[i]) + except IndexError as e: + logger.warning("Could not find scoreboard 1 when piloting the stage history!") + def SetRuleset(self, ruleset): self.ruleset = ruleset self.Initialize()