7 import util.go_utils as go_utils
8 import util.misc as misc_utils
13 _moduleLogger = logging.getLogger(__name__)
16 class ScripturesWindow(windows._base.ListWindow):
18 def __init__(self, app, player, store, node):
19 windows._base.ListWindow.__init__(self, app, player, store, node)
20 self._window.set_title(self._node.title)
23 def _get_columns(cls):
24 yield gobject.TYPE_PYOBJECT, None
26 textrenderer = gtk.CellRendererText()
27 hildonize.set_cell_thumb_selectable(textrenderer)
28 column = gtk.TreeViewColumn("Scripture")
29 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
30 column.pack_start(textrenderer, expand=True)
31 column.add_attribute(textrenderer, "text", 1)
32 yield gobject.TYPE_STRING, column
35 windows._base.ListWindow._refresh(self)
36 self._node.get_children(
41 @misc_utils.log_exception(_moduleLogger)
42 def _on_scriptures(self, programs):
44 _moduleLogger.info("Download complete but window destroyed")
48 for programNode in programs:
49 program = programNode.get_properties()
50 row = programNode, program["title"]
51 self._model.append(row)
54 go_utils.Async(self._on_delay_scroll).start()
56 @misc_utils.log_exception(_moduleLogger)
57 def _on_error(self, exception):
59 self._errorBanner.push_message(str(exception))
61 def _window_from_node(self, node):
62 childWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
63 self._configure_child(childWindow)
68 gobject.type_register(ScripturesWindow)
71 class ScriptureBooksWindow(windows._base.ListWindow):
73 def __init__(self, app, player, store, node):
74 windows._base.ListWindow.__init__(self, app, player, store, node)
75 self._window.set_title(self._node.title)
78 def _get_columns(cls):
79 yield gobject.TYPE_PYOBJECT, None
81 textrenderer = gtk.CellRendererText()
82 hildonize.set_cell_thumb_selectable(textrenderer)
83 column = gtk.TreeViewColumn("Book")
84 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
85 column.pack_start(textrenderer, expand=True)
86 column.add_attribute(textrenderer, "text", 1)
87 yield gobject.TYPE_STRING, column
90 windows._base.ListWindow._refresh(self)
91 self._node.get_children(
92 self._on_scripture_books,
96 @misc_utils.log_exception(_moduleLogger)
97 def _on_scripture_books(self, programs):
99 _moduleLogger.info("Download complete but window destroyed")
103 for programNode in programs:
104 program = programNode.get_properties()
105 row = programNode, program["title"]
106 self._model.append(row)
109 go_utils.Async(self._on_delay_scroll).start()
111 @misc_utils.log_exception(_moduleLogger)
112 def _on_error(self, exception):
114 self._errorBanner.push_message(str(exception))
116 def _window_from_node(self, node):
117 childWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
118 self._configure_child(childWindow)
123 gobject.type_register(ScriptureBooksWindow)
126 class ScriptureChaptersWindow(windows._base.ListWindow):
128 def __init__(self, app, player, store, node):
129 windows._base.ListWindow.__init__(self, app, player, store, node)
130 self._window.set_title(self._node.title)
133 def _get_columns(cls):
134 yield gobject.TYPE_PYOBJECT, None
136 textrenderer = gtk.CellRendererText()
137 hildonize.set_cell_thumb_selectable(textrenderer)
138 column = gtk.TreeViewColumn("Chapter")
139 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
140 column.pack_start(textrenderer, expand=True)
141 column.add_attribute(textrenderer, "text", 1)
142 yield gobject.TYPE_STRING, column
145 windows._base.ListWindow._refresh(self)
146 self._node.get_children(
147 self._on_scripture_chapters,
151 @misc_utils.log_exception(_moduleLogger)
152 def _on_scripture_chapters(self, programs):
153 if self._isDestroyed:
154 _moduleLogger.info("Download complete but window destroyed")
158 for programNode in programs:
159 program = programNode.get_properties()
160 row = programNode, program["title"]
161 self._model.append(row)
164 go_utils.Async(self._on_delay_scroll).start()
166 @misc_utils.log_exception(_moduleLogger)
167 def _on_error(self, exception):
169 self._errorBanner.push_message(str(exception))
171 def _window_from_node(self, node):
172 childWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
173 self._configure_child(childWindow)
178 gobject.type_register(ScriptureChaptersWindow)
181 class ScriptureChapterWindow(windows._base.PresenterWindow):
183 def __init__(self, app, player, store, node):
184 windows._base.PresenterWindow.__init__(self, app, player, store, node)
186 def _get_background(self, orientation):
187 if orientation == gtk.ORIENTATION_VERTICAL:
188 return self._store.STORE_LOOKUP["scripture_background"]
189 elif orientation == gtk.ORIENTATION_HORIZONTAL:
190 return self._store.STORE_LOOKUP["scripture_background_landscape"]
192 raise NotImplementedError("Unknown orientation %s" % orientation)
195 gobject.type_register(ScriptureChapterWindow)