1019 { |
1019 { |
1020 if ( iSearchList->Count() ) |
1020 if ( iSearchList->Count() ) |
1021 { |
1021 { |
1022 CFSEmailUiMailListModelItem* item = |
1022 CFSEmailUiMailListModelItem* item = |
1023 static_cast<CFSEmailUiMailListModelItem*>( Model()->Item( HighlightedIndex() ) ); |
1023 static_cast<CFSEmailUiMailListModelItem*>( Model()->Item( HighlightedIndex() ) ); |
1024 CFSMailMessage& msg = item->MessagePtr(); |
1024 if ( item ) // Safety |
1025 |
1025 { |
1026 TMsgDetailsActivationData msgDetailsData; |
1026 CFSMailMessage& msg = item->MessagePtr(); |
1027 msgDetailsData.iMailBoxId = msg.GetMailBoxId(); |
1027 |
1028 msgDetailsData.iFolderId = msg.GetFolderId(); |
1028 TMsgDetailsActivationData msgDetailsData; |
1029 msgDetailsData.iMessageId = msg.GetMessageId(); |
1029 msgDetailsData.iMailBoxId = msg.GetMailBoxId(); |
1030 |
1030 msgDetailsData.iFolderId = msg.GetFolderId(); |
1031 const TPckgBuf<TMsgDetailsActivationData> pkgOut( msgDetailsData ); |
1031 msgDetailsData.iMessageId = msg.GetMessageId(); |
1032 iAppUi.EnterFsEmailViewL( MsgDetailsViewId, KStartMsgDetailsToBeginning, pkgOut); |
1032 |
1033 } |
1033 const TPckgBuf<TMsgDetailsActivationData> pkgOut( msgDetailsData ); |
|
1034 iAppUi.EnterFsEmailViewL( MsgDetailsViewId, KStartMsgDetailsToBeginning, pkgOut); |
|
1035 } |
|
1036 } |
1034 } |
1037 } |
1035 break; |
1038 break; |
1036 case EFsEmailUiCmdHelp: |
1039 case EFsEmailUiCmdHelp: |
1037 { |
1040 { |
1038 TFsEmailUiUtility::LaunchHelpL( KFSE_HLP_LAUNCHER_GRID ); |
1041 TFsEmailUiUtility::LaunchHelpL( KFSE_HLP_LAUNCHER_GRID ); |
1393 TFSMailMsgId msgId; // constructs null ID |
1407 TFSMailMsgId msgId; // constructs null ID |
1394 if ( 0 <= aItemIdx && aItemIdx < iModel->Count() ) |
1408 if ( 0 <= aItemIdx && aItemIdx < iModel->Count() ) |
1395 { |
1409 { |
1396 CFSEmailUiMailListModelItem* item = |
1410 CFSEmailUiMailListModelItem* item = |
1397 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(aItemIdx)); |
1411 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(aItemIdx)); |
1398 if ( item->ModelItemType() == ETypeMailItem ) |
1412 if ( item && item->ModelItemType() == ETypeMailItem ) |
1399 { |
1413 { |
1400 msgId = item->MessagePtr().GetMessageId(); |
1414 msgId = item->MessagePtr().GetMessageId(); |
1401 } |
1415 } |
1402 } |
1416 } |
1403 |
1417 |
1410 TFSMailMsgId msgId; |
1424 TFSMailMsgId msgId; |
1411 for ( TInt i=0; i<iModel->Count();i++) |
1425 for ( TInt i=0; i<iModel->Count();i++) |
1412 { |
1426 { |
1413 CFSEmailUiMailListModelItem* item = |
1427 CFSEmailUiMailListModelItem* item = |
1414 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1428 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1415 if ( item->ModelItemType() == ETypeMailItem && |
1429 if ( item && item->ModelItemType() == ETypeMailItem && |
1416 aListId == item->CorrespondingListId() ) |
1430 aListId == item->CorrespondingListId() ) |
1417 { |
1431 { |
1418 msgId = item->MessagePtr().GetMessageId(); |
1432 msgId = item->MessagePtr().GetMessageId(); |
1419 break; |
1433 break; |
1420 } |
1434 } |
1428 CFSMailMessage* msgPtr(NULL); |
1442 CFSMailMessage* msgPtr(NULL); |
1429 for ( TInt i=0; i<iModel->Count();i++) |
1443 for ( TInt i=0; i<iModel->Count();i++) |
1430 { |
1444 { |
1431 CFSEmailUiMailListModelItem* item = |
1445 CFSEmailUiMailListModelItem* item = |
1432 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1446 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1433 if ( aListId == item->CorrespondingListId() ) |
1447 if ( item && aListId == item->CorrespondingListId() ) |
1434 { |
1448 { |
1435 msgPtr = &item->MessagePtr(); |
1449 msgPtr = &item->MessagePtr(); |
1436 } |
1450 } |
1437 } |
1451 } |
1438 return *msgPtr; |
1452 return *msgPtr; |
1477 |
1491 |
1478 for ( TInt i=0; i<iModel->Count() ; i++ ) |
1492 for ( TInt i=0; i<iModel->Count() ; i++ ) |
1479 { |
1493 { |
1480 CFSEmailUiMailListModelItem* item = |
1494 CFSEmailUiMailListModelItem* item = |
1481 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1495 static_cast<CFSEmailUiMailListModelItem*>(iModel->Item(i)); |
1482 if ( item->ModelItemType() == ETypeMailItem && |
1496 if ( item && item->ModelItemType() == ETypeMailItem && |
1483 aMessageId == item->MessagePtr().GetMessageId() ) |
1497 aMessageId == item->MessagePtr().GetMessageId() ) |
1484 { |
1498 { |
1485 idx = i; |
1499 idx = i; |
1486 break; |
1500 break; |
1487 } |
1501 } |
1540 StopSearchL(); |
1554 StopSearchL(); |
1541 } |
1555 } |
1542 |
1556 |
1543 CFSEmailUiMailListModelItem* item = |
1557 CFSEmailUiMailListModelItem* item = |
1544 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( HighlightedIndex() ) ); |
1558 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( HighlightedIndex() ) ); |
1545 if ( item->ModelItemType() == ETypeMailItem ) |
1559 if ( item && item->ModelItemType() == ETypeMailItem ) |
1546 { |
1560 { |
1547 // First make sure that the highlighted message really exists in the store |
1561 // First make sure that the highlighted message really exists in the store |
1548 // Get confirmed msg ptr |
1562 // Get confirmed msg ptr |
1549 CFSMailMessage* confirmedMsgPtr(0); |
1563 CFSMailMessage* confirmedMsgPtr(0); |
1550 TRAPD( err, confirmedMsgPtr = iAppUi.GetMailClient()->GetMessageByUidL(iAppUi.GetActiveMailboxId(), |
1564 TRAPD( err, confirmedMsgPtr = iAppUi.GetMailClient()->GetMessageByUidL(iAppUi.GetActiveMailboxId(), |
2045 FUNC_LOG; |
2059 FUNC_LOG; |
2046 if ( iSearchList->Count() ) |
2060 if ( iSearchList->Count() ) |
2047 { |
2061 { |
2048 CFSEmailUiMailListModelItem* selectedItem = |
2062 CFSEmailUiMailListModelItem* selectedItem = |
2049 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( HighlightedIndex() )); |
2063 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( HighlightedIndex() )); |
2050 |
2064 if ( selectedItem ) // Safety |
2051 TBool wasRead = selectedItem->MessagePtr().IsFlagSet( EFSMsgFlag_Read ); |
2065 { |
2052 if ( (wasRead && !aRead) || (!wasRead && aRead) ) |
2066 TBool wasRead = selectedItem->MessagePtr().IsFlagSet( EFSMsgFlag_Read ); |
2053 { |
2067 if ( (wasRead && !aRead) || (!wasRead && aRead) ) |
2054 // Read status is changed |
2068 { |
2055 iMsgDataCouldBeChanged = ETrue; |
2069 // Read status is changed |
2056 |
2070 iMsgDataCouldBeChanged = ETrue; |
2057 if ( aRead ) |
2071 |
2058 { |
2072 if ( aRead ) |
2059 // Send flags, local and server |
2073 { |
2060 selectedItem->MessagePtr().SetFlag( EFSMsgFlag_Read ); |
2074 // Send flags, local and server |
2061 } |
2075 selectedItem->MessagePtr().SetFlag( EFSMsgFlag_Read ); |
2062 else |
2076 } |
2063 { |
2077 else |
2064 // Send flags, local and server |
2078 { |
2065 selectedItem->MessagePtr().ResetFlag( EFSMsgFlag_Read ); |
2079 // Send flags, local and server |
2066 } |
2080 selectedItem->MessagePtr().ResetFlag( EFSMsgFlag_Read ); |
2067 selectedItem->MessagePtr().SaveMessageL(); // Save flag |
2081 } |
2068 // Switch icon to correct one |
2082 selectedItem->MessagePtr().SaveMessageL(); // Save flag |
2069 UpdateMsgIconAndBoldingL( HighlightedIndex() ); |
2083 // Switch icon to correct one |
2070 } |
2084 UpdateMsgIconAndBoldingL( HighlightedIndex() ); |
2071 } |
2085 } |
2072 } |
2086 } |
2073 |
2087 } |
|
2088 } |
|
2089 |
2074 void CFSEmailUiSearchListVisualiser::CheckAndUpdateFocusedMessageL() |
2090 void CFSEmailUiSearchListVisualiser::CheckAndUpdateFocusedMessageL() |
2075 { |
2091 { |
2076 FUNC_LOG; |
2092 FUNC_LOG; |
2077 if ( iModel && iModel->Count() ) // Needed safety check |
2093 if ( iModel && iModel->Count() ) // Needed safety check |
2078 { |
2094 { |
2079 TInt highlightedIndex = HighlightedIndex(); |
2095 TInt highlightedIndex = HighlightedIndex(); |
2080 CFSEmailUiMailListModelItem* selectedItem = |
2096 CFSEmailUiMailListModelItem* selectedItem = |
2081 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( highlightedIndex )); |
2097 static_cast<CFSEmailUiMailListModelItem*>( iModel->Item( highlightedIndex )); |
2082 if ( selectedItem->ModelItemType() == ETypeMailItem ) |
2098 if ( selectedItem && selectedItem->ModelItemType() == ETypeMailItem ) |
2083 { |
2099 { |
2084 CFSMailMessage* msgPtr = &selectedItem->MessagePtr(); |
2100 CFSMailMessage* msgPtr = &selectedItem->MessagePtr(); |
2085 if ( msgPtr ) |
2101 if ( msgPtr ) |
2086 { |
2102 { |
2087 CFSMailFolder* folderPtr = |
2103 CFSMailFolder* folderPtr = |