/*
* 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 "lunchwidget.h"
#include <QRect>
#include <QPainter>
#include <QUrl>
#include <qservicemanager.h>
#include <xqaiwrequest.h>
#include <xqappmgr.h>
#include <xqconversions.h>
#include <hbapplication>
QTM_USE_NAMESPACE
#define hbApp qobject_cast<HbApplication*>(qApp)
lunchwidget::lunchwidget(QGraphicsItem *parent)
: HbWidget(parent)
{
mTitle = "trompka";
mLunchButton = new HbPushButton("Lunch embedded app");
mResultLabel = new HbLabel;
mGridLayout = new QGraphicsGridLayout();
mGridLayout->addItem(mResultLabel, 0, 0, 1, 1);
mGridLayout->addItem(mLunchButton, 1, 0, 1, 1);
setLayout(mGridLayout);
connect(mLunchButton, SIGNAL(released()), this, SLOT(lunchApp()));
QStringList list = hbApp->arguments();
int count = list.count();
mTimer = new QTimer;
if( count >= 2 ) {
mTitle = list.at(1);
connect( mTimer, SIGNAL(timeout()), this, SLOT(timeout()) );
mTimer->start(1);
}
}
lunchwidget::~lunchwidget()
{
delete mTimer;
}
void lunchwidget::lunchApp()
{
QList<QVariant> args;
QString serviceName("com.nokia.services.embeddedservices");
QString operation("requestSetTitle(QString)");
XQAiwRequest* request;
XQApplicationManager appManager;
request = appManager.create(serviceName, "requestSetTitle", operation, true); //embedded
if ( request == NULL )
{
mResultLabel->setPlainText( "request failed" );
return;
}
// Result handlers
connect (request, SIGNAL(requestOk(const QVariant&)),
this, SLOT(setTitleCompleted(const QVariant&)));
connect (request, SIGNAL(requestError(int,const QString&)),
this, SLOT(serviceRequestError(int,const QString&)));
args << mTitle;
request->setArguments(args);
if(!request->send()) {
mResultLabel->setPlainText( "sending request failed" );
}
delete request;
}
void lunchwidget::setTitleCompleted(const QVariant& data)
{
QString title = data.toString();
mResultLabel->setPlainText( title );
}
void lunchwidget::serviceRequestError(int err,const QString& msg)
{
QString errmsg = tr("Error: %1, ").arg(err);
errmsg += msg;
mResultLabel->setPlainText( errmsg );
}
void lunchwidget::timeout()
{
mTimer->stop();
lunchApp();
}