Usually, a view object has parallel arrays, which map directly to lines in the message list:
- m_keys - msg hdr key
- m_flags - 32 bits, combination of msg hdr flags and view-only flags (e.g., collapsed)
- m_level - the indentation level when in threaded mode).
- m_folders - cross-folder views only (nsMsgSearchDBView and its descendent, nsMsgXFVirtualFolderDBView)
Most of the time, the thread pane is driven by an nsMsgThreadedDBView object (even when we're in a flat sort). If the user does a quick search or picks a view from the view menu, we create an nsMsgQuickSearchDBView. Advanced search results are displayed with an nsMsgSEarchDBView, and cross-folder saved searches use nsMsgXFVirtualFolderDBView.
nsMsgGroupView is used when grouping is turned on.