From: Ed Page Date: Fri, 14 May 2010 02:38:20 +0000 (-0500) Subject: Using the player's eventual movement to start implementing flicking between presenters X-Git-Url: http://git.maemo.org/git/?p=watersofshiloah;a=commitdiff_plain;h=433318f6ebefe71d07742ceb71c50423e42301f6 Using the player's eventual movement to start implementing flicking between presenters --- diff --git a/src/windows.py b/src/windows.py index c056586..d62c0ed 100644 --- a/src/windows.py +++ b/src/windows.py @@ -855,8 +855,10 @@ class ConferenceTalkWindow(BasicWindow): def __init__(self, player, store, node): BasicWindow.__init__(self, player, store) self._node = node + self._playerNode = self._player.node self.connect_auto(self._player, "state-change", self._on_player_state_change) + self.connect_auto(self._player, "title-change", self._on_player_title_change) self.connect_auto(self._player, "error", self._on_player_error) self._loadingBanner = banners.GenericBanner() @@ -889,7 +891,7 @@ class ConferenceTalkWindow(BasicWindow): @property def _active(self): - return self._player.node is self._node + return self._playerNode is self._node def _show_loading(self): animationPath = self._store.STORE_LOOKUP["loading"] @@ -920,6 +922,12 @@ class ConferenceTalkWindow(BasicWindow): self._set_context(newState) @misc_utils.log_exception(_moduleLogger) + def _on_player_title_change(self, player, node): + if not self._active or node in [None, self._node]: + return + self.emit("jump-to", node) + + @misc_utils.log_exception(_moduleLogger) def _on_player_error(self, player, err, debug): _moduleLogger.error("%r - %r" % (err, debug)) @@ -972,9 +980,15 @@ class ConferenceTalkWindow(BasicWindow): elif navState == "up": pass elif navState == "left": - self._player.next() + if self._active: + self._player.next() + else: + pass # @todo Not Implemented elif navState == "right": - self._player.back() + if self._active: + self._player.back() + else: + pass # @todo Not Implemented gobject.type_register(ConferenceTalkWindow)