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