commit 85a67dbc097c0c09025b5e220acf55f6cede5d7c
parent 75416d4ef7c2853e4421912e74ef9c01a06366e3
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Thu, 18 Jan 2007 01:31:53 +0000
search for author within thread-view-mode
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@261 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git 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
@@ -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
@@ -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