iaupdate/IAD/ui/src/iaupdateapplistitem.cpp
author hgs
Thu, 14 Oct 2010 14:11:30 +0300
changeset 77 d1838696558c
permissions -rw-r--r--
201039_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
77
d1838696558c 201039_02
hgs
parents:
diff changeset
     1
/*
d1838696558c 201039_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
d1838696558c 201039_02
hgs
parents:
diff changeset
     3
* All rights reserved.
d1838696558c 201039_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d1838696558c 201039_02
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
d1838696558c 201039_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d1838696558c 201039_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d1838696558c 201039_02
hgs
parents:
diff changeset
     8
*
d1838696558c 201039_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
d1838696558c 201039_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d1838696558c 201039_02
hgs
parents:
diff changeset
    11
*
d1838696558c 201039_02
hgs
parents:
diff changeset
    12
* Contributors:
d1838696558c 201039_02
hgs
parents:
diff changeset
    13
*
d1838696558c 201039_02
hgs
parents:
diff changeset
    14
* Description:   This module contains the implementation of IAUpdateAppListItem
d1838696558c 201039_02
hgs
parents:
diff changeset
    15
*                class member functions.
d1838696558c 201039_02
hgs
parents:
diff changeset
    16
*
d1838696558c 201039_02
hgs
parents:
diff changeset
    17
*/
d1838696558c 201039_02
hgs
parents:
diff changeset
    18
#include <HbProgressBar>
d1838696558c 201039_02
hgs
parents:
diff changeset
    19
d1838696558c 201039_02
hgs
parents:
diff changeset
    20
#include "iaupdateapplistitem.h"
d1838696558c 201039_02
hgs
parents:
diff changeset
    21
#include "iaupdateapplistmodel.h"
d1838696558c 201039_02
hgs
parents:
diff changeset
    22
#include "iaupdatedebug.h"
d1838696558c 201039_02
hgs
parents:
diff changeset
    23
d1838696558c 201039_02
hgs
parents:
diff changeset
    24
IAUpdateAppListItem::IAUpdateAppListItem(QGraphicsItem * parent) :
d1838696558c 201039_02
hgs
parents:
diff changeset
    25
  HbListViewItem(parent)
d1838696558c 201039_02
hgs
parents:
diff changeset
    26
{
d1838696558c 201039_02
hgs
parents:
diff changeset
    27
    mProgressBar = NULL;   
d1838696558c 201039_02
hgs
parents:
diff changeset
    28
    mIsProgress = false;
d1838696558c 201039_02
hgs
parents:
diff changeset
    29
    mSecondaryTextVisible = true;
d1838696558c 201039_02
hgs
parents:
diff changeset
    30
}
d1838696558c 201039_02
hgs
parents:
diff changeset
    31
d1838696558c 201039_02
hgs
parents:
diff changeset
    32
IAUpdateAppListItem::~IAUpdateAppListItem() 
d1838696558c 201039_02
hgs
parents:
diff changeset
    33
{
d1838696558c 201039_02
hgs
parents:
diff changeset
    34
}
d1838696558c 201039_02
hgs
parents:
diff changeset
    35
d1838696558c 201039_02
hgs
parents:
diff changeset
    36
HbAbstractViewItem * IAUpdateAppListItem::createItem()
d1838696558c 201039_02
hgs
parents:
diff changeset
    37
{
d1838696558c 201039_02
hgs
parents:
diff changeset
    38
    return new IAUpdateAppListItem(*this);
d1838696558c 201039_02
hgs
parents:
diff changeset
    39
}
d1838696558c 201039_02
hgs
parents:
diff changeset
    40
d1838696558c 201039_02
hgs
parents:
diff changeset
    41
d1838696558c 201039_02
hgs
parents:
diff changeset
    42
void IAUpdateAppListItem::updateChildItems()
d1838696558c 201039_02
hgs
parents:
diff changeset
    43
{
d1838696558c 201039_02
hgs
parents:
diff changeset
    44
    HbListViewItem::updateChildItems();
d1838696558c 201039_02
hgs
parents:
diff changeset
    45
    
d1838696558c 201039_02
hgs
parents:
diff changeset
    46
    mIsProgress = modelIndex().data(IAUpdateAppListModel::ProgressRole).toBool();
d1838696558c 201039_02
hgs
parents:
diff changeset
    47
    if (mIsProgress)
d1838696558c 201039_02
hgs
parents:
diff changeset
    48
    {  // progress state
d1838696558c 201039_02
hgs
parents:
diff changeset
    49
        if (mSecondaryTextVisible)
d1838696558c 201039_02
hgs
parents:
diff changeset
    50
            {
d1838696558c 201039_02
hgs
parents:
diff changeset
    51
            foreach (QGraphicsItem * item, childItems()) 
d1838696558c 201039_02
hgs
parents:
diff changeset
    52
                {
d1838696558c 201039_02
hgs
parents:
diff changeset
    53
                    if (HbStyle::itemName(item) == "text-2")     
d1838696558c 201039_02
hgs
parents:
diff changeset
    54
                    {
d1838696558c 201039_02
hgs
parents:
diff changeset
    55
                        item->setVisible(false);
d1838696558c 201039_02
hgs
parents:
diff changeset
    56
                        mSecondaryTextVisible = false;
d1838696558c 201039_02
hgs
parents:
diff changeset
    57
                        break;
d1838696558c 201039_02
hgs
parents:
diff changeset
    58
                    }
d1838696558c 201039_02
hgs
parents:
diff changeset
    59
                }
d1838696558c 201039_02
hgs
parents:
diff changeset
    60
            }
d1838696558c 201039_02
hgs
parents:
diff changeset
    61
        if (!mProgressBar)
d1838696558c 201039_02
hgs
parents:
diff changeset
    62
        {
d1838696558c 201039_02
hgs
parents:
diff changeset
    63
            mProgressBar = new HbProgressBar(this);
d1838696558c 201039_02
hgs
parents:
diff changeset
    64
            mProgressBar->setRange(0, 100);
d1838696558c 201039_02
hgs
parents:
diff changeset
    65
            HbStyle::setItemName(mProgressBar, "progress");
d1838696558c 201039_02
hgs
parents:
diff changeset
    66
        }
d1838696558c 201039_02
hgs
parents:
diff changeset
    67
        if (!mProgressBar->isVisible())
d1838696558c 201039_02
hgs
parents:
diff changeset
    68
        {
d1838696558c 201039_02
hgs
parents:
diff changeset
    69
            HbStyle::setItemName(mProgressBar, "progress");
d1838696558c 201039_02
hgs
parents:
diff changeset
    70
            mProgressBar->setVisible(true);
d1838696558c 201039_02
hgs
parents:
diff changeset
    71
        }
d1838696558c 201039_02
hgs
parents:
diff changeset
    72
        QList<QVariant> list = modelIndex().data(IAUpdateAppListModel::ProgressValueRole).toList();
d1838696558c 201039_02
hgs
parents:
diff changeset
    73
        int value = list.at(0).toInt();
d1838696558c 201039_02
hgs
parents:
diff changeset
    74
        int total = list.at(1).toInt();
d1838696558c 201039_02
hgs
parents:
diff changeset
    75
        mProgressBar->setRange(0,total);
d1838696558c 201039_02
hgs
parents:
diff changeset
    76
        mProgressBar->setProgressValue(value);
d1838696558c 201039_02
hgs
parents:
diff changeset
    77
    }
d1838696558c 201039_02
hgs
parents:
diff changeset
    78
    else
d1838696558c 201039_02
hgs
parents:
diff changeset
    79
    {  //normal state
d1838696558c 201039_02
hgs
parents:
diff changeset
    80
        if (mProgressBar)
d1838696558c 201039_02
hgs
parents:
diff changeset
    81
        {
d1838696558c 201039_02
hgs
parents:
diff changeset
    82
            if (mProgressBar->isVisible()) 
d1838696558c 201039_02
hgs
parents:
diff changeset
    83
            { 
d1838696558c 201039_02
hgs
parents:
diff changeset
    84
                HbStyle::setItemName(mProgressBar, "");
d1838696558c 201039_02
hgs
parents:
diff changeset
    85
                mProgressBar->setVisible(false);
d1838696558c 201039_02
hgs
parents:
diff changeset
    86
            }    
d1838696558c 201039_02
hgs
parents:
diff changeset
    87
            if (!mSecondaryTextVisible)
d1838696558c 201039_02
hgs
parents:
diff changeset
    88
            {    
d1838696558c 201039_02
hgs
parents:
diff changeset
    89
                foreach (QGraphicsItem * item, childItems()) 
d1838696558c 201039_02
hgs
parents:
diff changeset
    90
                {
d1838696558c 201039_02
hgs
parents:
diff changeset
    91
                    if (HbStyle::itemName(item) == "text-2") 
d1838696558c 201039_02
hgs
parents:
diff changeset
    92
                    {
d1838696558c 201039_02
hgs
parents:
diff changeset
    93
                        item->setVisible(true);
d1838696558c 201039_02
hgs
parents:
diff changeset
    94
                        mSecondaryTextVisible = true;
d1838696558c 201039_02
hgs
parents:
diff changeset
    95
                        break;
d1838696558c 201039_02
hgs
parents:
diff changeset
    96
                    }
d1838696558c 201039_02
hgs
parents:
diff changeset
    97
                }    
d1838696558c 201039_02
hgs
parents:
diff changeset
    98
            }
d1838696558c 201039_02
hgs
parents:
diff changeset
    99
        }
d1838696558c 201039_02
hgs
parents:
diff changeset
   100
    }
d1838696558c 201039_02
hgs
parents:
diff changeset
   101
}
d1838696558c 201039_02
hgs
parents:
diff changeset
   102
d1838696558c 201039_02
hgs
parents:
diff changeset
   103
d1838696558c 201039_02
hgs
parents:
diff changeset
   104
void IAUpdateAppListItem::polish(HbStyleParameters& params)
d1838696558c 201039_02
hgs
parents:
diff changeset
   105
{       
d1838696558c 201039_02
hgs
parents:
diff changeset
   106
    HbListViewItem::setProperty("progress", mIsProgress);
d1838696558c 201039_02
hgs
parents:
diff changeset
   107
    HbListViewItem::polish(params);   
d1838696558c 201039_02
hgs
parents:
diff changeset
   108
}
d1838696558c 201039_02
hgs
parents:
diff changeset
   109