activityfw/testapplications/newtestappset/acttestfigure/figurewidget.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 "figurewidget.h"
#include <QRect>
#include <QPainter>
#include <QPainterPath>
#include <QPolygon>
#include <HbCheckBox>
#include <HbScrollArea>

figurewidget::figurewidget(QGraphicsItem *parent)
    : HbWidget(parent), mFailed(false)
{
    HbWidget* widget = new HbWidget;
    HbScrollArea* scrollArea = new HbScrollArea; 
    mTriangle = new HbPushButton("Triangle");
    mSqure = new HbPushButton("Squre");
    mCircle = new HbPushButton("Circle");
    mRed = new HbPushButton("Red");
    mGreen = new HbPushButton("Green");
    mBlue = new HbPushButton("Blue");
    mSave = new HbPushButton("Save");
    mDelete = new HbPushButton("Delete");
    mVisibilityLabel = new HbLabel("Visibility");
    mVisibilityCombo = new HbComboBox();
    mVisibilityCombo->addItem("none");
    mVisibilityCombo->addItem("true");
    mVisibilityCombo->addItem("false");
    
    mPersistentLabel = new HbLabel("Persistence");
    mPersistentCombo = new HbComboBox();
    mPersistentCombo->addItem("none");
    mPersistentCombo->addItem("true");
    mPersistentCombo->addItem("false");
    
    mNameLabel = new HbLabel("Name");
    mNameCombo = new HbComboBox();
    mNameCombo->addItem("none");    
    
    mSaveDekCheckBox = new HbCheckBox("Delete before Save");
    mSaveDekCheckBox->setCheckState(Qt::Unchecked);
    mGridLayout = new QGraphicsGridLayout();
    mGridLayout->addItem(mRed, 0, 0, 1, 1);
    mGridLayout->addItem(mGreen, 0, 1, 1, 1);
    mGridLayout->addItem(mBlue, 0, 2, 1, 1);
    mGridLayout->addItem(mSave, 2, 0, 1, 1);
    mGridLayout->addItem(mDelete, 2, 2, 1, 1);
    mGridLayout->addItem(mVisibilityLabel, 3, 0, 1, 1);
    mGridLayout->addItem(mVisibilityCombo, 3, 1, 1, 2);
    mGridLayout->addItem(mPersistentLabel, 4, 0, 1, 1);
    mGridLayout->addItem(mPersistentCombo, 4, 1, 1, 2);
    mGridLayout->addItem(mNameLabel, 5, 0, 1, 1);
    mGridLayout->addItem(mNameCombo, 5, 1, 1, 2);
    mGridLayout->addItem(mSaveDekCheckBox, 6, 0, 1, 3);

    widget->setLayout(mGridLayout);

    scrollArea->setContentWidget(widget);
    scrollArea->setScrollDirections(Qt::Vertical);
    scrollArea->setVerticalScrollBarPolicy(HbScrollArea::ScrollBarAlwaysOff);

    connect(mRed, SIGNAL(released()), this, SLOT(red()));
    connect(mGreen, SIGNAL(released()), this, SLOT(green()));
    connect(mBlue, SIGNAL(released()), this, SLOT(blue()));

    connect(mTriangle, SIGNAL(released()), this, SIGNAL(totriangle()));
    connect(mSqure, SIGNAL(released()), this, SIGNAL(tosqure()));
    connect(mCircle, SIGNAL(released()), this, SIGNAL(tocircle()));

    connect(mSave, SIGNAL(released()), this, SIGNAL(save()));
    connect(mDelete, SIGNAL(released()), this, SIGNAL(del()));
    
    connect(mRed, SIGNAL(released()), this, SLOT(clearFailedFlag()));
    connect(mGreen, SIGNAL(released()), this, SLOT(clearFailedFlag()));
    connect(mBlue, SIGNAL(released()), this, SLOT(clearFailedFlag()));
    connect(mSqure, SIGNAL(released()), this, SLOT(clearFailedFlag()));
    connect(mTriangle, SIGNAL(released()), this, SLOT(clearFailedFlag()));

    QGraphicsGridLayout* mainLayout = new QGraphicsGridLayout;
    mainLayout->addItem(scrollArea, 1, 0, 1, 6);
    mainLayout->setRowFixedHeight(0, 250);
    setLayout(mainLayout);
}

figurewidget::~figurewidget()
{
}

void figurewidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
    HbWidget::paint(painter, option, widget);
    
    if ( mFailed ) {
        painter->setPen(Qt::gray);
        QFont font;
        font.setPointSize(38);
        font.setBold(true);
        painter->setFont(font);
        painter->drawText(10, 120, "*FAIL*");
    }
}


void figurewidget::red()
{
    mColor = "red";
    update();
}

void figurewidget::green()
{
    mColor = "green";
    update();
}

void figurewidget::blue()
{
    mColor = "blue";
    update();
}

void figurewidget::setcolor(const QString &color)
{
    mColor = color;
}

QString figurewidget::color()
{
    return mColor;
}

void figurewidget::clearFailedFlag()
	{
	mFailed = false;
	update();
	}

void figurewidget::setFailedFlag()
	{
	mFailed = true;
	update();	
	}

QString figurewidget::visibility()
{
    return mVisibilityCombo->currentText();
}

QString figurewidget::persistent()
{
	return mPersistentCombo->currentText();
}

QString figurewidget::name()
{
    return mNameCombo->currentText();
}


bool figurewidget::delBeforeSave()
{
    if (mSaveDekCheckBox->checkState() == Qt::Checked) {
        return true;
    }
    return false;
}