From: <umg...@us...> - 2007-06-14 16:22:07
|
Revision: 420 http://svn.sourceforge.net/pybridge/?rev=420&view=rev Author: umgangee Date: 2007-06-14 09:22:05 -0700 (Thu, 14 Jun 2007) Log Message: ----------- Add display of all hands when game complete. Make results dialog non-blocking, to allow UI events in the background. Modified Paths: -------------- trunk/pybridge/pybridge/ui/window_bridgetable.py Modified: trunk/pybridge/pybridge/ui/window_bridgetable.py =================================================================== --- trunk/pybridge/pybridge/ui/window_bridgetable.py 2007-06-14 16:19:10 UTC (rev 419) +++ trunk/pybridge/pybridge/ui/window_bridgetable.py 2007-06-14 16:22:05 UTC (rev 420) @@ -261,8 +261,10 @@ def gameComplete(self): - for position in Direction: + # Display all previously revealed hands - the server will reveal the others. + for position in self.table.game.visibleHands: self.redrawHand(position, all=True) + self.setTurnIndicator() dialog = gtk.MessageDialog(parent=self.window, flags=gtk.DIALOG_MODAL, @@ -294,12 +296,14 @@ dialog.set_markup(_('Bidding passed out.')) dialog.format_secondary_text(_('No score.')) - dialog.run() - dialog.destroy() + def dialog_response_cb(dialog, response_id): + dialog.destroy() + if self.player and self.table.game.isNextGameReady(): + d = self.player.callRemote('startNextGame') + d.addErrback(self.errback) - if self.player and self.table.game.isNextGameReady(): - d = self.player.callRemote('startNextGame') - d.addErrback(self.errback) + dialog.connect('response', dialog_response_cb) + dialog.show() def redrawHand(self, position, all=False): @@ -486,6 +490,8 @@ if self.player: d = self.player.callRemote('getHand') + # When player's hand is returned by server, reveal it to client-side Game. + # TODO: is there a better way of synchronising hands? d.addCallbacks(self.table.game.revealHand, self.errback, callbackKeywords={'position' : self.position}) bidbox = self.children.open(WindowBidbox, parent=self) @@ -519,7 +525,8 @@ def event_revealHand(self, hand, position): - self.redrawHand(position) + all = not self.table.game.inProgress() # Show all cards if game has finished. + self.redrawHand(position, all) def event_sendMessage(self, message, sender, recipients): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |