From c69c9c71893a1939397868a35a35d72b0f9e75d9 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Sat, 15 May 2010 11:32:34 -0500 Subject: [PATCH] Non-active presenter browsing implemented --- src/mormonchannel_gtk.py | 1 - src/windows.py | 20 ++++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/mormonchannel_gtk.py b/src/mormonchannel_gtk.py index f3763d4..fe8af91 100755 --- a/src/mormonchannel_gtk.py +++ b/src/mormonchannel_gtk.py @@ -5,7 +5,6 @@ @todo Restructure so there is a windows/ folder with a file per source @todo Add additional sources @todo Track recent -@todo Presenter browsing when not active @todo Audio seek bar @todo Persisted Pause @todo Favorites diff --git a/src/windows.py b/src/windows.py index 97ff881..4027a41 100644 --- a/src/windows.py +++ b/src/windows.py @@ -860,6 +860,7 @@ class ConferenceTalkWindow(BasicWindow): BasicWindow.__init__(self, player, store) self._node = node self._playerNode = self._player.node + self._nextSearch = None self.connect_auto(self._player, "state-change", self._on_player_state_change) self.connect_auto(self._player, "title-change", self._on_player_title_change) @@ -1000,12 +1001,27 @@ class ConferenceTalkWindow(BasicWindow): if self._active: self._player.next() else: - pass # @todo Not Implemented + assert self._nextSearch is None + self._nextSearch = stream_index.AsyncWalker(stream_index.get_next) + self._nextSearch.start(self._node, self._on_next_node, self._on_node_search_error) elif navState == "right": if self._active: self._player.back() else: - pass # @todo Not Implemented + assert self._nextSearch is None + self._nextSearch = stream_index.AsyncWalker(stream_index.get_previous) + self._nextSearch.start(self._node, self._on_next_node, self._on_node_search_error) + + @misc_utils.log_exception(_moduleLogger) + def _on_next_node(self, node): + self._nextSearch = None + self.emit("jump-to", node) + self._window.destroy() + + @misc_utils.log_exception(_moduleLogger) + def _on_node_search_error(self, e): + self._nextSearch = None + self._errorBanner.push_message(str(e)) gobject.type_register(ConferenceTalkWindow) -- 1.7.9.5