]> git.cworth.org Git - sup/blob - lib/sup/modes/resume-mode.rb
rejigger alignment of messages when using 'n' and 'p'
[sup] / lib / sup / modes / resume-mode.rb
1 module Redwood
2
3 class ResumeMode < EditMessageMode
4   def initialize m
5     @m = m
6     @safe = false
7
8     header, body = parse_file m.draft_filename
9     header.delete "Date"
10
11     super :header => header, :body => body, :have_signature => true
12   end
13
14   def unsaved?; !@safe end
15
16   def killable?
17     return true if @safe
18
19     case BufferManager.ask_yes_or_no "Discard draft?"
20     when true
21       DraftManager.discard @m
22       BufferManager.flash "Draft discarded."
23       true
24     when false
25       if edited?
26         DraftManager.write_draft { |f| write_message f, false }
27         DraftManager.discard @m
28         BufferManager.flash "Draft saved."
29       end
30       true
31     else
32       false
33     end
34   end
35
36   def send_message
37     if super
38       DraftManager.discard @m 
39       @safe = true
40     end
41   end
42
43   def save_as_draft
44     @safe = true
45     DraftManager.discard @m if super
46   end
47 end
48
49 end