scd+="\tif(e=="+ev[j].name+")return \""+ev[j].name+"\";\n";
}
scd+="\treturn \"\";\n}\n";
+ //localized string converters
+ hcd+="\tstatic "+k[i]+" locstr2"+k[i]+"(QString,bool*ok=0);\n";
+ hcd+="\tstatic QString "+k[i]+"2locstr("+k[i]+");\n";
+ scd+=cn+"::"+k[i]+" "+cn+"::locstr2"+k[i]+"(QString s,bool*ok)\n{\n";
+ scd+="\ts=s.toLower();if(ok)*ok=true;\n";
+ for(int j=0;j<ev.size();j++){
+ scd+="\tif(s==QCoreApplication::translate(\""+cn+"\",\""+ev[j].name+"\").toLower())return "+ev[j].name+";\n";
+ }
+ scd+="\tif(ok)*ok=false;\n\treturn "+ev[0].name+";\n}\n";
+ scd+="QString "+cn+"::"+k[i]+"2locstr("+k[i]+" e)\n{\n";
+ for(int j=0;j<ev.size();j++){
+ scd+="\tif(e=="+ev[j].name+")return QCoreApplication::translate(\""+cn+"\",\""+ev[j].name+"\");\n";
+ }
+ scd+="\treturn \"\";\n}\n";
}
hdr.write(hcd.toAscii());
src.write(scd.toAscii());
if(cls.propertyIsInt(k[i])){
scd+="\t\tbool b;\n\t\tint ct=el.text().toInt(&b);\n";
scd+="\t\tif(b)add"+k[i]+"(ct);\n";
- scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\""+cn+"\",\"Class "+cn+" property "+k[i]+" is integer list, but non-integer was found.\"));\n";
+ scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\"WobTransaction\",\"Class '%1' property '%2' is integer list, but non-integer was found.\").arg(\""+cn+"\").arg(\""+k[i]+"\"));\n";
}else
if(cls.propertyIsBool(k[i])){
scd+="\t\tadd"+k[i]+"(el.text()==\"yes\");\n";
QString pt=cls.propertyPlainType(k[i]);
scd+="\t\t"+pt+" ct=str2"+pt+"(root.attribute(\""+k[i]+"\"),&b);\n";
scd+="\t\tif(b)add"+k[i]+"(ct);\n";
- scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\""+cn+"\",\"Class "+cn+" property "+k[i]+" is enum list, invalid value was found.\"));\n";
+ scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\"WobTransaction\",\"Class '%1' property '%2' is enum list, invalid value was found.\").arg(\""+cn+"\").arg(\""+k[i]+"\"));\n";
}else
if(cls.propertyIsObject(k[i])){
scd+="\t\tadd"+k[i]+"("+m_prefix+"O"+cls.propertyPlainType(k[i])+"(el));\n";
if(cls.propertyIsInt(k[i])){
scd+="\t\tbool b;\n\t\tint ct=root.attribute(\""+k[i]+"\").toInt(&b);\n";
scd+="\t\tif(b)set"+k[i]+"(ct);\n";
- scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\""+cn+"\",\"Class "+cn+" property "+k[i]+" is integer, but non-integer was found.\"));\n";
+ scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\"WobTransaction\",\"Class '%1' property '%2' is integer, but non-integer was found.\").arg(\""+cn+"\").arg(\""+k[i]+"\"));\n";
}else
if(cls.propertyIsBool(k[i])){
scd+="\t\tset"+k[i]+"(root.attribute(\""+k[i]+"\")==\"yes\");\n";
QString pt=cls.propertyPlainType(k[i]);
scd+="\t\t"+pt+" ct=str2"+pt+"(root.attribute(\""+k[i]+"\"),&b);\n";
scd+="\t\tif(b)set"+k[i]+"(ct);\n";
- scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\""+cn+"\",\"Class "+cn+" property "+k[i]+" is enum, invalid value was found.\"));\n";
+ scd+="\t\telse throw WDeserializerException(QCoreApplication::translate(\"WobTransaction\",\"Class '%1' property '%2' is enum, invalid value was found.\").arg(\""+cn+"\").arg(\""+k[i]+"\"));\n";
}else{
scd+="#error \"Internal Generator error.\"\n";
qDebug("Error: unable to generate code for property %s of type %s.",k[i].toAscii().data(),cls.propertyType(k[i]).toAscii().data());