QModelIndex FolderListView::accountFolderIndex(const Folder* account, const QString& mailbox) const { QModelIndex index = model()->index( 0, 0 ); for ( ; index.isValid(); index = next( index ) ) { FolderListItem* item = folderItemFromIndex( index ); Folder* folder = item->folder(); if ( ( mailbox.isNull() && (folder == account) ) || ( (folder->folderType() == FolderTypeMailbox) && (static_cast<Mailbox*>(folder)->pathName() == mailbox) && (itemAccount(item) == account) ) ) { break; } } return index; }
QModelIndex FolderListView::systemFolderIndex(const QString& identifier) const { bool search = (identifier == MailboxList::LastSearchString); QModelIndex index = model()->index( 0, 0 ); for ( ; index.isValid(); index = next( index ) ) { Folder* folder = folderItemFromIndex( index )->folder(); if ( folder->folderType() == FolderTypeSystem ) { if ( (search && static_cast<SystemFolder*>(folder)->isSearch()) || (folder->mailbox() == identifier) ) { break; } } } return index; }