Add files from the old svn, r101.
[matthijs/upstream/mobilegtd.git] / src / gui / projects_list / sms_widget.py
1 from inbox import EInbox,Inbox
2 INBOX = Inbox(EInbox)
3
4 def create_sms_widgets():
5     return [SMSWidget(sms_id,self.projects) for sms_id in INBOX.sms_messages()]
6
7 class SMSWidget:
8     def __init__(self,sms_id,projects):
9         self.sms_id = sms_id
10         self.projects = projects
11     def content(self):
12         return INBOX.content(self.sms_id)
13     def change(self):
14         self.view_sms()
15     def create_project(self):
16         infos = []
17         lines = sms_regexp.split(self.content())
18         
19         info_lines = []
20         for index in range(len(lines)):
21             if len(lines[index]) < 2 and index>0:
22                 previous = info_lines.pop()
23                 info_lines.append(previous+lines[index])
24             else:
25                 info_lines.append(lines[index])
26         for line in info_lines:
27             infos.append(line)
28         project = NewProjectWidget(self.projects).change(u'Project for SMS from %s'%self.sender(),infos)
29     def remove(self):
30         INBOX.delete(self.sms_id)
31     def sender(self):
32         return INBOX.address(self.sms_id)
33     def list_repr(self):
34         return u'SMS from %s'%self.sender()
35     def name_and_details(self):
36         return (self.list_repr(), self.content())
37
38     def view_sms(self):
39         save_gui(self)
40         t = appuifw.Text()
41         t.add(self.list_repr())
42         t.add(u':\n')
43         t.add(self.content())
44         appuifw.app.menu=[(u'Create Project', self.create_project),
45         (u'Exit', self.exit_sms_view)]
46
47         appuifw.app.title=self.list_repr()
48         appuifw.app.body=t
49         appuifw.app.exit_key_handler=self.exit_sms_view
50         lock = Ao_lock()
51     def exit_sms_view(self):
52         self.lock.signal()
53         restore_gui(self)