]> git.cworth.org Git - sup/blob - lib/sup/modes/compose-mode.rb
fixed killed threads issue (i think)
[sup] / lib / sup / modes / compose-mode.rb
1 module Redwood
2
3 class ComposeMode < EditMessageMode
4   attr_reader :body, :header
5
6   def initialize opts={}
7     super()
8     @header = {
9       "From" => AccountManager.default_account.full_address,
10       "Message-Id" => gen_message_id,
11     }
12
13     @header["To"] = opts[:to].map { |p| p.full_address }.join(", ") if opts[:to]
14     @header["Cc"] = opts[:cc].map { |p| p.full_address }.join(", ") if opts[:cc]
15     @header["Bcc"] = opts[:bcc].map { |p| p.full_address }.join(", ") if opts[:bcc]
16     @header["Subject"] = opts[:subj] if opts[:subj]
17
18     @body = (opts[:body] || []) + sig_lines
19     regen_text
20   end
21
22   def lines; @text.length; end
23   def [] i; @text[i]; end
24
25 protected
26
27   def handle_new_text new_header, new_body
28     @header = new_header
29     @body = new_body
30   end
31
32   def regen_text
33     @text = header_lines(@header - EditMessageMode::NON_EDITABLE_HEADERS) + [""] + @body
34   end
35 end
36
37 end