commit 35538e7f1236c303fc475c2afd47f6d45eb601cd
parent 7eaddc742be34c11d84903dd6da4068d77ad45a8
Author: Gaute Hope <eg@gaute.vetsj.com>
Date: Mon, 31 Mar 2014 13:19:50 +0200
async: option for always async
Diffstat:
8 files changed, 30 insertions(+), 13 deletions(-)
diff --git a/bin/sup b/bin/sup
@@ -223,7 +223,7 @@ begin
to = Person.from_address_list $opts[:compose]
mode = ComposeMode.new :to => to, :subj => $opts[:subject]
BufferManager.spawn "New Message", mode
- mode.edit_message
+ mode.default_edit_message
end
unless $opts[:no_threads]
@@ -337,7 +337,7 @@ begin
Index.each_id_by_date(:label => :draft) { |mid, builder| m = builder.call }
r = ResumeMode.new(m)
BufferManager.spawn "Edit message", r
- r.edit_message
+ r.default_edit_message
else
b, new = BufferManager.spawn_unless_exists("All drafts") { LabelSearchResultsMode.new [:draft] }
b.mode.load_threads :num => b.content_height if new
diff --git a/lib/sup.rb b/lib/sup.rb
@@ -333,7 +333,8 @@ EOM
:col_jump => 2,
:stem_language => "english",
:sync_back_to_maildir => false,
- :continuous_scroll => false
+ :continuous_scroll => false,
+ :always_edit_async => false,
}
if File.exists? filename
config = Redwood::load_yaml_obj filename
diff --git a/lib/sup/modes/compose_mode.rb b/lib/sup/modes/compose_mode.rb
@@ -16,7 +16,7 @@ class ComposeMode < EditMessageMode
super :header => header, :body => (opts[:body] || [])
end
- def edit_message
+ def default_edit_message
edited = super
BufferManager.kill_buffer self.buffer unless edited
edited
@@ -31,7 +31,7 @@ class ComposeMode < EditMessageMode
mode = ComposeMode.new :from => from, :to => to, :cc => cc, :bcc => bcc, :subj => subj
BufferManager.spawn "New Message", mode
- mode.edit_message
+ mode.default_edit_message
end
end
diff --git a/lib/sup/modes/contact_list_mode.rb b/lib/sup/modes/contact_list_mode.rb
@@ -71,7 +71,7 @@ class ContactListMode < LineCursorMode
when :regular
mode = ComposeMode.new :to => people
BufferManager.spawn "new message", mode
- mode.edit_message
+ mode.default_edit_message
end
end
diff --git a/lib/sup/modes/edit_message_mode.rb b/lib/sup/modes/edit_message_mode.rb
@@ -79,8 +79,8 @@ EOS
k.add :edit_to, "Edit To:", 't'
k.add :edit_cc, "Edit Cc:", 'c'
k.add :edit_subject, "Edit Subject", 's'
- k.add :edit_message, "Edit message", :enter
- k.add :edit_message_async, "Edit message asynchronously", 'E'
+ k.add :default_edit_message, "Edit message (default)", :enter
+ k.add :alternate_edit_message, "Edit message (alternate, asynchronously)", 'E'
k.add :save_as_draft, "Save as draft", 'P'
k.add :attach_file, "Attach a file", 'a'
k.add :delete_attachment, "Delete an attachment", 'd'
@@ -182,7 +182,7 @@ EOS
if lines > curpos
return
elsif (curpos - lines) >= @header_lines.length
- edit_message
+ default_edit_message
else
edit_field @header_lines[curpos - lines]
end
@@ -226,6 +226,22 @@ EOS
end
end
+ def default_edit_message
+ if $config[:always_edit_async]
+ return edit_message_async
+ else
+ return edit_message
+ end
+ end
+
+ def alternate_edit_message
+ if $config[:always_edit_async]
+ return edit_message
+ else
+ return edit_message_async
+ end
+ end
+
def edit_message
old_from = @header["From"] if @account_selector
diff --git a/lib/sup/modes/forward_mode.rb b/lib/sup/modes/forward_mode.rb
@@ -59,7 +59,7 @@ class ForwardMode < EditMessageMode
end
BufferManager.spawn title, mode
- mode.edit_message
+ mode.default_edit_message
end
protected
diff --git a/lib/sup/modes/thread_view_mode.rb b/lib/sup/modes/thread_view_mode.rb
@@ -352,7 +352,7 @@ EOS
m = @message_lines[curpos] or return
mode = ComposeMode.new(:body => m.quotable_body_lines, :to => m.to, :cc => m.cc, :subj => m.subj, :bcc => m.bcc, :refs => m.refs, :replytos => m.replytos)
BufferManager.spawn "edit as new", mode
- mode.edit_message
+ mode.default_edit_message
end
def save_to_disk
@@ -421,7 +421,7 @@ EOS
mode = ResumeMode.new m
BufferManager.spawn "Edit message", mode
BufferManager.kill_buffer self.buffer
- mode.edit_message
+ mode.default_edit_message
else
BufferManager.flash "Not a draft message!"
end
diff --git a/lib/sup/person.rb b/lib/sup/person.rb
@@ -119,7 +119,7 @@ class Person
def self.from_address_list ss
return [] if ss.nil?
- ss.split_on_commas.map { |s| self.from_address s }
+ ss.dup.split_on_commas.map { |s| self.from_address s }
end
## see comments in self.from_address