qthighway/examples/serviceapp/src/serviceapp.cpp
branchRCL_3
changeset 10 cd2778e5acfe
parent 9 5d007b20cfd0
child 11 19a54be74e5e
--- a/qthighway/examples/serviceapp/src/serviceapp.cpp	Tue Aug 31 16:02:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1070 +0,0 @@
-/*
-* 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 "xqservicelog.h"
-
-#include <QApplication>
-#include <QKeyEvent>
-#include <QLabel>
-#include <QVBoxLayout>
-#include <QStackedWidget>
-#include <QImageReader>
-#include <QDebug>
-#include <QTimer>
-#include <QPushButton>
-#include <QLineEdit>
-#include <QListView>
-#include <QMessageBox>
-#include <xqsharablefile.h>
-
-#include "testservicedata.h"
-#include "serviceapp.h"
-#include <xqserviceutil.h>
-
-ServiceApp::ServiceApp(QWidget *parent, Qt::WFlags f)
-    : QWidget(parent, f),
-      mDialService(NULL),
-      mUriService(NULL),
-      mFileService(NULL),
-      mNewDialService(NULL),
-      mNewFileService(NULL),
-      mNewUriService(NULL)
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::ServiceApp");
-    if (XQServiceUtil::isService())
-    {
-        mDialService = new DialerService(this);
-        mUriService = new UriService(this);
-        mFileService = new FileService(this);
-        mNewDialService = new NewDialerService(this);
-        mNewUriService = new NewUriService(this);
-        mNewFileService = new NewFileService(this);
-    }
-    /* Adjust the palette */
-#if defined(Q_WS_S60)
-    QPalette p = qApp->palette();
-    QColor color(192,192,192);
-    QColor bg(201,250,250);
-    p.setColor(QPalette::Highlight, color.lighter(200));
-    p.setColor(QPalette::Text, Qt::black);
-    p.setColor(QPalette::Base, bg);
-    p.setColor(QPalette::WindowText, Qt::black);
-    p.setColor(QPalette::Window, bg);
-    p.setColor(QPalette::ButtonText, Qt::black);
-    p.setColor(QPalette::Button, color.lighter(150));
-    p.setColor(QPalette::Link, QColor(240,40,40));
-
-    qApp->setPalette(p);
-#endif
-
-    QPushButton *quitButton = new QPushButton(tr("Quit"));
-    QPushButton *answerButtonDial = new QPushButton(tr("Dial answer"));
-    QPushButton *answerButtonUri = new QPushButton(tr("Uri answer"));
-    QPushButton *answerButtonFile = new QPushButton(tr("File answer"));
-    connect(quitButton, SIGNAL(clicked()), this, SLOT(quit()));
-    connect(answerButtonDial, SIGNAL(clicked()), this, SLOT(answerDial()));
-    connect(answerButtonUri, SIGNAL(clicked()), this, SLOT(answerUri()));
-    connect(answerButtonFile, SIGNAL(clicked()), this, SLOT(answerFile()));
-
-    /*
-    mEndCallButton = new QPushButton(tr("End Call"));
-    mEndCallButton->setEnabled(false);
-    connect(mEndCallButton, SIGNAL(clicked()), this, SLOT(endCall()));
-    */
-    bool isService = XQServiceUtil::isService();
-    QString interface = XQServiceUtil::interfaceName();
-    QString operation = XQServiceUtil::operationName();
-    
-    QString t = "SERVICEAPP:\n";
-    t = t + (isService ?  "    Service launch\n" : "    Normal launch\n");
-    t = t + (XQServiceUtil::isEmbedded() ? "    Embedded\n" : "    Not embedded\n");
-    t = t + ("    Interface=" + interface + "\n");
-    t = t + ("    Operation=" + operation + "\n");
-
-    QLabel *title = new QLabel(t);
-
-    mLabel = new QLabel("");
-    mNumber = new QLineEdit("");
-    
-    QVBoxLayout *vl = new QVBoxLayout;
-    vl->setMargin(0);
-    vl->setSpacing(0);
-
-    vl->addWidget(quitButton);
-    vl->addWidget(answerButtonDial);
-    vl->addWidget(answerButtonUri);
-    vl->addWidget(answerButtonFile);
-    vl->addWidget(title);
-    vl->addWidget(mLabel);
-    vl->addWidget(mNumber);
-
-    setLayout(vl);
-   
-#if defined(Q_WS_X11) || defined(Q_WS_WIN)
-    setFixedSize(QSize(360,640)); // nHD
-#elif defined(Q_WS_S60)
-    // showMaximized();
-    showFullScreen();
-#endif
-//    new DialerService(this);
-}
-
-
-ServiceApp::~ServiceApp()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::~ServiceApp");
-    delete mDialService;
-    delete mUriService;
-    delete mFileService;
-}
-
-void ServiceApp::quit()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::quit");
-    qApp->quit();
-}
-
-void ServiceApp::answerDial()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::answerDial");
-    if (mDialService && mDialService->asyncAnswer())
-    {
-        mDialService->complete(mNumber->text());
-    }
-    if (mNewDialService && mNewDialService->asyncAnswer())
-    {
-        mNewDialService->complete(mNumber->text());
-    }
-}
-
-
-void ServiceApp::answerUri()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::answerUri");
-    if (mUriService && mUriService->asyncAnswer())
-    {
-        mUriService->complete(true);
-    }
-    if (mNewUriService && mNewUriService->asyncAnswer())
-    {
-        mNewUriService->complete(true);
-    }
-}
-
-void ServiceApp::answerFile()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::answerFile");
-    if (mFileService && mFileService->asyncAnswer())
-    {
-        mFileService->complete(true);
-    }
-    if (mNewFileService && mNewFileService->asyncAnswer())
-    {
-        mNewFileService->complete(true);
-    }
-}
-
-
-
-void ServiceApp::endCall()
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::endCall");
-    //QVBoxLayout *vl = qobject_cast<QVBoxLayout *>(layout()) ;
-    //vl->removeWidget(mEndCallButton);
-
-    //XQServiceUtil::toBackground(true);
-}
-
-void ServiceApp::setLabelNumber(QString label,QString number)
-{
-    XQSERVICE_DEBUG_PRINT("ServiceApp::setLabelNumber");
-    mLabel->setText(label);
-    mNumber->setText(number);
-}
-
-// ----------DialerService---------------
-
-DialerService::DialerService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.Dialer"),parent),
-  mServiceApp(parent)
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::DialerService");
-    publishAll();
-}
-
-DialerService::~DialerService()
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::~DialerService");
-}
-
-void DialerService::complete(QString number)
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::complete");
-
-    // Complete all IDs
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("DialerService::complete %d", reqId);
-        completeRequest(reqId, number.toInt());
-    }
-}
-
-int DialerService::dial(const QString& number, bool asyncAnswer)
-{
-    Q_UNUSED(asyncAnswer);
-    
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,DialerService::dial", qPrintable(testCase));
-    
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(), info.clientSecureId(), info.clientVendorId());
-    QSet<int> caps = info.clientCapabilities();
-    QSetIterator<int> i(caps);
-    while (i.hasNext())
-        qDebug() << "Has capability " << i.next();    
-    XQSERVICE_DEBUG_PRINT("\tRequest info: embed=%d,sync=%d", info.isEmbedded(), info.isSynchronous());
-
-    bool isAsync = !info.isSynchronous();
-    QString label = "Dialer::dial:\n";
-    label += QString("number=%1\n").arg(number);
-    label += QString("async=%1\n").arg(isAsync);
-    
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-    
-    mNumber = number ;
-    mServiceApp->setLabelNumber(label, number);
-    int ret = 0;
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    else
-    {
-        ret = number.toInt();
-    }
-    return ret;
-}
-
-CntServicesContactList DialerService::testContactList(CntServicesContactList list)
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::testContactList");
-    showRecipients(list);
-
-    // Create output
-    CntServicesContact cnt1;
-    cnt1.mDisplayName = "Test1-Return";
-    cnt1.mPhoneNumber = "060-1111111";
-    cnt1.mEmailAddress = "test1.return@nokia.com";
-
-    CntServicesContact cnt2;
-    cnt2.mDisplayName = "Test1-Return";
-    cnt2.mPhoneNumber = "060-2222222";
-    cnt2.mEmailAddress = "test2.return@nokia.com";
-
-    CntServicesContactList ret;
-    ret.append(cnt1);
-    ret.append(cnt2);
-
-    return ret;
-    
-}
-
-QVariant DialerService::testVariant(QVariant variant)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,DialerService::testVariant", qPrintable(testCase));
-
-    XQSERVICE_DEBUG_PRINT("DialerService::testVariant::variant(%d,%d,%s)",
-                          variant.type(), variant.userType(), variant.typeName());
-    XQSERVICE_DEBUG_PRINT("DialerService::testVariant::variant value=%s", qPrintable(variant.toString()));
-
-    if (variant.typeName() == QLatin1String("QStringList"))
-    {
-        qDebug() << "DialerService::testVariant QStringList";
-        QStringList ret = variant.toStringList();
-        return qVariantFromValue(ret);
-    }
-    else if (variant.typeName() == QLatin1String("XQShabarableFile"))
-    {
-        qDebug() << "DialerService::testVariant XQShabarableFile";
-        XQSharableFile sf = variant.value<XQSharableFile>();
-        
-        RFile file;
-        bool ok = sf.getHandle( file );
-        if (ok)
-        {
-            HBufC8* data = HBufC8::NewL(100);
-            TPtr8 ptr = data->Des();
-            TInt err  = file.Read( ptr );
-            QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length());
-            XQSERVICE_DEBUG_PRINT("DialerService::testVariant ::file content,%d,%s", err, qPrintable(text));
-            sf.close();
-            delete data;
-        }
-
-        return QVariant(ok);
-        
-    }
-    else if (variant.typeName() == QLatin1String("XQRequestInfo"))
-    {
-        qDebug() << "DialerService::testVariant XQRequestInfo";
-        XQRequestInfo info = variant.value<XQRequestInfo>();
-        QStringList keys = info.infoKeys();
-        foreach (QString key, keys)
-        {
-            XQSERVICE_DEBUG_PRINT("DialerService::testVariant: info %s=%s",
-                                  qPrintable(key),
-                                  qPrintable(info.info(key).toString()));
-        }
-
-        return qVariantFromValue(info);
-        
-    }
-    else if (variant.typeName() == QLatin1String("CntServicesContactList"))
-    {
-        qDebug() << "DialerService::testVariant CntServicesContactList";
-        // Show input
-        showRecipients(variant);
-
-        // Create output
-        CntServicesContact cnt1;
-        cnt1.mDisplayName = "Test1-Return";
-        cnt1.mPhoneNumber = "060-1111111";
-        cnt1.mEmailAddress = "test1.return@nokia.com";
-
-        CntServicesContact cnt2;
-        cnt2.mDisplayName = "Test1-Return";
-        cnt2.mPhoneNumber = "060-2222222";
-        cnt2.mEmailAddress = "test2.return@nokia.com";
-
-        CntServicesContactList list;
-        list.append(cnt1);
-        list.append(cnt2);
-
-        // Return contact list back
-        return qVariantFromValue(list);
-    }
-    else
-    {
-        return variant.toString();
-    }
-}
-
-void DialerService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::handleClientDisconnect");
-
-    // Get the info of the cancelled request
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tDisconnected request info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-    
-    // Just quit service application if client ends
-    mServiceApp->quit();
-}
-
-void DialerService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("DialerService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-}
-
-
-
-void DialerService::showRecipients(QVariant &value)
-{
-    CntServicesContactList list;
-    if(value.canConvert<CntServicesContactList>())
-    {
-        qDebug() << "DialerService::showRecipients: canConvert";
-        list = qVariantValue<CntServicesContactList>(value);
-    }
-    else
-    {
-        qDebug() << "DialerService::showRecipients: canConvert NOK";
-        return;
-    }    
-
-    showRecipients(list);
-}
-
-void DialerService::showRecipients(CntServicesContactList &list)
-{
-    if (list.count() == 0)
-    {
-        qDebug() << "DialerService::showRecipients(2): Count==0";
-    }
-    else
-    {
-        for (int i = 0; i < list.count(); ++i)
-        {
-            qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mDisplayName;
-            qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mPhoneNumber;
-            qDebug() << "DialerService::showRecipients(2)[" << i << "]=" << list[i].mEmailAddress;
-        }
-    }
-}
-
-
-// ----------New dialler service---------------
-
-NewDialerService::NewDialerService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("serviceapp.Dialer"),parent),
-mServiceApp(parent)
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::NewDialerService");
-    publishAll();
-}
-
-NewDialerService::~NewDialerService()
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::~NewDialerService");
-}
-
-void NewDialerService::complete(QString number)
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::complete");
-
-    // Complete all IDs
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("NewDialerService::complete %d", reqId);
-        completeRequest(reqId, number.toInt());
-    }
-}
-
-int NewDialerService::dial(const QString& number, bool asyncAnswer)
-{
-    Q_UNUSED(asyncAnswer);
-
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewDialerService::dial", qPrintable(testCase));
-    
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(), info.clientSecureId(), info.clientVendorId());
-    QSet<int> caps = info.clientCapabilities();
-    QSetIterator<int> i(caps);
-    while (i.hasNext())
-        qDebug() << "Has capability " << i.next();    
-    XQSERVICE_DEBUG_PRINT("\tRequest info: embed=%d,sync=%d", info.isEmbedded(), info.isSynchronous());
-
-    bool isAsync = !info.isSynchronous();
-    
-    QString label = "NewDialer::dial:\n";
-    label += QString("number=%1\n").arg(number);
-    label += QString("async=%1\n").arg(isAsync);
-
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-
-    mNumber = number ;
-    mServiceApp->setLabelNumber(label, number);
-    int ret = 0;
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    else
-    {
-        ret = number.toInt();
-    }
-    return ret;
-}
-
-CntServicesContactList NewDialerService::testContactList(CntServicesContactList list)
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::testContactList");
-    showRecipients(list);
-
-    // Create output
-    CntServicesContact cnt1;
-    cnt1.mDisplayName = "Test1-Return";
-    cnt1.mPhoneNumber = "060-1111111";
-    cnt1.mEmailAddress = "test1.return@nokia.com";
-
-    CntServicesContact cnt2;
-    cnt2.mDisplayName = "Test1-Return";
-    cnt2.mPhoneNumber = "060-2222222";
-    cnt2.mEmailAddress = "test2.return@nokia.com";
-
-    CntServicesContactList ret;
-    ret.append(cnt1);
-    ret.append(cnt2);
-
-    return ret;
-
-}
-
-QVariant NewDialerService::testVariant(QVariant variant)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewDialerService::testVariant", qPrintable(testCase));
-    
-    XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant::variant(%d,%d,%s)",
-                          variant.type(), variant.userType(), variant.typeName());
-    XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant::variant value=%s", qPrintable(variant.toString()));
-
-    if (variant.typeName() == QLatin1String("QStringList"))
-    {
-        QStringList ret = variant.toStringList();
-        return qVariantFromValue(ret);
-    }
-    else if (variant.typeName() == QLatin1String("TestServiceDataList"))
-    {
-        qDebug() << "DialerService::testVariant TestServiceDataList";
-        TestServiceDataList list;
-        if(variant.canConvert<TestServiceDataList>())
-        {
-            qDebug() << "DialerService::TestServiceDataList: canConvert OK";
-            list = qVariantValue<TestServiceDataList>(variant);
-            for (int i = 0; i < list.count(); ++i)
-            {
-                qDebug() << "DialerService::TestServiceDataList[" << i << "]=" << list[i].mType;
-                qDebug() << "DialerService::TestServiceDataList[" << i << "]=" << list[i].mData.toString();
-            }
-        }
-        else
-        {
-            qDebug() << "DialerService::TestServiceDataList: canConvert NOK";
-        }    
-
-        TestServiceDataList resultList;
-        QVariant v1;
-        QVariant v2;
-        QVariant v3;
-        v1.setValue((int)99);
-        v2.setValue((bool)false);
-        v3.setValue(QString("Variant3 return"));
-        TestServiceData data1(1, v1);
-        TestServiceData data2(2, v2);
-        TestServiceData data3(3, v3);
-        resultList.append(data1);
-        resultList.append(data2);
-        resultList.append(data3);
-        
-        // Return some data back
-        return qVariantFromValue(resultList);
-    }
-    else if (variant.typeName() == QLatin1String("XQShabarableFile"))
-    {
-        XQSharableFile sf = variant.value<XQSharableFile>();
-
-        RFile file;
-        bool ok = sf.getHandle( file );
-        if (ok)
-        {
-            HBufC8* data = HBufC8::NewL(100);
-            TPtr8 ptr = data->Des();
-            TInt err  = file.Read( ptr );
-            QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length());
-            XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant ::file content,%d,%s", err, qPrintable(text));
-            sf.close();
-            delete data;
-        }
-
-        return QVariant(ok);
-
-    }
-    else if (variant.typeName() == QLatin1String("XQRequestInfo"))
-    {
-        XQRequestInfo info = variant.value<XQRequestInfo>();
-        QStringList keys = info.infoKeys();
-        foreach (QString key, keys)
-        {
-            XQSERVICE_DEBUG_PRINT("NewDialerService::testVariant: info %s=%s",
-                                  qPrintable(key),
-                                  qPrintable(info.info(key).toString()));
-        }
-
-        return qVariantFromValue(info);
-
-    }
-    else if (variant.typeName() == QLatin1String("CntServicesContactList"))
-    {
-        // Show input
-        showRecipients(variant);
-
-        // Create output
-        CntServicesContact cnt1;
-        cnt1.mDisplayName = "Test1-Return";
-        cnt1.mPhoneNumber = "060-1111111";
-        cnt1.mEmailAddress = "test1.return@nokia.com";
-
-        CntServicesContact cnt2;
-        cnt2.mDisplayName = "Test1-Return";
-        cnt2.mPhoneNumber = "060-2222222";
-        cnt2.mEmailAddress = "test2.return@nokia.com";
-
-        CntServicesContactList list;
-        list.append(cnt1);
-        list.append(cnt2);
-
-        // Return contact list back
-        return qVariantFromValue(list);
-    }
-    else if (variant.typeName() == QLatin1String("QByteArray"))
-    {
-        QByteArray val = variant.value<QByteArray>();
-        qDebug() << "DialerService::QByteArray size=" << val.size();
-        return qVariantFromValue(val);
-    }
-    else
-    {
-        return variant.toString();
-    }
-}
-
-void NewDialerService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::handleClientDisconnect");
-
-    // Get the info of the cancelled request
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tDisconnected request info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-
-    // Just quit service application if client ends
-    mServiceApp->quit();
-}
-
-void NewDialerService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("NewDialerService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-}
-
-
-
-void NewDialerService::showRecipients(QVariant &value)
-{
-    CntServicesContactList list;
-    if(value.canConvert<CntServicesContactList>())
-    {
-        qDebug() << "NewDialerService::showRecipients: canConvert";
-        list = qVariantValue<CntServicesContactList>(value);
-    }
-    else
-    {
-        qDebug() << "NewDialerService::showRecipients: canConvert NOK";
-        return;
-    }    
-
-    showRecipients(list);
-}
-
-void NewDialerService::showRecipients(CntServicesContactList &list)
-{
-    if (list.count() == 0)
-    {
-        qDebug() << "NewDialerService::showRecipients(2): Count==0";
-    }
-    else
-    {
-        for (int i = 0; i < list.count(); ++i)
-        {
-            qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mDisplayName;
-            qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mPhoneNumber;
-            qDebug() << "NewDialerService::showRecipients(2)[" << i << "]=" << list[i].mEmailAddress;
-        }
-    }
-}
-
-
-
-Q_IMPLEMENT_USER_METATYPE(CntServicesContact)
-Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(CntServicesContactList)
-
-Q_IMPLEMENT_USER_METATYPE(TestServiceData)
-Q_IMPLEMENT_USER_METATYPE_NO_OPERATORS(TestServiceDataList)
-
-// ----------UriService---------------
-
-UriService::UriService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.com.nokia.symbian.IUriView"),parent),
-    mServiceApp(parent)
-    
-{
-    XQSERVICE_DEBUG_PRINT("UriService::UriService");
-    publishAll();
-}
-
-UriService::~UriService()
-{
-    XQSERVICE_DEBUG_PRINT("UriService::~UriService");
-}
-
-void UriService::complete(bool ok)
-{
-    Q_UNUSED(ok)
-    XQSERVICE_DEBUG_PRINT("UriService::complete");
-    // Complete all IDs
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("UriService::complete %d", reqId);
-        completeRequest(reqId, QVariant(mRetValue));
-    }
-}
-
-bool UriService::view(const QString& uri)
-{
-    XQSERVICE_DEBUG_PRINT("UriService::view(1)");
-    return view(uri, true);
-}
-
-bool UriService::view(const QString& uri, bool retValue)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,UriService::view", qPrintable(testCase));
-    
-    QString label = "IUriView::view\n:";
-    label += QString ("Uri=%1\n").arg(uri);
-    label += QString ("retValue=%1\n").arg(retValue);
-    QString param = QString ("retValue=%1\n").arg(retValue);
-
-    bool isAsync = !info.isSynchronous();;
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-
-    mRetValue = retValue;
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    
-    return retValue;
-}
-
-void UriService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("UriService::handleClientDisconnect");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-
-    mAsyncReqIds.remove(info.clientSecureId());
-    mServiceApp->quit();
-}
-
-void UriService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("UriService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-    
-}
-
-// ----------NewUriService---------------
-
-NewUriService::NewUriService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("serviceapp.com.nokia.symbian.IUriView"),parent),
-mServiceApp(parent)
-
-{
-    XQSERVICE_DEBUG_PRINT("NewUriService::NewUriService");
-    publishAll();
-}
-
-NewUriService::~NewUriService()
-{
-    XQSERVICE_DEBUG_PRINT("NewUriService::~NewUriService");
-}
-
-void NewUriService::complete(bool ok)
-{
-    Q_UNUSED(ok);
-    XQSERVICE_DEBUG_PRINT("NewUriService::complete");
-    // Complete all IDs
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("NewUriService::complete %d", reqId);
-        completeRequest(reqId, QVariant(mRetValue));
-    }
-}
-
-bool NewUriService::view(const QString& uri)
-{
-    XQSERVICE_DEBUG_PRINT("NewUriService::view(1)");
-    return view(uri, true);
-}
-
-bool NewUriService::view(const QString& uri, bool retValue)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewUriService::view", qPrintable(testCase));
-    
-    QString label = "New IUriView::view\n:";
-    label += QString ("Uri=%1\n").arg(uri);
-    label += QString ("retValue=%1\n").arg(retValue);
-    QString param = QString ("retValue=%1\n").arg(retValue);
-
-    bool isAsync = !info.isSynchronous();;
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-
-    mRetValue = retValue;
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-
-    return retValue;
-}
-
-void NewUriService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("NewUriService::handleClientDisconnect");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-
-    mAsyncReqIds.remove(info.clientSecureId());
-    mServiceApp->quit();
-}
-
-void NewUriService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("NewUriService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-
-}
-
-
-// ----------FileService---------------
-
-FileService::FileService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("com.nokia.services.serviceapp.com.nokia.symbian.IFileView"),parent),
-    mServiceApp(parent)
-
-{
-    XQSERVICE_DEBUG_PRINT("FileService::FileService");
-    publishAll();
-}
-
-FileService::~FileService()
-{
-    XQSERVICE_DEBUG_PRINT("FileService::~FileService");
-}
-
-void FileService::complete(bool ok)
-{
-    XQSERVICE_DEBUG_PRINT("FileService::complete");
-    // Complete all
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("FileService::complete %d", reqId);
-        completeRequest(reqId, QVariant(ok));
-    }
-}
-
-bool FileService::view(QString file)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,FileService::view", qPrintable(testCase));
-
-    QString label = "IFileView::view\n:";
-    QString param = QString ("File=%1\n").arg(file);
-
-    bool isAsync = !info.isSynchronous();;
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    
-    return true;
-}
-
-
-bool FileService::view(XQSharableFile sf)
-{
-    XQSERVICE_DEBUG_PRINT("FileService::view(XQSharebleFile)");
-    QString label = "IFile::view\n:";
-    QString param = QString ("File=%1\n").arg(sf.fileName());
-
-    RFile file;
-    bool ok = sf.getHandle( file );
-    if (ok)
-    {
-        HBufC8* data = HBufC8::NewL(100);
-        TPtr8 ptr = data->Des();
-        TInt err  = file.Read( ptr );
-        QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length());
-        XQSERVICE_DEBUG_PRINT("FileService::file read,%d,%s", err, qPrintable(text));
-        sf.close();
-        delete data;
-    }
-
-    XQRequestInfo info = requestInfo();
-    bool isAsync = !info.isSynchronous();;
-    
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    return true;
-}
-
-
-void FileService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("FileService::handleClientDisconnect");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-
-    mAsyncReqIds.remove(info.clientSecureId());
-    mServiceApp->quit();
-}
-
-
-void FileService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("FileService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-    
-}
-
-
-// ----------NewFileService---------------
-
-NewFileService::NewFileService(ServiceApp* parent)
-: XQServiceProvider(QLatin1String("serviceapp.com.nokia.symbian.IFileView"),parent),
-mServiceApp(parent)
-
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::NewFileService");
-    publishAll();
-}
-
-NewFileService::~NewFileService()
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::~NewFileService");
-}
-
-void NewFileService::complete(bool ok)
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::complete");
-    // Complete all
-    foreach (quint32 reqId, mAsyncReqIds)
-    {
-        XQSERVICE_DEBUG_PRINT("NewFileService::complete %d", reqId);
-        completeRequest(reqId, QVariant(ok));
-    }
-}
-
-bool NewFileService::view(QString file)
-{
-    XQRequestInfo info = requestInfo();
-    QString testCase = (info.info(TESTCASE_INFO_KEY)).toString();
-    XQSERVICE_DEBUG_PRINT("XQTESTER serviceapp,%s,NewFileService::view", qPrintable(testCase));
-    
-    QString label = "New IFileView::view\n:";
-    QString param = QString ("File=%1\n").arg(file);
-
-    bool isAsync = !info.isSynchronous();;
-    connect(this, SIGNAL(returnValueDelivered()), this, SLOT(handleAnswerDelivered()));
-
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-
-    return true;
-}
-
-
-bool NewFileService::view(XQSharableFile sf)
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::view(XQSharebleFile)");
-    QString label = "IFile::view\n:";
-    QString param = QString ("File=%1\n").arg(sf.fileName());
-
-    RFile file;
-    bool ok = sf.getHandle( file );
-    if (ok)
-    {
-        HBufC8* data = HBufC8::NewL(100);
-        TPtr8 ptr = data->Des();
-        TInt err  = file.Read( ptr );
-        QString text = QString::fromUtf8((const char *)(data->Ptr()), data->Length());
-        XQSERVICE_DEBUG_PRINT("NewFileService::file read,%d,%s", err, qPrintable(text));
-        sf.close();
-        delete data;
-    }
-
-    XQRequestInfo info = requestInfo();
-    bool isAsync = !info.isSynchronous();;
-
-    mServiceApp->setLabelNumber(label,param);
-    if (isAsync)
-    {
-        mAsyncReqIds.insertMulti(info.clientSecureId(), setCurrentRequestAsync());
-        connect(this, SIGNAL(clientDisconnected()), this, SLOT(handleClientDisconnect()));
-    }
-    return true;
-}
-
-
-void NewFileService::handleClientDisconnect()
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::handleClientDisconnect");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: id=%d,sid=%X,vid=%X", info.id(),info.clientSecureId(), info.clientVendorId());
-
-    mAsyncReqIds.remove(info.clientSecureId());
-    mServiceApp->quit();
-}
-
-
-void NewFileService::handleAnswerDelivered()
-{
-    XQSERVICE_DEBUG_PRINT("NewFileService::handleAnswerDelivered");
-    XQRequestInfo info = requestInfo();
-    XQSERVICE_DEBUG_PRINT("\tRequest info: sid=%X,vid=%X", info.clientSecureId(), info.clientVendorId());
-    // Done
-    mAsyncReqIds.remove(info.clientSecureId());
-
-}
-