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 booksWindow = ScriptureBooksWindow(self._app, self._player, self._store, node)
63 booksWindow.window.set_modal(True)
64 booksWindow.window.set_transient_for(self._window)
65 if self._windowInFullscreen:
66 booksWindow.window.fullscreen()
68 booksWindow.window.unfullscreen()
69 booksWindow.connect_auto(booksWindow, "quit", self._on_quit)
70 booksWindow.connect_auto(booksWindow, "home", self._on_home)
71 booksWindow.connect_auto(booksWindow, "jump-to", self._on_jump)
72 booksWindow.connect_auto(booksWindow, "fullscreen", self._on_child_fullscreen)
77 gobject.type_register(ScripturesWindow)
80 class ScriptureBooksWindow(windows._base.ListWindow):
82 def __init__(self, app, player, store, node):
83 windows._base.ListWindow.__init__(self, app, player, store, node)
84 self._window.set_title(self._node.title)
87 def _get_columns(cls):
88 yield gobject.TYPE_PYOBJECT, None
90 textrenderer = gtk.CellRendererText()
91 hildonize.set_cell_thumb_selectable(textrenderer)
92 column = gtk.TreeViewColumn("Book")
93 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
94 column.pack_start(textrenderer, expand=True)
95 column.add_attribute(textrenderer, "text", 1)
96 yield gobject.TYPE_STRING, column
99 windows._base.ListWindow._refresh(self)
100 self._node.get_children(
101 self._on_scripture_books,
105 @misc_utils.log_exception(_moduleLogger)
106 def _on_scripture_books(self, programs):
107 if self._isDestroyed:
108 _moduleLogger.info("Download complete but window destroyed")
112 for programNode in programs:
113 program = programNode.get_properties()
114 row = programNode, program["title"]
115 self._model.append(row)
118 go_utils.Async(self._on_delay_scroll).start()
120 @misc_utils.log_exception(_moduleLogger)
121 def _on_error(self, exception):
123 self._errorBanner.push_message(str(exception))
125 def _window_from_node(self, node):
126 booksWindow = ScriptureChaptersWindow(self._app, self._player, self._store, node)
127 booksWindow.window.set_modal(True)
128 booksWindow.window.set_transient_for(self._window)
129 if self._windowInFullscreen:
130 booksWindow.window.fullscreen()
132 booksWindow.window.unfullscreen()
133 booksWindow.connect_auto(booksWindow, "quit", self._on_quit)
134 booksWindow.connect_auto(booksWindow, "home", self._on_home)
135 booksWindow.connect_auto(booksWindow, "jump-to", self._on_jump)
136 booksWindow.connect_auto(booksWindow, "fullscreen", self._on_child_fullscreen)
141 gobject.type_register(ScriptureBooksWindow)
144 class ScriptureChaptersWindow(windows._base.ListWindow):
146 def __init__(self, app, player, store, node):
147 windows._base.ListWindow.__init__(self, app, player, store, node)
148 self._window.set_title(self._node.title)
151 def _get_columns(cls):
152 yield gobject.TYPE_PYOBJECT, None
154 textrenderer = gtk.CellRendererText()
155 hildonize.set_cell_thumb_selectable(textrenderer)
156 column = gtk.TreeViewColumn("Chapter")
157 column.set_property("sizing", gtk.TREE_VIEW_COLUMN_FIXED)
158 column.pack_start(textrenderer, expand=True)
159 column.add_attribute(textrenderer, "text", 1)
160 yield gobject.TYPE_STRING, column
163 windows._base.ListWindow._refresh(self)
164 self._node.get_children(
165 self._on_scripture_chapters,
169 @misc_utils.log_exception(_moduleLogger)
170 def _on_scripture_chapters(self, programs):
171 if self._isDestroyed:
172 _moduleLogger.info("Download complete but window destroyed")
176 for programNode in programs:
177 program = programNode.get_properties()
178 row = programNode, program["title"]
179 self._model.append(row)
182 go_utils.Async(self._on_delay_scroll).start()
184 @misc_utils.log_exception(_moduleLogger)
185 def _on_error(self, exception):
187 self._errorBanner.push_message(str(exception))
189 def _window_from_node(self, node):
190 booksWindow = ScriptureChapterWindow(self._app, self._player, self._store, node)
191 booksWindow.window.set_modal(True)
192 booksWindow.window.set_transient_for(self._window)
193 if self._windowInFullscreen:
194 booksWindow.window.fullscreen()
196 booksWindow.window.unfullscreen()
197 booksWindow.connect_auto(booksWindow, "quit", self._on_quit)
198 booksWindow.connect_auto(booksWindow, "home", self._on_home)
199 booksWindow.connect_auto(booksWindow, "jump-to", self._on_jump)
200 booksWindow.connect_auto(booksWindow, "fullscreen", self._on_child_fullscreen)
205 gobject.type_register(ScriptureChaptersWindow)
208 class ScriptureChapterWindow(windows._base.PresenterWindow):
210 def __init__(self, app, player, store, node):
211 windows._base.PresenterWindow.__init__(self, app, player, store, node)
213 def _get_background(self):
214 return self._store.STORE_LOOKUP["scripture_background"]
217 gobject.type_register(ScriptureChapterWindow)