Manitou-Mail Home

4. Windows and pages

4.1. Pages

The interface displays lists of messages in pages between which the user can navigate with Move back and Move forward commands (bound to alt-left and alt-right keys), like in a web browser. When a new set of results is requested, a new page is opened, replacing the list of messages previously on screen. Other pages can be instantly displayed back on screen by moving through pages, back and forward.

These commands are meant to navigate rapidly through lists of messages. Example: a message currently on screen is from john.doe@example.org. The user right clicks on the subject line and choose the Last messages from john.doe@example.org command. The program then opens a new page with the results. The user wades through the results, and when done, comes back to the previous page by issuing Move back. The display and selection will then be restored as they were before the Last messages from... command was issued.

The number of pages that are kept in memory is a configuration parameter named msg_window_pages, which defaults to 5. It means that when a new page is opened while there are already five result pages in memory, the older page (number 1) is removed from the memory to get room for the new one. The page number 2 becomes number 1, 3 becomes 2, and so on.

When a new page is opened while there are other pages after it, the new page becomes the tail of the pages list, which means that the pages that were after can no longer be accessed with the Move forward command. This matches web browsers behavior.

4.2. Segments

The amount of messages fetched and displayed together in a list must be limited to avoid overflowing the memory or being too slow to be loaded from the database. When the result of a selection contains more messages than the configurable limit, it gets split into segments, only one segment being present in the main list at a time. Commands available as Selection->Fetch previous segment and Selection->Fetch next segment populates the list with another segment, allowing to navigate through all segments of the same resultset, one segment at a time. These commands are also available as clickable items at the top and bottom of the list, when suitable.

The size of the segments is defined by the Limit To numeric field in the Query selection dialog, along with the sort order (newest first or oldest first). In the first case, the first segment will contain the newest messages and the next ones older messages. In the other case, the first segment will have the older messages and navigating to the next ones will go from oldest to newest. Within the list on diplay, the sort order can be set dynamically ascending or descending by date (by clicking on the header), but the meaning of next and previous to load other segments always relates to the order specified in the Query Selection dialog.

4.3. Windows

A new window with an entirely new set of pages (initially blank) can be opened with the File->New window command. Different windows are handled completely independently from each other, except that when several windows show the same message, a status change or a deletion of that message is visually propagated to all windows.