Removing duplicate code
[watersofshiloah] / src / windows / source.py
index fee997c..9557cfa 100644 (file)
@@ -22,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()
 
@@ -96,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:
@@ -112,20 +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)
-               if not hildonize.IS_FREMANTLE_SUPPORTED:
-                       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))))
@@ -135,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)