|
19 | 19 | #include <QObject> |
20 | 20 | #include <QString> |
21 | 21 | #include <QXmlStreamReader> |
| 22 | +#include <QXmlStreamWriter> |
22 | 23 | #include <QFile> |
23 | 24 | #include "projectfile.h" |
24 | 25 |
|
25 | 26 | static const char ProjectElementName[] = "project"; |
| 27 | +static const char ProjectVersionAttrib[] = "version"; |
| 28 | +static const char ProjectFileVersion[] = "1"; |
26 | 29 | static const char IncludDirElementName[] = "includedir"; |
27 | 30 | static const char DirElementName[] = "dir"; |
28 | 31 | static const char DirNameAttrib[] = "name"; |
@@ -185,3 +188,55 @@ void ProjectFile::ReadDefines(QXmlStreamReader &reader) |
185 | 188 | } |
186 | 189 | while (!allRead); |
187 | 190 | } |
| 191 | + |
| 192 | +void ProjectFile::SetIncludes(QStringList includes) |
| 193 | +{ |
| 194 | + mIncludeDirs = includes; |
| 195 | +} |
| 196 | + |
| 197 | +void ProjectFile::SetDefines(QStringList defines) |
| 198 | +{ |
| 199 | + mDefines = defines; |
| 200 | +} |
| 201 | + |
| 202 | +bool ProjectFile::Write(const QString &filename) |
| 203 | +{ |
| 204 | + QFile file(mFilename); |
| 205 | + if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) |
| 206 | + return false; |
| 207 | + |
| 208 | + QXmlStreamWriter xmlWriter(&file); |
| 209 | + xmlWriter.setAutoFormatting(true); |
| 210 | + xmlWriter.writeStartDocument("1.0"); |
| 211 | + xmlWriter.writeStartElement(ProjectElementName); |
| 212 | + xmlWriter.writeAttribute(ProjectVersionAttrib, ProjectFileVersion); |
| 213 | + |
| 214 | + if (!mIncludeDirs.isEmpty()) |
| 215 | + { |
| 216 | + xmlWriter.writeStartElement(IncludDirElementName); |
| 217 | + QString incdir; |
| 218 | + foreach(incdir, mIncludeDirs) |
| 219 | + { |
| 220 | + xmlWriter.writeStartElement(DirElementName); |
| 221 | + xmlWriter.writeAttribute(DirNameAttrib, incdir); |
| 222 | + xmlWriter.writeEndElement(); |
| 223 | + } |
| 224 | + xmlWriter.writeEndElement(); |
| 225 | + } |
| 226 | + |
| 227 | + if (!mDefines.isEmpty()) |
| 228 | + { |
| 229 | + xmlWriter.writeStartElement(DefinesElementName); |
| 230 | + QString define; |
| 231 | + foreach(define, mDefines) |
| 232 | + { |
| 233 | + xmlWriter.writeStartElement(DefineName); |
| 234 | + xmlWriter.writeAttribute(DefineNameAttrib, define); |
| 235 | + xmlWriter.writeEndElement(); |
| 236 | + } |
| 237 | + xmlWriter.writeEndElement(); |
| 238 | + } |
| 239 | + xmlWriter.writeEndDocument(); |
| 240 | + file.close(); |
| 241 | + return true; |
| 242 | +} |
0 commit comments