Integrator XMLReader::LoadIntegrator(QXmlStreamReader &xml_reader) { Integrator result; //First check what type of integrator we're supposed to load QXmlStreamAttributes attribs(xml_reader.attributes()); QStringRef type = attribs.value(QString(), QString("type")); bool is_mesh = false; while(!xml_reader.isEndElement() || QStringRef::compare(xml_reader.name(), QString("integrator")) != 0) { xml_reader.readNext(); QString tag(xml_reader.name().toString()); if(is_mesh && QString::compare(tag, QString("maxDepth")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.SetDepth(xml_reader.text().toInt()); } xml_reader.readNext(); } } return result; }
QDebug operator<<(QDebug dbg, const QXmlStreamReader& reader) { dbg.nospace() << "QXmlStreamReader("; if (reader.isStartElement()) { dbg.nospace() << "<"; dbg.nospace() << reader.qualifiedName().toString().toLocal8Bit().constData(); QString attrsString; const QXmlStreamAttributes& attrs = reader.attributes(); for (int i = 0; i < attrs.count(); i++) { dbg.nospace() << " " << attrs[i].qualifiedName().toString().toLocal8Bit().constData(); dbg.nospace() << "="; dbg.nospace() << attrs[i].value().toString(); } if (reader.isEndElement()) { dbg.nospace() << "/>)"; } else { dbg.nospace() << ">)"; } } else if (reader.isEndElement()) { dbg.nospace() << "</" << reader.qualifiedName().toString().toLocal8Bit().constData() << ">)"; } else if (reader.isCharacters()) { dbg.nospace() << "characters:" << reader.text() << ")"; } else if (reader.isComment()) { dbg.nospace() << "<!-- " << reader.text().toString().toLocal8Bit().constData() << " -->)"; } else if (reader.isCDATA()) { dbg.nospace() << "CDATA:" << reader.text() << ")"; } else if (reader.isWhitespace()) { dbg.nospace() << "whitespace:" << reader.text() << ")"; } else { dbg.nospace() << reader.tokenString() << reader.text(); } return dbg.space(); }
void SyncMLExt::processElement( QXmlStreamReader& aReader, SyncMLCmdObject* aParent ) { FUNCTION_CALL_TRACE; SyncMLCmdObject* obj = new SyncMLCmdObject( aReader.name().toString() ); while( !aReader.atEnd() ) { aReader.readNext(); if( aReader.isStartElement() ) { processElement( aReader, obj ); } else if( aReader.isCharacters() ) { obj->setValue( aReader.text().toString().simplified() ); } else if( aReader.isEndElement() ) { break; } } aParent->addChild( obj ); }
QMultiMap<QString, QString>* FileManager::caricaCollegamenti() const { QMultiMap<QString, QString>* lista = new QMultiMap<QString, QString>(); QXmlStreamReader rxml; QFile file(_fileNameReti); if (file.open(QFile::ReadOnly | QFile::Text)) { rxml.setDevice(&file); rxml.readNext(); QString utente1, utente2; bool collegamentoAperto = false; while(!rxml.atEnd()) { if(rxml.isStartElement()) { if(rxml.name() == "Rete") rxml.readNext(); else if(rxml.name() == "Collegamento") { collegamentoAperto = true; while(!rxml.atEnd()) { if(rxml.isEndElement()) { if(collegamentoAperto) { lista->insert(utente1, utente2); collegamentoAperto = false; } rxml.readNext(); break; } else if(rxml.isCharacters()) rxml.readNext(); else if(rxml.isStartElement()) { if(rxml.name() == "Utente1") utente1 = rxml.readElementText(); else if(rxml.name() == "Utente2") utente2 = rxml.readElementText(); rxml.readNext(); } else rxml.readNext(); } } } else rxml.readNext(); } file.close(); } return lista; }
//-------------------------------------------------------------------------------------------------- /// PdmFieldHandle implementations //-------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void PdmFieldIOHelper::skipCharactersAndComments(QXmlStreamReader& xmlStream) { QXmlStreamReader::TokenType type; while (!xmlStream.atEnd() && xmlStream.isCharacters() || xmlStream.isComment()) { type = xmlStream.readNext(); } }
bool SoundSettings::loadXML ( const QString &xmlFileName, QString &origFileName, QString ©FileName, QString &title) { QFile *file = 0; QXmlStreamReader *xml = 0; bool retval = false; QStringList names; SYS_DEBUG ("*** xmlFileName = %s", SYS_STR(xmlFileName)); file = new QFile(xmlFileName); if (!file || !file->open(QIODevice::ReadOnly | QIODevice::Text)) { SYS_WARNING ("Can not open '%s' for reading: %m", SYS_STR(xmlFileName)); goto finalize; } xml = new QXmlStreamReader(file); while(!xml->atEnd() && !xml->hasError()) { QString name(xml->name().toString()); #if 0 SYS_DEBUG ("*************************************"); SYS_DEBUG ("*** name: %s", SYS_STR(name)); SYS_DEBUG ("*** lineNumber : %d", xml->lineNumber()); #endif if (xml->isStartElement()) { names << xml->name().toString(); } else if (xml->isEndElement()) { names.removeLast(); } else if (xml->isCharacters()) { QString path = names.join("/"); if (path == "soundsettings-applet/orig-file") origFileName = xml->text().toString(); else if (path == "soundsettings-applet/copy-file") copyFileName = xml->text().toString(); else if (path == "soundsettings-applet/title") title = xml->text().toString(); } xml->readNext(); } finalize: if (xml) delete xml; if (file) delete file; return retval; }
Transform XMLReader::LoadTransform(QXmlStreamReader &xml_reader) { glm::vec3 t, r, s; s = glm::vec3(1,1,1); while(!xml_reader.isEndElement() || QStringRef::compare(xml_reader.name(), QString("transform")) != 0) { xml_reader.readNext(); QString tag(xml_reader.name().toString()); if(xml_reader.isStartElement() && QString::compare(tag, QString("translate")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { QStringRef vec = xml_reader.text(); t = ToVec3(vec); } xml_reader.readNext(); } else if(xml_reader.isStartElement() && QString::compare(tag, QString("rotate")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { QStringRef vec = xml_reader.text(); r = ToVec3(vec); } xml_reader.readNext(); } else if(xml_reader.isStartElement() && QString::compare(tag, QString("scale")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { QStringRef vec = xml_reader.text(); s = ToVec3(vec); } xml_reader.readNext(); } } return Transform(t, r, s); }
/*! \reimp */ void QThemeLevelItem::loadChildren(QXmlStreamReader &reader) { while (!reader.atEnd()) { reader.readNext(); if (reader.isEndElement()) break; if (reader.isCharacters()) d->text += reader.text().toString().trimmed(); } }
void PdmFieldReader<QString>::readFieldData(PdmField<QString> & field, QXmlStreamReader& xmlStream) { PdmFieldIOHelper::skipComments(xmlStream); if (!xmlStream.isCharacters()) return; field = xmlStream.text().toString(); // Make stream point to end of element QXmlStreamReader::TokenType type; type = xmlStream.readNext(); PdmFieldIOHelper::skipCharactersAndComments(xmlStream); }
unsigned int XMLReader::LoadPixelSamples(QXmlStreamReader &xml_reader) { while(!xml_reader.isEndElement() || QStringRef::compare(xml_reader.name(), QString("pixelSampleLength")) != 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { return xml_reader.text().toInt(); } xml_reader.readNext(); } }
//============================================================================= bool GoogleEngine::parseWeather(WeatherInfo &aInfo) { QString aXmlPath; aXmlPath = "chengdu.xml"; QFile file(aXmlPath); //QFileInfo info; //info.setFile(aXmlPath); //bool is = info.exists(); file.open(QIODevice::ReadOnly | QIODevice::Text ); int iForecastDay = 0; QXmlStreamReader xml; xml.setDevice(&file); while(!xml.atEnd()) { xml.readNext(); //QString element = xml.name().toString(); if(xml.isStartElement()) { //bool l = xml.attributes().hasAttribute("data"); if (parseForecastInformation(xml, aInfo)) { continue; } if(parseCurrentCondition(xml, aInfo)) { continue; } if (parseForecastCondition(xml, aInfo, iForecastDay)) { iForecastDay++; continue; } } else if (xml.isCharacters()) { } else if (xml.isEndElement()) { } } if (xml.hasError()) { qDebug(xml.errorString().toLatin1()); } file.close(); aInfo.mForecastDay = iForecastDay; return true; }
void XmlParser::parseXmlStream() { while (!m_reader.atEnd()) { if (m_reader.readNext()) { if (m_reader.isEndElement()) { if (isProgramValid) { m_programs.append(m_currentProgram); isProgramValid = false; } m_currentToken.clear(); return; } if (m_reader.isCharacters()) { if (m_currentToken == QLatin1String("title")) m_currentProgram.setName(m_reader.text().toString()); else if (m_currentToken == QLatin1String("display-name")) m_channel.setName(m_reader.text().toString()); } if (m_reader.isStartElement()) { m_currentToken = m_reader.name().toString(); if (m_currentToken == QLatin1String("icon")) { QXmlStreamAttributes attribs = m_reader.attributes(); foreach (QXmlStreamAttribute attr, attribs) { const QString attrName = attr.name().toString(); const QString attrValue = attr.value().toString(); if (attrName == QLatin1String("src")) m_channel.setIcon(QUrl(attrValue)); } } else if (m_currentToken == QLatin1String("programme")) { isProgramValid = true; QXmlStreamAttributes attribs = m_reader.attributes(); foreach (QXmlStreamAttribute attr, attribs) { const QString attrName = attr.name().toString(); const QString attrValue = attr.value().toString(); if (attrName == QLatin1String("start")) { QDateTime dt = QDateTime::fromString(attrValue, QLatin1String("yyyyMMddhhmmss")); m_currentProgram.setStartTime(dt.toLocalTime().toString(QLatin1String("hh:mm"))); } } }
void DirectParser::ParseSendfile (QXmlStreamReader & xread, DirectMessage & msg, qint64 & offset, bool & complete, bool & good, QXmlStreamAttributes & atts) { QString subop = atts.value("subop").toString().toLower(); msg.SetSubop (subop); bool valid (false); if (subop == "chunk-data") { ReadNext (xread); if (xread.isCharacters ()) { msg.SetData (xread.text().toString().toUtf8()); valid = true; ReadNext (xread); } offset = xread.characterOffset (); } else { valid= ( subop == "sendreq" || subop == "samreq" || subop == "goahead" || subop == "deny" || subop == "chunk-ack" || subop == "snd-done" || subop == "abort" ); ReadNext (xread); } if (valid) { for (int i=0; i< atts.size(); i++) { msg.SetAttribute (atts[i].name().toString().toLower(), atts[i].value().toString()); } good = true; complete = true; offset = xread.characterOffset (); } }
void DirectParser::ParseXmpp (QXmlStreamReader & xread, DirectMessage & msg, qint64 & offset, bool & complete, bool & good, QXmlStreamAttributes & atts) { QString subop = atts.value("subop").toString().toLower(); msg.SetSubop (subop); if (subop == "msg") { complete = true; good = true; } ReadNext (xread); if (xread.isCharacters()) { msg.SetData (xread.text().toString().toUtf8()); ReadNext (xread); } offset = xread.characterOffset (); if (xread.tokenType() != QXmlStreamReader::EndElement) { complete = false; good = false; } }
QMap<QString, Utente *> *FileManager::caricaUtenti() const { QMap<QString, Utente*>* lista = new QMap<QString, Utente*>(); QXmlStreamReader rxml; QFile file(_fileNameUtenti); if (file.open(QFile::ReadOnly | QFile::Text)) { rxml.setDevice(&file); rxml.readNext(); QString username, password, nome, cognome, tipo; bool isAdmin = false; bool utenteAperto = false; while(!rxml.atEnd()) { if(rxml.isStartElement()) { if(rxml.name() == "Utenti") rxml.readNext(); else if(rxml.name() == "Utente") { utenteAperto = true; while(!rxml.atEnd()) { if(rxml.isEndElement()) { if(utenteAperto) { if(tipo == "1") { lista->insert(username, (new UtenteBasic(username, password, isAdmin)) ->setNome(nome)->setCognome(cognome)); } else if(tipo == "2") { lista->insert(username, (new UtenteBusiness(username, password, isAdmin)) ->setNome(nome)->setCognome(cognome)); } else { lista->insert(username, (new UtenteExecutive(username, password, isAdmin)) ->setNome(nome)->setCognome(cognome)); } utenteAperto = false; } rxml.readNext(); break; } else if(rxml.isCharacters()) rxml.readNext(); else if(rxml.isStartElement()) { if(rxml.name() == "Username") username = rxml.readElementText(); else if(rxml.name() == "Password") password = rxml.readElementText(); else if(rxml.name() == "Tipo") tipo = rxml.readElementText(); else if(rxml.name() == "IsAdmin") isAdmin = rxml.readElementText() == "true" ? true : false; else if(rxml.name() == "Nome") nome = rxml.readElementText(); else if(rxml.name() == "Cognome") cognome = rxml.readElementText(); rxml.readNext(); } else rxml.readNext(); } } } else rxml.readNext(); } file.close(); } if(lista->empty()) lista->insert("matteo", (new UtenteExecutive("matteo", "matteo", true)) ->setNome("Matteo")->setCognome("Bortolazzo")); return lista; }
QMap<QString, Info *> *FileManager::caricaInfo() const { QMap<QString, Info*>* lista = new QMap<QString, Info*>(); QXmlStreamReader rxml; QFile file(_fileNameInfo); if (file.open(QFile::ReadOnly | QFile::Text)) { rxml.setDevice(&file); rxml.readNext(); QString username, codiceFiscale, indirizzo, citta, cap, telefono; QDate dataNascita; bool infoAperta = false; while(!rxml.atEnd()) { if(rxml.isStartElement()) { if(rxml.name() == "Informazioni") rxml.readNext(); else if(rxml.name() == "Info") { infoAperta = true; Info* i = new Info(); while(!rxml.atEnd()) { if(rxml.isEndElement()) { if(infoAperta) { i->setCodiceFiscale(codiceFiscale) ->setIndirizzo(indirizzo)->setCitta(citta) ->setCap(cap)->setTelefono(telefono)->setDataNascita(dataNascita); lista->insert(username, i); infoAperta = false; } rxml.readNext(); break; } else if(rxml.isCharacters()) rxml.readNext(); else if(rxml.isStartElement()) { if(rxml.name() == "Username") username = rxml.readElementText(); else if(rxml.name() == "CodiceFiscale") codiceFiscale = rxml.readElementText(); else if(rxml.name() == "Indirizzo") indirizzo = rxml.readElementText(); else if(rxml.name() == "Citta") citta = rxml.readElementText(); else if(rxml.name() == "Cap") cap = rxml.readElementText(); else if(rxml.name() == "Telefono") telefono = rxml.readElementText(); else if(rxml.name() == "DataNascita") { QStringList temp = rxml.readElementText().split(";"); dataNascita = QDate(temp.at(2).toInt(), temp.at(1).toInt(), temp.at(0).toInt()); } else if(rxml.name() == "Competenze") rxml.readNext(); else if(rxml.name() == "Competenza") { i->aggiungiCompetenza(rxml.readElementText()); rxml.readNext(); } rxml.readNext(); } else rxml.readNext(); } } } else rxml.readNext(); } file.close(); } return lista; }
const Animal AnimalDatabase::getData(QXmlStreamReader & reader) { assert(reader.name() == k_name); Animal animal; const auto attr = reader.attributes(); if (!attr.hasAttribute("id")) { qWarning() << "Animal has no ID!"; return animal; } while(!(reader.isEndElement() && reader.name() == k_name)) { reader.readNext(); if (reader.isEndElement()) { continue; } auto name = reader.name(); // name if (name == "name") { reader.readNext(); if(!reader.isCharacters()) { qWarning() << "Name does not contain characters!"; return animal; } else { animal.setName(reader.text().toString()); } } else // type if (name == "type") { while(!(reader.isEndElement() && reader.name() == "type")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "primary") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Primary Type does not contain characters!"; return animal; } else { animal.setPrimaryType(reader.text().toString()); } } else if (name == "secondary") { reader.readNext(); if (!reader.isCharacters() && !reader.text().isEmpty()) { qWarning() << "Secondary Type does not contain characters!"; return animal; } else { animal.setSecondaryType(reader.text().toString()); } } } } else // basestats if (name == "basestats") { while(!(reader.isEndElement() && reader.name() == "basestats")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "hp") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "HP does not contain characters!"; return animal; } else { animal.setBaseHP(reader.text().toUInt()); } } else if (name == "attack") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Attack does not contain characters!"; return animal; } else { animal.setBaseAttack(reader.text().toUInt()); } } else if (name == "defense") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Defense does not contain characters!"; return animal; } else { animal.setBaseDefense(reader.text().toUInt()); } } else if (name == "speed") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Speed does not contain characters!"; return animal; } else { animal.setBaseSpeed(reader.text().toUInt()); } } else if (name == "specialattack") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Special Attack does not contain characters!"; return animal; } else { animal.setBaseSpecialAttack(reader.text().toUInt()); } } else if (name == "specialdefense") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Special Defense does not contain characters!"; return animal; } else { animal.setBaseSpecialDefense(reader.text().toUInt()); } } else if (name == "xp") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "base XP does not contain characters!"; return animal; } else { animal.setBaseXP(reader.text().toUInt()); } } } } else // moves if (name == "moves") { std::multimap<unsigned int, QString> moves; while(!(reader.isEndElement() && reader.name() == "moves")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "move") { QString moveName; unsigned int moveLevel; while(!(reader.isEndElement() && reader.name() == "move")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "name") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Move Name does not contain characters!"; return animal; } else { moveName = reader.text().toString(); } } else if (name == "level") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Move Level does not contain characters!"; return animal; } else { moveLevel = reader.text().toUInt(); } } } moves.emplace(moveLevel, moveName); } } animal.setMoves(moves); } else // evolutions if (name == "evolutions") { std::vector<std::tuple<QString, QString, unsigned int>> evolutions; while(!(reader.isEndElement() && reader.name() == "evolutions")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "evolution") { QString evolutionName; QString evolutionMethod; unsigned int evolutionValue; while(!(reader.isEndElement() && reader.name() == "evolution")) { reader.readNext(); if (reader.isEndElement()) { continue; } name = reader.name(); if (name == "name") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Evolution Name does not contain characters!"; return animal; } else { evolutionName = reader.text().toString(); } } else if (name == "method") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Evolution Method does not contain characters!"; return animal; } else { evolutionMethod = reader.text().toString(); } } else if (name == "value") { reader.readNext(); if (!reader.isCharacters()) { qWarning() << "Evolution Value does not contain characters!"; return animal; } else { evolutionValue = reader.text().toUInt(); } } } evolutions.emplace_back(evolutionName, evolutionMethod, evolutionValue); } } animal.setEvolutions(evolutions); } } return animal; }
Camera XMLReader::LoadCamera(QXmlStreamReader &xml_reader) { Camera result; while(!xml_reader.isEndElement() || QStringRef::compare(xml_reader.name(), QString("camera")) != 0) { xml_reader.readNext(); QString tag(xml_reader.name().toString()); if(QString::compare(tag, QString("target")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.ref = ToVec3(xml_reader.text()); } xml_reader.readNext(); } else if(QString::compare(tag, QString("eye")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.eye = ToVec3(xml_reader.text()); } xml_reader.readNext(); } else if(QString::compare(tag, QString("worldUp")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.world_up = ToVec3(xml_reader.text()); } xml_reader.readNext(); } else if(QString::compare(tag, QString("width")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.width = xml_reader.text().toFloat(); } xml_reader.readNext(); } else if(QString::compare(tag, QString("height")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.height = xml_reader.text().toFloat(); } xml_reader.readNext(); } else if(QString::compare(tag, QString("fov")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.fovy = xml_reader.text().toFloat(); } xml_reader.readNext(); } else if(QString::compare(tag, QString("nearClip")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.near_clip = xml_reader.text().toFloat(); } xml_reader.readNext(); } else if(QString::compare(tag, QString("farClip")) == 0) { xml_reader.readNext(); if(xml_reader.isCharacters()) { result.far_clip = xml_reader.text().toFloat(); } xml_reader.readNext(); } } result.RecomputeAttributes(); return result; }
void Parser::parseFiles(QNetworkReply *reply, QMap<QNetworkReply*, Structureelement*> *replies, QString downloadDirectoryPath) { // Holen die aktuelle Veranstaltung aus der Map Structureelement* aktuellerOrdner = replies->value(reply); // Auslesen der Antwort und Speichern in dem XmlReader QString replyText = reply->readAll(); QXmlStreamReader Reader; Reader.addData(replyText); // Vorbereitung der Daten für die Elemente QString currentXmlTag; QUrl url; QString name; QString time; qint32 size = 0; // Prüfen auf das Ende while(!Reader.atEnd()) { // Lese nächstes Element Reader.readNext(); // 1. Fall: Öffnendes Element <Element> if(Reader.isStartElement()) { // Speichern des Namens currentXmlTag = Reader.name().toString(); } // 2. Fall: Schließendes Element mit Namen Response </Response> else if (Reader.isEndElement() && Reader.name() == "response") { // Hinzufügen des Slashs bei der Url von Ordnern if(!size) url.setUrl(url.toString() % "/"); // Wechsel in den übergeordneten Ordner des aktuellen Elements QString bla = url.toString(); while(!url.toString().contains((aktuellerOrdner->data(urlRole).toUrl().toString()), Qt::CaseSensitive))//(in = RegExp.indexIn(url.toString())) == -1) { aktuellerOrdner->sortChildren(0, Qt::AscendingOrder); aktuellerOrdner = (Structureelement*)aktuellerOrdner->parent(); if (aktuellerOrdner == 0) qDebug() << replyText; } // Ignorieren aller Adressen, die "/Forms" enthalten if (!url.toString().contains("/Forms", Qt::CaseSensitive)) { // Prüfe auf Elementart // 1. Fall: Datei (size > 0) if (size) { // Erstellen einer neuen Datei Structureelement* newFile = new Structureelement(name, url, time, size); // Hinzufügen des endungsabhängigen Icons // PDF if (name.contains(QRegExp(".pdf$", Qt::CaseInsensitive))) newFile->setData(QIcon(":/Icons/Icons/filetype_pdf.png"), Qt::DecorationRole); // ZIP else if (name.contains(QRegExp(".zip$", Qt::CaseInsensitive))) newFile->setData(QIcon(":/Icons/Icons/filetype_zip.png"), Qt::DecorationRole); // RAR else if (name.contains(QRegExp(".rar$", Qt::CaseInsensitive))) newFile->setData(QIcon(":/Icons/Icons/filetype_rar.png"), Qt::DecorationRole); // Sonstige else newFile->setData(QIcon(":/Icons/Icons/file.png"), Qt::DecorationRole); QString path; path.append(Utils::getStrukturelementPfad(aktuellerOrdner, downloadDirectoryPath) %"/"); path.append(name); path.remove(0,8); if(QFile::exists(path)) { newFile->setData(SYNCHRONISED, synchronisedRole); } else { newFile->setData(NOT_SYNCHRONISED, synchronisedRole); } QList<QStandardItem*> row; row.append(newFile); row.append(new QStandardItem(QString::number(size/1024.0/1024.0, 'f', 2) % " MB")); row.append(new QStandardItem(QDateTime::fromString(time, Qt::ISODate).toString("yyyy-MM-dd hh:mm"))); // Hinzufügen zum aktuellen Ordner aktuellerOrdner->appendRow(row); } // 2. Fall: Ordner/Veranstaltung // Ausschließen der Ordnernamen "documents" und "structured" else if (name != "documents" && name != "structured" && !url.toString().contains("exerciseCourse")) { // Erstellen eines neuen Ordners Structureelement* newDirectory = new Structureelement(name, url, directoryItem); // Setzen des Zeichens newDirectory->setData(QIcon(":/Icons/Icons/25_folder.png"), Qt::DecorationRole); // Hinzufügen zum aktuellen Ordner aktuellerOrdner->appendRow(newDirectory); // NeuerOrdner wird zum aktuellen Ordner aktuellerOrdner = newDirectory; } } // Löschen aller eingelesener Daten url.clear(); name.clear(); size = 0; time.clear(); } // Einlesen der Elementeigenschaften else if (Reader.isCharacters() && !Reader.isWhitespace()) { // URL if(currentXmlTag == "href" && url.isEmpty()) url.setUrl(QString::fromUtf8(Reader.text().toString().toUtf8())); // Name else if (currentXmlTag == "displayname") name = QString::fromUtf8(Reader.text().toString().toUtf8()); // Größe else if (currentXmlTag == "getcontentlength") size = Reader.text().toString().toInt(); // Modifizierungsdatum else if (currentXmlTag == "getlastmodified") time = QString::fromUtf8(Reader.text().toString().toLatin1()); } } // Leere Ordner wieder rausschmeißen. Structureelement* rootCourse = replies->value(reply); for (int i = 0; i < rootCourse->rowCount(); i++) { Structureelement *item = (Structureelement *)rootCourse->child(i); if (item->type() == directoryItem && item->rowCount() == 0) { rootCourse->removeRow(i); } } // Sortieren aller Dateien replies->value(reply)->sortChildren(0, Qt::AscendingOrder); }
void RSSManager::finished() { FollowRedirectReply* reply = qobject_cast<FollowRedirectReply*> (sender()); if (!reply) { return; } QString replyUrl; for (int i = 0; i < m_replies.count(); i++) { QPair<FollowRedirectReply*, QUrl> pair = m_replies.at(i); if (pair.first == reply) { replyUrl = pair.second.toString(); break; } } if (replyUrl.isEmpty()) { return; } QString currentTag; QString linkString; QString titleString; QXmlStreamReader xml; xml.addData(reply->readAll()); reply->deleteLater(); int tabIndex = -1; for (int i = 0; i < ui->tabWidget->count(); i++) { if (replyUrl == ui->tabWidget->tabToolTip(i)) { tabIndex = i; break; } } if (tabIndex == -1) { return; } TreeWidget* treeWidget = qobject_cast<TreeWidget*>(ui->tabWidget->widget(tabIndex)); if (!treeWidget) { return; } treeWidget->clear(); while (!xml.atEnd()) { xml.readNext(); if (xml.isStartElement()) { if (xml.name() == QLatin1String("item")) { linkString = xml.attributes().value("rss:about").toString(); } currentTag = xml.qualifiedName().toString(); } else if (xml.isEndElement()) { if (xml.qualifiedName() == QLatin1String("item")) { QTreeWidgetItem* item = new QTreeWidgetItem; item->setText(0, titleString); item->setIcon(0, QIcon(":/icons/other/feed.png")); item->setToolTip(0, linkString); treeWidget->addTopLevelItem(item); titleString.clear(); linkString.clear(); } } else if (xml.isCharacters() && !xml.isWhitespace()) { if (currentTag == QLatin1String("title")) { titleString = xml.text().toString(); } else if (currentTag == QLatin1String("link")) { linkString += xml.text().toString(); } } } if (treeWidget->topLevelItemCount() == 0) { QTreeWidgetItem* item = new QTreeWidgetItem; item->setText(0, tr("Error in fetching feed")); treeWidget->addTopLevelItem(item); } }
QString ScutRSS::parseXml(const QString &data){ QString titleString; QString currentTag; QString dateString; QString linkString; QString description; QString html = "<html><h1>Scutum RSS</h1>"; QXmlStreamReader xml; xml.addData(data); while (!xml.atEnd()) { xml.readNext(); if (xml.isStartElement()) { if (xml.name() == "item"){ if (titleString!=""){ //feed = new QTreeWidgetItem; //feed->setText(0, titleString); //feed->setText(2, linkString); //ui->treeWidget->addTopLevelItem(feed); //qDebug() << __PRETTY_FUNCTION__<< " title: " << titleString << " linkString: " << linkString; } description.clear(); linkString.clear(); titleString.clear(); dateString.clear(); } currentTag = xml.name().toString(); //qDebug() << __PRETTY_FUNCTION__<< " current tag: " << currentTag; } else if (xml.isEndElement()) { if (xml.name() == "item") { //qDebug() << __PRETTY_FUNCTION__<< " title: " << titleString << " linkString: " << linkString; html = html + "<p><h2><a href=\"" + linkString +"\">" + titleString + "</a></h2></p>"; html = html + "<p><h3>" + description + "<h3></p>"; //QTreeWidgetItem *item = new QTreeWidgetItem(feed); //item->setText(0, titleString); //item->setText(1, dateString); //item->setText(2, linkString); //ui->treeWidget->addTopLevelItem(item); titleString.clear(); linkString.clear(); dateString.clear(); } } else if (xml.isCharacters() && !xml.isWhitespace()) { if (currentTag == "channel"){ qDebug() << __PRETTY_FUNCTION__<< " channel: " << currentTag; //titleString += xml.text().toString(); } if (currentTag == "description"){ qDebug() << __PRETTY_FUNCTION__<< " description: " << xml.text(); description += xml.text().toString(); } else if (currentTag == "title"){ //qDebug() << __PRETTY_FUNCTION__<< " current tag: " << currentTag; titleString += xml.text().toString(); } else if (currentTag == "link"){ linkString += xml.text().toString(); //qDebug() << __PRETTY_FUNCTION__<< " current link: " << currentTag; } else if (currentTag == "pubDate"){ dateString += xml.text().toString(); //qDebug() << __PRETTY_FUNCTION__<< " current date: " << currentTag; } } } if (xml.error() && xml.error() != QXmlStreamReader::PrematureEndOfDocumentError) { qWarning() << "XML ERROR:" << xml.lineNumber() << ": " << xml.errorString(); //http.abort(); } html = html + "</html>"; return html; } // QString ScutRSS::parseXml(const QString &data);
_class * readFromXML(QString fileXml) { _class *root = NULL; // init xml stream QFile file(fileXml); QXmlStreamReader xmlReader; //QString line; if ( !file.open(QIODevice::ReadOnly) ) return false; { QTextStream t( &file ); // stream.setCodec("CP-866"); xmlReader.addData(t.readAll()); } // start reading QStack<_specXMLElement *> stackElements; while(!xmlReader.atEnd()) { if(xmlReader.isCharacters() && stackElements.count() != 0) { _specXMLElement *pElemTop = stackElements.top(); if(pElemTop->hasBody()) pElemTop->setBody(xmlReader.readElementText()); } if(xmlReader.isStartElement()) { QString strName = xmlReader.name().toString(); _specXMLElement *elem = createElement(strName); _specXMLElement *parentElem = (stackElements.count() != 0) ? stackElements.top() : NULL; if(stackElements.count() == 0) root = (_class *)elem; if(parentElem != NULL) parentElem->addChildElement(strName,elem); stackElements.push(elem); for(int i = 0; i < xmlReader.attributes().count(); i++) { QXmlStreamAttribute attr = xmlReader.attributes().at(i); elem->setAttribute(attr.name().toString(), attr.value().toString()); } } if(xmlReader.isEndElement()) { stackElements.pop(); } xmlReader.readNext(); }; if(xmlReader.hasError()) { return NULL; // std::cout << xmlReader.errorString().toStdString(); } return root; };
void SimpleLoggerRoutingInfo::readInternals(QXmlStreamReader& reader, const QString&) { // Some elements store a map with the key as an attribute such as: "<Level MessageCategory="UserMessage">3</Level>" // The nameAttrMapprovides the mapping between the element name and the single attribute used to contain the key. QMap<QString, QString> nameAttrMap; nameAttrMap["level"] = "MessageCategory"; nameAttrMap["routing"] = "MessageRouting"; nameAttrMap["format"] = "MessageComponent"; QString name; QString attributeValue; bool foundCharacters = false; while (!reader.atEnd()) { if (reader.isStartElement()) { attributeValue = ""; name = reader.name().toString(); foundCharacters = false; //qDebug(qPrintable(QString("Found start element %1").arg(name))); if (QString::compare(name, "LocationRegEx", Qt::CaseInsensitive) == 0) { if (m_locationRegExp != nullptr) { delete m_locationRegExp; m_locationRegExp = nullptr; } m_locationRegExp = XMLUtility::readRegExp(reader); } else if (QString::compare(name, "MessageRegEx", Qt::CaseInsensitive) == 0) { if (m_messageRegExp != nullptr) { delete m_messageRegExp; m_messageRegExp = nullptr; } m_messageRegExp = XMLUtility::readRegExp(reader); } else { // At a start element that is not a regular expression, so check for the value in the attribute. if (nameAttrMap.contains(name.toLower()) && reader.attributes().hasAttribute(nameAttrMap[name.toLower()])) { attributeValue = reader.attributes().value(nameAttrMap[name.toLower()]).toString(); } } } else if (reader.isCharacters() && !name.isEmpty()) { QString value = reader.text().toString(); //qDebug(qPrintable(QString("Found characters for name %1 and value (%2)").arg(name, value))); if (name.compare("Enabled", Qt::CaseInsensitive) == 0) { m_enabled = XMLUtility::stringToBoolean(value); } else if (name.compare("Name", Qt::CaseInsensitive) == 0) { setName(value.trimmed()); } else if (attributeValue.length() > 0) { // These next guys store their value in the attribute as specified in the nameAttrMap. if (name.compare("Level", Qt::CaseInsensitive) == 0) { m_levels->insert(stringToCategory(attributeValue), value.toInt()); } else if (name.compare("Routing", Qt::CaseInsensitive) == 0) { m_routing->insert(stringToRouting(attributeValue), XMLUtility::stringToBoolean(value)); } else if (name.compare("Format", Qt::CaseInsensitive) == 0) { m_format.append(QPair<MessageComponent, QString>(stringToComponent(attributeValue), value)); foundCharacters = true; } } attributeValue = ""; } else if (reader.isEndElement()) { if (QString::compare(reader.name().toString(), "SimpleLoggerRoutingInfo", Qt::CaseInsensitive) == 0) { return; } if (name.compare("Format", Qt::CaseInsensitive) == 0 && !foundCharacters) { m_format.append(QPair<MessageComponent, QString>(stringToComponent(attributeValue), "")); } name = ""; } reader.readNext(); } }