qtmobileextensions/src/utils/xqconversions.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 16:41:33 +0300
changeset 5 453da2cfceef
parent 1 2b40d63a9c3d
permissions -rw-r--r--
Revision: 201017 Kit: 201019

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, version 2.1 of the License.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program.  If not, 
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
*
* Description:
*
*/

#include "xqconversions.h"
#include "utf.h"

/*!
    \class XQConversions
    \brief The XQConversions class offers functions for converting between Symbian S60 data types and Qt data types.
*/

/*!
    Converts a Symbian S60 descriptor (string) to a QString

    \param desc descriptor to be converted
    \return QString containing the converted string
*/
QString XQConversions::s60DescToQString(const TDesC& desc)
{
    return QString::fromUtf16(desc.Ptr(), desc.Length());
}

/*!
    Converts a QString to a Symbian S60 descriptor (string).

    Note: Ownership of the returned descriptor (string) is transferred to caller.

    \param string QString to be converted
    \return Pointer to a Symbian S60 descriptor on success;
            otherwise returns NULL pointer
*/
HBufC* XQConversions::qStringToS60Desc(const QString& string)
{
    TPtrC16 str(reinterpret_cast<const TUint16*>(string.utf16()));
    return str.Alloc();
}

/*!
    Converts a Symbian S60 8 bit descriptor (UTF8 string) to a QString

    \param desc 8 bit descriptor to be converted
    \return Converted QString on success; otherwise returns null QString
*/
QString XQConversions::s60Desc8ToQString(const TDesC8& desc)
{
    QString qtString;
    HBufC* s60str;
    TRAPD(error, s60str = CnvUtfConverter::ConvertToUnicodeFromUtf8L(desc));
    if (error == KErrNone)
    {
        qtString = QString::fromUtf16(s60str->Ptr(), s60str->Length());
        delete s60str;
    }
    return qtString;
}

/*!
    Converts a QString to a Symbian S60 8 bit descriptor (UTF8 string).

    Note: Ownership of the returned descriptor (string) is transferred to the caller

    \param string QString to be converted
    \return Pointer to a Symbian S60 descriptor containing the UTF8 string on success;
            otherwise returns NULL pointer
*/
HBufC8* XQConversions::qStringToS60Desc8(const QString& string)
{
    TPtrC16 str(reinterpret_cast<const TUint16*>(string.utf16()));
    HBufC8* s60str;
    TRAPD(error, s60str = CnvUtfConverter::ConvertFromUnicodeToUtf8L(str));
    if (error != KErrNone)
    {
        return NULL;
    }
    return s60str;
}

/*!
    Converts a Symbian S60 8 bit descriptor to a QByteArray

    \param desc 8 bit descriptor to be converted
    \return QByteArray on success; otherwise returns null QByteArray
*/
QByteArray XQConversions::s60Desc8ToQByteArray(const TDesC8& desc)
{
    return QByteArray((const char*)desc.Ptr(), desc.Length());
}

/*!
    Converts a QByteArray to a Symbian S60 8 bit descriptor.
    Note: Ownership of the returned descriptor (string) is transferred to the caller

    \param byteArray QByteArray to be converted
    \return Pointer to an 8 bit Symbian S60 descriptor string on success;
            otherwise returns NULL pointer
*/
HBufC8* XQConversions::qByteArrayToS60Desc8(const QByteArray& byteArray)
{
    TPtrC8 ptr8((TUint8*)(byteArray.constData()));
    return ptr8.Alloc();
}

// End of file