From 85a67dbc097c0c09025b5e220acf55f6cede5d7c Mon Sep 17 00:00:00 2001 From: wmorgan Date: Thu, 18 Jan 2007 01:31:53 +0000 Subject: [PATCH] search for author within thread-view-mode git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@261 5c8cc53c-5e98-4d25-b20a-d8db53a31250 --- doc/TODO | 2 +- lib/sup/modes/contact-list-mode.rb | 2 +- lib/sup/modes/thread-view-mode.rb | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/doc/TODO b/doc/TODO index 05c22c7..fb70d5b 100644 --- a/doc/TODO +++ b/doc/TODO @@ -7,7 +7,6 @@ maildir on startup, multi-threadedly call #connect on all sources support for message-content modules such as ruby-talk:XXXXX detection use Net::SMTP -search for other messages from author in thread-view-mode forward attachments CREATE attachments tab completion on labels, contacts @@ -24,6 +23,7 @@ move sup-import argument handling to getopt be able to mark individual messages as spam in thread-view-mode toggle wrapping +x search for other messages from author in thread-view-mode x resuming of arbitrary messages x alias authors in thread-view-mode x fix up contact list mode: should display while loading, and when you add an alias, should move everything else to the right diff --git a/lib/sup/modes/contact-list-mode.rb b/lib/sup/modes/contact-list-mode.rb index 5dcf5e2..989396b 100644 --- a/lib/sup/modes/contact-list-mode.rb +++ b/lib/sup/modes/contact-list-mode.rb @@ -78,7 +78,7 @@ class ContactListMode < LineCursorMode def multi_search people mode = PersonSearchResultsMode.new people - BufferManager.spawn "personal search results", mode + BufferManager.spawn "search for #{people.map { |p| p.name }.join(', ')}", mode mode.load_threads :num => mode.buffer.content_height end diff --git a/lib/sup/modes/thread-view-mode.rb b/lib/sup/modes/thread-view-mode.rb index e399122..3c02dc7 100644 --- a/lib/sup/modes/thread-view-mode.rb +++ b/lib/sup/modes/thread-view-mode.rb @@ -25,6 +25,7 @@ class ThreadViewMode < LineCursorMode k.add :alias, "Edit alias/nickname for a person", 'a' k.add :edit_as_new, "Edit message as new", 'd' k.add :save_to_disk, "Save message/attachment to disk", 's' + k.add :search, "Search for messages from particular people", 'S' end ## there are a couple important instance variables we hold to lay @@ -103,6 +104,13 @@ class ThreadViewMode < LineCursorMode regen_text end + def search + p = @person_lines[curpos] or return + mode = PersonSearchResultsMode.new [p] + BufferManager.spawn "search for #{p.name}", mode + mode.load_threads :num => mode.buffer.content_height + end + def toggle_starred m = @message_lines[curpos] or return if m.has_label? :starred -- 2.45.2