]> git.notmuchmail.org Git - sup/commitdiff
renamed load_more_threads to load_threads and moved to thread-index-mode.
authorwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Fri, 5 Jan 2007 01:54:40 +0000 (01:54 +0000)
committerwmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Fri, 5 Jan 2007 01:54:40 +0000 (01:54 +0000)
also made "saving thread" message actually accurate

git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@178 5c8cc53c-5e98-4d25-b20a-d8db53a31250

bin/sup
lib/sup/modes/contact-list-mode.rb
lib/sup/modes/inbox-mode.rb
lib/sup/modes/label-list-mode.rb
lib/sup/modes/label-search-results-mode.rb
lib/sup/modes/person-search-results-mode.rb
lib/sup/modes/search-results-mode.rb
lib/sup/modes/thread-index-mode.rb

diff --git a/bin/sup b/bin/sup
index c60d990f0413cd51ba3230f36b18e65f1823bbd3..28334b6a39afca53b1a1cb30687d3af145f429c9 100644 (file)
--- a/bin/sup
+++ b/bin/sup
@@ -100,7 +100,7 @@ begin
   Logger.make_buf
 
   bm.draw_screen
-  imode.load_more_threads :num => ibuf.content_height, :when_done => lambda {   reporting_thread { sleep 1; PollManager.poll } }
+  imode.load_threads :num => ibuf.content_height, :when_done => lambda {   reporting_thread { sleep 1; PollManager.poll } }
 
   PollManager.start_thread
 
@@ -140,7 +140,7 @@ begin
             log "built query from #{text.inspect}: #{qobj}"
             mode = SearchResultsMode.new qobj
             bm.spawn "search: \"#{short_text}\"", mode
-            mode.load_more_threads :num => mode.buffer.content_height
+            mode.load_threads :num => mode.buffer.content_height
           rescue Ferret::QueryParser::QueryParseException => e
             bm.flash "Couldn't parse query."
           end
@@ -167,7 +167,7 @@ begin
             b = BufferManager.spawn_unless_exists(:draft) do
               mode = LabelSearchResultsMode.new [:draft]
             end
-            b.mode.load_more_threads :num => b.content_height
+            b.mode.load_threads :num => b.content_height
           end
         when :nothing
         when :redraw
index ceb185ab313e0a9312bc3bc01301fb6674bd7715..1a51d122f7716b53cdef9d4fcbeb28b7790128e0 100644 (file)
@@ -60,7 +60,7 @@ class ContactListMode < LineCursorMode
   def multi_search people
     mode = PersonSearchResultsMode.new people
     BufferManager.spawn "personal search results", mode
-    mode.load_more_threads :num => mode.buffer.content_height
+    mode.load_threads :num => mode.buffer.content_height
   end
 
   def search
index b4da4f60f4488c4649967a174ec3f51d7b9cba49..97b85610f69e3d781c569cf7ae3c26f80bb175d7 100644 (file)
@@ -6,8 +6,6 @@ class InboxMode < ThreadIndexMode
   register_keymap do |k|
     ## 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", 'D'
   end
 
   def initialize
@@ -28,7 +26,7 @@ class InboxMode < ThreadIndexMode
 
   def is_relevant? m; m.has_label? :inbox; end
 
-  def load_more_threads opts={}
+  def load_threads opts={}
     n = opts[:num] || ThreadIndexMode::LOAD_MORE_THREAD_NUM
     load_n_threads_background n, :label => :inbox,
                                  :load_killed => false,
@@ -38,12 +36,6 @@ class InboxMode < ThreadIndexMode
       BufferManager.flash "Added #{num} threads."
     end)
   end
-
-  def reload
-    drop_all_threads
-    BufferManager.draw_screen
-    load_more_threads :num => buffer.content_height
-  end
 end
 
 end
index 6bd3aa7d024557ba566f4154237fa44d1a1f6f10..18ce9aa8d1c5cb412218b1b4c6fadae4a1d61295 100644 (file)
@@ -81,7 +81,7 @@ protected
       b = BufferManager.spawn_unless_exists(label) do
         mode = LabelSearchResultsMode.new [label]
       end
-      b.mode.load_more_threads :num => b.content_height
+      b.mode.load_threads :num => b.content_height
     end
   end
 end
index 34a094325beccab1bf3552913c8246efc12285a9..1df1971e40c44954be8313c6522b10745fd42ee7 100644 (file)
@@ -1,10 +1,6 @@
 module Redwood
 
 class LabelSearchResultsMode < ThreadIndexMode
-  register_keymap do |k|
-    k.add :load_more_threads, "Load #{LOAD_MORE_THREAD_NUM} more threads", 'M'
-  end
-
   def initialize labels
     @labels = labels
     super
@@ -12,7 +8,7 @@ class LabelSearchResultsMode < ThreadIndexMode
 
   def is_relevant? m; @labels.all? { |l| m.has_label? l }; end
 
-  def load_more_threads opts={}
+  def load_threads opts={}
     n = opts[:num] || ThreadIndexMode::LOAD_MORE_THREAD_NUM
     load_n_threads_background n, :labels => @labels,
                                  :load_killed => true,
index d2de8d33c4503d4dbd08fce94a47ecad8fa35d35..71505e3742443aea1378da5f9823c341b74403f7 100644 (file)
@@ -1,10 +1,6 @@
 module Redwood
 
 class PersonSearchResultsMode < ThreadIndexMode
-  register_keymap do |k|
-    k.add :load_more_threads, "Load #{LOAD_MORE_THREAD_NUM} more threads", 'M'
-  end
-
   def initialize people
     @people = people
     super
@@ -12,7 +8,7 @@ class PersonSearchResultsMode < ThreadIndexMode
 
   def is_relevant? m; @people.any? { |p| m.from == p }; end
 
-  def load_more_threads opts={}
+  def load_threads opts={}
     n = opts[:num] || ThreadIndexMode::LOAD_MORE_THREAD_NUM
     load_n_threads_background n, :participants => @people,
                                  :load_killed => true,
index 1dbbadf3ed191ead8fb790b64b1c60e28635b07a..5502b3cdaff2f54a5b794b6527c76bc45228d230 100644 (file)
@@ -1,10 +1,6 @@
 module Redwood
 
 class SearchResultsMode < ThreadIndexMode
-  register_keymap do |k|
-    k.add :load_more_threads, "Load #{LOAD_MORE_THREAD_NUM} more threads", 'M'
-  end
-
   def initialize qobj
     @qobj = qobj
     super
@@ -13,7 +9,7 @@ class SearchResultsMode < ThreadIndexMode
   ## TODO: think about this
   def is_relevant? m; super; end
 
-  def load_more_threads opts={}
+  def load_threads opts={}
     n = opts[:num] || ThreadIndexMode::LOAD_MORE_THREAD_NUM
     load_n_threads_background n, :qobj => @qobj,
                                  :load_killed => true,
index 864d347cb05b69213359a5ea8e09585117043ee2..0ebc3493a5a4a4cf777846f8296c92dbccbcbcaa 100644 (file)
@@ -1,11 +1,15 @@
 module Redwood
 
+## subclasses should implement load_threads
+
 class ThreadIndexMode < LineCursorMode
   DATE_WIDTH = Time::TO_NICE_S_MAX_LEN
   FROM_WIDTH = 15
   LOAD_MORE_THREAD_NUM = 20
 
   register_keymap do |k|
+    k.add :load_threads, "Load #{LOAD_MORE_THREAD_NUM} more threads", 'M'
+    k.add :reload, "Discard threads and reload", 'D'
     k.add :toggle_archived, "Toggle archived status", 'a'
     k.add :toggle_starred, "Star or unstar all messages in thread", '*'
     k.add :toggle_new, "Toggle new/read status of all messages in thread", 'N'
@@ -41,6 +45,12 @@ class ThreadIndexMode < LineCursorMode
   def lines; @text.length; end
   def [] i; @text[i]; end
 
+  def reload
+    drop_all_threads
+    BufferManager.draw_screen
+    load_threads :num => buffer.content_height
+  end
+
   ## open up a thread view window
   def select t=nil
     t ||= @threads[curpos]
@@ -185,15 +195,14 @@ class ThreadIndexMode < LineCursorMode
 
   def save
     threads = @threads + @hidden_threads.keys
-    mbid = BufferManager.say "Saving threads..."
-    threads.each_with_index do |t, i|
-      if i % 5 == 0
-        BufferManager.say "Saving thread #{i + 1} of #{threads.length}...",
-                          mbid
+
+    BufferManager.say("Saving threads...") do |say_id|
+      threads.each_with_index do |t, i|
+        next unless t.dirty?
+        BufferManager.say "Saving thread #{i +1} of #{threads.length}...", say_id
+        t.save Index
       end
-      t.save Index
     end
-    BufferManager.clear mbid
   end
 
   def cleanup