Exemplo n.º 1
0
Arquivo: var.cpp Projeto: Aspenka/SSD
Var Var::fromQVariant(QVariant qvar)
{
    Var var;
	if(qvar.type()==QVariant::List)
    {
        QVariantList qlist = qvar.toList();
		var.setType("list");
		for(int i=0;i<qlist.size();i++)
			var.append(fromQVariant(qlist[i]));
    }
	if(qvar.type()==QVariant::Map)
    {
        QVariantMap qmap = qvar.toMap();
		var.setType("map");
		for(QVariantMap::const_iterator i = qmap.constBegin();i != qmap.constEnd();i++)
			var.insert(i.key(),fromQVariant(i.value()));
    }
	if(qvar.type()==QVariant::String)
    {
        var.setType("string");
		var.setString(qvar.toString());
    }
	if(qvar.type()==QVariant::Int)
    {
        var.setType("string");
		var.setString(QString::number(qvar.toInt()));
    }
	if(qvar.type()==QVariant::Double)
    {
        var.setType("string");
		var.setString(QString::number(qvar.toDouble()));
    }
	return var;
	}
Exemplo n.º 2
0
Arquivo: var.cpp Projeto: Aspenka/SSD
Var Var::toLine(QString name, int column) const
{
    Var line;line.setParam("map",getName());
    column=0;
    int columnSize=0;
	
	QString prefix;
	if(name=="~")prefix="";
	else 
    {
        if(name.size()==0)prefix=getName();
		else prefix=name+"~"+getName();
    }
	
	if(getType()=="map")
    {
        for(QMap<QString, Var>::const_iterator i = Map.constBegin();i != Map.constEnd();i++)
        {
            Var linePart=Map.value(i.key()).toLine(prefix,column);
			line.unite(linePart);
            column+=columnSize;
            columnSize+=columnSize;
        }
    }
	if(getType()=="list")
    {
		for(int i=0;i<List.size();i++)
        {
            Var linePart=List[i].toLine(prefix+"#"+QString::number(i),column);
			line.unite(linePart);
            column+=columnSize;
        }
    }
	if(getType()=="string")
    {
        line.insert(prefix,String);
        //line.pval(prefix)->Column=column;
        columnSize++;
    }
	return line;
}