7 import util.go_utils as go_utils
8 import util.misc as misc_utils
16 _moduleLogger = logging.getLogger(__name__)
19 class ScripturesWindow(windows._base.ListWindow):
21 def __init__(self, app, player, store, node):
22 windows._base.ListWindow.__init__(self, app, player, store, node)
23 self._window.set_title(self._node.title)
26 def _get_columns(cls):
27 yield gobject.TYPE_PYOBJECT, None
29 textrenderer = gtk.CellRendererText()
30 hildonize.set_cell_thumb_selectable(textrenderer)
31 column = gtk.TreeViewColumn("Scripture")
32 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
33 column.pack_start(textrenderer, expand=True)
34 column.add_attribute(textrenderer, "text", 1)
35 yield gobject.TYPE_STRING, column
38 windows._base.ListWindow._refresh(self)
39 self._node.get_children(
44 @misc_utils.log_exception(_moduleLogger)
45 def _on_scriptures(self, programs):
47 _moduleLogger.info("Download complete but window destroyed")
51 for programNode in programs:
52 program = programNode.get_properties()
53 row = programNode, program["title"]
54 self._model.append(row)
57 go_utils.Async(self._on_delay_scroll).start()
59 @misc_utils.log_exception(_moduleLogger)
60 def _on_error(self, exception):
62 self._errorBanner.push_message(str(exception))
64 def _window_from_node(self, node):
65 booksWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
66 booksWindow.window.set_modal(True)
67 booksWindow.window.set_transient_for(self._window)
68 booksWindow.window.set_default_size(*self._window.get_size())
69 booksWindow.connect("quit", self._on_quit)
70 booksWindow.connect("home", self._on_home)
71 booksWindow.connect("jump-to", self._on_jump)
76 gobject.type_register(ScripturesWindow)
79 class ScriptureBooksWindow(windows._base.ListWindow):
81 def __init__(self, app, player, store, node):
82 windows._base.ListWindow.__init__(self, app, player, store, node)
83 self._window.set_title(self._node.title)
86 def _get_columns(cls):
87 yield gobject.TYPE_PYOBJECT, None
89 textrenderer = gtk.CellRendererText()
90 hildonize.set_cell_thumb_selectable(textrenderer)
91 column = gtk.TreeViewColumn("Book")
92 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
93 column.pack_start(textrenderer, expand=True)
94 column.add_attribute(textrenderer, "text", 1)
95 yield gobject.TYPE_STRING, column
98 windows._base.ListWindow._refresh(self)
99 self._node.get_children(
100 self._on_scripture_books,
104 @misc_utils.log_exception(_moduleLogger)
105 def _on_scripture_books(self, programs):
106 if self._isDestroyed:
107 _moduleLogger.info("Download complete but window destroyed")
111 for programNode in programs:
112 program = programNode.get_properties()
113 row = programNode, program["title"]
114 self._model.append(row)
117 go_utils.Async(self._on_delay_scroll).start()
119 @misc_utils.log_exception(_moduleLogger)
120 def _on_error(self, exception):
122 self._errorBanner.push_message(str(exception))
124 def _window_from_node(self, node):
125 booksWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
126 booksWindow.window.set_modal(True)
127 booksWindow.window.set_transient_for(self._window)
128 booksWindow.window.set_default_size(*self._window.get_size())
129 booksWindow.connect("quit", self._on_quit)
130 booksWindow.connect("home", self._on_home)
131 booksWindow.connect("jump-to", self._on_jump)
136 gobject.type_register(ScriptureBooksWindow)
139 class ScriptureChaptersWindow(windows._base.ListWindow):
141 def __init__(self, app, player, store, node):
142 windows._base.ListWindow.__init__(self, app, player, store, node)
143 self._window.set_title(self._node.title)
146 def _get_columns(cls):
147 yield gobject.TYPE_PYOBJECT, None
149 textrenderer = gtk.CellRendererText()
150 hildonize.set_cell_thumb_selectable(textrenderer)
151 column = gtk.TreeViewColumn("Chapter")
152 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
153 column.pack_start(textrenderer, expand=True)
154 column.add_attribute(textrenderer, "text", 1)
155 yield gobject.TYPE_STRING, column
158 windows._base.ListWindow._refresh(self)
159 self._node.get_children(
160 self._on_scripture_chapters,
164 @misc_utils.log_exception(_moduleLogger)
165 def _on_scripture_chapters(self, programs):
166 if self._isDestroyed:
167 _moduleLogger.info("Download complete but window destroyed")
171 for programNode in programs:
172 program = programNode.get_properties()
173 row = programNode, program["title"]
174 self._model.append(row)
177 go_utils.Async(self._on_delay_scroll).start()
179 @misc_utils.log_exception(_moduleLogger)
180 def _on_error(self, exception):
182 self._errorBanner.push_message(str(exception))
184 def _window_from_node(self, node):
185 booksWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
186 booksWindow.window.set_modal(True)
187 booksWindow.window.set_transient_for(self._window)
188 booksWindow.window.set_default_size(*self._window.get_size())
189 booksWindow.connect("quit", self._on_quit)
190 booksWindow.connect("home", self._on_home)
191 booksWindow.connect("jump-to", self._on_jump)
196 gobject.type_register(ScriptureChaptersWindow)
199 class ScriptureChapterWindow(windows._base.PresenterWindow):
201 def __init__(self, app, player, store, node):
202 windows._base.PresenterWindow.__init__(self, app, player, store, node)
204 def _get_background(self):
205 return self._store.STORE_LOOKUP["scripture_background"]
208 gobject.type_register(ScriptureChapterWindow)