activityfw/testapplications/nftapps/lptapp/thumbwidget.cpp
author Jaakko Haukipuro (Nokia-MS/Oulu) <Jaakko.Haukipuro@nokia.com>
Thu, 16 Sep 2010 12:11:40 +0100
changeset 117 c63ee96dbe5f
permissions -rw-r--r--
Missing activityfw and taskswitcher components - fix for Bug 3670

/*
* 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);
}