]> git.notmuchmail.org Git - sup/blobdiff - lib/sup/modes/label-search-results-mode.rb
Allow thread index view to sort oldest first
[sup] / lib / sup / modes / label-search-results-mode.rb
index bca51d456143e901683b7f3b65f1be3a909e25e0..6899104c46d21b1b6d90e43e8d1ab467d15edf8c 100644 (file)
@@ -1,12 +1,13 @@
 module Redwood
 
 class LabelSearchResultsMode < ThreadIndexMode
-  def initialize labels
+  def initialize labels, newest_first
     @labels = labels
     opts = { :labels => @labels }
     opts[:load_deleted] = true if labels.include? :deleted
     opts[:load_spam] = true if labels.include? :spam
     super [], opts
+    @newest_first = newest_first
   end
 
   register_keymap do |k|
@@ -17,7 +18,7 @@ class LabelSearchResultsMode < ThreadIndexMode
     label_query = @labels.size > 1 ? "(#{@labels.join('||')})" : @labels.first
     query = BufferManager.ask :search, "refine query: ", "+label:#{label_query} "
     return unless query && query !~ /^\s*$/
-    SearchResultsMode.spawn_from_query query
+    SearchResultsMode.spawn_from_query query, @newest_first
   end
 
   def is_relevant? m; @labels.all? { |l| m.has_label? l } end
@@ -29,7 +30,7 @@ class LabelSearchResultsMode < ThreadIndexMode
     when :inbox
       BufferManager.raise_to_front InboxMode.instance.buffer
     else
-      b, new = BufferManager.spawn_unless_exists("All threads with label '#{label}'") { LabelSearchResultsMode.new [label] }
+      b, new = BufferManager.spawn_unless_exists("All threads with label '#{label}'") { LabelSearchResultsMode.new [label], true }
       b.mode.load_threads :num => b.content_height if new
     end
   end