From 27cb7f32d1497e3da2d0afbca56e9d5fb607d023 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Wed, 26 Aug 2009 10:17:20 -0700 Subject: [PATCH] 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. --- lib/sup/modes/inbox-mode.rb | 7 +++++++ 1 file changed, 7 insertions(+) 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 -- 2.45.2