QVariant QtPropertyData::GetValue() const
{
    QtPropertyData *self = const_cast<QtPropertyData*>(this);
    
    if(curValue.isValid() || !curValue.isNull())
	{
		self->UpdateValue();
	}

    self->BuildCurrentValue();
	return curValue;
}
void QtPropertyModel::UpdateStructureInternal(const QModelIndex &i)
{
	QtPropertyData *data = itemFromIndexInternal(i);
	if(NULL != data)
	{
		data->UpdateValue();

		for(int row = 0; row < rowCount(i); ++row)
		{
			UpdateStructureInternal(index(row, 0, i));
		}
	}
}