logsui/logscntfinder/tsrc/stubs/qtcontacts_stubs.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 02 Sep 2010 20:27:05 +0300
changeset 16 c5af8598d22c
parent 14 f27aebe284bb
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* 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 <QContactManager.h>
#include <QContactDetailFilter.h>
#include <QContactPhoneNumber.h>
#include <QSharedDataPointer>
#include <QContactName.h>
#include <QContactDetail.h>
#include <QContactAction.h>

#include <QSharedData>
#include <QContactAvatar.h>

#include "qtcontacts_stubs.h"

ContactQueryResults* ContactQueryResults::mInstance = 0;
QString cntPreferredPhoneNumber = "123456";

void ContactStubHelper::setPreferredNumber(QString number)
{
    cntPreferredPhoneNumber = number;
}

QString ContactStubHelper::preferredNumber()
{
    return cntPreferredPhoneNumber;
}

// -----------------------------------------------------------------------------
// ContactQueryResults::instance()
// -----------------------------------------------------------------------------
//
ContactQueryResults* ContactQueryResults::instance()
{
    if ( !mInstance ) {
        mInstance = new ContactQueryResults();
    }
    return mInstance;
}

// -----------------------------------------------------------------------------
// ContactQueryResults::deleteInstance()
// -----------------------------------------------------------------------------
//
void ContactQueryResults::deleteInstance()
{
    delete mInstance;
    mInstance = 0;
}

// -----------------------------------------------------------------------------
// ContactQueryResults::~ContactQueryResults()
// -----------------------------------------------------------------------------
//
ContactQueryResults::~ContactQueryResults()
{
    reset();
}

// -----------------------------------------------------------------------------
// ContactQueryResults::set()
// -----------------------------------------------------------------------------
//
void ContactQueryResults::set( int count, QString fn, QString ln )
{
    reset();
    for( int i=0;i<count;i++ ) {
        mDB.append( fn + QString::number( i + 1 ) );
        mDB.append( ln + QString::number( i + 1 ) );
    }
}

// -----------------------------------------------------------------------------
// ContactQueryResults::reset()
// -----------------------------------------------------------------------------
//
void ContactQueryResults::reset()
{
    mDB.clear();
    mQuery.clear();
}


// -----------------------------------------------------------------------------
// ContactQueryResults::firstNameAt()
// -----------------------------------------------------------------------------
//
const QString& ContactQueryResults::firstNameAt( int index ) const
{
    return mDB[ index ];
}

// -----------------------------------------------------------------------------
// ContactQueryResults::lastNameAt()
// -----------------------------------------------------------------------------
//
const QString& ContactQueryResults::lastNameAt( int index ) const
{
    return mDB[ index + 1 ];
}

// -----------------------------------------------------------------------------
// ContactQueryResults::contacts()
// -----------------------------------------------------------------------------
//
int ContactQueryResults::contacts() const
{
    return (mDB.length() ? mDB.length() / 2 : 0);
}


QTM_USE_NAMESPACE

class QtMobility::QContactData : public QSharedData
{
public:
    QContactData(): QSharedData()
    {
    }

    ~QContactData() {}
    
    QContactId m_id;
    
};

class QtMobility::QContactDetailPrivate : public QSharedData
{
public:
    QContactDetailPrivate(): QSharedData()
    {
    }

    ~QContactDetailPrivate() {}
};

// ----------------------------------------------------------------------------
// QContactManager
// ----------------------------------------------------------------------------
//
QContactManager::QContactManager(
        const QString& managerName, const QMap<QString, QString>& parameters, 
        QObject* parent)
{
    Q_UNUSED(managerName)
    Q_UNUSED(parameters)
    Q_UNUSED(parent)

}

QContactManager::~QContactManager()
{

}


QList<QContactLocalId> QContactManager::contactIds(
        const QContactFilter& filter, 
        const QList<QContactSortOrder>& sortOrders ) const
{
    Q_UNUSED(filter)
    Q_UNUSED(sortOrders)
        
    QList<QContactLocalId> list;
    ContactQueryResults* resultSet = ContactQueryResults::instance();
    
    for( int i=0;i<resultSet->contacts();i++) {
        list.append( i + 1 );
    }
    resultSet->allResultsAdded();
    
    return list;
}


QContact QContactManager::contact( 
        const QContactLocalId& contactId, 
        const QContactFetchHint& fetchHint) const
{
    Q_UNUSED(fetchHint)
            
    QContact contact;
    QContactId id;
    id.setLocalId(contactId  );

    contact.setId( id );
    return contact;
}


// ----------------------------------------------------------------------------
// QContactDetailFilter
// ----------------------------------------------------------------------------
//
QContactDetailFilter::QContactDetailFilter()
{

}
  
void QContactDetailFilter::setDetailDefinitionName(
        const QString& definition, const QString& fieldName )
{
    Q_UNUSED(definition)
    Q_UNUSED(fieldName)

}


void QContactDetailFilter::setMatchFlags(QContactFilter::MatchFlags flags )
{
    Q_UNUSED(flags)

}
void QContactDetailFilter::setValue(const QVariant& value )
{
    ContactQueryResults* resultSet = ContactQueryResults::instance();
    resultSet->filterValueSet( value.toString() );
    
}

QVariant QContactDetailFilter::value() const
{
    return QVariant();
}


// ----------------------------------------------------------------------------
// QContact
// ----------------------------------------------------------------------------
//
QContact::QContact() : d(new QContactData)
{

}

QContact::~QContact()
{

}


QContact& QContact::operator=(const QContact& other )
{
    Q_UNUSED(other)
    return *this;
}

QContactDetail QContact::detail(const char* definitionId) const
{
    return detail( QString( definitionId ) );
}


QContactDetail QContact::detail(const QString& definitionId) const
{
    ContactQueryResults* results = ContactQueryResults::instance();
    
    if ( definitionId == QContactName::DefinitionName ){
        QContactName name;
        QContactLocalId id = localId();
        name.setValue(QContactName::FieldFirstName, results->firstNameAt( (int) id-1 ) );
        name.setValue(QContactName::FieldLastName, results->lastNameAt( (int) id-1 ) );
        return name;
    }
    if ( definitionId == QContactPhoneNumber::DefinitionName ){
        QContactPhoneNumber number;
        number.setValue(QContactPhoneNumber::FieldNumber, cntDetailPhoneNumber );
        return number;
    }
    if ( definitionId == QContactAvatar::DefinitionName){
        QContactAvatar avatar;
        avatar.setValue(QContactAvatar::FieldImageUrl, "c:\\data\\images\\logstest1.jpg" );
        return avatar;
    }
    QContactDetail detail;
    return detail;
}

QContactDetail QContact::preferredDetail(const QString& actionName) const
{
    Q_UNUSED(actionName)
    QContactPhoneNumber number;
    number.setValue(QContactPhoneNumber::FieldNumber, cntPreferredPhoneNumber );
    return number;
}

QContactDetail QContact::detailWithAction( QContactAction* action ) const
{
    Q_UNUSED(action)
    QContactPhoneNumber number;
    number.setValue(QContactPhoneNumber::FieldNumber, cntPhoneNumberWithActionCall );
    return number;
}

QContactAction* QContactAction::action(const QContactActionDescriptor& descriptor)
{
    Q_UNUSED(descriptor)
    return 0;        
}

// ----------------------------------------------------------------------------
// QContactDetail
// ----------------------------------------------------------------------------
//
QContactDetail::QContactDetail()
{

}

QContactDetail::QContactDetail(const QString& definitionName ) : d(new QContactDetailPrivate)
{
    Q_UNUSED(definitionName)
}

QContactDetail::~QContactDetail()
{

}


QContactDetail& QContactDetail::operator=(const QContactDetail& other )
{
    Q_UNUSED(other)
    return *this;
}

QString QContactDetail::definitionName() const
{
    return QString("");
}

bool QContactDetail::isEmpty() const
{
    return false;
}


QVariant QContactDetail::variantValue(const QString& key) const
{
    QString val = value(key);
    return val;
}