securitydialogs/SecUi/SecUiTestQt/modelfactory.cpp
changeset 66 67b3e3c1fc87
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/securitydialogs/SecUi/SecUiTestQt/modelfactory.cpp	Wed Oct 20 14:51:23 2010 +0300
@@ -0,0 +1,1284 @@
+#include <e32debug.h>
+
+#include "modelfactory.h"
+
+#include <hbnamespace.h>
+#include <hbicon.h>
+
+#include <QStandardItemModel>
+
+void insertMixedItems(QStandardItem *parent)
+{
+    QString longSecondaryText;
+    for (int i = 0; i < 20; ++i) {
+        longSecondaryText.append("Second text ");
+    }
+
+    HbIcon icon(QString(":/demo/generic"));
+
+    QVariantList strings;
+    QVariantList icons;
+
+    // text
+    QStandardItem *child = new QStandardItem();
+    strings << "text-1";
+    child->setData(strings, Qt::DisplayRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // text + icon
+    child = new QStandardItem();
+    strings << "text-1+icon-2";
+    icons << QVariant() << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + text
+    child = new QStandardItem();
+    strings << "icon-1+text-1";
+    icons << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + text + icon
+    child = new QStandardItem();
+    strings << "icon-1+text-1+icon-2";
+    icons << icon << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // text + text
+    child = new QStandardItem();
+    strings << "text-1+text-3" << QVariant() << "third text";
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // text + text + icon
+    child = new QStandardItem();
+    strings << "text-1+text-3+icon-2" << QVariant() << "third text";
+    icons << QVariant() << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + text + text
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-3" << QVariant() << "third text";
+    icons << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + text + text + icon
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-3+icon-2" << QVariant() << "third text";
+    icons << icon << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // 2 texts
+    child = new QStandardItem();
+    strings << "text-1+text-2" << longSecondaryText;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // 2 texts + icon
+    child = new QStandardItem();
+    strings << "text-1+text-2+icon-2" << longSecondaryText;
+    icons << QVariant() << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + 2 texts
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-2" << longSecondaryText;
+    icons << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + 2 texts + icon
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-2+icon-2" << longSecondaryText;
+    icons << icon << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // 3 texts
+    child = new QStandardItem();
+    strings << "text-1+text-2+text-3" << longSecondaryText << "third text";
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // 3 texts + icon
+    child = new QStandardItem();
+    strings << "text-1+text-2+text-3+icon-2" << longSecondaryText << "third text";
+    icons << QVariant() << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + 3 texts
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-2+text-3" << longSecondaryText << "third text";
+    icons << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // icon + 3 texts + icon
+    child = new QStandardItem();
+    strings << "icon-1+text-1+text-2+text-3+icon-2" << longSecondaryText << "third text";
+    icons << icon << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // separator
+    child = new QStandardItem();
+    strings << "Separator";
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    child->setData(Hb::SeparatorItem, Hb::ItemTypeRole);
+    child->setEnabled(false);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // disabled
+    child = new QStandardItem();
+    strings << "Disabled item" << longSecondaryText << "third text";
+    icons << icon << icon;
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(icons, Qt::DecorationRole);
+    child->setEnabled(false);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // disabled parent item
+    child = new QStandardItem();
+    strings << "Disabled parent item";
+    child->setData(strings, Qt::DisplayRole);
+    child->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    child->setEnabled(false);
+    parent->appendRow(child);
+
+    strings.clear();
+    icons.clear();
+
+    // disabled parent item's child
+    QStandardItem *child2 = new QStandardItem();
+    strings << "Disabled parent item's child";
+    child2->setData(strings, Qt::DisplayRole);
+    child2->setEnabled(false);
+    child->appendRow(child2);
+
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelMail()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    //________________________________________
+    int messageRole = Qt::UserRole+1;
+    int dateRole = Qt::UserRole+2;
+
+    QStandardItem *date = new QStandardItem;
+    date->setData(QString("27. lokakuuta 2009"), dateRole);
+    model->appendRow(date);
+
+    QStandardItem *message = new QStandardItem;
+    QStringList data;
+    data << "Fotonetti.com" << "19:51:14" << "Fotonetti Pro";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    date = new QStandardItem;
+    date->setData(QString("25. lokakuuta 2009"), dateRole);
+    model->appendRow(date);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "Amazon.co.uk" << "5:51:52" << "Your Amazon Order # 123-3456789-0123 ";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    date = new QStandardItem;
+    date->setData(QString("23. lokakuuta 2009"), dateRole);
+    model->appendRow(date);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "MBnet" << "12:12:12" << "MBnetin pullopostia 43/2009: Aurinkoa odotellessa... ";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    date = new QStandardItem;
+    date->setData(QString("21. lokakuuta 2009"), dateRole);
+    model->appendRow(date);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "Skype" << "21:59:20" << "Skype 4.1 - Too late";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+    
+    message = new QStandardItem;
+    data.clear();
+    data << "Skype" << "20:58:19" << "Skype 4.1 - Act now";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+    
+    message = new QStandardItem;
+    data.clear();
+    data << "Skype" << "19:57:18" << "Skype 4.1 - Time to act";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "Skype" << "18:56:17" << "Skype 4.1 - New release";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    date = new QStandardItem;
+    date->setData(QString("5. lokakuuta 2009"), dateRole);
+    model->appendRow(date);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "Hit Booster" << "21:12:00" << "Have your own website traffic generator ";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+    message = new QStandardItem;
+    data.clear();
+    data << "noreply@helsinkiexpert.fi" << "11:08:01" << "Terveisiä Helsinki Expertiltä";
+    message->setData(data, messageRole);
+    date->appendRow(message);
+
+
+    return model;
+}
+
+
+QStandardItemModel *ModelFactory::populateTreeModelDefault()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    //________________________________________
+
+    QStandardItem *paintDevice = new QStandardItem;
+    paintDevice->setText(QString("QPaintDevice"));
+    model->appendRow(paintDevice);
+
+    QStandardItem *pixmap = new QStandardItem;
+    pixmap->setText(QString("QPixmap"));
+    paintDevice->appendRow(pixmap);
+
+    QStandardItem *bitmap = new QStandardItem;
+    bitmap->setText(QString("QBitmap"));
+    pixmap->appendRow(bitmap);
+
+    QStandardItem *customRasterPaintDevice = new QStandardItem;
+    customRasterPaintDevice->setText(QString("QCustomRasterPaintDevice"));
+    paintDevice->appendRow(customRasterPaintDevice);
+
+    QStandardItem *glPixelBuffer = new QStandardItem;
+    glPixelBuffer->setText(QString("QGLPixelBuffer"));
+    paintDevice->appendRow(glPixelBuffer);
+
+    QStandardItem *image = new QStandardItem;
+    image->setText(QString("QImage"));
+    paintDevice->appendRow(image);
+
+    QStandardItem *picture = new QStandardItem;
+    picture->setText(QString("QPicture"));
+    paintDevice->appendRow(picture);
+
+    QStandardItem *printer = new QStandardItem;
+    printer->setText(QString("QPrinter"));
+    paintDevice->appendRow(printer);
+
+    QStandardItem *svgGenerator = new QStandardItem;
+    svgGenerator->setText(QString("QSvgGenerator"));
+    paintDevice->appendRow(svgGenerator);
+
+    //________________________________________
+
+    QStandardItem *object = new QStandardItem;
+    object->setText(QString("QObject"));
+    model->appendRow(object);
+
+    QStandardItem *widget = new QStandardItem;
+    widget->setText(QString("QWidget"));
+    object->appendRow(widget);
+
+    QStandardItem *absItemModel = new QStandardItem;
+    absItemModel->setText(QString("QAbstractItemModel"));
+    object->appendRow(absItemModel);
+
+    QStandardItem *absListModel = new QStandardItem;
+    absListModel->setText(QString("QAbstractListModel"));
+    absItemModel->appendRow(absListModel);
+
+    QStandardItem *strListModel = new QStandardItem;
+    strListModel->setText(QString("QStringListModel"));
+    absListModel->appendRow(strListModel);
+
+    QStandardItem *absProxyModel = new QStandardItem;
+    absProxyModel->setText(QString("QAbstractProxyModel"));
+    absItemModel->appendRow(absProxyModel);
+
+    QStandardItem *sFilterProxyModel = new QStandardItem;
+    sFilterProxyModel->setText(QString("QSortFilterProxyModel"));
+    absProxyModel->appendRow(sFilterProxyModel);
+
+    QStandardItem *absTableModel = new QStandardItem;
+    absTableModel->setText(QString("QAbstractTableModel"));
+    absItemModel->appendRow(absTableModel);
+
+    QStandardItem *sqlQueryModel = new QStandardItem;
+    sqlQueryModel->setText(QString("QSqlQueryModel"));
+    absTableModel->appendRow(sqlQueryModel);
+
+    QStandardItem *sqlTableModel = new QStandardItem;
+    sqlTableModel->setText(QString("QSqlTableModel"));
+    sqlQueryModel->appendRow(sqlTableModel);
+
+    QStandardItem *sqlRTableModel = new QStandardItem;
+    sqlRTableModel->setText(QString("QSqlRelationalTableModel"));
+    sqlTableModel->appendRow(sqlRTableModel);
+
+    QStandardItem *dirModel = new QStandardItem;
+    dirModel->setText(QString("QDirModel"));
+    absItemModel->appendRow(dirModel);
+
+    QStandardItem *proxyModel = new QStandardItem;
+    proxyModel->setText(QString("QProxyModel"));
+    absItemModel->appendRow(proxyModel);
+
+    QStandardItem *stanItemModel = new QStandardItem;
+    stanItemModel->setText(QString("QStandardItemModel"));
+    absItemModel->appendRow(stanItemModel);
+
+    QStandardItem *ioDevice = new QStandardItem;
+    ioDevice->setText(QString("QIODevice"));
+    object->appendRow(ioDevice);
+
+    QStandardItem *absSocket = new QStandardItem;
+    absSocket->setText(QString("QAbstractSocket"));
+    ioDevice->appendRow(absSocket);
+
+    QStandardItem *topSocket = new QStandardItem;
+    topSocket->setText(QString("QTopSocket"));
+    absSocket->appendRow(topSocket);
+
+    QStandardItem *sslSocket = new QStandardItem;
+    sslSocket->setText(QString("QSslSocket"));
+    topSocket->appendRow(sslSocket);
+
+    QStandardItem *udpSocket = new QStandardItem;
+    udpSocket->setText(QString("QUdpSocket"));
+    absSocket->appendRow(udpSocket);
+
+    QStandardItem *file = new QStandardItem;
+    file->setText(QString("QFile"));
+    ioDevice->appendRow(file);
+
+    QStandardItem *tmpFile = new QStandardItem;
+    tmpFile->setText(QString("QTemporaryFile"));
+    file->appendRow(tmpFile);
+
+    QStandardItem *buffer = new QStandardItem;
+    buffer->setText(QString("QBuffer"));
+    ioDevice->appendRow(buffer);
+
+    QStandardItem *process = new QStandardItem;
+    process->setText(QString("QProcess"));
+    ioDevice->appendRow(process);
+
+    QStandardItem *validator = new QStandardItem;
+    validator->setText(QString("QValidator"));
+    object->appendRow(validator);
+
+    QStandardItem *dValidator = new QStandardItem;
+    dValidator->setText(QString("QDoubleValidator"));
+    validator->appendRow(dValidator);
+
+    QStandardItem *intValidator = new QStandardItem;
+    intValidator->setText(QString("QIntValidator"));
+    validator->appendRow(intValidator);
+
+    QStandardItem *rgValidator = new QStandardItem;
+    rgValidator->setText(QString("QRegExpValidator"));
+    validator->appendRow(rgValidator);
+
+    QStandardItem *action = new QStandardItem;
+    action->setText(QString("QAction"));
+    object->appendRow(action);
+
+    QStandardItem *menuItem = new QStandardItem;
+    menuItem->setText(QString("QMenuItem"));
+    action->appendRow(menuItem);
+
+    QStandardItem *widgetAction = new QStandardItem;
+    widgetAction->setText(QString("QWidgetAction"));
+    action->appendRow(widgetAction);
+
+    QStandardItem *dBusAbsInterface = new QStandardItem;
+    dBusAbsInterface->setText(QString("QDBusAbstractInterface"));
+    object->appendRow(dBusAbsInterface);
+
+    QStandardItem *dBusConInterface = new QStandardItem;
+    dBusConInterface->setText(QString("QDBusConnectionInterface"));
+    dBusAbsInterface->appendRow(dBusConInterface);
+
+    QStandardItem *dBusInterface = new QStandardItem;
+    dBusInterface->setText(QString("QDBusInterface"));
+    dBusAbsInterface->appendRow(dBusInterface);
+
+    QStandardItem *textObject = new QStandardItem;
+    textObject->setText(QString("QTextObject"));
+    object->appendRow(textObject);
+
+    QStandardItem *textBlockGroup = new QStandardItem;
+    textBlockGroup->setText(QString("QTextBlockGroup"));
+    textObject->appendRow(textBlockGroup);
+
+    QStandardItem *textList = new QStandardItem;
+    textList->setText(QString("QTextList"));
+    textBlockGroup->appendRow(textList);
+
+    QStandardItem *textFrame = new QStandardItem;
+    textFrame->setText(QString("QTextFrame"));
+    textObject->appendRow(textFrame);
+
+    QStandardItem *textTable = new QStandardItem;
+    textTable->setText(QString("QTextTable"));
+    textFrame->appendRow(textTable);
+
+    QStandardItem *absItemDelegate = new QStandardItem;
+    absItemDelegate->setText(QString("QAbstractItemDelegate"));
+    object->appendRow(absItemDelegate);
+
+    QStandardItem *itemDelegate = new QStandardItem;
+    itemDelegate->setText(QString("QItemDelegate"));
+    absItemDelegate->appendRow(itemDelegate);
+
+    QStandardItem *sqlRelationalDelegate = new QStandardItem;
+    sqlRelationalDelegate->setText(QString("QSqlRelationalDelegate"));
+    itemDelegate->appendRow(sqlRelationalDelegate);
+
+    //________________________________________
+
+    QStandardItem *layoutItem = new QStandardItem;
+    layoutItem->setText(QString("QLayoutItem"));
+    model->appendRow(layoutItem);
+
+    QStandardItem *layout = new QStandardItem;
+    layout->setText(QString("QLayout"));
+    layoutItem->appendRow(layout);
+
+    QStandardItem *boxLayout = new QStandardItem;
+    boxLayout->setText(QString("QBoxLayout"));
+    layout->appendRow(boxLayout);
+
+    QStandardItem *hBoxLayout = new QStandardItem;
+    hBoxLayout->setText(QString("QHBoxLayout"));
+    boxLayout->appendRow(hBoxLayout);
+
+    QStandardItem *vBoxLayout = new QStandardItem;
+    vBoxLayout->setText(QString("QVBoxLayout"));
+    boxLayout->appendRow(vBoxLayout);
+
+    QStandardItem *gridLayout = new QStandardItem;
+    gridLayout->setText(QString("QGridLayout"));
+    layout->appendRow(gridLayout);
+
+    QStandardItem *stackedLayout = new QStandardItem;
+    stackedLayout->setText(QString("QStackedLayout"));
+    layout->appendRow(stackedLayout);
+
+    QStandardItem *spacerItem = new QStandardItem;
+    spacerItem->setText(QString("QSpacerItem"));
+    layoutItem->appendRow(spacerItem);
+
+    QStandardItem *widgetItem = new QStandardItem;
+    widgetItem->setText(QString("QWidgetItem"));
+    layoutItem->appendRow(widgetItem);
+
+    //________________________________________
+
+    QStandardItem *axBase = new QStandardItem;
+    axBase->setText(QString("QAxBase"));
+    model->appendRow(axBase);
+
+    QStandardItem *axWidget = new QStandardItem;
+    axWidget->setText(QString("QAxWidget"));
+    axBase->appendRow(axWidget);
+
+    QStandardItem *axObject = new QStandardItem;
+    axObject->setText(QString("QAxObject"));
+    axBase->appendRow(axObject);
+
+    QStandardItem *axScriptEngine = new QStandardItem;
+    axScriptEngine->setText(QString("QAxScriptEngine"));
+    axObject->appendRow(axScriptEngine);
+
+    //________________________________________
+
+    QStandardItem *absFormBuilder = new QStandardItem;
+    absFormBuilder->setText(QString("QAbstractFormBuilder"));
+    model->appendRow(absFormBuilder);
+
+    QStandardItem *formBuilder = new QStandardItem;
+    formBuilder->setText(QString("QFormBuilder"));
+    absFormBuilder->appendRow(formBuilder);
+
+    //________________________________________
+
+    QStandardItem *domNote = new QStandardItem;
+    domNote->setText(QString("QDomNote"));
+    model->appendRow(domNote);
+
+    QStandardItem *domCharData = new QStandardItem;
+    domCharData->setText(QString("QDomCharacterData"));
+    domNote->appendRow(domCharData);
+
+    QStandardItem *domText = new QStandardItem;
+    domText->setText(QString("QDomText"));
+    domCharData->appendRow(domText);
+
+    QStandardItem *domCDATASection = new QStandardItem;
+    domCDATASection->setText(QString("QDomCDATASection"));
+    domText->appendRow(domCDATASection);
+
+    QStandardItem *domComment = new QStandardItem;
+    domComment->setText(QString("QDomComment"));
+    domCharData->appendRow(domComment);
+
+    QStandardItem *domAttr = new QStandardItem;
+    domAttr->setText(QString("QDomAttr"));
+    domNote->appendRow(domAttr);
+
+    QStandardItem *domDoc = new QStandardItem;
+    domDoc->setText(QString("QDomDocument"));
+    domNote->appendRow(domDoc);
+
+    QStandardItem *domDocFrag = new QStandardItem;
+    domDocFrag->setText(QString("QDomDocumentFragment"));
+    domNote->appendRow(domDocFrag);
+
+    QStandardItem *domDocType = new QStandardItem;
+    domDocType->setText(QString("QDomDocumentType"));
+    domNote->appendRow(domDocType);
+
+    QStandardItem *domElement = new QStandardItem;
+    domElement->setText(QString("QDomElement"));
+    domNote->appendRow(domElement);
+
+    QStandardItem *domEntity = new QStandardItem;
+    domEntity->setText(QString("QDomEntity"));
+    domNote->appendRow(domEntity);
+
+    QStandardItem *domEntityRef = new QStandardItem;
+    domEntityRef->setText(QString("QDomEntityReference"));
+    domNote->appendRow(domEntityRef);
+
+    QStandardItem *domNotation = new QStandardItem;
+    domNotation->setText(QString("QDomNotation"));
+    domNote->appendRow(domNotation);
+
+    QStandardItem *domProcInst = new QStandardItem;
+    domProcInst->setText(QString("QDomProcessingInstruction"));
+    domNote->appendRow(domProcInst);
+
+    //________________________________________
+
+    QStandardItem *xmlContentHandler = new QStandardItem;
+    xmlContentHandler->setText(QString("QXmlContentHandler"));
+    model->appendRow(xmlContentHandler);
+
+    QStandardItem *xmlDTDHandler = new QStandardItem;
+    xmlDTDHandler->setText(QString("QXmlDTDHandler"));
+    model->appendRow(xmlDTDHandler);
+
+    QStandardItem *xmlDecHandler = new QStandardItem;
+    xmlDecHandler->setText(QString("QXmlDecHandler"));
+    model->appendRow(xmlDecHandler);
+
+    QStandardItem *xmlEntityHandler = new QStandardItem;
+    xmlEntityHandler->setText(QString("QXmlEntityHandler"));
+    model->appendRow(xmlEntityHandler);
+
+    QStandardItem *xmlErrorHandler = new QStandardItem;
+    xmlErrorHandler->setText(QString("QXmlErrorHandler"));
+    model->appendRow(xmlErrorHandler);
+
+    QStandardItem *xmlLexicalHandler = new QStandardItem;
+    xmlLexicalHandler->setText(QString("QXmlLexicalHandler"));
+    model->appendRow(xmlLexicalHandler);
+
+    QStandardItem *xmlDefaultHandler = new QStandardItem;
+    xmlDefaultHandler->setText(QString("QXmlDefaultHandler"));
+    xmlContentHandler->appendRow(xmlDefaultHandler);
+
+    //________________________________________
+
+    QStandardItem *xmlReader = new QStandardItem;
+    xmlReader->setText(QString("QXmlReader"));
+    model->appendRow(xmlReader);
+
+    QStandardItem *xmlSimpleReader = new QStandardItem;
+    xmlSimpleReader->setText(QString("QXmlSimpleReader"));
+    xmlReader->appendRow(xmlSimpleReader);
+
+    //________________________________________
+
+    QStandardItem *absFileEngine = new QStandardItem;
+    absFileEngine->setText(QString("QAbstractFileEngine"));
+    model->appendRow(absFileEngine);
+
+    QStandardItem *fsFileEngine = new QStandardItem;
+    fsFileEngine->setText(QString("QFSFileEngine"));
+    absFileEngine->appendRow(fsFileEngine);
+
+    //________________________________________
+
+    QStandardItem *genArg = new QStandardItem;
+    genArg->setText(QString("QGenericArgument"));
+    model->appendRow(genArg);
+
+    QStandardItem *genRetArg = new QStandardItem;
+    genRetArg->setText(QString("QGenericReturnArgument"));
+    genArg->appendRow(genRetArg);
+
+    //________________________________________
+
+    QStandardItem *textStream = new QStandardItem;
+    textStream->setText(QString("QTextStream"));
+    model->appendRow(textStream);
+
+    QStandardItem *textIStream = new QStandardItem;
+    textIStream->setText(QString("QTextIStream"));
+    textStream->appendRow(textIStream);
+
+    QStandardItem *textOStream = new QStandardItem;
+    textOStream->setText(QString("QTextOStream"));
+    textStream->appendRow(textOStream);
+
+    //________________________________________
+
+    QStandardItem *screen = new QStandardItem;
+    screen->setText(QString("QScreen"));
+    model->appendRow(screen);
+
+    QStandardItem *vncScreen = new QStandardItem;
+    vncScreen->setText(QString("QVNCScreen"));
+    screen->appendRow(vncScreen);
+
+    //________________________________________
+
+    QStandardItem *wsMouseHandler = new QStandardItem;
+    wsMouseHandler->setText(QString("QWSMouseHandler"));
+    model->appendRow(wsMouseHandler);
+
+    QStandardItem *calWsMouseHandler = new QStandardItem;
+    calWsMouseHandler->setText(QString("QWSCalibratedMouseHandler"));
+    wsMouseHandler->appendRow(calWsMouseHandler);
+
+    //________________________________________
+
+    QStandardItem *painter = new QStandardItem;
+    painter->setText(QString("QPainter"));
+    model->appendRow(painter);
+
+    QStandardItem *sPainter = new QStandardItem;
+    sPainter->setText(QString("QStylePainter"));
+    painter->appendRow(sPainter);
+
+    //________________________________________
+
+    QStandardItem *paintEngine = new QStandardItem;
+    paintEngine->setText(QString("QPaintEngine"));
+    model->appendRow(paintEngine);
+
+
+    QStandardItem *paintREngine = new QStandardItem;
+    paintREngine->setText(QString("QRasterPaintEngine"));
+    paintEngine->appendRow(paintREngine);
+
+    //________________________________________
+
+    QStandardItem *palette = new QStandardItem;
+    palette->setText(QString("QPalette"));
+    model->appendRow(palette);
+
+    QStandardItem *colorGroup = new QStandardItem;
+    colorGroup->setText(QString("QColorGroup"));
+    palette->appendRow(colorGroup);
+
+    //________________________________________
+
+    QStandardItem *qevent = new QStandardItem;
+    qevent->setText(QString("QEvent"));
+    model->appendRow(qevent);
+
+    return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelSimple()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    // =====================================================================
+    // Depth 1
+    // =====================================================================
+    QStandardItem *depth1_parent0 = new QStandardItem(QString("Lock"));
+    QStandardItem *depth1_parent1 = new QStandardItem(QString("Settings"));
+    QStandardItem *depth1_parent2 = new QStandardItem(QString("Handler"));
+    QStandardItem *depth1_parent3 = new QStandardItem(QString("Notifier"));
+    QStandardItem *depth1_parent4 = new QStandardItem(QString("Properties"));
+    QStandardItem *depth1_parent5 = new QStandardItem(QString("Repository"));
+    QStandardItem *depth1_parent6 = new QStandardItem(QString("Other"));
+    QStandardItem *depth1_parent7 = new QStandardItem(QString("KeyLockPolicy"));
+    QStandardItem *depth1_parent8 = new QStandardItem(QString("Schedule"));
+    QStandardItem *depth1_parent9 = new QStandardItem(QString("Settings2"));
+
+    depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent2->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent3->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent4->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent5->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent6->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent7->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent8->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent9->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+    model->setItem(0,0,depth1_parent0);
+    model->setItem(1,0,depth1_parent1);
+    model->setItem(2,0,depth1_parent2);
+    model->setItem(3,0,depth1_parent3);
+    model->setItem(4,0,depth1_parent4);
+    model->setItem(5,0,depth1_parent5);
+    model->setItem(6,0,depth1_parent6);
+    model->setItem(7,0,depth1_parent7);
+    model->setItem(8,0,depth1_parent8);
+    model->setItem(9,0,depth1_parent9);
+
+
+		RDebug::Printf( "%s %s (%u) Lock depth2-0=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item00 = new QStandardItem(QString("00:xxx"));
+    QStandardItem *depth2_item01 = new QStandardItem(QString("01:DeviceLockOff"));
+    QStandardItem *depth2_item02 = new QStandardItem(QString("02:KeyguardOn+Note"));
+    QStandardItem *depth2_item03 = new QStandardItem(QString("03:KeyguardOff"));
+    QStandardItem *depth2_item04 = new QStandardItem(QString("04:OfferDevicelock"));
+    QStandardItem *depth2_item05 = new QStandardItem(QString("05:KeyguardOn-Note"));
+    QStandardItem *depth2_item06 = new QStandardItem(QString("06:Wait20-DeviceLockOff"));
+    QStandardItem *depth2_item07 = new QStandardItem(QString("07:Wait20-KeyguardOff"));
+    QStandardItem *depth2_item08 = new QStandardItem(QString("08:Wait20-ShowKeysLockedNote"));
+    QStandardItem *depth2_item09 = new QStandardItem(QString("09:DeviceLockOn"));
+
+    depth1_parent0->setChild(0, 0, depth2_item00);
+    depth1_parent0->setChild(1, 0, depth2_item01);
+    depth1_parent0->setChild(2, 0, depth2_item02);
+    depth1_parent0->setChild(3, 0, depth2_item03);
+    depth1_parent0->setChild(4, 0, depth2_item04);
+    depth1_parent0->setChild(5, 0, depth2_item05);
+    depth1_parent0->setChild(6, 0, depth2_item06);
+    depth1_parent0->setChild(7, 0, depth2_item07);
+    depth1_parent0->setChild(8, 0, depth2_item08);
+    depth1_parent0->setChild(9, 0, depth2_item09);
+    
+		RDebug::Printf( "%s %s (%u) Settings depth2-1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item10 = new QStandardItem(QString("10:Call1"));
+    QStandardItem *depth2_item11 = new QStandardItem(QString("11:ChangePinL"));
+    QStandardItem *depth2_item12 = new QStandardItem(QString("12:IsLockEnabledL"));
+    QStandardItem *depth2_item13 = new QStandardItem(QString("13:AskSecCodeL"));
+    QStandardItem *depth2_item14 = new QStandardItem(QString("14:AskPin2L"));
+    QStandardItem *depth2_item15 = new QStandardItem(QString("15:GetFdnMode"));
+    QStandardItem *depth2_item16 = new QStandardItem(QString("16:IsUpinBlocked"));
+    QStandardItem *depth2_item17 = new QStandardItem(QString("17:ChangeSecCodeL"));
+    QStandardItem *depth2_item18 = new QStandardItem(QString("18:ChangeAutoLockPeriodL=30"));
+    QStandardItem *depth2_item19 = new QStandardItem(QString("19:ChangeAutoLockPeriodL=0"));
+
+    depth1_parent1->setChild(0, 0, depth2_item10);
+    depth1_parent1->setChild(1, 0, depth2_item11);
+    depth1_parent1->setChild(2, 0, depth2_item12);
+    depth1_parent1->setChild(3, 0, depth2_item13);
+    depth1_parent1->setChild(4, 0, depth2_item14);
+    depth1_parent1->setChild(5, 0, depth2_item15);
+    depth1_parent1->setChild(6, 0, depth2_item16);
+    depth1_parent1->setChild(7, 0, depth2_item17);
+    depth1_parent1->setChild(8, 0, depth2_item18);
+    depth1_parent1->setChild(9, 0, depth2_item19);
+    
+		RDebug::Printf( "%s %s (%u) Handler depth2-2=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item20 = new QStandardItem(QString("20:Notif.EPin1Required"));
+    QStandardItem *depth2_item21 = new QStandardItem(QString("21:EPin1Required"));
+    QStandardItem *depth2_item22 = new QStandardItem(QString("22:EPin2Required"));
+    QStandardItem *depth2_item23 = new QStandardItem(QString("23:EPhonePasswordRequired"));
+    QStandardItem *depth2_item24 = new QStandardItem(QString("24:EPuk1Required"));
+    QStandardItem *depth2_item25 = new QStandardItem(QString("25:EPuk2Required"));
+    QStandardItem *depth2_item26 = new QStandardItem(QString("26:EUniversalPinRequired"));
+    QStandardItem *depth2_item27 = new QStandardItem(QString("27:EUniversalPukRequired"));
+    QStandardItem *depth2_item28 = new QStandardItem(QString("28:xxx"));
+    QStandardItem *depth2_item29 = new QStandardItem(QString("29:xxx"));
+
+    depth1_parent2->setChild(0, 0, depth2_item20);
+    depth1_parent2->setChild(1, 0, depth2_item21);
+    depth1_parent2->setChild(2, 0, depth2_item22);
+    depth1_parent2->setChild(3, 0, depth2_item23);
+    depth1_parent2->setChild(4, 0, depth2_item24);
+    depth1_parent2->setChild(5, 0, depth2_item25);
+    depth1_parent2->setChild(6, 0, depth2_item26);
+    depth1_parent2->setChild(7, 0, depth2_item27);
+    depth1_parent2->setChild(8, 0, depth2_item28);
+    depth1_parent2->setChild(9, 0, depth2_item29);
+    
+		RDebug::Printf( "%s %s (%u) Notifier depth2-3=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item30 = new QStandardItem(QString("30:Op.0"));
+    QStandardItem *depth2_item31 = new QStandardItem(QString("31:EPin1Required"));
+    QStandardItem *depth2_item32 = new QStandardItem(QString("32:EPin2Required"));
+    QStandardItem *depth2_item33 = new QStandardItem(QString("33:EPhonePasswordRequired"));
+    QStandardItem *depth2_item34 = new QStandardItem(QString("34:EPuk1Required"));
+    QStandardItem *depth2_item35 = new QStandardItem(QString("35:EPuk2Required"));
+    QStandardItem *depth2_item36 = new QStandardItem(QString("36:EUniversalPinRequired"));
+    QStandardItem *depth2_item37 = new QStandardItem(QString("37:EUniversalPukRequired"));
+    QStandardItem *depth2_item38 = new QStandardItem(QString("38:Op.0x222"));
+    QStandardItem *depth2_item39 = new QStandardItem(QString("39:Op.0"));
+
+    depth1_parent3->setChild(0, 0, depth2_item30);
+    depth1_parent3->setChild(1, 0, depth2_item31);
+    depth1_parent3->setChild(2, 0, depth2_item32);
+    depth1_parent3->setChild(3, 0, depth2_item33);
+    depth1_parent3->setChild(4, 0, depth2_item34);
+    depth1_parent3->setChild(5, 0, depth2_item35);
+    depth1_parent3->setChild(6, 0, depth2_item36);
+    depth1_parent3->setChild(7, 0, depth2_item37);
+    depth1_parent3->setChild(8, 0, depth2_item38);
+    depth1_parent3->setChild(9, 0, depth2_item39);
+    
+		RDebug::Printf( "%s %s (%u) Properties depth2-4=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item40 = new QStandardItem(QString("40:KAknKeyguardStatus=8"));
+    QStandardItem *depth2_item41 = new QStandardItem(QString("41:Pass=1234"));
+    QStandardItem *depth2_item42 = new QStandardItem(QString("42:Pass=12345"));
+    QStandardItem *depth2_item43 = new QStandardItem(QString("43:Pass=20499"));
+    QStandardItem *depth2_item44 = new QStandardItem(QString("44:Read-Prop"));
+    QStandardItem *depth2_item45 = new QStandardItem(QString("45:Read-Prop8"));
+    QStandardItem *depth2_item46 = new QStandardItem(QString("46:Stop-Prop8"));
+    QStandardItem *depth2_item47 = new QStandardItem(QString("47:EAutolockOff"));
+    QStandardItem *depth2_item48 = new QStandardItem(QString("48:EManualLocked"));
+    QStandardItem *depth2_item49 = new QStandardItem(QString("49:Uninitialized"));
+
+    depth1_parent4->setChild(0, 0, depth2_item40);
+    depth1_parent4->setChild(1, 0, depth2_item41);
+    depth1_parent4->setChild(2, 0, depth2_item42);
+    depth1_parent4->setChild(3, 0, depth2_item43);
+    depth1_parent4->setChild(4, 0, depth2_item44);
+    depth1_parent4->setChild(5, 0, depth2_item45);
+    depth1_parent4->setChild(6, 0, depth2_item46);
+    depth1_parent4->setChild(7, 0, depth2_item47);
+    depth1_parent4->setChild(8, 0, depth2_item48);
+    depth1_parent4->setChild(9, 0, depth2_item49);
+    
+		RDebug::Printf( "%s %s (%u) Repository depth2-5=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item50 = new QStandardItem(QString("50:KeyguardTime=0s"));
+    QStandardItem *depth2_item51 = new QStandardItem(QString("51:KeyguardTime=10s"));
+    QStandardItem *depth2_item52 = new QStandardItem(QString("52:KeyguardTime=30s"));
+    QStandardItem *depth2_item53 = new QStandardItem(QString("53:KeyguardT=10+60s"));
+    QStandardItem *depth2_item54 = new QStandardItem(QString("54:AutoLockTime=0m"));
+    QStandardItem *depth2_item55 = new QStandardItem(QString("55:AutoLockTime=1m"));
+    QStandardItem *depth2_item56 = new QStandardItem(QString("56:AutoLockTime=2m"));
+    QStandardItem *depth2_item57 = new QStandardItem(QString("57:AutoLockT=65535m"));
+    QStandardItem *depth2_item58 = new QStandardItem(QString("58:read"));
+    QStandardItem *depth2_item59 = new QStandardItem(QString("59:xxx"));
+
+    depth1_parent5->setChild(0, 0, depth2_item50);
+    depth1_parent5->setChild(1, 0, depth2_item51);
+    depth1_parent5->setChild(2, 0, depth2_item52);
+    depth1_parent5->setChild(3, 0, depth2_item53);
+    depth1_parent5->setChild(4, 0, depth2_item54);
+    depth1_parent5->setChild(5, 0, depth2_item55);
+    depth1_parent5->setChild(6, 0, depth2_item56);
+    depth1_parent5->setChild(7, 0, depth2_item57);
+    depth1_parent5->setChild(8, 0, depth2_item58);
+    depth1_parent5->setChild(9, 0, depth2_item59);
+    
+		RDebug::Printf( "%s %s (%u) Other depth2-6=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item60 = new QStandardItem(QString("60:Wait30+Cancel_P&S"));
+    QStandardItem *depth2_item61 = new QStandardItem(QString("61:Cancel_P&S"));
+    QStandardItem *depth2_item62 = new QStandardItem(QString("62:TSecUi::InitializeLibL"));
+    QStandardItem *depth2_item63 = new QStandardItem(QString("63:TSecUi::UnInitializeLib"));
+    QStandardItem *depth2_item64 = new QStandardItem(QString("64:Wait30+CancelSecCodeQuery"));
+    QStandardItem *depth2_item65 = new QStandardItem(QString("65:CancelSecCodeQuery"));
+    QStandardItem *depth2_item66 = new QStandardItem(QString("66:EStdKeyDeviceF"));
+    QStandardItem *depth2_item67 = new QStandardItem(QString("67:EKeyDeviceF"));
+    QStandardItem *depth2_item68 = new QStandardItem(QString("68:EKeyBell"));
+    QStandardItem *depth2_item69 = new QStandardItem(QString("69:Stop-iPeriodicExt"));
+
+    depth1_parent6->setChild(0, 0, depth2_item60);
+    depth1_parent6->setChild(1, 0, depth2_item61);
+    depth1_parent6->setChild(2, 0, depth2_item62);
+    depth1_parent6->setChild(3, 0, depth2_item63);
+    depth1_parent6->setChild(4, 0, depth2_item64);
+    depth1_parent6->setChild(5, 0, depth2_item65);
+    depth1_parent6->setChild(6, 0, depth2_item66);
+    depth1_parent6->setChild(7, 0, depth2_item67);
+    depth1_parent6->setChild(8, 0, depth2_item68);
+    depth1_parent6->setChild(9, 0, depth2_item69);
+    
+		RDebug::Printf( "%s %s (%u) KeyLockPolicy depth2-7=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item70 = new QStandardItem(QString("70:KeyguardAllowed?"));
+    QStandardItem *depth2_item71 = new QStandardItem(QString("71:EnableKeyguardFeature"));
+    QStandardItem *depth2_item72 = new QStandardItem(QString("72:DisableKeyguardFeature"));
+    QStandardItem *depth2_item73 = new QStandardItem(QString("73:ShowErrorCodes"));
+    QStandardItem *depth2_item74 = new QStandardItem(QString("74:Expiration+Consecutive"));
+    QStandardItem *depth2_item75 = new QStandardItem(QString("75:Minlength+SpecificStrings"));
+    QStandardItem *depth2_item76 = new QStandardItem(QString("76:Chars_Numbers"));
+    QStandardItem *depth2_item77 = new QStandardItem(QString("77:xxx"));
+    QStandardItem *depth2_item78 = new QStandardItem(QString("78:xxx"));
+    QStandardItem *depth2_item79 = new QStandardItem(QString("79:xxx"));
+
+    depth1_parent7->setChild(0, 0, depth2_item70);
+    depth1_parent7->setChild(1, 0, depth2_item71);
+    depth1_parent7->setChild(2, 0, depth2_item72);
+    depth1_parent7->setChild(3, 0, depth2_item73);
+    depth1_parent7->setChild(4, 0, depth2_item74);
+    depth1_parent7->setChild(5, 0, depth2_item75);
+    depth1_parent7->setChild(6, 0, depth2_item76);
+    depth1_parent7->setChild(7, 0, depth2_item77);
+    depth1_parent7->setChild(8, 0, depth2_item78);
+    depth1_parent7->setChild(9, 0, depth2_item79);
+    
+		RDebug::Printf( "%s %s (%u) Schedule depth2-8=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item80 = new QStandardItem(QString("80:xxxx"));
+    QStandardItem *depth2_item81 = new QStandardItem(QString("81:xxx"));
+    QStandardItem *depth2_item82 = new QStandardItem(QString("82:xxx"));
+    QStandardItem *depth2_item83 = new QStandardItem(QString("83:xxx"));
+    QStandardItem *depth2_item84 = new QStandardItem(QString("84:xxx"));
+    QStandardItem *depth2_item85 = new QStandardItem(QString("85:xxx"));
+    QStandardItem *depth2_item86 = new QStandardItem(QString("86:xxx"));
+    QStandardItem *depth2_item87 = new QStandardItem(QString("87:xxx"));
+    QStandardItem *depth2_item88 = new QStandardItem(QString("88:xxx"));
+    QStandardItem *depth2_item89 = new QStandardItem(QString("89:xxx"));
+
+    depth1_parent8->setChild(0, 0, depth2_item80);
+    depth1_parent8->setChild(1, 0, depth2_item81);
+    depth1_parent8->setChild(2, 0, depth2_item82);
+    depth1_parent8->setChild(3, 0, depth2_item83);
+    depth1_parent8->setChild(4, 0, depth2_item84);
+    depth1_parent8->setChild(5, 0, depth2_item85);
+    depth1_parent8->setChild(6, 0, depth2_item86);
+    depth1_parent8->setChild(7, 0, depth2_item87);
+    depth1_parent8->setChild(8, 0, depth2_item88);
+    depth1_parent8->setChild(9, 0, depth2_item89);
+    
+		RDebug::Printf( "%s %s (%u) Settings2 depth2-9=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+    QStandardItem *depth2_item90 = new QStandardItem(QString("90:ChangeSimSecurityL"));
+    QStandardItem *depth2_item91 = new QStandardItem(QString("91:ChangePinRequestL"));
+    QStandardItem *depth2_item92 = new QStandardItem(QString("92:ChangeUPinRequestL"));
+    QStandardItem *depth2_item93 = new QStandardItem(QString("93:SwitchPinCodesL"));
+    QStandardItem *depth2_item94 = new QStandardItem(QString("94:ChangePin2L"));
+    QStandardItem *depth2_item95 = new QStandardItem(QString("95:SwitchPinCodesL"));
+    QStandardItem *depth2_item96 = new QStandardItem(QString("96:ChangeRemoteLockStatusL"));
+    QStandardItem *depth2_item97 = new QStandardItem(QString("97:ChangeRLStat-0"));
+    QStandardItem *depth2_item98 = new QStandardItem(QString("98:ChangeRLStat-Off"));
+    QStandardItem *depth2_item99 = new QStandardItem(QString("99:xxx"));
+
+    depth1_parent9->setChild(0, 0, depth2_item90);
+    depth1_parent9->setChild(1, 0, depth2_item91);
+    depth1_parent9->setChild(2, 0, depth2_item92);
+    depth1_parent9->setChild(3, 0, depth2_item93);
+    depth1_parent9->setChild(4, 0, depth2_item94);
+    depth1_parent9->setChild(5, 0, depth2_item95);
+    depth1_parent9->setChild(6, 0, depth2_item96);
+    depth1_parent9->setChild(7, 0, depth2_item97);
+    depth1_parent9->setChild(8, 0, depth2_item98);
+    depth1_parent9->setChild(9, 0, depth2_item99);
+    
+    return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelSimpleOfSimplest()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    // =====================================================================
+    // Depth 1
+    // =====================================================================
+    QStandardItem *depth1_item0 = new QStandardItem(QString("Leaf 0"));
+    //QStandardItem *depth1_item1 = new QStandardItem(QString("Leaf A-1"));
+    QStandardItem *depth1_parent0 = new QStandardItem(QString("Node A"));
+    QStandardItem *depth1_parent1 = new QStandardItem(QString("Node B"));
+
+    depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+    model->setItem(0,0,depth1_item0);
+    model->setItem(1,0,depth1_parent0);
+    model->setItem(2,0,depth1_parent1);
+
+    // =====================================================================
+    // Depth 2
+    // =====================================================================
+    QStandardItem *depth2_item0 = new QStandardItem(QString("Leaf A-1"));
+    QStandardItem *depth2_item1 = new QStandardItem(QString("Leaf A-2"));
+    QStandardItem *depth2_item2 = new QStandardItem(QString("Leaf B-1"));
+    /*QStandardItem *depth2_parent0 = new QStandardItem(QString("Node B-0"));
+    QStandardItem *depth2_parent1 = new QStandardItem(QString("Node B-1"));
+    QStandardItem *depth2_parent2 = new QStandardItem(QString("Node B-2"));
+
+    depth2_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth2_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth2_parent2->setData(Hb::ParentItem, Hb::ItemTypeRole);
+*/
+    depth1_parent0->setChild(0,0,depth2_item0);
+    depth1_parent0->setChild(1, 0, depth2_item1);
+    depth1_parent1->setChild(0, 0, depth2_item2);
+/*    depth1_parent1->setChild(0, 0, depth2_parent1);
+    depth1_parent1->setChild(1, 0, depth2_parent2);
+
+    // =====================================================================
+    // Depth 3
+    // =====================================================================
+    QStandardItem *depth3_item0 = new QStandardItem(QString("Leaf C-0"));
+    QStandardItem *depth3_item1 = new QStandardItem(QString("Leaf C-1"));
+    QStandardItem *depth3_item2 = new QStandardItem(QString("Leaf C-2"));
+    QStandardItem *depth3_item3 = new QStandardItem(QString("Leaf C-3"));
+    QStandardItem *depth3_item4 = new QStandardItem(QString("Leaf C-4"));
+    QStandardItem *depth3_item5 = new QStandardItem(QString("Leaf C-5"));
+
+    depth2_parent0->setChild(0, 0, depth3_item0);
+    depth2_parent0->setChild(1, 0, depth3_item1);
+    depth2_parent1->setChild(0, 0, depth3_item2);
+    depth2_parent2->setChild(0, 0, depth3_item3);
+    depth2_parent2->setChild(1, 0, depth3_item4);
+    depth2_parent2->setChild(2, 0, depth3_item5);
+*/
+    return model;
+}
+
+QStandardItemModel *ModelFactory::populateGreenOddBrownEvenModel()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    // =====================================================================
+    // Depth 1
+    // =====================================================================
+
+    QStandardItem *depth1_item0 = new QStandardItem();
+    QStringList data;
+    data << "Odd numbered items are green" << "Even numbered items are brown";
+    depth1_item0->setData(QVariant(data), Qt::DisplayRole);
+
+    QStandardItem *depth1_item1 = new QStandardItem(QString("1"));
+    QStandardItem *depth1_item2 = new QStandardItem(QString("Item 2"));
+    QStandardItem *depth1_item3 = new QStandardItem(QString("Item 3"));
+    QStandardItem *depth1_item4 = new QStandardItem(QString("4"));
+    QStandardItem *depth1_item5 = new QStandardItem(QString("5"));
+    QStandardItem *depth1_parent0 = new QStandardItem(QString("Parent 1"));
+    QStandardItem *depth1_parent1 = new QStandardItem(QString("Parent 2"));
+
+    depth1_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+    depth1_parent1->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+    model->setItem(0,0,depth1_item0);
+    model->setItem(1,0,depth1_item1);
+    model->setItem(2,0,depth1_item2);
+    model->setItem(3,0,depth1_item3);
+    model->setItem(4,0,depth1_parent0);
+    model->setItem(5,0,depth1_parent1);
+    model->setItem(6,0,depth1_item4);
+    model->setItem(7,0,depth1_item5);
+
+    // =====================================================================
+    // Depth 2
+    // =====================================================================
+    QStandardItem *depth2_item0 = new QStandardItem(QString("11"));
+    QStandardItem *depth2_item1 = new QStandardItem(QString("12"));
+    QStandardItem *depth2_item2 = new QStandardItem(QString("Item 13"));
+    QStandardItem *depth2_item4 = new QStandardItem(QString("Item 14"));
+    QStandardItem *depth2_item5 = new QStandardItem(QString("15"));
+    QStandardItem *depth2_item6 = new QStandardItem(QString("16"));
+    QStandardItem *depth2_item7 = new QStandardItem(QString("17"));
+    QStandardItem *depth2_parent0 = new QStandardItem(QString("Parent 11"));
+
+    depth2_parent0->setData(Hb::ParentItem, Hb::ItemTypeRole);
+
+    depth1_parent0->setChild(0, 0, depth2_item0);
+    depth1_parent0->setChild(1, 0, depth2_item1);
+    depth1_parent0->setChild(2, 0, depth2_item2);
+    depth1_parent0->setChild(3, 0, depth2_parent0);
+
+    depth1_parent1->setChild(0, 0, depth2_item4);
+    depth1_parent1->setChild(1, 0, depth2_item5);
+    depth1_parent1->setChild(2, 0, depth2_item6);
+    depth1_parent1->setChild(3, 0, depth2_item7);
+
+    // =====================================================================
+    // Depth 3
+    // =====================================================================
+    QStandardItem *depth3_item0 = new QStandardItem(QString("21"));
+    QStandardItem *depth3_item1 = new QStandardItem(QString("22"));
+    QStandardItem *depth3_item2 = new QStandardItem(QString("Item 23"));
+    QStandardItem *depth3_item3 = new QStandardItem(QString("Item 24"));
+    QStandardItem *depth3_item4 = new QStandardItem(QString("25"));
+    QStandardItem *depth3_item5 = new QStandardItem(QString("26"));
+
+    depth2_parent0->setChild(0, 0, depth3_item0);
+    depth2_parent0->setChild(1, 0, depth3_item1);
+    depth2_parent0->setChild(2, 0, depth3_item2);
+    depth2_parent0->setChild(3, 0, depth3_item3);
+    depth2_parent0->setChild(4, 0, depth3_item4);
+    depth2_parent0->setChild(5, 0, depth3_item5);
+
+    return model;
+}
+
+
+QStandardItemModel *ModelFactory::populateTreeModelDeep()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    QStandardItem *root = new QStandardItem;
+    model->setItem(0,0,root);
+
+    QStandardItem *parent = root;
+    const int maxDeep = 50;
+    for (int current = 1; current <= maxDeep; ++current) {
+        parent->setData(Hb::ParentItem, Hb::ItemTypeRole);
+        parent->setText(QString("Parent %0").arg(current));
+
+        for (int current2 = 0; current2 < 5; ++current2) {
+                QStandardItem *item = new QStandardItem;
+                item->setText(QString("Item %0").arg(current2));
+                parent->setChild(current2, 0, item);
+        }
+        for (int current2 = 5; current2 < 10; ++current2) {
+            QStandardItem *item = new QStandardItem;
+            item->setText(QString("Item %0").arg(current2));
+            parent->setChild(current2, 0, item);
+
+            QStandardItem *itemPrevious = item;
+            for (int current3 = current+1; current3 < maxDeep - (current2-5)*maxDeep/5; ++current3) {
+                itemPrevious->setData(Hb::ParentItem, Hb::ItemTypeRole);
+                QStandardItem *item2 = new QStandardItem;
+                item2->setText(QString("Folder %0").arg(current3));
+                itemPrevious->setChild(0, 0, item2);
+
+                QStandardItem *itemTemp = new QStandardItem;
+                itemTemp->setText(QString("Folder %0 item").arg(current3));
+                itemPrevious->setChild(1, 0, itemTemp);
+
+                itemPrevious = item2;
+            }
+            itemPrevious->setData(Hb::ParentItem, Hb::ItemTypeRole);
+            QStandardItem *itemTemp = new QStandardItem;
+            itemTemp->setText(QString("Folder 9 item"));
+            itemPrevious->setChild(0, 0, itemTemp);
+        }
+
+        if(current < maxDeep) {
+            QStandardItem *item = new QStandardItem;
+            parent->setChild(10, 0, item);
+            parent = item;
+        }
+    }
+    return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelFlat()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+    for (int i = 0; i < 1000; ++i) {
+        QStandardItem* item = new QStandardItem(QString("Item number %1").arg(i));
+        model->appendRow(item);
+    }
+    return model;
+}
+
+QStandardItemModel *ModelFactory::populateTreeModelMixed()
+{
+    QStandardItemModel* model = new QStandardItemModel();
+
+    QStandardItem *parent = model->invisibleRootItem();
+    insertMixedItems(parent);
+
+    for (int current = 1; current <= 10; ++current) {
+        QStandardItem *newParent = new QStandardItem;
+        parent->appendRow(newParent);
+        parent = newParent;
+
+        parent->setData(Hb::ParentItem, Hb::ItemTypeRole);
+        parent->setText(QString("Parent %0").arg(current));
+
+        insertMixedItems(parent);
+    }
+
+    return model;
+}
+
+
+