1 /****************************************************************************** 2 * 3 * SPDX-FileCopyrightText: 2008 Szymon Tomasz Stefanek <pragma@kvirc.net> 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * 7 *******************************************************************************/ 8 9 #pragma once 10 11 namespace MessageList 12 { 13 namespace Core 14 { 15 /** 16 * Pre-selection is the action of automatically selecting a message just after the folder 17 * has finished loading. We may want to select the message that was selected the last 18 * time this folder has been open, or we may want to select the first unread message. 19 * We also may want to do no pre-selection at all (for example, when the user 20 * starts navigating the view before the pre-selection could actually be made 21 * and pre-selecting would confuse him). This member holds the option. 22 * 23 * All the modes except PreSelectNone try to fallback to "PreSelectLastSelected" when the 24 * specified item isn't found. 25 * 26 * See Model::setStorageModel() for more information. 27 */ 28 enum PreSelectionMode { 29 PreSelectNone, //< no pre-selection at all 30 PreSelectLastSelected, //< pre-select the last message that was selected in this folder (default) 31 PreSelectFirstUnreadCentered, //< pre-select the first unread message and center it 32 PreSelectNewestCentered, //< pre-select the newest message, by date 33 PreSelectOldestCentered //< pre-select the oldest message, by date 34 }; 35 36 /** 37 * This enum is used in the view message selection functions (for instance View::nextMessageItem()). 38 */ 39 enum MessageTypeFilter { 40 MessageTypeAny, //< Select any message 41 MessageTypeUnreadOnly //< Select only unread messages 42 }; 43 44 /** 45 * This enum is used in the view message selection functions (for instance View::selectNextMessage()) 46 */ 47 enum ExistingSelectionBehaviour { 48 ClearExistingSelection, //< Clear the existing selection before selecting the new item 49 ExpandExistingSelection, //< Preserve the existing selection (grow only) 50 GrowOrShrinkExistingSelection //< Grow or shrink the existing selection depending on what item is actually being selected 51 }; 52 } 53 } 54 55