def __init__(self, button, config): gtk.ScrolledWindow.__init__(self) self.props.hscrollbar_policy = gtk.POLICY_AUTOMATIC self.props.vscrollbar_policy = gtk.POLICY_AUTOMATIC #TODO set the email count to the button label self.button = button self.emailList = gtk.VBox() self.emailList.set_spacing(12) self.emailList.pack_start(gtk.Label('Loading emails...')) self.add_with_viewport(self.emailList) self.imapConnectors = list() for i in range(int(config.get("misc", "accounts"))): domain = config.get("email"+str(i), "domain") port = int(config.get('email'+str(i), 'port')) protocol = config.get('email'+str(i), 'protocol') keyring = Keyring('TouchMenu settings for '+domain, domain, protocol) if keyring.has_credentials(): connector = None cred = keyring.get_credentials() if protocol == 'imap' and port == 993: connector = imaplib.IMAP4_SSL(domain, port) elif protocol == 'imap' and port == 143: connector = imaplib.IMAP4(domain, port) else: raise "Unrecognised Email protocol/port" connector.login(cred[0], cred[1]) connector.select('INBOX', True) self.imapConnectors.append(connector) self.updater = EmailThread(self, int(config.get('misc', 'email-interval'))) self.updater.connect("doneFetching", self.updatePane) self.updater.start() self.updater.onTrigger() self.connect("destroy", self.destroy)