/*
* 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 "thumbwidget.h"
thumbwidget::thumbwidget(QObject* activityStorage, QObject* activityManager, QTextStream* stream, QGraphicsItem *parent)
: basewidget(activityStorage, activityManager, stream, parent)
{
mTestCheckBox->setText("Prepare data");
mKBytesEdid->setText("1");
mStartTestButton->setText("Thumb");
}
thumbwidget::~thumbwidget()
{
}
void thumbwidget::timeout()
{
if(mAction == "predel") {
if(mItemsCounter<mItems) {
QString name = mActivities.at(mItemsCounter);
bool ok = removeActivity(name);
mItemsCounter++;
if(!ok) {
setError("remove activity");
return;
}
updateItemLabel(mItemsCounter);
}
else {
mItems=Items();
mItemsCounter = 0;
mAction = "presave";
updateActionLabel();
//updateItemLabel(mItemsCounter);
prepareSave();
}
}
else if(mAction == "presave") {
if(mItemsCounter<mItems) {
bool ok = saveActivity(mItemsCounter);
mItemsCounter++;
if(!ok) {
setError("save activity");
return;
}
updateItemLabel(mItemsCounter);
}
else {
mItems=Items();
mTimes=Times();
mItemsCounter = 0;
mAction = "thumb";
updateActionLabel();
//updateItemLabel(mItemsCounter);
updateTimeLabel(mTimesCounter);
clearSaveData();
logFirst();
connect( mActivityManager, SIGNAL(thumbnailReady(QPixmap, void *)), this, SLOT(thumbnailReady(QPixmap, void *)) );
bool ok = activities();
if(!ok) {
setError("get activities list");
return;
}
}
}
else if(mAction == "thumb") {
if(mTimesCounter==mTimes) {
endNormally();
return;
}
if(mItemsCounter<mItems) {
QString name = mActivities.at(mItemsCounter);
bool ok = getThumbnail(name);
mItemsCounter++;
if(!ok) {
setError("get thumbnail");
return;
}
updateItemLabel(mItemsCounter);
mTimer->stop();
}
else {
mTimesCounter++;
mItemsCounter = 0;
//updateItemLabel(mItemsCounter);
updateTimeLabel(mTimesCounter);
}
}
else {
setError("unexpected state");
}
}
void thumbwidget::test()
{
mTimesCounter = 0;
mStatusValueLabel->setPlainText("Pending");
enableControls(false);
*mStream<<tr("*Get thumbnail*\n");
mStream->flush();
logSettings();
bool ok = activities();
if(!ok) {
setError("get activities list");
return;
}
if (TestCheckBoxChecked()) {
mAction = "predel";
mItems = mActivities.count();
}
else {
mAction = "thumb";
ok = checkActNum();
if(!ok) {
setError("unexpected act number");
return;
}
mItems=Items();
mTimes=Times();
mItemsCounter = 0;
updateItemLabel(mItemsCounter);
updateTimeLabel(mTimesCounter);
logFirst();
connect( mActivityManager, SIGNAL(thumbnailReady(QPixmap, void *)), this, SLOT(thumbnailReady(QPixmap, void *)) );
}
basewidget::test();
}
void thumbwidget::thumbnailReady(QPixmap pixmap, void* ptr)
{
if(pixmap.isNull()) {
setError("Null pixmap");
return;
}
mTimer->start(1);
}
void thumbwidget::endTest(int reason)
{
disconnect( mActivityManager, SIGNAL(thumbnailReady(QPixmap, void *)), this, SLOT(thumbnailReady(QPixmap, void *)) );
basewidget::endTest(reason);
}