X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwindows%2Fsource.py;h=9557cfaa4f9e142b019abe620fcd9a27e550d411;hb=HEAD;hp=169d5fcfd43a355e1e7e2f6ebf8dda74dc3c9050;hpb=cdf15d55f698ad805313970b9aa245e6a5f77628;p=watersofshiloah diff --git a/src/windows/source.py b/src/windows/source.py index 169d5fc..9557cfa 100644 --- a/src/windows/source.py +++ b/src/windows/source.py @@ -5,8 +5,9 @@ import gtk import constants import util.misc as misc_utils +import hildonize import banners -import playcontrol +import presenter import stream_index import windows @@ -21,6 +22,7 @@ class SourceSelector(windows._base.BasicWindow): windows._base.BasicWindow.__init__(self, app, player, store) self._languages = [] self._index = index + self._selectedNode = "" self._loadingBanner = banners.GenericBanner() @@ -44,13 +46,13 @@ class SourceSelector(windows._base.BasicWindow): self._buttonLayout.pack_start(self._scriptureButton, True, True) self._separator = gtk.HSeparator() - self._playcontrol = playcontrol.NavControl(player, store) - self._playcontrol.connect("jump-to", self._on_jump) + self._presenter = presenter.NavControl(player, store) + self._presenter.connect("jump-to", self._on_jump) self._layout.pack_start(self._loadingBanner.toplevel, False, False) self._layout.pack_start(self._buttonLayout, True, True) self._layout.pack_start(self._separator, False, True) - self._layout.pack_start(self._playcontrol.toplevel, False, True) + self._layout.pack_start(self._presenter.toplevel, False, True) self._window.set_title(constants.__pretty_app_name__) @@ -58,7 +60,7 @@ class SourceSelector(windows._base.BasicWindow): windows._base.BasicWindow.show(self) self._errorBanner.toplevel.hide() - self._playcontrol.toplevel.hide() + self._presenter.toplevel.hide() self._refresh() @@ -95,11 +97,15 @@ class SourceSelector(windows._base.BasicWindow): def _on_languages(self, languages): self._hide_loading() self._languages = list(languages) + if self._selectedNode: + self._show_window_by_node_name(self._selectedNode) + self._selectedNode = "" @misc_utils.log_exception(_moduleLogger) def _on_error(self, exception): self._hide_loading() - self._errorBanner.push_message(str(exception)) + _moduleLogger.info(exception) + self._errorBanner.push_message("Error loading information") def _window_from_node(self, node): if node.id == stream_index.SOURCE_RADIO: @@ -111,19 +117,18 @@ class SourceSelector(windows._base.BasicWindow): elif node.id == stream_index.SOURCE_SCRIPTURES: Source = windows.scriptures.ScripturesWindow sourceWindow = Source(self._app, self._player, self._store, node) - sourceWindow.window.set_modal(True) - sourceWindow.window.set_transient_for(self._window) - sourceWindow.window.set_default_size(*self._window.get_size()) - if self._windowInFullscreen: - sourceWindow.window.fullscreen() - else: - sourceWindow.window.unfullscreen() - sourceWindow.connect("quit", self._on_quit) - sourceWindow.connect("jump-to", self._on_jump) - sourceWindow.connect("fullscreen", self._on_child_fullscreen) + self._configure_child(sourceWindow) sourceWindow.show() return sourceWindow + def _show_window_by_node_name(self, nodeName): + node = self._index.get_source(nodeName, self._languages[0]["id"]) + self._window_from_node(node) + + @misc_utils.log_exception(_moduleLogger) + def _on_home(self, *args): + pass + @misc_utils.log_exception(_moduleLogger) def _on_jump(self, source, node): targetNodePath = list(reversed(list(stream_index.walk_ancestors(node)))) @@ -133,8 +138,11 @@ class SourceSelector(windows._base.BasicWindow): @misc_utils.log_exception(_moduleLogger) def _on_source_selected(self, widget, nodeName): - node = self._index.get_source(nodeName, self._languages[0]["id"]) - self._window_from_node(node) + if self._languages: + self._show_window_by_node_name(nodeName) + else: + self._selectedNode = nodeName + self._refresh() gobject.type_register(SourceSelector)