Bump to 1.0.6
[watersofshiloah] / src / windows / source.py
index 169d5fc..9557cfa 100644 (file)
@@ -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)