>From e293e2d66d4bfe4f342d03151baea9181a1d7b38 Mon Sep 17 00:00:00 2001 From: Tyberius Prime Date: Fri, 2 May 2008 19:29:28 +0200 Subject: [PATCH] add from query on compose, configuration option, autocomplete --- lib/sup/account.rb | 6 ++++++ lib/sup/modes/compose-mode.rb | 6 ++++-- lib/sup/modes/edit-message-mode.rb | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/sup/account.rb b/lib/sup/account.rb index f8ac0fc..664debd 100644 --- a/lib/sup/account.rb +++ b/lib/sup/account.rb @@ -31,6 +31,12 @@ class AccountManager def user_accounts; @accounts.keys; end def user_emails; @email_map.keys.select { |e| String === e }; end + def user_accounts_autocompletion; + completion = [] + completion.push ( @default_account.name + " <" + default_account.email + ">" ) #make sure default account is [0] + @accounts.each { |account, dummy| if account != @default_account then completion.push (account.name + " <" + account.email + ">") end } + return completion + end ## must be called first with the default account. fills in missing ## values from the default account. diff --git a/lib/sup/modes/compose-mode.rb b/lib/sup/modes/compose-mode.rb index 7674d7b..ce8ea8e 100644 --- a/lib/sup/modes/compose-mode.rb +++ b/lib/sup/modes/compose-mode.rb @@ -3,7 +3,7 @@ module Redwood class ComposeMode < EditMessageMode def initialize opts={} header = {} - header["From"] = (opts[:from] || AccountManager.default_account).full_address + 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] @@ -24,8 +24,10 @@ class ComposeMode < EditMessageMode 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]) + completion = AccountManager.user_accounts_autocompletion; + from = opts[:from] || (BufferManager.ask_with_completions :from, "From: ", completion, completion[0]) or return if $config[:ask_for_from] - 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 diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb index aa582d4..d66d261 100644 --- a/lib/sup/modes/edit-message-mode.rb +++ b/lib/sup/modes/edit-message-mode.rb @@ -382,7 +382,7 @@ protected field end when "From" - completions = AccountManager.user_emails + completions = AccountManager.user_accounts_autocompletion; text = BufferManager.ask_with_completions :from, "From: ", completions, @header[field] if text @header[field] = parse_header field, text -- 1.4.4.4