Exemplo n.º 1
0
QXmlStreamAttributes AbstractCity::xmlAttributes() const
{
  QXmlStreamAttributes list;
  
  list << QXmlStreamAttribute("id", QString::number(m_id));
  list << QXmlStreamAttribute("name", m_name);
  
  return list;
}
Exemplo n.º 2
0
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());
}
Exemplo n.º 3
0
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();
}
Exemplo n.º 4
0
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;
  }
}
Exemplo n.º 5
0
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;
  }
}
Exemplo n.º 6
0
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();
  }
}