taskswitcher/testapplications/tstestcatapp/lunchwidget.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 "lunchwidget.h"
#include <hbapplication>
#include <QStringList>
#include <HbComboBox>
#include <HbIcon>
#include <hbMainWindow>
#include <hbinstance.h>
#include "tstasksettings.h"



#define hbApp qobject_cast<HbApplication*>(qApp)

lunchwidget::lunchwidget(QGraphicsItem *parent)
    : HbWidget(parent)
{
    mClient = new TsTaskSettings; 

    mAnimal1 = new QPixmap(":/images/lion.jpg");
    mAnimal2 = new QPixmap(":/images/puma.jpg");
    
    mResultLabel = new HbLabel;        
    mPhotoLabel= new HbLabel;        
   // mPriorityLabel = new HbLabel("Priority");   
    
    mRegisterButton = new HbPushButton("Register");
    mUnregisterButton = new HbPushButton("Unregister");
    mHideButton = new HbPushButton("Hide me");
    mShowButton = new HbPushButton("Show me");
    mAnimal1Button = new HbPushButton("Lion");
    mAnimal2Button = new HbPushButton("Puma");
    mClearButton = new HbPushButton("Clear");
    
    /*mPriorityCombo = new HbComboBox();
    mPriorityCombo->addItem("default"); 
    mPriorityCombo->addItem("low");
    mPriorityCombo->addItem("medium");
    mPriorityCombo->addItem("high");*/

    mGridLayout = new QGraphicsGridLayout();
    mGridLayout->addItem(mPhotoLabel, 0, 0, 6, 6);
    mGridLayout->addItem(mResultLabel, 6, 0, 1, 3);
    mGridLayout->addItem(mClearButton, 6, 4, 1, 3);
    //mGridLayout->addItem(mPriorityLabel, 7, 0, 1, 3);
    //mGridLayout->addItem(mPriorityCombo, 7, 4, 1, 3);    
    mGridLayout->addItem(mRegisterButton, 7, 0, 1, 3);
    mGridLayout->addItem(mUnregisterButton, 7, 4, 1, 3);    
    mGridLayout->addItem(mAnimal1Button, 8, 0, 1, 3);
    mGridLayout->addItem(mAnimal2Button, 8, 4, 1, 3);    
    mGridLayout->addItem(mHideButton, 9, 0, 1, 3);
    mGridLayout->addItem(mShowButton, 9, 4, 1, 3);
    mGridLayout->setRowFixedHeight(0, 300);
    setLayout(mGridLayout);
    
    connect( mRegisterButton, SIGNAL(released()), this, SLOT(regScr()) );
    connect( mUnregisterButton, SIGNAL(released()), this, SLOT(unregScr()) );
    connect( mHideButton, SIGNAL(released()), this, SLOT(hideMe()) );
    connect( mShowButton, SIGNAL(released()), this, SLOT(showMe()) );
    connect( mAnimal1Button, SIGNAL(released()), this, SLOT(animal1()) );
    connect( mAnimal2Button, SIGNAL(released()), this, SLOT(animal2()) );
    connect( mClearButton, SIGNAL(released()), this, SLOT(clear()) );
}

lunchwidget::~lunchwidget()
{
    delete mClient;
    delete mAnimal1;
    delete mAnimal2;
}

void lunchwidget::regScr() 
{
    HbMainWindow *mainWindow = hbInstance->allMainWindows().first();
    QPixmap screenshot = QPixmap::grabWidget(mainWindow, mainWindow->rect());
    
    Before();
    bool ok = mClient->registerScreenshot(screenshot);
    After();
    Result();
    setResult(ok);
}

void lunchwidget::unregScr()
{
    Before();
    bool ok = mClient->unregisterScreenshot();
    After();
    Result();
    setResult(ok);
}

void lunchwidget::hideMe() 
{
    Before();
    bool ok = mClient->setVisibility(false);
    After();
    Result();
    setResult(ok);
}

void lunchwidget::showMe() 
{
    Before();
    bool ok = mClient->setVisibility(true);
    After();
    Result();
    setResult(ok);
}
    
void lunchwidget::Before()
{
    TTime time;
    time.HomeTime();
    iBefore = time.Int64();
}

void lunchwidget::After()
{
    TTime time;
    time.HomeTime();
    iAfter = time.Int64();
}

void lunchwidget::Result()
{
    TInt64 res(0);
    res = iAfter-iBefore;
    res = res/1000;
    iResult = res;
}

void lunchwidget::animal1()
{
    mPhotoLabel->setIcon(QIcon(*mAnimal1));
}

void lunchwidget::animal2()
{
    mPhotoLabel->setIcon(QIcon(*mAnimal2));
}

void lunchwidget::clear()
{
    mPhotoLabel->setIcon(QIcon());
    mResultLabel->setPlainText("");
}

void lunchwidget::setResult(bool ok)
{
    if ( ok ) {        
        QString msg;
        msg = tr("%1 ms").arg(iResult);
        mResultLabel->setPlainText(msg);
    }
    else {
        mResultLabel->setPlainText("Fail");
    }
    
}