commit c267f5df934ef077d59aec0c5ad67c965b5ded74
parent 86db2c43393c9981291945ba810c53272849f0df
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Sat, 10 Feb 2007 18:41:35 +0000
re-save edited drafts if the user doesn't want to discard them; leave them alone if unedited
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@316 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
2 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb
@@ -9,6 +9,7 @@ class EditMessageMode < LineCursorMode
NON_EDITABLE_HEADERS = %w(Message-Id Date)
attr_reader :status
+ bool_reader :edited
register_keymap do |k|
k.add :send_message, "Send message", 'y'
@@ -42,7 +43,7 @@ class EditMessageMode < LineCursorMode
end
def killable?
- !@edited || BufferManager.ask_yes_or_no("Discard message?")
+ !edited? || BufferManager.ask_yes_or_no("Discard message?")
end
protected
@@ -105,7 +106,7 @@ protected
end
def send_message
- return false unless @edited || BufferManager.ask_yes_or_no("Message unedited. Really send?")
+ return unless edited? || BufferManager.ask_yes_or_no("Message unedited. Really send?")
raise "no message id!" unless header["Message-Id"]
date = Time.now
@@ -124,14 +125,12 @@ protected
BufferManager.kill_buffer buffer
BufferManager.flash "Message sent!"
- true
end
def save_as_draft
DraftManager.write_draft { |f| write_message f, false }
BufferManager.kill_buffer buffer
BufferManager.flash "Saved for later editing."
- true
end
def sig_lines
diff --git a/lib/sup/modes/resume-mode.rb b/lib/sup/modes/resume-mode.rb
@@ -12,18 +12,22 @@ class ResumeMode < ComposeMode
end
def killable?
- unless @safe
- case BufferManager.ask_yes_or_no "Discard draft?"
- when true
+ return true if @safe
+
+ case BufferManager.ask_yes_or_no "Discard draft?"
+ when true
+ DraftManager.discard @id
+ BufferManager.flash "Draft discarded."
+ true
+ when false
+ if edited?
+ DraftManager.write_draft { |f| write_message f, false }
DraftManager.discard @id
- BufferManager.flash "Draft discarded."
- true
- when false
BufferManager.flash "Draft saved."
- true
- else
- false
end
+ true
+ else
+ false
end
end