phonebookui/cntlistmodel/cntcacheitems.h
author hgs
Fri, 15 Oct 2010 12:24:46 +0300
changeset 81 640d30f4fb64
permissions -rw-r--r--
201041

/*
* Copyright (c) 2010 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: Classes for each of the items (name, info and icon) in cache.
*
*/

#ifndef CNTCACHEITEMS_H
#define CNTCACHEITEMS_H

#include <HbIcon>
#include <qtcontacts.h>
#include <cntuids.h>

QTM_USE_NAMESPACE

class CntNameCacheItem
{
public:
    CntNameCacheItem(QContactLocalId id, const QString &firstName, const QString &lastName, CntNameOrder nameFormat);
    ~CntNameCacheItem();
    QContactLocalId contactId() const { return mContactId; }
    QString name() const { return mName; }
    QString firstName() const;
    QString lastName() const;
    void setNameFormat(CntNameOrder newFormat);
    void operator=(const CntNameCacheItem &other);
    void externalize(QDataStream &stream);
    static CntNameCacheItem* internalize(QDataStream &stream, CntNameOrder nameFormat);

private:
    void setFormattedName(const QString &firstName, const QString &lastName, CntNameOrder nameFormat);

private:
    QContactLocalId mContactId; // database contact id for this name
    int mFirstNamePosition;     // length << 16 | offset
    int mLastNamePosition;      // length << 16 | offset
    QString mName;              // formatted name
};

class CntInfoCacheItem
{
public:
    QContactLocalId contactId;
    QString text;
    QString icons[2];
    QTime lastRequest;
};

class CntIconCacheItem
{
public:
    QString iconName;
    HbIcon icon;
    QList<QContactLocalId> requestedBy;
    QTime lastRequest;
};

#endif