]> git.cworth.org Git - sup/commitdiff
fix compose mode spawning from within thread-view-mode
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 29 Oct 2007 15:03:14 +0000 (15:03 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Mon, 29 Oct 2007 15:03:14 +0000 (15:03 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@645 5c8cc53c-5e98-4d25-b20a-d8db53a31250

bin/sup
lib/sup/modes/compose-mode.rb
lib/sup/modes/thread-view-mode.rb

diff --git a/bin/sup b/bin/sup
index 785462a8114ad4bf93b394c5f3dfa1313b2566fb..106ea0ef8b8a18710fc0ea9c317c75e4982656bf 100644 (file)
--- a/bin/sup
+++ b/bin/sup
@@ -92,6 +92,7 @@ EOS
 end
 
 begin
+  extend CanSpawnComposeMode
   Redwood::start
   Index.load
 
@@ -253,13 +254,7 @@ begin
         end
 
       when :compose
-        to = BufferManager.ask_for_contacts(:people, "To: ") or next
-        cc = BufferManager.ask_for_contacts(:people, "Cc: ") or next if $config[:ask_for_cc]
-        bcc = BufferManager.ask_for_contacts(:people, "Bcc: ") or next if $config[:ask_for_bcc]
-
-        mode = ComposeMode.new :to => to, :cc => cc, :bcc => bcc
-        bm.spawn "New Message", mode
-        mode.edit_message
+        spawn_compose_mode
       when :poll
         reporting_thread { PollManager.poll }
       when :recall_draft
index c1585926c644832879fd9a43384a550a9db3237e..df132bf57ff2a623e7e91b71211ddf318b8deab1 100644 (file)
@@ -1,5 +1,17 @@
 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]
+    
+    mode = ComposeMode.new :to => to, :cc => cc, :bcc => bcc
+    BufferManager.spawn "New Message", mode
+    mode.edit_message
+  end
+end
+
 class ComposeMode < EditMessageMode
   def initialize opts={}
     header = {
index f00e19c670737331a89ab36d204e38e194cb2ab7..f0a8461b2bce51bd1c45f3f03b71f11fca6ef155 100644 (file)
@@ -1,6 +1,8 @@
 module Redwood
 
 class ThreadViewMode < LineCursorMode
+  include CanSpawnComposeMode
+
   ## this holds all info we need to lay out a message
   class MessageLayout
     attr_accessor :top, :bot, :prev, :next, :depth, :width, :state, :color, :star_color, :orig_new
@@ -128,14 +130,11 @@ class ThreadViewMode < LineCursorMode
 
   def compose
     p = @person_lines[curpos]
-    mode =
-      if p
-        ComposeMode.new :to => [p]
-      else
-        ComposeMode.new
-      end
-    BufferManager.spawn "Compose message", mode
-    mode.edit_message
+    if p
+      spawn_compose_mode :to => [p]
+    else
+      spawn_compose_mode
+    end
   end    
 
   def edit_labels