From: wmorgan Date: Sat, 10 Feb 2007 18:41:35 +0000 (+0000) Subject: re-save edited drafts if the user doesn't want to discard them; leave them alone... X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=c267f5df934ef077d59aec0c5ad67c965b5ded74;p=sup 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 --- diff --git a/lib/sup/modes/edit-message-mode.rb b/lib/sup/modes/edit-message-mode.rb index 6ad1097..c0050ae 100644 --- 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 index 923eb2c..d9292bf 100644 --- 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