insilmaril@67: #include "xml-base.h" insilmaril@67: insilmaril@67: #include insilmaril@67: #include insilmaril@67: #include insilmaril@67: #include insilmaril@67: insilmaril@67: #include "misc.h" insilmaril@67: #include "settings.h" insilmaril@67: #include "linkablemapobj.h" insilmaril@67: insilmaril@67: /* insilmaril@67: static BranchObj *lastBranch; insilmaril@67: static FloatObj *lastFloat; insilmaril@67: static OrnamentedObj *lastOO; insilmaril@67: insilmaril@67: extern Settings settings; insilmaril@67: extern QString vymVersion; insilmaril@67: */ insilmaril@67: insilmaril@67: parseBaseHandler::parseBaseHandler() {} insilmaril@67: insilmaril@67: parseBaseHandler::~parseBaseHandler() {} insilmaril@67: insilmaril@67: QString parseBaseHandler::errorProtocol() { return errorProt; } insilmaril@67: insilmaril@67: insilmaril@67: /* insilmaril@67: bool parseBaseHandler::startDocument() insilmaril@67: { insilmaril@67: errorProt = ""; insilmaril@67: state = StateInit; insilmaril@67: laststate = StateInit; insilmaril@67: stateStack.clear(); insilmaril@67: stateStack.append(StateInit); insilmaril@67: branchDepth=0; insilmaril@67: htmldata=""; insilmaril@67: isVymPart=false; insilmaril@67: return true; insilmaril@67: } insilmaril@67: */ insilmaril@67: insilmaril@67: QString parseBaseHandler::parseHREF(QString href) insilmaril@67: { insilmaril@67: QString type=href.section(":",0,0); insilmaril@67: QString path=href.section(":",1,1); insilmaril@67: if (!tmpDir.endsWith("/")) insilmaril@67: return tmpDir + "/" + path; insilmaril@67: else insilmaril@67: return tmpDir + path; insilmaril@67: } insilmaril@67: insilmaril@67: insilmaril@67: /* insilmaril@67: QString parseBaseHandler::errorString() insilmaril@67: { insilmaril@67: return "the document is not in the VYM file format"; insilmaril@67: } insilmaril@67: */ insilmaril@67: insilmaril@67: bool parseBaseHandler::fatalError( const QXmlParseException& exception ) insilmaril@67: { insilmaril@67: errorProt += QString( "Fatal parsing error: %1 in line %2, column %3\n") insilmaril@67: .arg( exception.message() ) insilmaril@67: .arg( exception.lineNumber() ) insilmaril@67: .arg( exception.columnNumber() ); insilmaril@67: // Try to read the bogus line insilmaril@67: errorProt+=QString("File is: %1\n").arg(inputFile); insilmaril@67: QString s; insilmaril@67: if (loadStringFromDisk (inputFile,s)) insilmaril@67: { insilmaril@67: QStringList sl=QStringList::split ("\n",s); insilmaril@67: int i=1; insilmaril@67: QStringList::Iterator it = sl.begin(); insilmaril@67: while (i"); insilmaril@67: errorProt+=s; insilmaril@67: } insilmaril@67: return QXmlDefaultHandler::fatalError( exception ); insilmaril@67: } insilmaril@67: insilmaril@67: void parseBaseHandler::setModel (VymModel *m) insilmaril@67: { insilmaril@67: model=m; insilmaril@67: } insilmaril@67: insilmaril@67: void parseBaseHandler::setTmpDir (QString tp) insilmaril@67: { insilmaril@67: tmpDir=tp; insilmaril@67: } insilmaril@67: insilmaril@67: void parseBaseHandler::setInputFile (QString f) insilmaril@67: { insilmaril@67: inputFile=f; insilmaril@67: } insilmaril@67: insilmaril@67: void parseBaseHandler::setLoadMode (const LoadMode &lm) insilmaril@67: { insilmaril@67: loadMode=lm; insilmaril@67: } insilmaril@67: