diff --git a/katrain/__main__.py b/katrain/__main__.py index c5bbfbc..c489cb0 100644 --- a/katrain/__main__.py +++ b/katrain/__main__.py @@ -218,7 +218,7 @@ class KaTrainGui(Screen, KaTrainBase): self.controls.update_players() self.update_state() for player_setup_block in PlayerSetupBlock.INSTANCES: - player_setup_block.update_players(bw, self.players_info[bw]) + player_setup_block.update_player_info(bw, self.players_info[bw]) def set_note(self, note): self.game.current_node.note = note diff --git a/katrain/gui.kv b/katrain/gui.kv index d88f056..f7e2479 100644 --- a/katrain/gui.kv +++ b/katrain/gui.kv @@ -171,8 +171,6 @@ size: image.size font_size: root.min_size * 1.2 / (1 + 1 * len(self.text)) - - # UI components : @@ -858,11 +856,12 @@ player_subtype_ai: player_subtype_ai MDBoxLayout: size_hint: 0.25, 1 - CircleWithText: + ClickableCircle: size_hint: 0.8, 0.8 pos_hint: {'center_x':0.5,'center_y':0.5} text: root.player[0] player: root.player + on_left_press: root.parent.swap_players() MDBoxLayout: size_hint: 0.5, 1 orientation: 'vertical' diff --git a/katrain/gui/kivyutils.py b/katrain/gui/kivyutils.py index a2b953b..36cf075 100644 --- a/katrain/gui/kivyutils.py +++ b/katrain/gui/kivyutils.py @@ -342,9 +342,12 @@ class PlayerSetupBlock(MDBoxLayout): def swap_players(self): player_dump = {bw: p.player_type_dump for bw, p in self.players.items()} for bw in "BW": - self.update_players(bw, player_dump["B" if bw == "W" else "W"]) + self.update_player_params(bw, player_dump["B" if bw == "W" else "W"]) - def update_players(self, bw, player_info): # update sub widget based on gui state change + def update_player_params(self, bw, params): + self.players[bw].update_widget(**params) + + def update_player_info(self, bw, player_info): # update sub widget based on gui state change self.players[bw].update_widget(player_type=player_info.player_type, player_subtype=player_info.player_subtype) @@ -558,6 +561,8 @@ class StatsBox(MDBoxLayout, BackgroundMixin): class ClickableLabel(LeftButtonBehavior, Label): pass +class ClickableCircle(LeftButtonBehavior,CircleWithText): + pass class ScrollableLabel(ScrollView, BackgroundMixin): __events__ = ["on_ref_press"] diff --git a/katrain/gui/popups.py b/katrain/gui/popups.py index 3e4c337..e1af3ba 100644 --- a/katrain/gui/popups.py +++ b/katrain/gui/popups.py @@ -246,7 +246,7 @@ class NewGamePopup(QuickConfigGui): def __init__(self, katrain): super().__init__(katrain) for bw, info in katrain.players_info.items(): - self.player_setup.update_players(bw, info) + self.player_setup.update_player_info(bw, info) self.rules_spinner.value_refs = [name for abbr, name in katrain.engine.RULESETS_ABBR] @@ -260,7 +260,7 @@ class NewGamePopup(QuickConfigGui): self.katrain.update_player(bw, **player_setup.player_type_dump) self.katrain("new-game") - def update_game(self, save_to_file=True): + def update_game(self): props = self.collect_properties(self) root = self.katrain.game.root changed = False