+
+
+class AboutWindow(BasicWindow):
+
+ def __init__(self, app, player, store):
+ BasicWindow.__init__(self, app, player, store)
+ self._window.set_title(constants.__pretty_app_name__)
+
+ self._titleLabel = gtk.Label()
+ self._titleLabel.set_markup("""
+<big><b>Waters of Shiloah</b></big>
+<i>Maemo Edition</i>
+Version %s
+""" % (constants.__version__, ))
+ self._titleLabel.set_property("justify", gtk.JUSTIFY_CENTER)
+
+ self._copyLabel = gtk.Label()
+ self._copyLabel.set_markup("""
+<small>Developed by: Ed Page
+Images by: Various Sources, See COPYING for author and license information (mix of various CC licenses, commercial, and non-commercial
+This application nor various images are not endorsed by The Church of Jesus Christ of Latter-day Saints</small>
+""")
+ self._copyLabel.set_property("justify", gtk.JUSTIFY_CENTER)
+
+ self._linkButton = gtk.LinkButton("http://watersofshiloah.garage.maemo.org")
+ self._linkButton.set_label("Waters of Shiloah")
+ self._linkButton.connect("clicked", self._on_website)
+
+ self._radioLinkButton = gtk.LinkButton("http://radio.lds.org")
+ self._radioLinkButton.set_label("Mormon Channel")
+ self._radioLinkButton.connect("clicked", self._on_website)
+
+ self._ldsLinkButton = gtk.LinkButton("http://www.lds.org")
+ self._ldsLinkButton.set_label("LDS.org")
+ self._ldsLinkButton.connect("clicked", self._on_website)
+
+ self._spacedLayout = gtk.VBox(True)
+ self._spacedLayout.pack_start(self._titleLabel, False, False)
+ self._spacedLayout.pack_start(self._copyLabel, False, False)
+ self._spacedLayout.pack_start(self._linkButton, False, False)
+ self._spacedLayout.pack_start(self._radioLinkButton, False, False)
+ self._spacedLayout.pack_start(self._ldsLinkButton, False, False)
+
+ self._separator = gtk.HSeparator()
+ self._presenter = presenter.NavControl(self._player, self._store)
+ self.connect_auto(self._presenter, "home", self._on_home)
+ self.connect_auto(self._presenter, "jump-to", self._on_jump)
+
+ self._layout.pack_start(self._spacedLayout, True, True)
+ self._layout.pack_start(self._presenter.toplevel, False, True)
+
+ def show(self):
+ BasicWindow.show(self)
+ self._window.show_all()
+ self._errorBanner.toplevel.hide()
+ self._presenter.refresh()
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_about(self, *args):
+ pass
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_website(self, widget):
+ uri = widget.get_uri()
+ webbrowser.open(uri)
+
+ @misc_utils.log_exception(_moduleLogger)
+ def _on_jump(self, source, node):
+ self.emit("jump-to", node)
+ self._window.destroy()