diff -r e7aa27f58ae1 -r 578830873419 emailservices/emailcommon/src/nmconverter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/emailservices/emailcommon/src/nmconverter.cpp Fri Apr 16 14:51:52 2010 +0300 @@ -0,0 +1,227 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include "nmconverter.h" + +/*! + \brief It convert FSMailSortCriteria to NmMailSortCriteria + */ +EXPORT_C NmMailSortCriteria NmConverter::FSMailSortCriteria2NM(TFSMailSortCriteria criteria) +{ + NmMailSortCriteria toReturn; + + // setting defaults + toReturn.mField = NmMailDontCare; + toReturn.mOrder = NmMailDescending; + + switch (criteria.iField) { + case EFSMailDontCare: + toReturn.mField = NmMailDontCare; + break; + case EFSMailSortByDate: + toReturn.mField = NmMailSortByDate; + break; + case EFSMailSortBySender: + toReturn.mField = NmMailSortBySender; + break; + case EFSMailSortByRecipient: + toReturn.mField = NmMailSortByRecipient; + break; + case EFSMailSortBySubject: + toReturn.mField = NmMailSortBySubject; + break; + case EFSMailSortByPriority: + toReturn.mField = NmMailSortByPriority; + break; + case EFSMailSortByFlagStatus: + toReturn.mField = NmMailSortByFlagStatus; + break; + case EFSMailSortByUnread: + toReturn.mField = NmMailSortByUnread; + break; + case EFSMailSortBySize: + toReturn.mField = NmMailSortBySize; + break; + case EFSMailSortByAttachment: + toReturn.mField = NmMailSortByAttachment; + break; + } + + switch (criteria.iOrder) { + case EFSMailDescending: + toReturn.mOrder = NmMailDescending; + break; + case EFSMailAscending: + toReturn.mOrder = NmMailAscending; + break; + } + + return toReturn; +} + +/*! + \brief It convert TDesC to QString + */ +EXPORT_C QString NmConverter::toQString(const TDesC& aText) +{ + return QString::fromUtf16(aText.Ptr(), aText.Length()); +} + +/*! + \brief It convert TTime to QDateTime + */ +EXPORT_C QDateTime NmConverter::toQDateTime(const TTime& aTime) +{ + QDateTime toReturn; + TDateTime sTime = aTime.DateTime(); + + QDate qDate; + qDate.setDate(sTime.Year(), static_cast (sTime.Month()) + 1, sTime.Day() + 1); + + QTime qTime; + qTime.setHMS(sTime.Hour(), sTime.Minute(), sTime.Second()); + + toReturn.setDate(qDate); + toReturn.setTime(qTime); + + return toReturn; +} + +/*! + \brief It convert QDateTime to TTime + */ +EXPORT_C TTime NmConverter::toTTime(const QDateTime &aTime) +{ + QDate qDate = aTime.date(); + QTime qTime = aTime.time(); + + TDateTime sDateTime(qDate.year(), static_cast (qDate.month() - 1), qDate.day() - 1, + qTime.hour(), qTime.minute(), qTime.second(), 0); + + return TTime(sDateTime); +} + +/*! + \brief It convert NmMailSortCriteria to TFSMailSortCriteria + */ +EXPORT_C TFSMailSortCriteria NmConverter::NMMailSortCriteria2FS(NmMailSortCriteria criteria) +{ + TFSMailSortCriteria toReturn; + + // setting defaults + toReturn.iField = EFSMailDontCare; + toReturn.iOrder = EFSMailDescending; + + switch (criteria.mField) { + case NmMailDontCare: + toReturn.iField = EFSMailDontCare; + break; + case NmMailSortByDate: + toReturn.iField = EFSMailSortByDate; + break; + case NmMailSortBySender: + toReturn.iField = EFSMailSortBySender; + break; + case NmMailSortByRecipient: + toReturn.iField = EFSMailSortByRecipient; + break; + case NmMailSortBySubject: + toReturn.iField = EFSMailSortBySubject; + break; + case NmMailSortByPriority: + toReturn.iField = EFSMailSortByPriority; + break; + case NmMailSortByFlagStatus: + toReturn.iField = EFSMailSortByFlagStatus; + break; + case NmMailSortByUnread: + toReturn.iField = EFSMailSortByUnread; + break; + case NmMailSortBySize: + toReturn.iField = EFSMailSortBySize; + break; + case NmMailSortByAttachment: + toReturn.iField = EFSMailSortByAttachment; + break; + } + + switch (criteria.mOrder) { + case NmMailDescending: + toReturn.iOrder = EFSMailDescending; + break; + case NmMailAscending: + toReturn.iOrder = EFSMailAscending; + break; + } + + return toReturn; +} + +/*! + converts TFSMailMsgId to NmId + */ +EXPORT_C NmId NmConverter::mailMsgIdToNmId(const TFSMailMsgId aId) +{ + NmId id; + id.setId32( aId.Id() ); + id.setPluginId32( aId.PluginId().iUid ); + + return id; +} + +/*! + converts NmId to TFSMailMsgId + */ +EXPORT_C TFSMailMsgId NmConverter::nmIdToMailMsgId(const NmId aId) +{ + TFSMailMsgId id( aId.pluginId32(), aId.id32() ); + return id; +} + +/*! + converts QString to HBufC + */ +EXPORT_C HBufC* NmConverter::qstringToHBufCLC( const QString &string ) +{ + HBufC* buf = HBufC::NewLC(string.length()); + buf->Des().Copy( string.utf16() ); + return buf; +} + +/*! + Convert Qt NmAddress list into corresponding Symbian pointer array + */ +EXPORT_C RPointerArray NmConverter::toRPointerArray( + const QList &list) +{ + RPointerArray ret; + + for (QList::const_iterator it = list.constBegin(); + it != list.constEnd(); + ++it) { + + CFSMailAddress *item = NULL; + + TRAP_IGNORE(item = CFSMailAddress::NewL(*it)); + + if (item) { + ret.Append(item); + } + } + + return ret; +}