import constants
import util.misc as misc_utils
+import hildonize
import banners
-import playcontrol
+import presenter
import stream_index
import windows
windows._base.BasicWindow.__init__(self, app, player, store)
self._languages = []
self._index = index
+ self._selectedNode = ""
self._loadingBanner = banners.GenericBanner()
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__)
windows._base.BasicWindow.show(self)
self._errorBanner.toplevel.hide()
- self._playcontrol.toplevel.hide()
+ self._presenter.toplevel.hide()
self._refresh()
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:
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())
- sourceWindow.connect("quit", self._on_quit)
- sourceWindow.connect("jump-to", self._on_jump)
+ 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))))
@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)