bool PdmlFileFormat::isMyFileFormat(const QString fileName) { bool ret = false; QFile file(fileName); QByteArray buf; QXmlStreamReader xml; if (!file.open(QIODevice::ReadOnly)) goto _exit; xml.setDevice(&file); xml.readNext(); if (xml.hasError() || !xml.isStartDocument()) goto _close_exit; // skip everything until the start of the first element while (!xml.isStartElement()) { xml.readNext(); if (xml.hasError()) goto _close_exit; } if (!xml.hasError() && xml.isStartElement() && (xml.name() == "pdml")) ret = true; else ret = false; _close_exit: xml.clear(); file.close(); _exit: return ret; }
/** * 载入模板 */ void loadMasks(std::vector<OCRMask>* mOCRMasks) { QString strDBDir = getModeDir(); if (!strDBDir.isEmpty()) { QFile file(strDBDir); if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { QMessageBox msgBox; msgBox.setIcon(QMessageBox::Warning); msgBox.setText(QObject::tr("Cannot open file to read.\nMaybe this file does not exist.")); msgBox.exec(); return; } mOCRMasks->clear(); QXmlStreamReader xml; xml.setDevice(&file); while(!xml.atEnd() && !xml.hasError()) { QXmlStreamReader::TokenType token = xml.readNext(); if(token == QXmlStreamReader::StartDocument) { continue; } if(token == QXmlStreamReader::StartElement) { if(xml.name() == "masks") { continue; } if(xml.name() == "mask") { QXmlStreamAttributes attributes = xml.attributes(); OCRMask mask; mask.key = attributes.value("key").toString().toLocal8Bit(); mask.rect.x = (attributes.value("x").toString().toInt()); mask.rect.y = (attributes.value("y").toString().toInt()); mask.rect.width = (attributes.value("w").toString().toInt()); mask.rect.height = (attributes.value("h").toString().toInt()); mOCRMasks->push_back(mask); } } } if(xml.hasError()) { QMessageBox msgBox; msgBox.setIcon(QMessageBox::Warning); msgBox.setText(QObject::tr("Parse XML failed.\nMaybe this file is not the right one.")); msgBox.exec(); } xml.clear(); //imageWidget->update(); //ocrWidget->update(); } }
//------------------------------------------------------------------------------ void getListWordFromDict(const QString f_path, QMap<QString, QString>* f_map) { f_map->clear(); QFile* xmlFile = new QFile(f_path); if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) { return; } QXmlStreamReader* xmlReader = new QXmlStreamReader(xmlFile); //Parse the XML until we reach end of it while(!xmlReader->atEnd() && !xmlReader->hasError()) { // Read next element QXmlStreamReader::TokenType token = xmlReader->readNext(); //If token is just StartDocument - go to next if(token == QXmlStreamReader::StartDocument) { continue; } //If token is StartElement - read it if(token == QXmlStreamReader::StartElement) { if(xmlReader->name() == "word") { QXmlStreamAttributes attrs = xmlReader->attributes(); QStringList t_list; QString t_text; t_list << xmlReader->readElementText().split("\n"); removeEmptyQStringFromQStringList(&t_list); for (int i = 0; i < t_list.size(); i++) { t_text.append(QString(t_list.at(i)).replace(" ", "") + "\n"); } f_map->insert(attrs.value("name").toString(), t_text); } } } if(xmlReader->hasError()) { return; } //close reader and flush file xmlReader->clear(); xmlFile->close(); }
LanguageResource::LanguageResource(ResourceManager *resourceManager, const QUrl &path) : ResourceInterface(resourceManager) , d(new LanguageResourcePrivate(resourceManager)) { d->m_type = ResourceInterface::LanguageResourceType; d->m_path = path; // load basic information from language file, but does not parse everything QXmlStreamReader xml; QFile file(path.toLocalFile()); if (file.open(QIODevice::ReadOnly)) { xml.setDevice(&file); xml.readNextStartElement(); while (xml.readNext() && !xml.atEnd()) { if (xml.name() == "id") { d->m_identifier = xml.readElementText(); } if (xml.name() == "title") { d->m_title = xml.readElementText(); } if (xml.name() == "i18nTitle") { d->m_i18nTitle = xml.readElementText(); } // quit reading when basic elements are read if (!d->m_identifier.isEmpty() && !d->m_title.isEmpty() && !d->m_i18nTitle.isEmpty() ) { break; } } if (xml.hasError()) { qCritical() << "Error occurred when reading Language XML file:" << path.toLocalFile(); } } xml.clear(); file.close(); }
void ProfileManagement::on_pushButton_5_clicked() { QString fileName=QFileDialog::getOpenFileName(this, tr("Open File"), "", tr("Files (*.xml)")); QDateTime DateTime = QDateTime::currentDateTime(); QString DateTime11 = DateTime.toString(); if(fileName==0) { ui->textEdit->setText("<"+DateTime11+"> Brak sciezki!\n"); return; } else { ui->textEdit->setText("<"+DateTime11+">Plik pomyślnie wczytany!\n"); } QFile file(fileName); file.open(QIODevice::ReadOnly); QXmlStreamReader *xmlReader = new QXmlStreamReader(&file); int hitsAmount=0, hitsAmountBuffer=0; int rotation; QString powerBuffer; QString rotationBuffer; QString angleBuffer; QString positionBuffer; QString nameBuffer; QString percentBuffer; Profil *Prof; while(1) { xmlReader->readNext(); if(xmlReader->atEnd()) break; if(xmlReader->tokenType()==QXmlStreamReader::StartDocument) { continue; } if(xmlReader->tokenType()==QXmlStreamReader::StartElement) { if(xmlReader->name()=="Uderzenia" && xmlReader->tokenType()==QXmlStreamReader::StartElement) { Prof = new Profil; Prof->Rows=0; QXmlStreamAttributes attributes = xmlReader->attributes(); hitsAmount=(attributes.value("Ilosc")).toString().toInt(); continue; } if(xmlReader->name()=="Nazwa" && xmlReader->tokenType()==QXmlStreamReader::StartElement) { nameBuffer = xmlReader->readElementText(); continue; } if(xmlReader->name()=="Uderzenie" && xmlReader->tokenType()==QXmlStreamReader::StartElement) { while(!(xmlReader->tokenType() == QXmlStreamReader::EndElement && xmlReader->name() == "Uderzenie")) { if(xmlReader->name() =="Sila") { powerBuffer = xmlReader->readElementText(); } if(xmlReader->name() =="Rotacja") { rotationBuffer = xmlReader->readElementText(); if(rotationBuffer =="Boczna") { rotation=1; } else if(rotationBuffer =="Wsteczna") { rotation=0; } else { rotation=2; } } if(xmlReader->name() =="Kat") { angleBuffer = xmlReader->readElementText(); } if(xmlReader->name() =="Pozycja") { positionBuffer = xmlReader->readElementText(); } if(xmlReader->name() =="Procent") { percentBuffer = xmlReader->readElementText(); hitsAmountBuffer = hitsAmount * percentBuffer.toDouble(); } xmlReader->readNext(); } Prof->Rotation.push_back(rotationBuffer); Prof->Power.push_back(powerBuffer.toInt()); Prof->Position.push_back(positionBuffer.toInt()); Prof->Angle.push_back(angleBuffer.toInt()); Prof->Percent.push_back(int(percentBuffer.toDouble()*100)); Prof->Hits = hitsAmount; Prof->Nazwa = nameBuffer; Prof->DateTime = (QDateTime::currentDateTime()).toString(); Prof->Rows++; } } if(xmlReader->name()=="Uderzenia" && xmlReader->tokenType()==QXmlStreamReader::EndElement) { Profil::Profile_Array.push_back(Prof); Refresh_Dialog(); } } xmlReader->clear(); file.close(); ui->textEdit->setText("<"+DateTime11+">Plik pomyślnie odczytany!\n"); }
int formMergeSlideCalibrations ::funcReadSensitivities( const QString &filePath, structSlideStrSens* slideStrSens ){ QFile *xmlFile = new QFile( filePath ); if (!xmlFile->open(QIODevice::ReadOnly | QIODevice::Text)) { return _ERROR; } QXmlStreamReader *xmlReader = new QXmlStreamReader(xmlFile); //Parse the XML until we reach end of it while(!xmlReader->atEnd() && !xmlReader->hasError()) { // Read next element QXmlStreamReader::TokenType token = xmlReader->readNext(); if(token == QXmlStreamReader::StartDocument) { continue; } //If token is StartElement - read it if(token == QXmlStreamReader::StartElement) { if( xmlReader->name()=="normedOrigR" ) slideStrSens->normedOrigR.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedOrigG" ) slideStrSens->normedOrigG.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedOrigB" ) slideStrSens->normedOrigB.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedRalfR" ) slideStrSens->normedRalfR.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedRalfG" ) slideStrSens->normedRalfG.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedRalfB" ) slideStrSens->normedRalfB.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="normedRalfH" ) slideStrSens->normedRalfH.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="originalR" ) slideStrSens->originalR.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="originalG" ) slideStrSens->originalG.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="originalB" ) slideStrSens->originalB.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="originalH" ) slideStrSens->originalH.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="wR" ) slideStrSens->wR.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="wG" ) slideStrSens->wG.append( xmlReader->readElementText().trimmed() ); if( xmlReader->name()=="wB" ) slideStrSens->wB.append( xmlReader->readElementText().trimmed() ); } } if(xmlReader->hasError()) { funcShowMsg("Parse Error",xmlReader->errorString()); return _ERROR; } xmlReader->clear(); xmlFile->close(); slideStrSens->filled = 1; return _OK; }
void LapTimerThread::writeTxt() { QTextStream tmp(&infoFile); QXmlStreamReader xmlReader; qWarning()<<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(); } qWarning()<<lapNum; coordTmpFile.close(); for (int s=0;s<(lapNum-1);s++) { qWarning()<<"entering lap "<<s; tmp<<"-**********************************************\r\n"; tmp<< "Map: " <<mapName<<"\r\n"; qWarning()<<"header"; xmlReader.clear(); coordTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&coordTmpFile); xmlReader.readNext(); int lapTmpNum=0; bool lapNumFlag=false; xmlTextBuffer.clear(); //Reading from the file QString start; 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 == "lap") { lapNumFlag=(lapTmpNum==s)?true:false; if (lapNumFlag) start = xmlReader.attributes().value("start").toString(); lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } coordTmpFile.close(); tmp<< "Start Time: "<< QString(start).replace(QRegExp("[TZ]")," ")<<"\r\n"; //tmp<< "End Time: "<< QString(xmlTextBuffer.last()).replace(QRegExp("[TZ]")," ")<<"\r\n"; //tmp<< "Duration: "<< QTime::fromMSecsSinceStartOfDay(QTime::fromString(QString(xmlTextBuffer.first()).section(QRegExp("[TZ]"),1,1),"hh:mm:ss.zzz") //.msecsTo(QTime::fromString(QString(xmlTextBuffer.last()).section(QRegExp("[TZ]"),1,1),"hh:mm:ss.zzz"))).toString("hh:mm:ss.zzz")<<"\r\n"; xmlReader.clear(); coordTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&coordTmpFile); xmlReader.readNext(); lapTmpNum=0; lapNumFlag=false; xmlTextBuffer.clear(); //Reading from the file while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if ((name == "coord")&& lapNumFlag)//read coord of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==s)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } coordTmpFile.close(); double distance = 0; double maxAlt = 0, minAlt = 10000; QList <QString>::iterator i; for (i=xmlTextBuffer.begin();i!=xmlTextBuffer.end();++i) { if ((i+1) == xmlTextBuffer.end()) { QList <QString>::iterator ii = xmlTextBuffer.begin(); distance +=dist(i->split(" ").at(1).toDouble(),ii->split(" ").at(1).toDouble(),i->split(" ").at(0).toDouble(),ii->split(" ").at(0).toDouble(),true); } else { distance += dist(i->split(" ").at(1).toDouble(),(i+1)->split(" ").at(1).toDouble(),i->split(" ").at(0).toDouble(),(i+1)->split(" ").at(0).toDouble(),true); } minAlt = (i->split(" ").at(2).toDouble()<minAlt)?(i->split(" ").at(2).toDouble()):minAlt; maxAlt = (i->split(" ").at(2).toDouble()>maxAlt)?(i->split(" ").at(2).toDouble()):maxAlt; } tmp<< "Distance: "<< QString::number((int)distance)<<" m"<<"\r\n"; tmp<< "Max Alt: "<< QString::number(maxAlt,'f',4)<<" m"<<"\r\n"; tmp<< "Min Alt: "<< QString::number(minAlt,'f',4)<<" m"<<"\r\n"; tmp<< "Elevation Variance:" << QString::number(maxAlt-minAlt,'f',4)<<" m"<<"\r\n"; xmlReader.clear(); speedTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&speedTmpFile); xmlReader.readNext(); lapTmpNum=0; lapNumFlag=false; xmlTextBuffer.clear(); //Reading from the file while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if ((name == "speed")&& lapNumFlag)//read speed of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==s)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } speedTmpFile.close(); double maxSpeed = 0, minSpeed = 10000, speedSum = 0; QList <QString>::iterator j; for (j=xmlTextBuffer.begin();j!=xmlTextBuffer.end();++j) { minSpeed = (j->toDouble()<minSpeed)?(j->toDouble()):minSpeed; maxSpeed = (j->toDouble()>maxSpeed)?(j->toDouble()):maxSpeed; speedSum += j->toDouble(); } tmp<< "Max Speed: "<< QString::number(maxSpeed,'f',4)<<" km/h"<<"\r\n"; tmp<< "Min Alt: "<< QString::number(minSpeed,'f',4)<<" km/h"<<"\r\n"; tmp<< "Average Speed **: "<< QString::number(speedSum/(xmlTextBuffer.size()),'f',4)<<" km/h"<<"\r\n"; xmlReader.clear(); wayptTmpFile.open(QIODevice::ReadOnly | QIODevice::Text); xmlReader.setDevice(&wayptTmpFile); xmlReader.readNext(); lapTmpNum=0; lapNumFlag=false; xmlTextBuffer.clear(); //Reading from the file QStringList tmpWhen,tmpBest,tmpDev; while (!xmlReader.isEndDocument()) { if (xmlReader.isStartElement()) { QString name = xmlReader.name().toString(); if ((name == "time")&& lapNumFlag)//read time of each element { xmlTextBuffer.append(xmlReader.readElementText()); } else if ((name == "best")&& lapNumFlag)//read best of each element { tmpBest.append(xmlReader.readElementText()); } else if ((name == "when")&& lapNumFlag)//read when of each element { tmpWhen.append(xmlReader.readElementText()); } else if ((name == "dev")&& lapNumFlag)//read dev of each element { tmpDev.append(xmlReader.readElementText()); } else if (name == "lap") { lapNumFlag=(lapTmpNum==s)?true:false; lapTmpNum++; } } else if (xmlReader.isEndElement()) { } xmlReader.readNext(); } wayptTmpFile.close(); for (int k=0;k<xmlTextBuffer.length();k++) { if (k==(xmlTextBuffer.length()-1)) { tmp<<"Finish Point: "<<"\r\n Time: " <<xmlTextBuffer.at(k)<<"\r\n Best: " <<tmpBest.at(k)<<"\r\n Time To Best: " <<tmpDev.at(k)<<"\r\n"; } else { tmp<<"Waypoint "<<QString::number(k+1)<<": "<<"\r\n Time: " <<xmlTextBuffer.at(k)<<"\r\n Best: " <<tmpBest.at(k)<<"\r\n Time To Best: " <<tmpDev.at(k)<<"\r\n"; } } tmp<< "End Time: "<< QString(tmpWhen.last()).replace(QRegExp("[TZ]")," ")<<"\r\n"; tmp<< "Average Speed *: "<< QString::number ((distance/(QTime::fromString(start,"hh:mm:ss.zzz").msecsTo( QTime::fromString(QString(tmpWhen.last()).section(QRegExp("[TZ]"),1,1),"hh:mm:ss.zzz"))))*3.6,'f',4) <<"\r\n"; tmp<< "\r\n"; } qWarning()<<"Success"; }
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(); } }
bool fb2Creator::create(const QString& path, int width, int height, QImage& img) { QFile file(path); KZip zip(path); QIODevice *device; const KArchiveDirectory *dir; const KZipFileEntry *fb2File; QXmlStreamReader qxml; QString fileExt = QFileInfo(path).suffix().toLower(); if (fileExt == "fb2") { if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "[fb2 thumbnailer]" << "Couldn't open" << path; return false; } else { qDebug() << "[fb2 thumbnailer]" << "Reading" << path; qxml.setDevice(&file); } } else //if *.fb2.zip { if (!zip.open(QIODevice::ReadOnly)) { qDebug() << "[fb2 thumbnailer]" << "Couldn't open" << path; return false; } else { qDebug() << "[fb2 thumbnailer]" << "Reading" << path; dir = zip.directory(); QStringList fileList = dir->entries(); for (int i=0; i < fileList.count(); i++) { if (fileList.at(i).endsWith(".fb2")) { fb2File = static_cast<const KZipFileEntry*>(dir->entry(fileList.at(i))); device = fb2File->createDevice(); qxml.setDevice(device); break; } } } } //---- bool inCoverpage = false; QString coverId = ""; QByteArray coverBase64; while(!qxml.atEnd() && !qxml.hasError()) { qxml.readNext(); if (qxml.name() == "coverpage") { if (qxml.isStartElement()) inCoverpage = true; else inCoverpage = false; } if (qxml.name() == "image" && qxml.isStartElement() && inCoverpage == true) { //various namespaces: xlink, l, NS2 QXmlStreamAttributes qxmlAttributes = qxml.attributes(); for (int pos = 0; pos < qxmlAttributes.size(); pos++) { if (qxmlAttributes.at(pos).name() == "href") { coverId = qxmlAttributes.at(pos).value().toString(); break; } } if (coverId != "") { coverId.remove("#"); qDebug() << "[fb2 thumbnailer]" << "Found cover id:" << coverId; } } if (qxml.name() == "binary" && qxml.isStartElement()) { if (coverId != "") { if (qxml.attributes().value("id") == coverId) { qDebug() << "[fb2 thumbnailer]" << "Found cover data"; coverBase64 = qxml.readElementText().toAscii(); QImage coverImage; coverImage.loadFromData(QByteArray::fromBase64(coverBase64)); img = coverImage.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); break; } } else //if coverId not found then the file doesn't follow the specification, try a workaround { qDebug() << "[fb2 thumbnailer]" << "Cover id not found"; qDebug() << "[fb2 thumbnailer]" << "Using first image as cover"; coverBase64 = qxml.readElementText().toAscii(); QImage coverImage; coverImage.loadFromData(QByteArray::fromBase64(coverBase64)); img = coverImage.scaled(width, height, Qt::KeepAspectRatio, Qt::SmoothTransformation); break; } } } if (coverBase64.isEmpty()) qDebug() << "[fb2 thumbnailer]" << "Cover data not found"; if (qxml.hasError()) qDebug() << "[fb2 thumbnailer]" << "Parsing error:" << qxml.errorString(); qxml.clear(); if (fileExt == "fb2") file.close(); else { device->close(); delete device; //delete fb2File; //delete dir; } return !img.isNull(); }
DbMysql::DbMysql() { qDebug()<<"Path"<<QDir::currentPath(); QFile file(QDir::currentPath()+"/dbInfo.xml"); if (!file.open(QFile::ReadOnly | QFile::Text)) { qDebug()<< "Error: Cannot read file " << qPrintable("filename") << ": " << qPrintable(file.errorString()); } QXmlStreamReader *xmlReader = new QXmlStreamReader(); xmlReader->setDevice(&file); while(!xmlReader->atEnd() && !xmlReader->hasError()) { // Read next element QXmlStreamReader::TokenType token = xmlReader->readNext(); //If token is just StartDocument - go to next if(token == QXmlStreamReader::StartDocument) { continue; } //If token is StartElement - read it if(token == QXmlStreamReader::StartElement) { if(xmlReader->name() == "dbinfo") { continue; } if(xmlReader->name() == "username") { mUserName = xmlReader->readElementText(); } if(xmlReader->name() == "password") { mPassword = xmlReader->readElementText(); } if(xmlReader->name() == "port") { mPort = xmlReader->readElementText().toInt(); } if(xmlReader->name() == "host") { mHostName = xmlReader->readElementText(); } if(xmlReader->name() == "database") { mDb = xmlReader->readElementText(); } } } qDebug()<<mUserName<<" " <<mPassword << " " <<mDb << " " <<mHostName << " " << mPort; //close reader and flush file xmlReader->clear(); file.close(); /* mHostName = "127.0.0.1"; mUserName = "******"; mPort = 3306; mPassword = ""; mDb = "testqt"; */ mDbConn = QSqlDatabase::addDatabase("QMYSQL"); mDbConn.setHostName(mHostName); mDbConn.setPassword(mPassword); mDbConn.setDatabaseName(mDb); mDbConn.setUserName(mUserName); mDbConn.setPort(mPort); if(!mDbConn.open()) { qDebug()<<mDbConn.lastError(); exit(1); } }
void Addons::treeChargeAddons(QTreeWidget *view) { QTreeWidgetItem *rootItem=new QTreeWidgetItem(view) ; QTreeWidgetItem *item=new QTreeWidgetItem(rootItem) ; QFile file(db->pathUser+"/addonse-0.4.8.xml"); file.open(QIODevice::ReadOnly); view->clear(); view->setColumnCount(9); view->setAutoExpandDelay(1000); view->setAlternatingRowColors(true); // view->setHeaderHidden(true); QXmlStreamReader xml; xml.setDevice(&file); while (!xml.atEnd()) { xml.readNext(); if (xml.name() == "root"){ QString name=xml.attributes().value("Name").toString(); QString type=xml.attributes().value("type").toString(); if(!name.isNull()){ rootItem= new QTreeWidgetItem(view); rootItem->setText(0,db->trlang(name)); rootItem->setText(1,type); } }else if (xml.name() == "Item"){ QString name= xml.attributes().value("Name").toString(); QString type=xml.attributes().value("type").toString(); QString typep=xml.attributes().value("typep").toString(); QString lang=xml.attributes().value("lang").toString(); QString date= xml.attributes().value("date").toString(); QString size=xml.attributes().value("size").toString(); QString url=xml.attributes().value("url").toString(); QString text= xml.attributes().value("text").toString(); QString dir= xml.attributes().value("dir").toString(); //name,lang,date,size,url // if(name!="") // makeTable <<QString(" <tr><td>%1</td><td>%2</td><td>%3</td><td>%4</td><td><a href=\"%5\" target=\"_top\" >Download</a></td></tr>").arg(name).arg(lang).arg(date).arg(size).arg(url); if(!name.isNull()){ item= new QTreeWidgetItem(rootItem); item->setIcon(0,QIcon(":images/ok.png")); if(typep=="tr"){ if(db->getDatastr("SELECT name FROM sqlite_master WHERE name='"+text+"' ;")!=text) { item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->setCheckState(0,Qt::Unchecked); item->setIcon(0,QIcon(":images/Download.png")); } }else if(typep=="ex"){ if(db->getDatastr("SELECT count(id) FROM Explanation_Name where Name ='"+text+"' ;")=="0") { item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->setCheckState(0,Qt::Unchecked); item->setIcon(0,QIcon(":images/Download.png")); } } else if(typep=="lang" or typep=="help"){ QFile file(db->pathUser+"/"+dir+"/"+text); if(!file.exists()) { item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->setCheckState(0,Qt::Unchecked); item->setIcon(0,QIcon(":images/Download.png")); } } item->setText(0,db->trlang(name)); item->setText(1,type); item->setText(2,typep); item->setText(3,db->trlang(lang)); item->setText(4,date); item->setText(5,size); item->setText(6,url); item->setText(7,text); item->setText(8,dir); } } } xml.clear(); view->setColumnHidden(1,true); view->setColumnHidden(2,true); view->setColumnHidden(6,true); view->setColumnHidden(7,true); view->setColumnHidden(8,true); QStringList labels; labels << db->trlang("Name") << "" << "" << db->trlang("Lang") << db->trlang("Date") << db->trlang("Size") << "" << "" << ""; view->setHeaderLabels(labels); view->setColumnWidth(0,250); view->setColumnWidth(5,50); file.close(); }