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)
58 @misc_utils.log_exception(_moduleLogger)
59 def _on_error(self, exception):
61 self._errorBanner.push_message(str(exception))
63 def _window_from_node(self, node):
64 booksWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
65 booksWindow.window.set_modal(True)
66 booksWindow.window.set_transient_for(self._window)
67 booksWindow.window.set_default_size(*self._window.get_size())
68 booksWindow.connect("quit", self._on_quit)
69 booksWindow.connect("home", self._on_home)
70 booksWindow.connect("jump-to", self._on_jump)
75 gobject.type_register(ScripturesWindow)
78 class ScriptureBooksWindow(windows._base.ListWindow):
80 def __init__(self, app, player, store, node):
81 windows._base.ListWindow.__init__(self, app, player, store, node)
82 self._window.set_title(self._node.title)
85 def _get_columns(cls):
86 yield gobject.TYPE_PYOBJECT, None
88 textrenderer = gtk.CellRendererText()
89 hildonize.set_cell_thumb_selectable(textrenderer)
90 column = gtk.TreeViewColumn("Book")
91 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
92 column.pack_start(textrenderer, expand=True)
93 column.add_attribute(textrenderer, "text", 1)
94 yield gobject.TYPE_STRING, column
97 windows._base.ListWindow._refresh(self)
98 self._node.get_children(
99 self._on_scripture_books,
103 @misc_utils.log_exception(_moduleLogger)
104 def _on_scripture_books(self, programs):
105 if self._isDestroyed:
106 _moduleLogger.info("Download complete but window destroyed")
110 for programNode in programs:
111 program = programNode.get_properties()
112 row = programNode, program["title"]
113 self._model.append(row)
117 @misc_utils.log_exception(_moduleLogger)
118 def _on_error(self, exception):
120 self._errorBanner.push_message(str(exception))
122 def _window_from_node(self, node):
123 booksWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
124 booksWindow.window.set_modal(True)
125 booksWindow.window.set_transient_for(self._window)
126 booksWindow.window.set_default_size(*self._window.get_size())
127 booksWindow.connect("quit", self._on_quit)
128 booksWindow.connect("home", self._on_home)
129 booksWindow.connect("jump-to", self._on_jump)
134 gobject.type_register(ScriptureBooksWindow)
137 class ScriptureChaptersWindow(windows._base.ListWindow):
139 def __init__(self, app, player, store, node):
140 windows._base.ListWindow.__init__(self, app, player, store, node)
141 self._window.set_title(self._node.title)
144 def _get_columns(cls):
145 yield gobject.TYPE_PYOBJECT, None
147 textrenderer = gtk.CellRendererText()
148 hildonize.set_cell_thumb_selectable(textrenderer)
149 column = gtk.TreeViewColumn("Chapter")
150 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
151 column.pack_start(textrenderer, expand=True)
152 column.add_attribute(textrenderer, "text", 1)
153 yield gobject.TYPE_STRING, column
156 windows._base.ListWindow._refresh(self)
157 self._node.get_children(
158 self._on_scripture_chapters,
162 @misc_utils.log_exception(_moduleLogger)
163 def _on_scripture_chapters(self, programs):
164 if self._isDestroyed:
165 _moduleLogger.info("Download complete but window destroyed")
169 for programNode in programs:
170 program = programNode.get_properties()
171 row = programNode, program["title"]
172 self._model.append(row)
176 @misc_utils.log_exception(_moduleLogger)
177 def _on_error(self, exception):
179 self._errorBanner.push_message(str(exception))
181 def _window_from_node(self, node):
182 booksWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
183 booksWindow.window.set_modal(True)
184 booksWindow.window.set_transient_for(self._window)
185 booksWindow.window.set_default_size(*self._window.get_size())
186 booksWindow.connect("quit", self._on_quit)
187 booksWindow.connect("home", self._on_home)
188 booksWindow.connect("jump-to", self._on_jump)
193 gobject.type_register(ScriptureChaptersWindow)
196 class ScriptureChapterWindow(windows._base.PresenterWindow):
198 def __init__(self, app, player, store, node):
199 windows._base.PresenterWindow.__init__(self, app, player, store, node)
201 def _get_background(self):
202 return self._store.STORE_LOOKUP["scripture_background"]
205 gobject.type_register(ScriptureChapterWindow)