def on_update_bodystructure(self, bodystructure): self._bodystructure = convert_bodystructure(bodystructure) self._open_body_sections() self._redraw()
def __init__(self, root_view, mailbox, uid, gm_msgid, window, color_scheme): self._root_view = root_view self._cache = root_view._cache self._mailbox = mailbox self._uid = uid self._gm_msgid = gm_msgid self._cache.db.create_function("message_view_update_bodystructure", 1, self.on_update_bodystructure) self._cache.db.execute( """ CREATE TEMP TRIGGER message_view_update_bodystructure AFTER UPDATE OF bodystructure ON gmail_messages WHEN NEW.gm_msgid=%d BEGIN SELECT message_view_update_bodystructure(NEW.bodystructure); END""" % self._gm_msgid ) self._cache.db.create_function("message_view_add_body_section", 2, self.on_add_body_section) self._cache.db.execute( """ CREATE TEMP TRIGGER message_view_add_body_section AFTER INSERT ON gmail_message_bodies WHEN NEW.gm_msgid=%d BEGIN SELECT message_view_add_body_section(NEW.section, NEW.body); END""" % self._gm_msgid ) self._widget = ScrollWidget(window, color_scheme) row = self._cache.db.execute( """ SELECT date, timezone, subject, "from", "to", cc, bcc, bodystructure FROM gmail_messages WHERE gm_msgid=? """, (self._gm_msgid,), ).fetchone() self._date = convert_date(row["date"], row["timezone"]) self._from = convert_addrs(row["from"]) self._to = convert_addrs(row["to"]) self._cc = convert_addrs(row["cc"]) self._bcc = convert_addrs(row["bcc"]) self._subject = row["subject"] self._bodystructure = convert_bodystructure(row["bodystructure"]) cur = self._cache.db.execute( """ SELECT section, body FROM gmail_message_bodies WHERE gm_msgid=? """, (self._gm_msgid,), ) self._body_sections = {row["section"]: row["body"] for row in cur} self._root_view.on_open_message(self._mailbox, self._uid, self._bodystructure is None) if self._bodystructure: self._open_body_sections() self._redraw()