]> git.cworth.org Git - sup/commitdiff
fix reply mode/edit field interactions
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Thu, 9 Aug 2007 15:33:46 +0000 (15:33 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Thu, 9 Aug 2007 15:33:46 +0000 (15:33 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@521 5c8cc53c-5e98-4d25-b20a-d8db53a31250

lib/sup/modes/edit-message-mode.rb
lib/sup/modes/reply-mode.rb
lib/sup/poll.rb

index 795e3b36475d72ffca52401b73a7ed800782f522..56acd4fffed05f3e8db01f5ae65a2a980a11a765 100644 (file)
@@ -35,6 +35,7 @@ class EditMessageMode < LineCursorMode
     @attachments = []
     @message_id = "<#{Time.now.to_i}-sup-#{rand 10000}@#{Socket.gethostname}>"
     @edited = false
+    @skip_top_rows = opts[:skip_top_rows] || 0
 
     super opts
     regen_text
@@ -47,10 +48,10 @@ class EditMessageMode < LineCursorMode
   def handle_new_text header, body; end
 
   def edit_field
-    if curpos >= @header_lines.length
+    if (curpos - @skip_top_rows) >= @header_lines.length
       edit_message
     else
-      case(field = @header_lines[curpos])
+      case(field = @header_lines[curpos - @skip_top_rows])
       when "Subject"
         text = BufferManager.ask :subject, "Subject: ", @header[field]
         @header[field] = parse_header field, text if text
@@ -105,7 +106,7 @@ class EditMessageMode < LineCursorMode
   end
 
   def delete_attachment
-    i = curpos - @attachment_lines_offset
+    i = (curpos - @skip_top_rows) - @attachment_lines_offset
     if i >= 0 && i < @attachments.size && BufferManager.ask_yes_or_no("Delete attachment #{@attachments[i]}?")
       @attachments.delete_at i
       update
index 900076749983571cab17abe48a0b315be4a20e9a..643804325966f8f10dd5592044925e75e3ecab41 100644 (file)
@@ -66,9 +66,9 @@ class ReplyMode < EditMessageMode
     refs = gen_references
     @headers.each do |k, v|
       @headers[k] = {
-               "To" => "",
-               "Cc" => "",
-               "Bcc" => "",
+               "To" => [],
+               "Cc" => [],
+               "Bcc" => [],
                "In-Reply-To" => "<#{@m.id}>",
                "Subject" => Message.reify_subj(@m.subj),
                "References" => refs,
@@ -125,6 +125,13 @@ protected
   def gen_references
     (@m.refs + [@m.id]).map { |x| "<#{x}>" }.join(" ")
   end
+
+  def edit_field
+    @selected_type = :user
+    self.header = @headers[:user]
+    update
+    super
+  end
   
   def move_cursor_left
     i = @type_labels.index @selected_type
index 36ea10fe7ebf8e38b00ef3baef20415a030bb0c2..822521d4da0bfe85febedf12f246449563d954e7 100644 (file)
@@ -69,7 +69,7 @@ class PollManager
           end
           m
         end
-        yield "Found #{num} messages, #{numi} to inbox" unless num == 0
+        yield "Found #{num} messages, #{numi} to inbox." unless num == 0
         total_num += num
         total_numi += numi
       end