diff -r 84d9eb65b26f -r 518b245aa84c messagingapp/msgui/appengine/src/conversationssummarymodel.cpp --- a/messagingapp/msgui/appengine/src/conversationssummarymodel.cpp Mon May 03 12:29:07 2010 +0300 +++ b/messagingapp/msgui/appengine/src/conversationssummarymodel.cpp Fri Jun 25 15:47:40 2010 +0530 @@ -18,10 +18,13 @@ #include "conversationssummarymodel.h" #include "conversationsenginedefines.h" #include "conversationsengineutility.h" -#include "s60qconversions.h" +#include #include "convergedmessage.h" #include "unidatamodelloader.h" #include "unidatamodelplugininterface.h" +#include "ringbc.h" +#include "msgcontacthandler.h" +#include "debugtraces.h" #include #include @@ -35,6 +38,8 @@ ConversationsSummaryModel::ConversationsSummaryModel(QObject* parent) :QStandardItemModel(parent) { + QStandardItemModel::setSortRole(TimeStamp); + QStandardItemModel::sort(0, Qt::DescendingOrder); } //--------------------------------------------------------------- @@ -153,7 +158,7 @@ // @see header //--------------------------------------------------------------- void ConversationsSummaryModel::addRow( - const CCsClientConversation& conversation) + const CCsClientConversation& conversation, bool caching) { int convId = conversation.GetConversationEntryId(); @@ -175,7 +180,12 @@ QModelIndex index = indexList[0]; QStandardItem* item = this->item(index.row(), 0); populateItem(*item,conversation); - } + } + // no need to sort if it is initial caching, as sorting is already done + if (!caching) + { + QStandardItemModel::sort(0, Qt::DescendingOrder); + } } //--------------------------------------------------------------- @@ -203,6 +213,8 @@ void ConversationsSummaryModel::populateItem(QStandardItem& item, const CCsClientConversation& conversation) { + QCRITICAL_WRITE("ConversationsSummaryModel::populateItem start."); + //get entry CCsConversationEntry* conEntry = conversation.GetConversationEntry(); //error scenario @@ -239,7 +251,7 @@ HBufC* body = conEntry->Description(); if( body && body->Length()) { - QString bodytext(S60QConversions::s60DescToQString(*body)); + QString bodytext(XQConversions::s60DescToQString(*body)); item.setData(bodytext, BodyText); item.setData(bodytext, Subject ); } @@ -262,7 +274,7 @@ //display name if(disName && disName->Length()) { - displayName = S60QConversions::s60DescToQString(*disName); + displayName = XQConversions::s60DescToQString(*disName); item.setData(displayName,DisplayName); } @@ -271,7 +283,7 @@ QString contactNumber(""); if ( contactno && contactno->Length() ) { - contactNumber = S60QConversions::s60DescToQString(*contactno); + contactNumber = XQConversions::s60DescToQString(*contactno); } item.setData(contactNumber, ConversationAddress); @@ -280,7 +292,9 @@ item.setData(contactId, ContactId); // unread status - item.setData(conEntry->IsAttributeSet(ECsAttributeUnread),UnReadStatus); + item.setData(conEntry->IsAttributeSet(ECsAttributeUnread),UnReadStatus); + + QCRITICAL_WRITE("ConversationsSummaryModel::populateItem start."); } @@ -293,7 +307,7 @@ { //TODO, needs to be revisited again, once BT team provides the solution for //BT received as Biomsg issue. - QString description = S60QConversions::s60DescToQString(*(entry.Description())); + QString description = XQConversions::s60DescToQString(*(entry.Description())); if (description.contains(".vcf") || description.contains(".ics")) // "vCard" { @@ -301,7 +315,8 @@ item.setData(ConvergedMessage::VCard, MessageSubType); //parse vcf file to get the details - QString displayName = ConversationsEngineUtility::getVcardDisplayName(description); + QString displayName = MsgContactHandler::getVCardDisplayName( + description); item.setData(displayName, BodyText); } else @@ -341,7 +356,8 @@ QString attachmentPath = attList[0]->path(); //get display-name and set as bodytext - QString displayName = ConversationsEngineUtility::getVcardDisplayName(attachmentPath); + QString displayName = MsgContactHandler::getVCardDisplayName( + attachmentPath); item.setData(displayName, BodyText); // clear attachement list : its allocated at data model @@ -353,12 +369,43 @@ else if (ConvergedMessage::VCal == msgSubType) { //not supported } - else { + else if (ConvergedMessage::RingingTone == msgSubType) { + if (bioMsgPlugin->attachmentCount() > 0) { + UniMessageInfoList attList = bioMsgPlugin->attachmentList(); + QString attachmentPath = attList[0]->path(); + + //get tone title, and set as bodytext + RingBc ringBc; + item.setData(ringBc.toneTitle(attachmentPath), BodyText); + while (!attList.isEmpty()) { + delete attList.takeFirst(); + } + } + } + + else if(ConvergedMessage::NokiaService == msgSubType){ + // This is a bio message so lets parse it and see if it has a associated attachment .. + if (bioMsgPlugin->attachmentCount() > 0) { + // TODO : need to confirm if we need to read from attachment + } + else {// description + HBufC* description = entry.Description(); + QString subject(""); + if (description && description->Length()) { + subject = (XQConversions::s60DescToQString(*description)); + item.setData(subject, BodyText); + } + + } + + } + + else { // description HBufC* description = entry.Description(); QString subject(""); if (description && description->Length()) { - subject = (S60QConversions::s60DescToQString(*description)); + subject = (XQConversions::s60DescToQString(*description)); item.setData(subject, BodyText); } }