5 class InboxMode < ThreadIndexMode
7 ## overwrite toggle_archived with archive
8 k.add :archive, "Archive thread (remove from inbox)", 'a'
9 k.add :read_and_archive, "Archive thread (remove from inbox) and mark read", 'A'
13 super [:inbox, :sent, :draft], { :label => :inbox, :skip_killed => true }
14 raise "can't have more than one!" if defined? @@instance
19 m.has_label?(:inbox) && ([:spam, :deleted, :killed] & m.labels).empty?
22 ## label-list-mode wants to be able to raise us if the user selects
23 ## the "inbox" label, so we need to keep our singletonness around
24 def self.instance; @@instance; end
25 def killable?; false; end
28 return unless cursor_thread
29 cursor_thread.remove_label :inbox
30 hide_thread cursor_thread
34 def multi_archive threads
43 return unless cursor_thread
44 cursor_thread.remove_label :unread
45 cursor_thread.remove_label :inbox
46 hide_thread cursor_thread
50 def multi_read_and_archive threads
52 t.remove_label :unread
59 def handle_unarchived_update sender, m
63 def handle_archived_update sender, m
64 t = thread_containing(m) or return
70 super + " #{Index.size} messages in index"