]> git.notmuchmail.org Git - sup/commitdiff
hit 'R' to quicky recover drafts
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Sun, 31 Dec 2006 02:35:28 +0000 (02:35 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Sun, 31 Dec 2006 02:35:28 +0000 (02:35 +0000)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@130 5c8cc53c-5e98-4d25-b20a-d8db53a31250

bin/sup
lib/sup/modes/inbox-mode.rb
lib/sup/modes/label-list-mode.rb

diff --git a/bin/sup b/bin/sup
index c4e59b60d426db7e7a3d522059ce73607399bf16..5348437f332857d2f30e8b4c35f5946ed626dce4 100644 (file)
--- a/bin/sup
+++ b/bin/sup
@@ -34,6 +34,7 @@ global_keymap = Keymap.new do |k|
   k.add :list_labels, "List labels", 'L'
   k.add :poll, "Poll for new messages", 'P'
   k.add :compose, "Compose new message", 'm'
+  k.add :recall_draft, "Edit most recent draft message", 'R'
 end
 
 def start_cursing
@@ -170,6 +171,20 @@ begin
         when :poll
           bm.raise_to_front PollManager.buffer
           reporting_thread { PollManager.poll }
+        when :recall_draft
+          case Index.num_results_for :label => :draft
+          when 0
+            bm.flash "No draft messages."
+          when 1
+            m = nil
+            Index.each_id_by_date(:label => :draft) { |mid, builder| m = builder.call }
+            BufferManager.spawn "Edit message", ResumeMode.new(m)
+          else
+            b = BufferManager.spawn_unless_exists(:draft) do
+              mode = LabelSearchResultsMode.new [:draft]
+            end
+            b.mode.load_more_threads b.content_height
+          end
         when :nothing
         when :redraw
           bm.completely_redraw_screen
index c335758b417a9eb4d1f40c5bd27f4ed0218ea116..245560c720e3c6b194d5a205bfcd7739953bcb8b 100644 (file)
@@ -7,7 +7,7 @@ class InboxMode < ThreadIndexMode
     ## overwrite toggle_archived with archive
     k.add :archive, "Archive thread (remove from inbox)", 'a'
     k.add :load_more_threads, "Load #{LOAD_MORE_THREAD_NUM} more threads", 'M'
-    k.add :reload, "Discard threads and reload", 'R'
+    k.add :reload, "Discard threads and reload", 'D'
   end
 
   def initialize
index 60f4f235065a6b6c13df6a757ab73a7ff0a2042e..485c4d8333b3e961276c09029278f446bdecf214 100644 (file)
@@ -3,7 +3,7 @@ module Redwood
 class LabelListMode < LineCursorMode
   register_keymap do |k|
     k.add :view_results, "View messages with the selected label", :enter
-    k.add :reload, "Reload", "R"
+    k.add :reload, "Discard results and reload", 'D'
   end
 
   def initialize