securitydialogs/SecUi/SecUiTestQt/sceneitemlisthelper.h
author hgs
Wed, 20 Oct 2010 14:51:23 +0300
changeset 66 67b3e3c1fc87
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
hgs
parents:
diff changeset
     1
//
hgs
parents:
diff changeset
     2
// Little helper class for populating lists with Hb::SceneItems
hgs
parents:
diff changeset
     3
//
hgs
parents:
diff changeset
     4
hgs
parents:
diff changeset
     5
#ifndef SCENEITEMLISTHELPER_H
hgs
parents:
diff changeset
     6
#define SCENEITEMLISTHELPER_H
hgs
parents:
diff changeset
     7
hgs
parents:
diff changeset
     8
#include <hbnamespace.h>
hgs
parents:
diff changeset
     9
hgs
parents:
diff changeset
    10
Q_DECLARE_METATYPE(Hb::SceneItem);
hgs
parents:
diff changeset
    11
hgs
parents:
diff changeset
    12
static struct { Hb::SceneItem sceneItem; QString name; } listHelperSceneItems[] =
hgs
parents:
diff changeset
    13
        {
hgs
parents:
diff changeset
    14
        {Hb::NoItem, "NoItem"},
hgs
parents:
diff changeset
    15
        {Hb::ToolBarItem, "ToolBarItem"},
hgs
parents:
diff changeset
    16
        {Hb::AllItems, "AllItems"},
hgs
parents:
diff changeset
    17
    };
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
//
hgs
parents:
diff changeset
    21
// SceneItemListHelper
hgs
parents:
diff changeset
    22
//
hgs
parents:
diff changeset
    23
class SceneItemListHelper
hgs
parents:
diff changeset
    24
{
hgs
parents:
diff changeset
    25
public:
hgs
parents:
diff changeset
    26
        
hgs
parents:
diff changeset
    27
    static int sceneItemStringsCount(){
hgs
parents:
diff changeset
    28
        return sizeof(listHelperSceneItems) / sizeof(listHelperSceneItems[0]);
hgs
parents:
diff changeset
    29
    }
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
    static void initListWidget(QListWidget *listWidget){
hgs
parents:
diff changeset
    32
        for(int i = 0; i < SceneItemListHelper::sceneItemStringsCount(); i++ ) {
hgs
parents:
diff changeset
    33
            // create list widget item and store the sceneItem with the sceneItem name
hgs
parents:
diff changeset
    34
            QListWidgetItem* item = new QListWidgetItem(listHelperSceneItems[i].name);
hgs
parents:
diff changeset
    35
            item->setData(Qt::UserRole,QVariant::fromValue(listHelperSceneItems[i].sceneItem));
hgs
parents:
diff changeset
    36
            item->setSelected( 
hgs
parents:
diff changeset
    37
                listHelperSceneItems[i].sceneItem == Hb::NoItem ? 
hgs
parents:
diff changeset
    38
                true : false);
hgs
parents:
diff changeset
    39
            
hgs
parents:
diff changeset
    40
        listWidget->addItem (item);
hgs
parents:
diff changeset
    41
        }        
hgs
parents:
diff changeset
    42
    }
hgs
parents:
diff changeset
    43
    
hgs
parents:
diff changeset
    44
    static Hb::SceneItems sceneItems(const QListWidget *listwidget){
hgs
parents:
diff changeset
    45
        Hb::SceneItems sceneItems = Hb::NoItem;
hgs
parents:
diff changeset
    46
    
hgs
parents:
diff changeset
    47
        for (int i = 0; i < listwidget->count(); i++)   {
hgs
parents:
diff changeset
    48
            if (listwidget->item(i)->isSelected()) {
hgs
parents:
diff changeset
    49
                sceneItems |= listwidget->item(i)->data(Qt::UserRole).value<Hb::SceneItem>();
hgs
parents:
diff changeset
    50
            }
hgs
parents:
diff changeset
    51
        }
hgs
parents:
diff changeset
    52
        return sceneItems;
hgs
parents:
diff changeset
    53
    }
hgs
parents:
diff changeset
    54
};
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
#endif //SCENEITEMLISTHELPER_H
hgs
parents:
diff changeset
    57