QXmlStreamAttributes AbstractCity::xmlAttributes() const { QXmlStreamAttributes list; list << QXmlStreamAttribute("id", QString::number(m_id)); list << QXmlStreamAttribute("name", m_name); return list; }
void OptionWindow::writeSettings() { OHDebug("Writing Configs ..."); QFile Cfg(QString(QDir().home().absolutePath()).append("/.OpenHanse/cfg.ohc")); Cfg.open(QIODevice::WriteOnly); QXmlStreamWriter writer(&Cfg); writer.setAutoFormatting(true); writer.writeStartElement("conf"); writer.writeEmptyElement("resolution"); // writer.writeStartElement("height"); writer.writeAttribute(QXmlStreamAttribute("width", QString("%1").arg(XResolutionBox.value()))); writer.writeAttribute(QXmlStreamAttribute("height", QString("%1").arg(YResolutionBox.value()))); writer.writeStartElement("fullscreen"); if(FullScreenCheck.isChecked()) writer.writeCharacters("true"); else writer.writeCharacters("false"); writer.writeEndElement(); writer.writeStartElement("fps"); writer.writeCharacters(QString("%1").arg(FPSSlider.value())); writer.writeEndElement(); writer.writeStartElement("opengl"); if(OpenGLCheck.isChecked()) writer.writeCharacters("true"); else writer.writeCharacters("false"); writer.writeEndElement(); float miscvolume = MiscVolumeSlider.value()/100; float musicvolume = MusicVolumeSlider.value()/100; writer.writeStartElement("misc-volume"); writer.writeCharacters(QString("%1").arg(miscvolume)); writer.writeEndElement(); writer.writeStartElement("music-volume"); writer.writeCharacters(QString("%1").arg(musicvolume)); writer.writeEndElement(); writer.writeEndDocument(); Cfg.close(); // QFile(QString(QDir().home().absolutePath()).append("/.OpenHanse/cfg_old.ohc")).remove(); // QFile(QString(QDir().home().absolutePath()).append("/.OpenHanse/cfg.ohc")).rename("cfg_old.ohc"); // Cfg.rename("cfg.ohc"); OHDebug("End of Writing Configs"); SETTINGS->readConfigs(QFileInfo(Cfg).absoluteFilePath()); }
void SessionWriter::addTabData(const TabData& td){ m_writer.writeStartElement("Tab"); QXmlStreamAttributes attrs; attrs.push_back(QXmlStreamAttribute("filePath", td.filePath)); attrs.push_back(QXmlStreamAttribute("cacheFilePath", td.cacheFilePath)); attrs.push_back(QXmlStreamAttribute("scrollX", QString::number(td.scrollX))); attrs.push_back(QXmlStreamAttribute("scrollY", QString::number(td.scrollY))); // A few attributes aren't often used, so we'll only write them into the file if they're // set to a non-default value as to not clutter up the xml file. if (!td.language.isEmpty()) attrs.push_back(QXmlStreamAttribute("language", td.language)); if (td.lastModified != 0) attrs.push_back(QXmlStreamAttribute("lastModified", QString::number(td.lastModified))); if (td.active) attrs.push_back(QXmlStreamAttribute("active", "1")); m_writer.writeAttributes(attrs); m_writer.writeEndElement(); }
bool Document::saveMOJ(QString fileName) { QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { return false; } QXmlStreamWriter writer; writer.setAutoFormatting(true); writer.setDevice(&file); writer.writeStartDocument("1.0", false); writer.writeStartElement("MrWriter"); QString version; version.append(QString::number(MAJOR_VERSION)).append(".").append(QString::number(MINOR_VERSION)).append(QString::number(PATCH_VERSION)); writer.writeAttribute(QXmlStreamAttribute("version", version)); QString docVersion = QString::number(DOC_VERSION); writer.writeAttribute(QXmlStreamAttribute("docversion", docVersion)); writer.writeStartElement("title"); writer.writeCharacters("MrWriter document - see http://unruhschuh.com/mrwriter/"); writer.writeEndElement(); for (int i = 0; i < pages.size(); ++i) { writer.writeStartElement("page"); writer.writeAttribute(QXmlStreamAttribute("width", QString::number(pages[i].width()))); writer.writeAttribute(QXmlStreamAttribute("height", QString::number(pages[i].height()))); writer.writeEmptyElement("background"); writer.writeAttribute(QXmlStreamAttribute("type", "solid")); writer.writeAttribute(QXmlStreamAttribute("color", toRGBA(pages[i].backgroundColor().name(QColor::HexArgb)))); writer.writeAttribute(QXmlStreamAttribute("style", "plain")); writer.writeStartElement("layer"); // for (int j = 0; j < pages[i].m_strokes.size(); ++j) for (auto strokes : pages[i].strokes()) { writer.writeStartElement("stroke"); writer.writeAttribute(QXmlStreamAttribute("tool", "pen")); writer.writeAttribute(QXmlStreamAttribute("color", toRGBA(strokes.color.name(QColor::HexArgb)))); QString patternString; if (strokes.pattern == MrDoc::solidLinePattern) { patternString = "solid"; } else if (strokes.pattern == MrDoc::dashLinePattern) { patternString = "dash"; } else if (strokes.pattern == MrDoc::dashDotLinePattern) { patternString = "dashdot"; } else if (strokes.pattern == MrDoc::dotLinePattern) { patternString = "dot"; } else { patternString = "solid"; } writer.writeAttribute(QXmlStreamAttribute("style", patternString)); qreal width = strokes.penWidth; writer.writeAttribute(QXmlStreamAttribute("width", QString::number(width))); QString pressures; for (int k = 0; k < strokes.pressures.length(); ++k) { pressures.append(QString::number(strokes.pressures[k])).append(" "); } writer.writeAttribute((QXmlStreamAttribute("pressures", pressures.trimmed()))); QString points; for (int k = 0; k < strokes.points.size(); ++k) { points.append(QString::number(strokes.points[k].x())); points.append(" "); points.append(QString::number(strokes.points[k].y())); points.append(" "); } writer.writeCharacters(points.trimmed()); writer.writeEndElement(); // closing "stroke" } writer.writeEndElement(); // closing "layer" writer.writeEndElement(); // closing "page" } writer.writeEndDocument(); QFileInfo fileInfo(file); file.close(); if (writer.hasError()) { return false; } else { setDocumentChanged(false); m_path = fileInfo.absolutePath(); m_docName = fileInfo.completeBaseName(); return true; } }
bool Document::saveXOJ(QString fileName) { QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { return false; } QXmlStreamWriter writer; writer.setAutoFormatting(true); writer.setDevice(&file); writer.writeStartDocument("1.0", false); writer.writeStartElement("xournal"); writer.writeAttribute(QXmlStreamAttribute("version", "0.4.8")); writer.writeStartElement("title"); writer.writeCharacters("Xournal document - see http://math.mit.edu/~auroux/software/xournal/"); writer.writeEndElement(); for (int i = 0; i < pages.size(); ++i) { writer.writeStartElement("page"); writer.writeAttribute(QXmlStreamAttribute("width", QString::number(pages[i].width()))); writer.writeAttribute(QXmlStreamAttribute("height", QString::number(pages[i].height()))); writer.writeEmptyElement("background"); writer.writeAttribute(QXmlStreamAttribute("type", "solid")); writer.writeAttribute(QXmlStreamAttribute("color", toRGBA(pages[i].backgroundColor().name(QColor::HexArgb)))); writer.writeAttribute(QXmlStreamAttribute("style", "plain")); writer.writeStartElement("layer"); // for (int j = 0; j < pages[i].m_strokes.size(); ++j) for (auto strokes : pages[i].strokes()) { writer.writeStartElement("stroke"); writer.writeAttribute(QXmlStreamAttribute("tool", "pen")); writer.writeAttribute(QXmlStreamAttribute("color", toRGBA(strokes.color.name(QColor::HexArgb)))); qreal width = strokes.penWidth; QString widthString; widthString.append(QString::number(width)); for (int k = 0; k < strokes.pressures.size() - 1; ++k) { qreal p0 = strokes.pressures[k]; qreal p1 = strokes.pressures[k + 1]; widthString.append(' '); widthString.append(QString::number(0.5 * (p0 + p1) * width)); } writer.writeAttribute(QXmlStreamAttribute("width", widthString)); for (int k = 0; k < strokes.points.size(); ++k) { writer.writeCharacters(QString::number(strokes.points[k].x())); writer.writeCharacters(" "); writer.writeCharacters(QString::number(strokes.points[k].y())); writer.writeCharacters(" "); } writer.writeEndElement(); // closing "stroke" } writer.writeEndElement(); // closing "layer" writer.writeEndElement(); // closing "page" } writer.writeEndDocument(); QFileInfo fileInfo(file); file.close(); if (writer.hasError()) { return false; } else { return true; } }
void LapTimerThread::writeXml() { QXmlStreamReader xmlReader; coordTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&coordTmpFile); xmlReader.readNext(); int lapNum=0; //Reading from the file xmlReader.readNext(); while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if (name == "lap") { lapNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } coordTmpFile.close(); for (int i=0;i<lapNum-1;i++)// loop to generate kml file for each lap { QFile xmlKmlFile; QXmlStreamWriter bufferKml; xmlKmlFile.setFileName("data/"+dirName+"/"+dirName+"-"+QString::number(i+1)+".kml"); xmlKmlFile.open(QIODevice::WriteOnly | QIODevice::Text); bufferKml.setDevice(&xmlKmlFile); bufferKml.setAutoFormatting(true); bufferKml.writeStartDocument(); bufferKml.writeStartElement("kml"); QXmlStreamAttributes atrr; atrr.append("xmlns","http://www.opengis.net/kml/2.2"); atrr.append("xmlns:gx","http://www.google.com/kml/ext/2.2"); atrr.append("xmlns:atom","http://www.w3.org/2005/Atom"); bufferKml.writeAttributes(atrr); bufferKml.writeStartElement("Document"); bufferKml.writeTextElement("open","1"); bufferKml.writeTextElement("visibility","1"); bufferKml.writeStartElement("name"); bufferKml.writeCDATA("GPS Lap Timer - KML Log - "+QDate::currentDate().toString("yyyyMMdd")+QTime::currentTime().toString("hhmmss")); bufferKml.writeEndElement(); //style - track bufferKml.writeStartElement("Style"); bufferKml.writeAttribute(QXmlStreamAttribute("id","track")); bufferKml.writeStartElement("LineStyle"); bufferKml.writeTextElement("color","7f0000ff"); bufferKml.writeTextElement("width","4"); bufferKml.writeEndElement(); bufferKml.writeStartElement("IconStyle"); bufferKml.writeTextElement("scale","1.3"); bufferKml.writeStartElement("Icon"); bufferKml.writeTextElement("href","http://earth.google.com/images/kml-icons/track-directional/track-0.png"); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); //style - start bufferKml.writeStartElement("Style"); bufferKml.writeAttribute(QXmlStreamAttribute("id","start")); bufferKml.writeStartElement("IconStyle"); bufferKml.writeTextElement("scale","1.3"); bufferKml.writeStartElement("Icon"); bufferKml.writeTextElement("href","http://maps.google.com/mapfiles/kml/paddle/grn-circle.png"); bufferKml.writeEndElement(); bufferKml.writeEmptyElement("hotSpot"); atrr.clear(); atrr.append("x","32"); atrr.append("y","1"); atrr.append("xunits","pixels"); atrr.append("yunits","pixels"); bufferKml.writeAttributes(atrr); bufferKml.writeEndElement(); bufferKml.writeEndElement(); // style - end bufferKml.writeStartElement("Style"); bufferKml.writeAttribute(QXmlStreamAttribute("id","end")); bufferKml.writeStartElement("IconStyle"); bufferKml.writeTextElement("scale","1.3"); bufferKml.writeStartElement("Icon"); bufferKml.writeTextElement("href","http://maps.google.com/mapfiles/kml/paddle/red-circle.png"); bufferKml.writeEndElement(); bufferKml.writeEmptyElement("hotSpot"); bufferKml.writeAttributes(atrr); bufferKml.writeEndElement(); bufferKml.writeEndElement(); // style - statistics bufferKml.writeStartElement("Style"); bufferKml.writeAttribute(QXmlStreamAttribute("id","statistics")); bufferKml.writeStartElement("IconStyle"); bufferKml.writeTextElement("scale","1.3"); bufferKml.writeStartElement("Icon"); bufferKml.writeTextElement("href","http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png"); bufferKml.writeEndElement(); bufferKml.writeEmptyElement("hotSpot"); atrr.clear(); atrr.append("x","20"); atrr.append("y","2"); atrr.append("xunits","pixels"); atrr.append("yunits","pixels"); bufferKml.writeAttributes(atrr); bufferKml.writeEndElement(); bufferKml.writeEndElement(); // style - waypoint bufferKml.writeStartElement("Style"); bufferKml.writeAttribute(QXmlStreamAttribute("id","waypoint")); bufferKml.writeStartElement("IconStyle"); bufferKml.writeTextElement("scale","1.3"); bufferKml.writeStartElement("Icon"); bufferKml.writeTextElement("href","http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png"); bufferKml.writeEndElement(); bufferKml.writeEmptyElement("hotSpot"); bufferKml.writeAttributes(atrr); bufferKml.writeEndElement(); bufferKml.writeEndElement(); QStringList xmlTmpTextBuffer; int lapTmpNum=0; bool lapNumFlag=false; bufferKml.writeStartElement("Folder"); bufferKml.writeStartElement("name"); bufferKml.writeCDATA("Lap #"+QString::number(i+1)); bufferKml.writeEndElement(); bufferKml.writeTextElement("open","1"); //waypoints - load xmlReader.clear(); wayptTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&wayptTmpFile); xmlReader.readNext(); xmlTmpTextBuffer.clear(); xmlTextBuffer.clear(); lapTmpNum=0; lapNumFlag=false; QStringList bestBuffer,devBuffer,timeBuffer; while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if (name == "when" && lapNumFlag)//read time of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if (name == "waypt" && lapNumFlag) { xmlTmpTextBuffer.append(xmlReader.readElementText()); } else if (name == "best" && lapNumFlag) { bestBuffer.append(xmlReader.readElementText()); } else if (name == "time" && lapNumFlag) { timeBuffer.append(xmlReader.readElementText()); } else if (name == "dev" && lapNumFlag) { devBuffer.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==i)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } wayptTmpFile.close(); //waypoint - write for (int j=0;j<xmlTextBuffer.length();j++) { bufferKml.writeStartElement("Placemark"); bufferKml.writeStartElement("name"); if ((j+1)==xmlTextBuffer.length()) bufferKml.writeCDATA("Finish"); else bufferKml.writeCDATA("Waypoint"+QString::number(j+1)); bufferKml.writeEndElement(); bufferKml.writeStartElement("description"); bufferKml.writeCDATA("Time: "+timeBuffer.at(j)+"; To best: "+devBuffer.at(j)+"; Best: "+bestBuffer.at(j)); bufferKml.writeEndElement(); bufferKml.writeStartElement("TimeStamp"); bufferKml.writeTextElement("when",xmlTextBuffer.at(j)); bufferKml.writeEndElement(); if (j==xmlTextBuffer.length()-1) bufferKml.writeTextElement("styleUrl","#end"); else bufferKml.writeTextElement("styleUrl","#waypoint"); bufferKml.writeStartElement("Point"); bufferKml.writeTextElement("coordinates",xmlTmpTextBuffer.at(j)); bufferKml.writeEndElement(); bufferKml.writeEndElement(); } //track - load xmlReader.clear(); coordTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&coordTmpFile); xmlReader.readNext(); xmlTmpTextBuffer.clear(); xmlTextBuffer.clear(); lapTmpNum=0; lapNumFlag=false; while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if (name == "when" && lapNumFlag)//read time of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if (name == "coord" && lapNumFlag) { xmlTmpTextBuffer.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==i)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } coordTmpFile.close(); //track - write bufferKml.writeStartElement("Placemark"); bufferKml.writeAttribute(QXmlStreamAttribute("id","tour")); bufferKml.writeStartElement("name"); bufferKml.writeCDATA("track"); bufferKml.writeEndElement(); bufferKml.writeStartElement("description"); bufferKml.writeCDATA(""); bufferKml.writeEndElement(); bufferKml.writeTextElement("styleUrl","#track"); bufferKml.writeStartElement("gx:MultiTrack"); bufferKml.writeTextElement("altitudeMode","absolute"); bufferKml.writeTextElement("gx:interpolate","1"); bufferKml.writeStartElement("gx:Track"); for (int j=0;j<xmlTextBuffer.length();j++) { bufferKml.writeTextElement("when",xmlTextBuffer.at(j)); bufferKml.writeTextElement("gx:coord",xmlTmpTextBuffer.at(j)); } //data - alt - write bufferKml.writeStartElement("ExtendedData"); bufferKml.writeEmptyElement("SchemaData"); bufferKml.writeAttribute(QXmlStreamAttribute("schemaUrl","#schema")); bufferKml.writeStartElement("gx:SimpleArrayData"); bufferKml.writeAttribute(QXmlStreamAttribute("name","elevation")); for (int j=0;j<xmlTextBuffer.length();j++) { bufferKml.writeTextElement("gx:value",QString(xmlTmpTextBuffer.at(j)).section(" ",2,2)); } bufferKml.writeEndElement(); //data - speed - load xmlReader.clear(); speedTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&speedTmpFile); xmlReader.readNext(); xmlTmpTextBuffer.clear(); xmlTextBuffer.clear(); lapTmpNum=0; lapNumFlag=false; while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if (name == "speed" && lapNumFlag)//read time of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==i)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } speedTmpFile.close(); //data - speed - write bufferKml.writeStartElement("gx:SimpleArrayData"); bufferKml.writeAttribute(QXmlStreamAttribute("name","speed")); for (int j=0;j<xmlTextBuffer.length();j++) { bufferKml.writeTextElement("gx:value",xmlTextBuffer.at(j)); } bufferKml.writeEndElement(); // close all opened element bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndElement(); bufferKml.writeEndDocument(); xmlKmlFile.close(); } }