From: Carl Worth Date: Wed, 26 Aug 2009 17:17:20 +0000 (-0700) Subject: Add a refine_search command to InboxMode X-Git-Url: https://git.notmuchmail.org/git?a=commitdiff_plain;h=27cb7f32d1497e3da2d0afbca56e9d5fb607d023;p=sup Add a refine_search command to InboxMode This is just a copy of SearchResultsMode's refine_search command. A much cleaner, but more involved, approach would be to rework InboxMode to derive from SearchResultsMode in the first place. --- diff --git a/lib/sup/modes/inbox-mode.rb b/lib/sup/modes/inbox-mode.rb index ba095da..51f3a51 100644 --- a/lib/sup/modes/inbox-mode.rb +++ b/lib/sup/modes/inbox-mode.rb @@ -7,6 +7,7 @@ class InboxMode < ThreadIndexMode ## overwrite toggle_archived with archive k.add :archive, "Archive thread (remove from inbox)", 'a' k.add :read_and_archive, "Archive thread (remove from inbox) and mark read", 'A' + k.add :refine_search, "Refine search", '|' end def initialize @@ -17,6 +18,12 @@ class InboxMode < ThreadIndexMode def is_relevant? m; (m.labels & [:spam, :deleted, :killed, :inbox]) == Set.new([:inbox]) end + def refine_search + text = BufferManager.ask :search, "refine query: ", "label:inbox AND " + return unless text && text !~ /^\s*$/ + SearchResultsMode.spawn_from_query text + end + ## label-list-mode wants to be able to raise us if the user selects ## the "inbox" label, so we need to keep our singletonness around def self.instance; @@instance; end