QVariant TextureDefinitionList::data(const QModelIndex &index, int role) const
{
    if(role == Qt::SizeHintRole)
    {
        return QSize(10,10);
    }
    else if((role == Qt::EditRole || role == Qt::DisplayRole) && level)
    {
        TextureDefinition* def = level->textureDefinitions.getTextureDefinition(index.row());
        if(def)
        {
            switch(index.column())
            {
                case 0:
                    return QString(def->getName());
                case 1:
                    return QVariant(def->getTexture());
                case 2:
                    return QVariant(def->getX());
                case 3:
                    return QVariant(def->getY());
                case 4:
                    return QVariant(def->getW());
                case 5:
                    return QVariant(def->getH());
            }
        }
    }
    return QVariant();
};
bool TextureDefinitionList::insertRows(int row, int count, const QModelIndex & /*parent*/)
{
    if(level && count > 0)
    {
        if(row >= 0 && row <= level->textureDefinitions.getNumTextureDefinitions())
        {
            TextureDefinition temp;
            temp.setX(0);
            temp.setY(0);
            temp.setW(16);
            temp.setH(16);
            temp.setTexture(0);
            temp.setName("");
            TextureDefinition* old = level->textureDefinitions.getTextureDefinition(row);
            if(old)
            temp.setTexture(old->getTexture());

            emit beginInsertRows(index(0,0),row,row+count-1);
            level->textureDefinitions.insertTextureDefinitions(row,count,temp);
            emit endInsertRows();
            return true;
        }
    }
    return false;
};