commit 5048c339396ae70394ae2dc2bd054f61e07ec3a3
parent c6263674e539d93768512bfaa5cdee22b9c51411
Author: wmorgan <wmorgan@5c8cc53c-5e98-4d25-b20a-d8db53a31250>
Date: Fri, 2 Nov 2007 02:26:02 +0000
tab in label-list-mode toggles hiding labels without new messages (thanks to Colin Bell)
git-svn-id: svn://rubyforge.org/var/svn/sup/trunk@657 5c8cc53c-5e98-4d25-b20a-d8db53a31250
Diffstat:
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/lib/sup/modes/label-list-mode.rb b/lib/sup/modes/label-list-mode.rb
@@ -4,6 +4,7 @@ class LabelListMode < LineCursorMode
register_keymap do |k|
k.add :select_label, "Select label", :enter
k.add :reload, "Discard label list and reload", '@'
+ k.add :toggle_show_unread_only, "Toggle between all labels and those with unread mail", :tab
end
bool_reader :done
@@ -14,6 +15,7 @@ class LabelListMode < LineCursorMode
@text = []
@done = false
@value = nil
+ @unread_only = false
super
regen_text
end
@@ -22,12 +24,16 @@ class LabelListMode < LineCursorMode
def [] i; @text[i] end
protected
+ def toggle_show_unread_only
+ @unread_only = !@unread_only
+ reload
+ end
def reload
regen_text
buffer.mark_dirty if buffer
end
-
+
def regen_text
@text = []
labels = LabelManager.listable_labels
@@ -41,6 +47,10 @@ protected
width = counts.max_of { |l, s, t, u| s.length }
+ if @unread_only
+ counts.delete_if { | l, s, t, u | u == 0 }
+ end
+
@labels = []
counts.map do |label, string, total, unread|
if total == 0 && !LabelManager::RESERVED_LABELS.include?(label)