Example #1
0
	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)