From: <umg...@us...> - 2007-06-13 15:14:21
|
Revision: 416 http://svn.sourceforge.net/pybridge/?rev=416&view=rev Author: umgangee Date: 2007-06-13 08:14:20 -0700 (Wed, 13 Jun 2007) Log Message: ----------- Move responsibility for starting games from LocalTable to BridgeGame, add appropriate functionality to WindowBridgetable. Modified Paths: -------------- trunk/pybridge/pybridge/network/localtable.py trunk/pybridge/pybridge/network/remotetable.py trunk/pybridge/pybridge/ui/window_bridgetable.py Modified: trunk/pybridge/pybridge/network/localtable.py =================================================================== --- trunk/pybridge/pybridge/network/localtable.py 2007-06-13 15:11:39 UTC (rev 415) +++ trunk/pybridge/pybridge/network/localtable.py 2007-06-13 15:14:20 UTC (rev 416) @@ -145,11 +145,6 @@ self.players[position] = user self.notify('joinGame', player=user.name, position=position) - # If no game is active and all players are ready, start game. - if not self.game.inProgress(): - if len(self.players) == len(self.game.positions): - self.game.start() - return player Modified: trunk/pybridge/pybridge/network/remotetable.py =================================================================== --- trunk/pybridge/pybridge/network/remotetable.py 2007-06-13 15:11:39 UTC (rev 415) +++ trunk/pybridge/pybridge/network/remotetable.py 2007-06-13 15:14:20 UTC (rev 416) @@ -65,6 +65,8 @@ self.observers = state['observers'] self.players = state['players'] + for position in self.players: + self.game.addPlayer(position) # Implementation of ITable. @@ -115,11 +117,13 @@ def observe_joinGame(self, player, position): + self.game.addPlayer(position) self.players[position] = player self.notify('joinGame', player, position) def observe_leaveGame(self, player, position): + self.game.removePlayer(position) del self.players[position] self.notify('leaveGame', player, position) Modified: trunk/pybridge/pybridge/ui/window_bridgetable.py =================================================================== --- trunk/pybridge/pybridge/ui/window_bridgetable.py 2007-06-13 15:11:39 UTC (rev 415) +++ trunk/pybridge/pybridge/ui/window_bridgetable.py 2007-06-13 15:14:20 UTC (rev 416) @@ -297,7 +297,11 @@ dialog.run() dialog.destroy() + if self.player and self.table.game.isNextGameReady(): + d = self.player.callRemote('startNextGame') + d.addErrback(self.errback) + def redrawHand(self, position, all=False): """Redraws cards making up the hand at position. @@ -431,23 +435,21 @@ # Disable menu item corresponding to position. widget = self.takeseat_items[position] widget.set_property('sensitive', False) - # Set player label. - label = getattr(self, 'label_%s' % position.key.lower()) - label.set_markup('<b>%s</b>' % player) # If all positions occupied, disable Take Seat. if len(self.table.players.values()) == len(Direction): self.takeseat.set_property('sensitive', False) + if self.player and self.table.game.isNextGameReady(): + d = self.player.callRemote('startNextGame') + d.addErrback(self.errback) + def event_leaveGame(self, player, position): self.cardarea.set_player_name(position, None) # Enable menu item corresponding to position. widget = self.takeseat_items[position] widget.set_property('sensitive', True) - # Reset player label. - label = getattr(self, 'label_%s' % position.key.lower()) - label.set_markup('<i>%s</i>' % _('Position vacant')) # If we are not seated, ensure Take Seat is enabled. if self.position is None: @@ -504,7 +506,7 @@ self.redrawHand(position) - def event_messageReceived(self, message, sender, recipients): + def event_sendMessage(self, message, sender, recipients): buffer = self.chat_messagehistory.get_buffer() iter = buffer.get_end_iter() buffer.insert(iter, '%s: %s\n' % (sender, message)) @@ -562,8 +564,8 @@ self.player = player # RemoteReference to BridgePlayer object. self.position = position - self.takeseat.set_property('visible', False) - self.leaveseat.set_property('visible', True) + self.takeseat.set_property('sensitive', False) + self.leaveseat.set_property('sensitive', True) self.cardarea.set_player_mapping(self.position) @@ -576,7 +578,7 @@ if not self.table.game.bidding.isComplete(): bidbox = self.children.open(WindowBidbox, parent=self) bidbox.monitor(self.table.game, self.position, self.on_call_selected) - + d = self.table.joinGame(position) d.addCallbacks(success, self.errback) @@ -594,8 +596,8 @@ def success(r): self.player = None self.position = None - self.takeseat.set_property('visible', True) - self.leaveseat.set_property('visible', False) + self.takeseat.set_property('sensitive', True) + self.leaveseat.set_property('sensitive', False) if self.children.get(WindowBidbox): self.children.close(self.children[WindowBidbox]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |