From: <umg...@us...> - 2008-05-10 09:51:33
|
Revision: 507 http://pybridge.svn.sourceforge.net/pybridge/?rev=507&view=rev Author: umgangee Date: 2008-05-10 02:51:38 -0700 (Sat, 10 May 2008) Log Message: ----------- A variety of changes, that, for some reason, weren't committed last year. Modified Paths: -------------- trunk/pybridge/INSTALL trunk/pybridge/NEWS trunk/pybridge/README trunk/pybridge/locale/src/Makefile trunk/pybridge/pybridge/__init__.py trunk/pybridge/pybridge/games/bridge/ui/window_scoresheet.py trunk/pybridge/pybridge/network/remotetable.py trunk/pybridge/pybridge/server/database.py trunk/pybridge/pybridge/ui/dialog_connection.py trunk/pybridge/pybridge/ui/window_chat.py trunk/pybridge/pybridge/ui/window_gametable.py trunk/pybridge/setup.py trunk/pybridge/tests/bridge/test_deal.py trunk/pybridge/tests/monkey.py Modified: trunk/pybridge/INSTALL =================================================================== --- trunk/pybridge/INSTALL 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/INSTALL 2008-05-10 09:51:38 UTC (rev 507) @@ -38,7 +38,7 @@ - PyGTK (>= 2.8) - http://www.pygtk.org/ - Cairo (>= 1.0) - http://cairographics.org/ - PyCairo (>= 1.0) - http://cairographics.org/pycairo/ - - ConfigObj (>= 4.0) -http://www.voidspace.org.uk/python/configobj.html + - ConfigObj (>= 4.0) - http://www.voidspace.org.uk/python/configobj.html To run the standalone PyBridge server, the following software is also required: Modified: trunk/pybridge/NEWS =================================================================== --- trunk/pybridge/NEWS 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/NEWS 2008-05-10 09:51:38 UTC (rev 507) @@ -1,3 +1,39 @@ +========== +0.4.0 (??) +========== + +New features +------------ + + - Architecture: + + - Full support for other games. + + + - User interface: + + - Separation of bridge table UI from generic table window. Tables for particular games inherit. + + - Enhanced chat support. + + +Bug fixes +--------- + + - Fixed https://bugs.launchpad.net/pybridge/+bug/127974 + + +Translations +------------ + + - French: Aldo Reset <al...@pl...> + + - Polish: + + Please help with translating PyBridge into your native language! + See https://translations.launchpad.net/pybridge/ to get started. + + ===================== 0.3.0 (25 June 2007) ===================== Modified: trunk/pybridge/README =================================================================== --- trunk/pybridge/README 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/README 2008-05-10 09:51:38 UTC (rev 507) @@ -1,6 +1,7 @@ -PyBridge 0.3.0 - a free online bridge game +PyBridge 0.4.0 - a free online bridge game http://pybridge.sourceforge.net/ http://sourceforge.net/projects/pybridge/ +https://launchpad.net/pybridge About PyBridge @@ -31,12 +32,12 @@ Your feedback, bug reports and ideas for new features are especially welcome. - - Forums: http://sourceforge.net/forum/?group_id=114287 + - Bug reports: https://bugs.launchpad.net/pybridge/ - - Bug reports: http://sourceforge.net/tracker/?group_id=114287&atid=667822 + - Feature ideas: https://blueprints.launchpad.net/pybridge/ + + - Translations: https://translations.launchpad.net/pybridge/ - - Feature ideas: http://sourceforge.net/tracker/?group_id=114287&atid=667825 - If you are a competent (or aspiring!) Python programmer and would like to contribute code to PyBridge, then please get in touch with the developers! Modified: trunk/pybridge/locale/src/Makefile =================================================================== --- trunk/pybridge/locale/src/Makefile 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/locale/src/Makefile 2008-05-10 09:51:38 UTC (rev 507) @@ -18,12 +18,12 @@ msgmerge -UN $@ $< #Generic rule for POT files -%.pot: ../../glade/pybridge.glade ../../pybridge/ui/*.py +%.pot: ../../glade/pybridge.glade ############ #CREATING $@ ############ intltool-extract --type=gettext/glade ../../glade/pybridge.glade - xgettext -k_ -kN_ --from-code=UTF-8 -o $@ ../../glade/pybridge.glade.h ../../pybridge/ui/*.py + xgettext -k_ -kN_ --from-code=UTF-8 -o $@ ../../glade/pybridge.glade.h ../../pybridge/ui/*.py ../../pybridge/games/bridge/ui/*.py update: $(shell ls *.po) Modified: trunk/pybridge/pybridge/__init__.py =================================================================== --- trunk/pybridge/pybridge/__init__.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/__init__.py 2008-05-10 09:51:38 UTC (rev 507) @@ -2,7 +2,7 @@ PyBridge - a free online bridge game. """ -__version__ = '0.3.0' +__version__ = '0.4.0' __author__ = 'Michael Banks <mi...@ba...>' __license__ = 'GNU General Public License, Version 2 or later' Modified: trunk/pybridge/pybridge/games/bridge/ui/window_scoresheet.py =================================================================== --- trunk/pybridge/pybridge/games/bridge/ui/window_scoresheet.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/games/bridge/ui/window_scoresheet.py 2008-05-10 09:51:38 UTC (rev 507) @@ -124,10 +124,15 @@ self.window.set_title(_('Score Sheet')) #self.window.connect('delete_event', self.on_delete_event) + self.sw = gtk.ScrolledWindow() + self.sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_ALWAYS) + self.sw.set_size_request(-1, 150) + self.window.add(self.sw) + self.eventHandler = SimpleEventHandler(self) self.table = None - self.window.show() + self.window.show_all() def tearDown(self): @@ -150,7 +155,7 @@ for result in self.table.game.results: self.scoresheet.add_result(result) - self.window.add(self.scoresheet) + self.sw.add(self.scoresheet) self.scoresheet.show() @@ -164,7 +169,6 @@ self.scoresheet.add_result(result) - def event_makeCall(self, call, position): self.update() Modified: trunk/pybridge/pybridge/network/remotetable.py =================================================================== --- trunk/pybridge/pybridge/network/remotetable.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/network/remotetable.py 2008-05-10 09:51:38 UTC (rev 507) @@ -49,6 +49,8 @@ if state['gamename'] in SUPPORTED_GAMES: gameclass = SUPPORTED_GAMES[state['gamename']] self.game = gameclass() + # TODO: encapsulate within a try/except block, so errors are not + # propagated back to server, and client drops table gracefully. self.game.setState(state['gamestate']) else: raise NameError, "Unsupported game class %s" % state['gamename'] Modified: trunk/pybridge/pybridge/server/database.py =================================================================== --- trunk/pybridge/pybridge/server/database.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/server/database.py 2008-05-10 09:51:38 UTC (rev 507) @@ -99,6 +99,7 @@ # Don't split name field - see http://people.w3.org/rishida/blog/?p=100 realname = UnicodeCol(default=None, length=40) profile = UnicodeCol(default=None) + #country = StringCol(length=2, default=None) # ISO 3166 country code. created = DateTimeCol(default=datetime.now) lastLogin = DateTimeCol(default=None) # friends = MultipleJoin('UserFriend', joinColumn='from_user') Modified: trunk/pybridge/pybridge/ui/dialog_connection.py =================================================================== --- trunk/pybridge/pybridge/ui/dialog_connection.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/ui/dialog_connection.py 2008-05-10 09:51:38 UTC (rev 507) @@ -41,7 +41,7 @@ self.entry_username.set_text(connection.get('Username', '')) password = connection.get('Password', '').decode('rot13') self.entry_password.set_text(password) - self.check_savepassword.set_active(password != '') + self.check_savepassword.set_active(bool(password)) else: self.entry_portnum.set_text(str(TCP_PORT)) Modified: trunk/pybridge/pybridge/ui/window_chat.py =================================================================== --- trunk/pybridge/pybridge/ui/window_chat.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/ui/window_chat.py 2008-05-10 09:51:38 UTC (rev 507) @@ -115,12 +115,13 @@ # People list display. self.people = PeopleBox() hpaned.pack2(self.people, resize=False, shrink=True) - self.pack1(hpaned, resize=True, shrink=False) + self.pack1(hpaned, resize=True, shrink=True) self.textentry = gtk.TextView() self.textentry.set_editable(True) self.textentry.set_property('sensitive', False) - self.conversation.set_wrap_mode(gtk.WRAP_WORD) + self.textentry.set_wrap_mode(gtk.WRAP_WORD) + #self.textentry.set_size_request(30, 30) self.textentry.connect('key_press_event', self.on_textentry_key_pressed) sw = gtk.ScrolledWindow() sw.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC) @@ -129,7 +130,7 @@ frame.set_shadow_type(gtk.SHADOW_IN) frame.add(sw) frame.set_border_width(6) - self.pack2(frame, resize=False, shrink=False) + self.pack2(frame, resize=True, shrink=True) # Populate conversation textview with text tags. tagtable = self.conversation.get_buffer().get_tag_table() @@ -251,6 +252,7 @@ self.chatboxes = {} # Maps Chat objects to their ChatBox instances. self.notebook = gtk.Notebook() + self.notebook.set_scrollable(True) self.notebook.connect('switch-page', self.on_switch_page) self.window.add(self.notebook) self.window.set_border_width(4) Modified: trunk/pybridge/pybridge/ui/window_gametable.py =================================================================== --- trunk/pybridge/pybridge/ui/window_gametable.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/pybridge/ui/window_gametable.py 2008-05-10 09:51:38 UTC (rev 507) @@ -89,18 +89,18 @@ self.toolbar.insert(gtk.SeparatorToolItem(), -1) self.fullscreen = gtk.ToggleToolButton(gtk.STOCK_FULLSCREEN) + self.fullscreen.set_label(_('Full Screen')) self.fullscreen.connect('clicked', self.on_fullscreen_clicked) - #self.fullscreen.set_tooltip() self.toolbar.insert(self.fullscreen, -1) - self.toolbar.insert(gtk.SeparatorToolItem(), -1) - self.leavetable = gtk.ToolButton(gtk.STOCK_QUIT) self.leavetable.set_label(_('Leave Table')) self.leavetable.connect('clicked', self.on_leavetable_clicked) self.toolbar.insert(self.leavetable, -1) + self.toolbar.insert(gtk.SeparatorToolItem(), -1) + def tearDown(self): # Close all child windows. for window in self.children.values(): @@ -115,6 +115,12 @@ self.table = None # Dereference table. + def errback(self, failure): + # TODO: display error in window. + print "Error: %s" % failure.getErrorMessage() + print failure.getBriefTraceback() + + def setTable(self, table): """Set display to follow specified table object. Modified: trunk/pybridge/setup.py =================================================================== --- trunk/pybridge/setup.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/setup.py 2008-05-10 09:51:38 UTC (rev 507) @@ -21,7 +21,7 @@ url = 'http://sourceforge.net/projects/pybridge/', description = 'A free online bridge game.', download_url = 'http://sourceforge.net/project/showfiles.php?group_id=114287', - packages = ['pybridge', 'pybridge.bridge', 'pybridge.interfaces', 'pybridge.network', 'pybridge.server', 'pybridge.ui'], + packages = ['pybridge', 'pybridge.games', 'pybridge.interfaces', 'pybridge.network', 'pybridge.server', 'pybridge.ui'], scripts = ['bin/pybridge', 'bin/pybridge-server'], data_files = [('share/applications', ['bin/pybridge.desktop']), ('share/doc/pybridge', ['AUTHORS', 'COPYING', 'INSTALL', 'NEWS', 'README']), Modified: trunk/pybridge/tests/bridge/test_deal.py =================================================================== --- trunk/pybridge/tests/bridge/test_deal.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/tests/bridge/test_deal.py 2008-05-10 09:51:38 UTC (rev 507) @@ -73,6 +73,12 @@ self.assertEqual(Deal.fromIndex(index), deal) +# def test_toString(self): +# """Testing toString method over a set of known deals""" +# for deal in self.samples.values(): +# self.assertEqual(Deal.fromString(deal.toString())) + + def main(): suite = unittest.makeSuite(TestDeck) unittest.TextTestRunner(verbosity=2).run(suite) Modified: trunk/pybridge/tests/monkey.py =================================================================== --- trunk/pybridge/tests/monkey.py 2007-10-04 16:40:59 UTC (rev 506) +++ trunk/pybridge/tests/monkey.py 2008-05-10 09:51:38 UTC (rev 507) @@ -150,7 +150,7 @@ # Selection of calls and cards. - calls = [lambda : Bid(random.choice(Level), random.choice(Strain)), + calls = [lambda : Bid(Level.One, random.choice(Strain)), Pass, Double, Redouble] def chooseCall(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |