sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 0b183440ca6279f1efbebc49ef6543186b1e14e4
parent f0c6ed84b7ac8f7b03e4b3635d7842e956640e3b
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date:   Thu,  1 Mar 2007 07:29:36 +0000

thread-view-mode compose

git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@342 5c8cc53c-5e98-4d25-b20a-d8db53a31250

Diffstat:
M doc/TODO | 2 ++
M lib/sup/modes/thread-view-mode.rb | 10 +++++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/doc/TODO b/doc/TODO
@@ -1,6 +1,7 @@
 for 0.0.8
 ---------
 x maildir
+_ bugfix: single-line messages come empty upon reply
 _ bugfix: when one new message comes into an imap folder, we don't
    catch it until a restart
 _ bugfix: triggering a pageup when cursor scrolling up jumps to the
@@ -8,6 +9,7 @@ _ bugfix: triggering a pageup when cursor scrolling up jumps to the
 _ create attachments
 _ forward attachments
 _ warnings: top-posting, missing attachment
+x compose in thread-view-mode auto-fills in person
 
 for 0.0.9
 ---------
diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb
@@ -26,6 +26,7 @@ class ThreadViewMode < LineCursorMode
     k.add :edit_as_new, "Edit message as new", 'D'
     k.add :save_to_disk, "Save message/attachment to disk", 's'
     k.add :search, "Search for messages from particular people", 'S'
+    k.add :compose, "Compose message to person", 'm'
     k.add :archive_and_kill, "Archive thread and kill buffer", 'A'
   end
 
@@ -111,10 +112,17 @@ class ThreadViewMode < LineCursorMode
   def search
     p = @person_lines[curpos] or return
     mode = PersonSearchResultsMode.new [p]
-    BufferManager.spawn "search for #{p.name}", mode
+    BufferManager.spawn "Search for #{p.name}", mode
     mode.load_threads :num => mode.buffer.content_height
   end    
 
+  def compose
+    p = @person_lines[curpos] or return
+    mode = ComposeMode.new :to => [p]
+    BufferManager.spawn "Message to #{p.name}", mode
+    mode.edit
+  end    
+
   def toggle_starred
     m = @message_lines[curpos] or return
     if m.has_label? :starred