Menu

[efa3d9]: / src / xml-base.cpp  Maximize  Restore  History

Download this file

114 lines (94 with data), 2.8 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
#include "xml-base.h"
#include "vymmodel.h"
#define qdbg() qDebug().nospace().noquote()
BaseReader::BaseReader(VymModel *vm)
{
//qDebug() << "Constr. BaseReader (VymModel*)";
model = vm;
lastBranch = nullptr;
insertBranch = nullptr;
insertPos = -1;
}
BaseReader::~BaseReader()
{
}
void BaseReader::setContentFilter(const int &c) { contentFilter = c; }
QString BaseReader::errorString() const
{
return QObject::tr("%1\nLine %2, column %3","Error message while parsing XML")
.arg(xml.errorString())
.arg(xml.lineNumber())
.arg(xml.columnNumber());
}
QString BaseReader::parseHREF(QString href)
{
QString type = href.section(":", 0, 0);
QString path = href.section(":", 1, 1);
if (!tmpDir.endsWith("/"))
return tmpDir + "/" + path;
else
return tmpDir + path;
}
void BaseReader::setModel(VymModel *vm)
{
model = vm;
}
void BaseReader::setTmpDir(QString tp)
{
tmpDir = tp;
}
void BaseReader::setInputString(const QString &s) { inputString = s; }
void BaseReader::setLoadMode(const File::LoadMode &lm)
{
loadMode = lm;
}
void BaseReader::setInsertBranch(BranchItem *bi)
{
insertBranch = bi;
}
void BaseReader::setInsertPos(int ip)
{
insertPos = ip;
}
void BaseReader::raiseUnknownElementError()
{
xml.raiseError("Found unknown element: " + xml.name().toString());
}
QString BaseReader::attributeToString(const QString &a)
{
return xml.attributes().value(a).toString();
}
void BaseReader::readHtml()
{
Q_ASSERT(xml.isStartElement() && xml.name() == QLatin1String("html"));
bool finished = false;
while (!finished) {
// qdbg() << "readHtml: " << xml.name() << " " << xml.tokenString();
switch(xml.tokenType())
{
case QXmlStreamReader::StartElement:
htmldata += "<" + xml.name().toString();
for (int i = 0; i < xml.attributes().count(); i++) {
htmldata += QString("\" %1 \"").arg(xml.attributes().at(i).value());
}
htmldata += ">";
break;
case QXmlStreamReader::EndElement:
htmldata += "</" + xml.name().toString() + ">";
if (xml.name() == QLatin1String("html"))
return;
break;
case QXmlStreamReader::Characters:
htmldata += xml.text().toString();
break;
default:
// Ignore other token types
break;
}
xml.readNext();
if (xml.tokenType() == QXmlStreamReader::Invalid) {
qdbg() << "Error in " << xml.lineNumber() << " " << xml.errorString();
return;
}
}
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.