phonebookui/pbkcommonui/tsrc/mobactionextensionexample/src/mobexampledynamicaction.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 12:45:19 +0300
changeset 37 fd64c38c277d
permissions -rw-r--r--
Revision: 201019 Kit: 2010121

/*
* 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:
*
*/

#include "mobexampledynamicaction.h"
#include <qcontactonlineaccount.h>
#include <xqservicerequest.h>
#include <qcontactphonenumber.h>
#include <qcontactfilters.h>
#include <cntuiactionextension.h>

//Action class
MobExampleDynamicAction::MobExampleDynamicAction(const QString& actionName, const QString& vendorName) : 
    MobBaseAction(actionName, vendorName)
{
}

MobExampleDynamicAction::MobExampleDynamicAction(const QString& actionName, const QString& vendorName, const MobExampleDynamicAction& copy) : 
    MobBaseAction(actionName, vendorName)
{
    mTitleField = copy.mTitleField;
    mValueField = copy.mValueField;
    mTitleFieldDetail = copy.mTitleFieldDetail;
    mValueFieldDetail = copy.mValueFieldDetail;
    mIcon = copy.mIcon;
    mFilter = copy.mFilter;
    mDefinitionName = copy.mDefinitionName;
}

MobExampleDynamicAction::~MobExampleDynamicAction()
{
}

QVariantMap MobExampleDynamicAction::metaData() const
{
    QVariantMap variantMap;
    
    variantMap.insert(KCntUiActionMetaTitleTextDetail, !mTitleField.isEmpty() ? mTitleField : mTitleFieldDetail);
    
    if(!mValueFieldDetail.isEmpty())
        variantMap.insert(KCntUiActionMetaValueTextDetail, mValueFieldDetail);
    else if(!mValueField.isEmpty())
        variantMap.insert(KCntUiActionMetaValueText, mValueField);
    // Must be QIcon
    QIcon icon(mIcon);
    QVariant iconVariant(icon);
    variantMap.insert("icon", iconVariant);
    return variantMap;
}

QContactFilter MobExampleDynamicAction::contactFilter(const QVariant& value) const
{
    return mFilter;
}

bool MobExampleDynamicAction::isDetailSupported(const QContactDetail &detail, const QContact &contact) const
{
    if(mDefinitionName == detail.definitionName())
    {
        return true;
    }
    else
    {
        return false;
    }
}

QList<QContactDetail> MobExampleDynamicAction::supportedDetails(const QContact& contact) const
{
    
}

QContactAction::State MobExampleDynamicAction::state() const
{
    
}

MobExampleDynamicAction* MobExampleDynamicAction::clone() const
{
     return new MobExampleDynamicAction(m_actionName, m_vendorName, *this);
}

void MobExampleDynamicAction::setDefinitionName(const QString& definitionName)
{
    mDefinitionName = definitionName;
}

void MobExampleDynamicAction::setFilter(QContactFilter filter)
{
    mFilter = filter;
}

void MobExampleDynamicAction::setIcon(QIcon icon)
{
    mIcon = icon;
}

void MobExampleDynamicAction::setTitleField(QString titleField)
{
    mTitleField = titleField;
}

void MobExampleDynamicAction::setValueField(QString valueField)
{
    mValueField = valueField;
}

void MobExampleDynamicAction::setTitleFieldDetail(QString titleFieldDetail)
{
    mTitleFieldDetail = titleFieldDetail;
}

void MobExampleDynamicAction::setValueFieldDetail(QString valueFieldDetail)
{
    mValueFieldDetail = valueFieldDetail;
}