[gnome-games/sudoku-tube] Display contact alias when prompting user for tube



commit f8b1c3144a5f34b09f669849d641dba50da159c4
Author: Zhang Sen <zh jesse gmail com>
Date:   Fri Aug 14 20:18:47 2009 +0800

    Display contact alias when prompting user for tube
    
    And some other trivial fix

 gnome-sudoku/src/lib/main.py         |   20 +++++---------------
 gnome-sudoku/src/lib/tube_handler.py |   17 +++++++++++++----
 2 files changed, 18 insertions(+), 19 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index fb5764b..9715673 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -92,13 +92,12 @@ class SudokuGame(gconf_wrapper.GConfWrapper):
         # generate puzzles while our use is working...
         self._run_background_generator()
 
-    def _auto_open_game(self, check_saved=True):
-        game, game_type = None, None
-        if check_saved:
-            game = self._auto_load_saved()
-            game_type = game_selector.NewOrSavedGameSelector.SAVED_GAME
+    def _auto_open_game(self):
+        game = self._auto_load_saved()
+        game_type = game_selector.NewOrSavedGameSelector.SAVED_GAME
+
         if not game:
-            game = self._auto_load_new()
+            game = self._generate_new_puzzle()
             game_type = game_selector.NewOrSavedGameSelector.NEW_GAME
 
         if game:
@@ -119,15 +118,6 @@ class SudokuGame(gconf_wrapper.GConfWrapper):
             logger.debug("no saved game found")
             return None
 
-    def _auto_load_new(self):
-        """Automatically open a new game"""
-        new_puzzle = self._generate_new_puzzle()
-        if new_puzzle:
-            return new_puzzle
-        else:
-            logger.error("failed to genereate new puzzle")
-            return None
-
     def _generate_new_puzzle(self):
         # TODO should use preconfigured or user-selected level
         level = self.gconf['game-level']
diff --git a/gnome-sudoku/src/lib/tube_handler.py b/gnome-sudoku/src/lib/tube_handler.py
index d04c141..329be8e 100644
--- a/gnome-sudoku/src/lib/tube_handler.py
+++ b/gnome-sudoku/src/lib/tube_handler.py
@@ -16,11 +16,15 @@ from telepathy.constants import (
 from telepathy.interfaces import (
         CHANNEL_INTERFACE,
         CHANNEL_INTERFACE_TUBE,
-        CHANNEL_TYPE_DBUS_TUBE)
+        CHANNEL_TYPE_DBUS_TUBE,
+        CONN_INTERFACE_ALIASING)
 
 DBusGMainLoop(set_as_default=True)
 logger = logging.getLogger("main.tubehandler")
 
+def _get_contact_alias(conn, handle):
+    return conn[CONN_INTERFACE_ALIASING].RequestAliases([handle])[0]
+
 def _sanitize_service_name(service_name):
     return service_name.replace('.', '_')
 
@@ -32,7 +36,10 @@ def _build_object_path(bus_name):
     return '/' + bus_name.replace('.', '/')
 
 class TubeHandler(dbus.service.Object):
-    """Listen to coming tube and emit a signal for it"""
+    """Listen to coming tube
+
+    tube_received_cb is called when the tube becomes open
+    """
 
     def __init__(self, service_name, tube_received_cb):
         logger.debug("creating TubeHandler")
@@ -55,7 +62,8 @@ class TubeHandler(dbus.service.Object):
         logger.debug("Tube received on %s" % channel)
         self._bus_name = bus_name
         self._channel = channel
-        conn = Connection(bus_name, connection,
+        self._peer_handle = handle
+        self._conn = Connection(bus_name, connection,
                 ready_handler=self._ready_handler)
 
     def _ready_handler(self, conn):
@@ -98,7 +106,8 @@ class TubeHandler(dbus.service.Object):
                 flags=gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                 buttons=(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
                     gtk.STOCK_NO, gtk.RESPONSE_REJECT))
-        label = gtk.Label("<get-contact> wants to play with you")
+        alias = _get_contact_alias(self._conn, self._peer_handle)
+        label = gtk.Label("%s wants to play with you" % alias)
         label.show()
         dialog.vbox.pack_start(label)
         dialog.connect("response", reply_cb)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]