commit 693dc0241b115943711fcb5188336303e0f08032
parent b56a74bf77e56c560891f934d054b6d600f9f10d
Author: Rich Lane <rlane@club.cc.cmu.edu>
Date: Thu, 6 May 2010 09:51:45 -0700
ask_for_from config option
Diffstat:
3 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/lib/sup.rb b/lib/sup.rb
@@ -254,6 +254,7 @@ else
:editor => ENV["EDITOR"] || "/usr/bin/vim -f -c 'setlocal spell spelllang=en_us' -c 'set filetype=mail'",
:thread_by_subject => false,
:edit_signature => false,
+ :ask_for_from => false,
:ask_for_to => true,
:ask_for_cc => true,
:ask_for_bcc => false,
diff --git a/lib/sup/buffer.rb b/lib/sup/buffer.rb
@@ -559,6 +559,13 @@ EOS
end
end
+ def ask_for_account domain, question
+ default = AccountManager.default_account.email
+ completions = AccountManager.user_emails
+ answer = BufferManager.ask_many_emails_with_completions domain, question, completions, default
+ AccountManager.account_for Person.from_address(answer).email if answer
+ end
+
## for simplicitly, we always place the question at the very bottom of the
## screen
def ask domain, question, default=nil, &block
diff --git a/lib/sup/modes/compose-mode.rb b/lib/sup/modes/compose-mode.rb
@@ -21,12 +21,13 @@ class ComposeMode < EditMessageMode
end
def self.spawn_nicely opts={}
+ from = opts[:from] || (BufferManager.ask_for_account(:account, "From: ") or return if $config[:ask_for_from])
to = opts[:to] || (BufferManager.ask_for_contacts(:people, "To: ", [opts[:to_default]]) or return if ($config[:ask_for_to] != false))
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
+ mode = ComposeMode.new :from => from, :to => to, :cc => cc, :bcc => bcc, :subj => subj
BufferManager.spawn "New Message", mode
mode.edit_message
end