8 #include <QXmlResultItems> 11 #include <QXmlSerializer> 12 #include <QXmlFormatter> 13 #include <QAbstractXmlNodeModel> 18 using namespace input;
28 QString fileSuffix = path.
getFile().suffix().toLower();
34 QuaZip zip(path.
getFile().absoluteFilePath());
35 zip.open(QuaZip::Mode::mdUnzip);
36 zip.setCurrentFile(path.
getArchFile().absolutePath());
47 QString filePath = path.
getFile().absoluteFilePath();
48 QFile input(filePath);
49 if(! input.open(QIODevice::ReadOnly))
50 qDebug() << input.errorString() <<
"\n";
60 readXml(device,fileSuffix,queryString);
64 QTextStream stream(device);
65 QString program = stream.readAll();
83 QXmlResultItems xmlitems;
86 query.setMessageHandler(&handler);
88 if(! query.setFocus(device))
89 throw "invalid IO device\n";
94 if (queryString.isEmpty()) {
100 throw "query string for type "+fileSuffix+
" expected";
103 query.setQuery(queryString);
104 if(! query.isValid())
105 throw "invalid query\n";
107 query.evaluateTo(&xmlitems);
110 for(QXmlItem item=xmlitems.next(); ! item.isNull(); item=xmlitems.next()) {
111 if (xmlitems.hasError())
114 if (item.isAtomicValue()) {
115 QVariant value = item.toAtomicValue();
123 else if (item.isNode()) {
124 QXmlNodeModelIndex nmi = item.toNodeModelIndex();
127 QString text = nmi.model()->stringValue(nmi);
142 QXmlQuery query(namepool);
144 query.setFocus(item);
145 query.setQuery(
"@matrix/string()");
146 if(! query.isValid())
147 throw "invalid query\n";
150 query.evaluateTo(&value);
152 QStringList values = value.split(
' ');
153 if (values.length()==6)
155 values[0].toDouble(), values[1].toDouble(),
156 values[2].toDouble(), values[3].toDouble(),
157 values[4].toDouble(), values[5].toDouble());
177 return (suffix==
"zip") || (suffix==
"kmz");
181 return suffix==
"gz" || suffix==
"svgz";
185 return (suffix==
"xml") || (suffix==
"svg") || (suffix==
"ipe") || (suffix==
"kml");
189 return (suffix==
"csv");
193 return (suffix==
"svg") || (suffix==
"svgz");
197 return (suffix==
"ipe");
201 return (suffix==
"js") || (suffix==
"jscript");
205 const QString &description,
207 const QSourceLocation&)
static Path svgPath(QString str, bool forceAbsolute=false)
static constructor from SVG input string
global definitions for all algorithms.
static Path ipePath(QString str)
static constructor from IPE input string
Path * map(QTransform tf)
apply a transformation to all vertexes
Represents a polygonal curve.