X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=lib%2Fsup%2Fmodes%2Fcompose-mode.rb;h=04d5922381b728de2034c9dbda3b8089d78d7ccc;hb=20d3a6cfd601388ed5148d0c0032765cf8ce90c0;hp=abd4dd175f82e7e6fcd79509011f6b229661b976;hpb=b675cd3d9c8674390fd23c54ecc8f1ff001a6999;p=sup diff --git a/lib/sup/modes/compose-mode.rb b/lib/sup/modes/compose-mode.rb index abd4dd1..04d5922 100644 --- a/lib/sup/modes/compose-mode.rb +++ b/lib/sup/modes/compose-mode.rb @@ -1,27 +1,15 @@ module Redwood -module CanSpawnComposeMode - def spawn_compose_mode opts={} - to = opts[:to] || BufferManager.ask_for_contacts(:people, "To: ") or return - cc = opts[:cc] || BufferManager.ask_for_contacts(:people, "Cc: ") or return if $config[:ask_for_cc] - bcc = opts[:bcc] || BufferManager.ask_for_contacts(:people, "Bcc: ") or return if $config[:ask_for_bcc] - subj = opts[:subj] || BufferManager.ask(:subject, "Subject: ") or return if $config[:ask_for_subject] - - mode = ComposeMode.new :from => opts[:from], :to => to, :cc => cc, :bcc => bcc, :subj => subj - BufferManager.spawn "New Message", mode - mode.edit_message - end -end - class ComposeMode < EditMessageMode def initialize opts={} header = {} header["From"] = (opts[:from] || AccountManager.default_account).full_address header["To"] = opts[:to].map { |p| p.full_address }.join(", ") if opts[:to] - header["To"] = opts[:to].map { |p| p.full_address }.join(", ") if opts[:to] header["Cc"] = opts[:cc].map { |p| p.full_address }.join(", ") if opts[:cc] header["Bcc"] = opts[:bcc].map { |p| p.full_address }.join(", ") if opts[:bcc] header["Subject"] = opts[:subj] if opts[:subj] + header["References"] = opts[:refs].map { |r| "<#{r}>" }.join(" ") if opts[:refs] + header["In-Reply-To"] = opts[:replytos].map { |r| "<#{r}>" }.join(" ") if opts[:replytos] super :header => header, :body => (opts[:body] || []) end @@ -31,6 +19,17 @@ class ComposeMode < EditMessageMode BufferManager.kill_buffer self.buffer unless edited edited end + + def self.spawn_nicely opts={} + to = opts[:to] || BufferManager.ask_for_contacts(:people, "To: ", [opts[:to_default]]) or return + cc = opts[:cc] || (BufferManager.ask_for_contacts(:people, "Cc: ") or return if $config[:ask_for_cc]) + bcc = opts[:bcc] || (BufferManager.ask_for_contacts(:people, "Bcc: ") or return if $config[:ask_for_bcc]) + subj = opts[:subj] || (BufferManager.ask(:subject, "Subject: ") or return if $config[:ask_for_subject]) + + mode = ComposeMode.new :from => opts[:from], :to => to, :cc => cc, :bcc => bcc, :subj => subj + BufferManager.spawn "New Message", mode + mode.edit_message + end end end