phonebookui/pbkcommonui/tsrc/mobactionextensionexample/src/mobbaseaction.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 "mobbaseaction.h"

#include <xqservicerequest.h>
#include <qcontactphonenumber.h>
#include <qcontactonlineaccount.h>
#include <qcontactfilters.h>
#include <QDebug>

MobBaseAction::MobBaseAction(const QString &actionName, const QString& vendorName) :
        m_actionName(actionName),
        m_vendorName(vendorName),
        m_implementationVersion(1),
        m_result(), 
        m_contact(),
        m_detail()
{
}
        
MobBaseAction::~MobBaseAction()
{
}

QContactActionDescriptor MobBaseAction::actionDescriptor() const
{
    QContactActionDescriptor ret;
    ret.setActionName(m_actionName);
    ret.setVendorName(m_vendorName);
    ret.setImplementationVersion(m_implementationVersion);
    return ret;
}

bool MobBaseAction::invokeAction(const QContact& contact, const QContactDetail& detail, const QVariantMap& parameters)
{
	m_contact = contact;
	m_detail  = detail;
}

//Clears the action data, is called after the result has been emitted to contact (emitResult function)
void MobBaseAction::resetAction()
{
	m_contact = QContact(); 
	m_detail  = QContactDetail();
}

//returns whether the actionDescription is supported by this action
bool MobBaseAction::actionDescriptionSupported(const QContactActionDescriptor& descriptor) const
{
    bool supported(false);
    
    if ((descriptor.actionName() == m_actionName) && (descriptor.vendorName() == m_vendorName) && (descriptor.implementationVersion() == m_implementationVersion))
        supported = true;
    else
        supported = false; 
    
    return supported;       
}

//emit the result to the client
void MobBaseAction::emitResult(int errorCode, const QVariant &retValue)
{
//	m_result.clear();
//	m_result.insert("Error", QVariant(errorCode));
//	m_result.insert("ReturnValue", retValue);
//	
//	QContactAction::Status status;
//	
//	if (errorCode == 0){
//		status = QContactAction::Finished;
//	}
//	
//	else{
//		status = QContactAction::FinishedWithError;
//	}
//	
//	emit progress(status, m_result);

	resetAction(); //reset values in the action
}

QVariantMap MobBaseAction::results() const
{
    return m_result;
}