From e8a45c523fd04cf325eed0701c16892bf7952a57 Mon Sep 17 00:00:00 2001 From: wmorgan Date: Mon, 29 Oct 2007 15:03:14 +0000 Subject: [PATCH] fix compose mode spawning from within thread-view-mode git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@645 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- bin/sup | 9 ++------- lib/sup/modes/compose-mode.rb | 12 ++++++++++++ lib/sup/modes/thread-view-mode.rb | 15 +++++++-------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/bin/sup b/bin/sup index 785462a..106ea0e 100644 --- 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 diff --git a/lib/sup/modes/compose-mode.rb b/lib/sup/modes/compose-mode.rb index c158592..df132bf 100644 --- a/lib/sup/modes/compose-mode.rb +++ b/lib/sup/modes/compose-mode.rb @@ -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 = { diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb index f00e19c..f0a8461 100644 --- a/lib/sup/modes/thread-view-mode.rb +++ b/lib/sup/modes/thread-view-mode.rb @@ -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 -- 2.45.2