xml-base.cpp
author insilmaril
Tue, 23 Mar 2010 11:54:30 +0000
branchrelease-1-12-maintained
changeset 81 876eed30ba3b
parent 67 6c6aa8d5e9b6
permissions -rw-r--r--
Patch from Xavier Oswald to compile with older compilers
insilmaril@67
     1
#include "xml-base.h"
insilmaril@67
     2
insilmaril@67
     3
#include <QMessageBox>
insilmaril@67
     4
#include <QColor>
insilmaril@67
     5
#include <QTextStream>
insilmaril@67
     6
#include <iostream>
insilmaril@81
     7
#include <cstdlib>
insilmaril@67
     8
insilmaril@67
     9
#include "misc.h"
insilmaril@67
    10
#include "settings.h"
insilmaril@67
    11
#include "linkablemapobj.h"
insilmaril@67
    12
insilmaril@67
    13
/*
insilmaril@67
    14
static BranchObj *lastBranch;
insilmaril@67
    15
static FloatObj *lastFloat;
insilmaril@67
    16
static OrnamentedObj *lastOO;
insilmaril@67
    17
insilmaril@67
    18
extern Settings settings;
insilmaril@67
    19
extern QString vymVersion;
insilmaril@67
    20
*/
insilmaril@67
    21
insilmaril@67
    22
parseBaseHandler::parseBaseHandler() {}
insilmaril@67
    23
insilmaril@67
    24
parseBaseHandler::~parseBaseHandler() {}
insilmaril@67
    25
insilmaril@67
    26
QString parseBaseHandler::errorProtocol() { return errorProt; }
insilmaril@67
    27
insilmaril@67
    28
insilmaril@67
    29
/*
insilmaril@67
    30
bool parseBaseHandler::startDocument()
insilmaril@67
    31
{
insilmaril@67
    32
    errorProt = "";
insilmaril@67
    33
    state = StateInit;
insilmaril@67
    34
    laststate = StateInit;
insilmaril@67
    35
	stateStack.clear();
insilmaril@67
    36
	stateStack.append(StateInit);
insilmaril@67
    37
    branchDepth=0;
insilmaril@67
    38
	htmldata="";
insilmaril@67
    39
	isVymPart=false;
insilmaril@67
    40
    return true;
insilmaril@67
    41
}
insilmaril@67
    42
*/
insilmaril@67
    43
insilmaril@67
    44
QString parseBaseHandler::parseHREF(QString href)
insilmaril@67
    45
{
insilmaril@67
    46
	QString type=href.section(":",0,0);
insilmaril@67
    47
	QString path=href.section(":",1,1);
insilmaril@67
    48
	if (!tmpDir.endsWith("/"))
insilmaril@67
    49
		return tmpDir + "/" + path;
insilmaril@67
    50
	else	
insilmaril@67
    51
		return tmpDir + path;
insilmaril@67
    52
}
insilmaril@67
    53
insilmaril@67
    54
insilmaril@67
    55
/*
insilmaril@67
    56
QString parseBaseHandler::errorString() 
insilmaril@67
    57
{
insilmaril@67
    58
    return "the document is not in the VYM file format";
insilmaril@67
    59
}
insilmaril@67
    60
*/
insilmaril@67
    61
insilmaril@67
    62
bool parseBaseHandler::fatalError( const QXmlParseException& exception ) 
insilmaril@67
    63
{
insilmaril@67
    64
    errorProt += QString( "Fatal parsing error: %1 in line %2, column %3\n")
insilmaril@67
    65
    .arg( exception.message() )
insilmaril@67
    66
    .arg( exception.lineNumber() )
insilmaril@67
    67
    .arg( exception.columnNumber() );
insilmaril@67
    68
	// Try to read the bogus line
insilmaril@67
    69
	errorProt+=QString("File is: %1\n").arg(inputFile);
insilmaril@67
    70
	QString s;
insilmaril@67
    71
	if (loadStringFromDisk (inputFile,s))
insilmaril@67
    72
	{
insilmaril@67
    73
		QStringList sl=QStringList::split ("\n",s);
insilmaril@67
    74
		int i=1;
insilmaril@67
    75
		QStringList::Iterator it = sl.begin();
insilmaril@67
    76
		while (i<exception.lineNumber())
insilmaril@67
    77
		{
insilmaril@67
    78
			it++;
insilmaril@67
    79
			i++;
insilmaril@67
    80
		}
insilmaril@67
    81
		s=*it;
insilmaril@67
    82
		s.insert (exception.columnNumber()-1,"<ERROR>");
insilmaril@67
    83
		errorProt+=s;
insilmaril@67
    84
    }
insilmaril@67
    85
    return QXmlDefaultHandler::fatalError( exception );
insilmaril@67
    86
}
insilmaril@67
    87
insilmaril@67
    88
void parseBaseHandler::setModel (VymModel *m)
insilmaril@67
    89
{
insilmaril@67
    90
	model=m;
insilmaril@67
    91
}
insilmaril@67
    92
insilmaril@67
    93
void parseBaseHandler::setTmpDir (QString tp)
insilmaril@67
    94
{
insilmaril@67
    95
	tmpDir=tp;
insilmaril@67
    96
}
insilmaril@67
    97
insilmaril@67
    98
void parseBaseHandler::setInputFile (QString f)
insilmaril@67
    99
{
insilmaril@67
   100
	inputFile=f;
insilmaril@67
   101
}
insilmaril@67
   102
insilmaril@67
   103
void parseBaseHandler::setLoadMode (const LoadMode &lm)
insilmaril@67
   104
{
insilmaril@67
   105
	loadMode=lm;
insilmaril@67
   106
}
insilmaril@67
   107