Beispiel #1
0
int
DataItem::generateItems(int type)
{
    int         c;
    int         b;
    int         t;
    DataItem    *dataItem;
    int         items = 0;
    
    for(c=0; c<CTLR_MAX; c++) {
        for(b=0; b<BANKS; b++) {
            for(t=0; t<=1000; t++) {
                dataItem = generateDataItem(c, b, t, type);
                if(dataItem != 0) {
                    dataMap[c][b][dataItem->retireTime] = dataItem;
                    items++;
                }
            }
        }
    }
    return(items);
}
QTreeWidgetItem* PListEditorWidget::generateArrayItem(PList::Node* node)
{
	PList::Array* array = (PList::Array*) node;
	
	QTreeWidgetItem* item = new QTreeWidgetItem();
	
	item->setText (NameColumn, "<unknown>");
	item->setText (TypeColumn, "Array");
	item->setText (ValueColumn, "(" + QString::number(array->GetSize()) + " items)");
	item->setForeground(ValueColumn, Qt::gray);
	
	for (unsigned int x=0; x < array->GetSize(); ++x)
	{
		QString name = "Item " + QString::number(x);
		PList::Node* n = (*array)[x];
		
		QTreeWidgetItem* child = NULL;
		switch (n->GetType())
		{
			case PLIST_ARRAY:
				child = generateArrayItem(n);
				break;
				
			case PLIST_BOOLEAN:
				child = generateBooleanItem(n);
				break;
				
			case PLIST_DATA:
				child = generateDataItem(n);
				break;
				
			case PLIST_DATE:
				child = generateDateItem(n);
				break;
				
			case PLIST_DICT:
				child = generateDictionaryItem(n);
				break;
				
			case PLIST_UINT:
				child = generateIntegerItem(n);
				break;
				
			case PLIST_REAL:
				child = generateRealItem(n);
				break;
				
			case PLIST_STRING:
				child = generateStringItem(n);
				break;
				
			default:
				qDebug() << "Unknown type";
		}
		
		if (child)
		{
			child->setText (NameColumn, name);
			item->addChild (child);
		}
	}
	return item;
}
QTreeWidgetItem* PListEditorWidget::generateDictionaryItem(PList::Node* node )
{
	PList::Dictionary* dict = (PList::Dictionary*) node;
	
	QTreeWidgetItem* item = new QTreeWidgetItem();
	
	item->setText (NameColumn, "<unknown>");
	item->setText (TypeColumn, "Dictionary");
	item->setText (ValueColumn, "(" + QString::number(dict->GetSize()) + " items)");
	item->setForeground(ValueColumn, Qt::gray);
	
	for (PList::Dictionary::iterator i = dict->Begin(); i != dict->End(); ++i)
	{		
		PList::Node* n = i->second;
		
		QString name = QString::fromStdString(i->first);
		
		QTreeWidgetItem* child = NULL;
		switch (n->GetType())
		{
			case PLIST_ARRAY:
				child = generateArrayItem(n);
				break;
				
			case PLIST_BOOLEAN:
				child = generateBooleanItem(n);
				break;
				
			case PLIST_DATA:
				child = generateDataItem(n);
				break;
				
			case PLIST_DATE:
				child = generateDateItem(n);
				break;
				
			case PLIST_DICT:
				child = generateDictionaryItem(n);
				break;
				
			case PLIST_UINT:
				child = generateIntegerItem(n);
				break;
				
			case PLIST_REAL:
				child = generateRealItem(n);
				break;
				
			case PLIST_STRING:
				child = generateStringItem(n);
				break;
				
			default:
				qDebug() << "Unknown type";
		}
		
		if (child)
		{
			child->setText (NameColumn, name);
			item->addChild (child);
		}
	}
	
	return item;
}