コード例 #1
0
ファイル: GdalAdapter.cpp プロジェクト: ggrau/merkaartor
void GdalAdapter::fromXML(QXmlStreamReader& stream)
{
    theBbox = QRectF();
    theImages.clear();

    while(!stream.atEnd() && !stream.isEndElement()) {
        if (stream.name() == "Images") {
            if (stream.attributes().hasAttribute("projection"))
                theProjection = stream.attributes().value("projection").toString();
            if (stream.attributes().hasAttribute("source"))
                theSourceTag = stream.attributes().value("source").toString();
            stream.readNext();
            while(!stream.atEnd() && !stream.isEndElement()) {
                if (stream.name() == "Image") {
                    QString fn = stream.attributes().value("filename").toString();
                    if (!fn.isEmpty())
                        loadImage(fn);
                    stream.readNext();
                } else if (!stream.isWhitespace()) {
                    qDebug() << "gdalimage: logic error: " << stream.name() << " : " << stream.tokenType() << " (" << stream.lineNumber() << ")";
                    stream.skipCurrentElement();
                }
                stream.readNext();
            }
        } else if (!stream.isWhitespace()) {
            qDebug() << "gdalmain: logic error: " << stream.name() << " : " << stream.tokenType() << " (" << stream.lineNumber() << ")";
            stream.skipCurrentElement();
        }

        stream.readNext();
    }
}
コード例 #2
0
ファイル: ZtTable.cpp プロジェクト: hoolheart/XMLAuto_GUI
bool ZtTable::loadXml(QXmlStreamReader &reader)
{
    bool flag0=false;
    cleanAll();

    if(reader.isEndElement()) return false;
    reader.readNext();
    while(!reader.isEndElement()) {
        if(reader.isStartElement()) {
            if(reader.name()=="Header") {
                if(flag0) {flag0=false;break;}
                flag0=true;
                header=reader.readElementText().trimmed().split(',');
                reader.readNext();
            }
            else if(reader.name()=="Row") {
                rows.append(reader.readElementText().trimmed().split(','));
                reader.readNext();
            }
            else {cleanAll(); return false;}
        }
        else reader.readNext();
    }

    if(flag0)
        return true;
    else {cleanAll(); return false;}
}
コード例 #3
0
ファイル: datastr.cpp プロジェクト: hoolheart/XmlAuto
bool DataStr::load(QXmlStreamReader &reader)
{
    if(reader.isEndElement())
        return false;
    reader.readNext();
    while(!reader.isEndElement()) {
        if(reader.isStartElement()) {
            if(reader.name() == "Group") {
                Group *p = new Group();
                if(p->load(reader))
                    groups.append(p);
                else {
                    delete p;
                    cleanAll();
                    return false;
                }
                reader.readNext();
            }
            else {
                cleanAll();
                return false;
            }
        }
        else
            reader.readNext();
    }

    return true;
}
コード例 #4
0
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();
}
コード例 #5
0
	void CWidgetPropParser::parseGUIWidgetProperties( QXmlStreamReader &reader, const QString &widgetName )
	{
		reader.readNext();
		if( reader.atEnd() )
			return;

		std::map< std::string, SWidgetInfo >::iterator itr =
			widgetInfo->find( widgetName.toUtf8().constData() );
		if( itr == widgetInfo->end() )
			return;

		std::vector< SPropEntry > &v = itr->second.props;

		while( !reader.atEnd() && !( reader.isEndElement() && ( reader.name() == "properties" ) ) )
		{
			if( reader.isStartElement() && reader.name() == "property" )
			{
				SPropEntry prop;
				reader.readNext();

				while( !reader.atEnd() && !( reader.isEndElement() && ( reader.name() == "property" ) ) )
				{
					if( reader.isStartElement() )
					{
						QString key = reader.name().toString();
						QString value = reader.readElementText( QXmlStreamReader::ErrorOnUnexpectedElement );

						if( !reader.hasError() )
						{
							if( key == "name" )
								prop.propName = value.toUtf8().constData();
							else
							if( key == "type" )
								prop.propType = value.toUtf8().constData();
							else
							if( key == "default" )
								prop.propDefault = value.toUtf8().constData();
							else
								nlwarning( QString( "Unknown tag %1 within a property" ).arg( key ).toUtf8().constData() );

						}
						else
							nlwarning( "Malformed XML." );
					}
					
					reader.readNext();
				}
				if( reader.atEnd() )
					return;
				
				v.push_back( prop );
			}

			reader.readNext();
		}
	}
コード例 #6
0
CQTs_Class::CQTs_Class(QXmlStreamReader &xml){
    spellcaster = false;
    //trusting this:if(xml.name()=="class"&&xml.isStartElement())
    QString code = xml.attributes().value("code").toString();
    append(code);
    Name = code;//in case classnames are not loaded
    bool bab1=false,bab2=false;
    int bab = xml.attributes().value("bab").toInt();
    if(bab==1)
        bab1=true;
    else if(bab==2)
        bab2=true;
    bool f = xml.attributes().value("fort").toInt();
    bool r = xml.attributes().value("ref").toInt();
    bool w = xml.attributes().value("will").toInt();
    bool data[5] = {bab1,bab2,f,r,w};
    std::copy(data,data+5,info);
    lmax = xml.attributes().value("lmax").toInt();
    QStringList skillList;
    do{
        xml.readNext();
        if(xml.name()=="classskills"&&xml.isStartElement()){
            do{
                xml.readNext();
                if(xml.name()=="skill"&&xml.isStartElement()){
                    QString skillcode = xml.attributes().value("code").toString();
                    skillList.push_back(skillcode);
                }
            }while(!(xml.name()=="classskills"&&xml.isEndElement()));
        }
        if(xml.name()=="progression"&&xml.isStartElement()){//load progression
            DV = xml.attributes().value("dv").toInt();
            Ranks = xml.attributes().value("skillpoints").toInt();
            do{
                xml.readNext();
                if(xml.name()=="level"&&xml.isStartElement()){
                    //spell progression
                    int lv = xml.attributes().value("n").toInt();
                    if(xml.attributes().hasAttribute("spells")){
                        spellcaster = true;
                        for (int i = spellNumberList.size(); i < lv-1; ++i)
                            spellNumberList.append("-");
                        spellNumberList.append(xml.attributes().value("spells").toString());
                    }
                }
            }while(!(xml.name()=="progression"&&xml.isEndElement()));
        }

    }while(!(xml.isEndElement()&&xml.name()=="class"));
    if(skillList.size()>0)
        setSkills(skillList);
}
コード例 #7
0
// Read all current Ranges controls from an XML stream
bool US_RunProtocol::RunProtoRanges::fromXml( QXmlStreamReader& xmli )
{
   nranges              = 0;
   chrngs.clear();
   Ranges rng;

   while( ! xmli.atEnd() )
   {
      QString ename   = xmli.name().toString();

      if ( xmli.isStartElement() )
      {
         if ( ename == "range"  ||  ename == "spectrum" )
         {
            QXmlStreamAttributes attr = xmli.attributes();
            rng.channel          = attr.value( "channel" )     .toString();
            QString slorad       = attr.value( "start_radius" ).toString();
            QString shirad       = attr.value( "end_radius" )  .toString();
            rng.lo_rad           = slorad.isEmpty() ? rng.lo_rad : slorad.toDouble();
            rng.hi_rad           = shirad.isEmpty() ? rng.hi_rad : shirad.toDouble();

            rng.wvlens.clear();
         }

         else if ( ename == "wavelength"  ||  ename == "point" )
         {
            QXmlStreamAttributes attr = xmli.attributes();
            rng.wvlens << attr.value( "lambda" ).toString().toDouble();
         }
      }

      else if ( xmli.isEndElement()  &&
               ( ename == "range"  ||  ename == "spectrum" ) )
      {
         chrngs << rng;
         nranges++;
      }

      bool was_end    = xmli.isEndElement();  // Just read was End of element?
      xmli.readNext();                        // Read the next element

      if ( was_end )
      {
         if ( ename == "ranges"  ||          // Break after "</ranges>"
              ename == "spectra" )           // Break after "</spectra>"
           break;
      }
   }

   return ( ! xmli.hasError() );
}
コード例 #8
0
// Read all current Optical Systems controls from an XML stream
bool US_RunProtocol::RunProtoOptics::fromXml( QXmlStreamReader& xmli )
{
   nochan               = 0;
   chopts.clear();

   while( ! xmli.atEnd() )
   {
      QString ename   = xmli.name().toString();

      if ( xmli.isStartElement() )
      {
         if ( ename == "optical_system" )
         {
            OpticSys os;
            QXmlStreamAttributes attr = xmli.attributes();
            os.channel   = attr.value( "channel" ).toString();
            os.scan1     = attr.value( "scan1"   ).toString();
            os.scan2     = attr.value( "scan2"   ).toString();
            os.scan3     = attr.value( "scan3"   ).toString();
            chopts << os;
            nochan++;
         }
      }

      bool was_end    = xmli.isEndElement();   // Just read was End of element?
      xmli.readNext();                         // Read the next element

      if ( was_end  &&  ename == "optics" )    // Break after "</optics>"
         break;
   }

   return ( ! xmli.hasError() );
}
コード例 #9
0
ファイル: distance.cpp プロジェクト: makroid/TrainSchedule
Distance::Distance(QXmlStreamReader &xmlReader) {
    xmlReader.readNext();
    while(!xmlReader.atEnd()) {
        if (xmlReader.isEndElement()) {
            xmlReader.readNext();
            break;
        }
        if (xmlReader.isStartElement()) {
            if (xmlReader.name() == "dist") {               
                dist = xmlReader.readElementText().toDouble();
                xmlReader.readNext();
            } else if (xmlReader.name() == "unit") {
                QString u = xmlReader.readElementText();
                if (u == "KM") {
                    unit = KM;
                } else if (u == "MILE") {
                    unit = MILE;
                } else {
                    unit = KM;
                }
                xmlReader.readNext();
            } else {
                Helper::skipUnknownElements(xmlReader);
            }
        } else {
            xmlReader.readNext();
        }
    }
}
コード例 #10
0
KnowledgeBase::Metadata KnowledgeBaseParser::parseMetadata( QXmlStreamReader &xml )
{
    KnowledgeBase::Metadata meta;
    meta.status.clear();
    meta.message.clear();
    meta.totalItems = 0;
    meta.itemsPerPage = 0;

    while ( !xml.atEnd() ) {
        xml.readNext();
        if (xml.isStartElement() && xml.name() == "meta") {
            while ( !xml.atEnd() ) {
                xml.readNext();
                if (xml.isEndElement() && xml.name() == "meta") {
                    break;
                } else if (xml.isStartElement()) {
                    if (xml.name() == "status") {
                        meta.status = xml.readElementText();
                    } else if (xml.name() == "message") {
                        meta.message = xml.readElementText();
                    } else if (xml.name() == "totalitems") {
                        meta.totalItems = xml.readElementText().toInt();
                    } else if (xml.name() == "itemsperpage") {
                        meta.itemsPerPage = xml.readElementText().toInt();
                    }
                }
            }
            break;
        }
    }

    return meta;
}
コード例 #11
0
ファイル: functions.cpp プロジェクト: nghiand/SoftQA
/*!
* Считать открывающий тег вершины, создав её или, считать закрывающий тег вершины, в зависимости от положения в потоке
* \param[in] xmlStream - покок чтения на вводный XML-файл
* \param[in] treeNum - номер дерева, которое считываются
* \param[out] newNode - указатель на новую вершину
* \return 1 - при считывал открывающий тег и новая вершина создалась
* \return -1 - при считывал закрывающий тег
* \return 0 - при других случах.
*/
int readNode(QXmlStreamReader& xmlStream, int treeNum, node*& newNode){
	newNode = NULL;
	QXmlStreamAttributes attr;
	// 1. Считать тег из потока
	xmlStream.readNext();
	// 2. Если открывающий тег <node> считан, то
	if (xmlStream.isStartElement()){
		// 3.1 Получить атрибуты из тега <node>
		attr = xmlStream.attributes();
		QString value = attr.value("value").toString();
		int data = value.toInt();

		// 3.2. Если значение атрибута не является цифрой, то выбросить исключение (ошибка EXIST_NOT_NUMBER)
		if (QString::number(data) != value)
			throw error(EXISTS_NOT_NUMBER, treeNum == 1 ? 1 : 2, value);

		// 3.3. Иначе создать новую вершину newNode с цифрой data
		newNode = new node(data);
		// 3.4. Вернуть 1
		return 1;
	} else if (xmlStream.isEndElement())
		// 4. Если закрывающий тег </node> считан, то вернуть -1
		return -1;
	// 5. Иначе вернуть 0
	return 0;
}
コード例 #12
0
int CVBAOptions::fromXml(QXmlStreamReader& XmlReader) {
	/* Emulator-spezifische Optionen einlesen */
	while(!XmlReader.atEnd()) {
		XmlReader.readNext();
		
		if(XmlReader.isStartElement()) {
			if(XmlReader.qualifiedName().toString()=="commandline") {
				// Befehlszeile
				this->setEmuCommand(XmlReader.readElementText());
			}
			else if(XmlReader.qualifiedName().toString()=="fullscreen") {
				//Vollbildmodus
				if(XmlReader.readElementText()=="true") this->setFullscreen(true);
				else this->setFullscreen(false);
			}
			else if(XmlReader.qualifiedName().toString()=="scale") {
				//Fenstervergrößerung
				this->setScale(XmlReader.readElementText().toShort());
			}
		}
		else if(XmlReader.isEndElement() && XmlReader.qualifiedName().toString()=="options") {
			/* Abbruch, wenn Optionen zu Ende sind */
			break; // Ende der Optionenliste erreicht
		}
	}
	return 0;
}
コード例 #13
0
ファイル: qgsosmimport.cpp プロジェクト: Br1ndavoine/QGIS
void QgsOSMXmlImport::readRoot( QXmlStreamReader& xml )
{
  int i = 0;
  int percent = -1;

  while ( !xml.atEnd() )
  {
    xml.readNext();

    if ( xml.isEndElement() )  // </osm>
      break;

    if ( xml.isStartElement() )
    {
      if ( ++i == 500 )
      {
        int new_percent = 100 * mInputFile.pos() / mInputFile.size();
        if ( new_percent > percent )
        {
          emit progress( new_percent );
          percent = new_percent;
        }
        i = 0;
      }

      if ( xml.name() == "node" )
        readNode( xml );
      else if ( xml.name() == "way" )
        readWay( xml );
      else
        xml.skipCurrentElement();
    }
  }
}
コード例 #14
0
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;
}
コード例 #15
0
void LinNativeDisplayForm::parseRSSChannel(
  QXmlStreamReader &textReader)
{
  QString htmlOutput = htmlPrefix;

  while (!textReader.atEnd())
  {
    textReader.readNext();

    if (textReader.isStartElement())
    {
      if (textReader.name() == "item")
      {
        parseRSSItem(htmlOutput, textReader);
      }
    }

    else if (textReader.isEndElement())
    {
      if (textReader.name() == "channel")
      {
        htmlOutput +=" </body>\n</html>";
        setHtml(htmlOutput, sourceUrl);

        break;
      }
    }
  }
}
コード例 #16
0
ファイル: forumparser.cpp プロジェクト: KDE/attica
Forum Forum::Parser::parseXml(QXmlStreamReader &xml)
{
    Forum forum;

    while (!xml.atEnd()) {
        xml.readNext();

        if (xml.isStartElement()) {
            if (xml.name() == QLatin1String("id")) {
                forum.setId(xml.readElementText());
            } else if (xml.name() == QLatin1String("name")) {
                forum.setName(xml.readElementText());
            } else if (xml.name() == QLatin1String("description")) {
                forum.setDescription(xml.readElementText());
            } else if (xml.name() == QLatin1String("date")) {
                forum.setDate(Utils::parseQtDateTimeIso8601(xml.readElementText()));
            } else if (xml.name() == QLatin1String("icon")) {
                forum.setIcon(QUrl(xml.readElementText()));
            } else if (xml.name() == QLatin1String("childcount")) {
                forum.setChildCount(xml.readElementText().toInt());
            } else if (xml.name() == QLatin1String("children")) {
                QList<Forum> children = parseXmlChildren(xml);
                forum.setChildren(children);
            } else if (xml.name() == QLatin1String("topics")) {
                forum.setTopics(xml.readElementText().toInt());
            }
        } else if (xml.isEndElement() && xml.name() == QLatin1String("forum")) {
            break;
        }
    }

    return forum;
}
コード例 #17
0
CQTs_Race::CQTs_Race(QXmlStreamReader &xml){
    SPbonus=0;
    for (int i = 0; i < 6; abilities[i++]=0);
    //trusting this:if(xml.name()=="race"&&xml.isStartElement())
    QString code = xml.attributes().value("code").toString();
    append(code);
    Name = code;//in case racenames are not loaded
    do{
        xml.readNext();
        if(xml.name()=="trait"&&xml.isStartElement()){
            QString whattodo = xml.attributes().value("code").toString();
            if(whattodo == "BonusSP"){
                SPbonus = xml.readElementText().toInt();
            }else if(whattodo == "BonusStat"){
                QString which = xml.attributes().value("which").toString();
                if(which=="STR")
                    abilities[0] = xml.readElementText().toInt();
                else if(which=="DEX")
                    abilities[1] = xml.readElementText().toInt();
                else if(which=="CON")
                    abilities[2] = xml.readElementText().toInt();
                else if(which=="INT")
                    abilities[3] = xml.readElementText().toInt();
                else if(which=="WIS")
                    abilities[4] = xml.readElementText().toInt();
                else if(which=="CHA")
                    abilities[5] = xml.readElementText().toInt();
            }
        }
    }while(!(xml.isEndElement()&&xml.name()=="race"));
}
コード例 #18
0
ファイル: MapStyle_P.cpp プロジェクト: Congle/OsmAnd-core
bool OsmAnd::MapStyle_P::parseMetadata( QXmlStreamReader& xmlReader )
{
    while (!xmlReader.atEnd() && !xmlReader.hasError())
    {
        xmlReader.readNext();
        const auto tagName = xmlReader.name();
        if (xmlReader.isStartElement())
        {
            if (tagName == QLatin1String("renderingStyle"))
            {
                _title = xmlReader.attributes().value(QLatin1String("name")).toString();
                auto attrDepends = xmlReader.attributes().value(QLatin1String("depends"));
                if(!attrDepends.isNull())
                    _parentName = attrDepends.toString();
            }
        }
        else if (xmlReader.isEndElement())
        {
        }
    }
    if(xmlReader.hasError())
    {
        std::cerr << qPrintable(xmlReader.errorString()) << "(" << xmlReader.lineNumber() << ", " << xmlReader.columnNumber() << ")" << std::endl;
        return false;
    }

    return true;
}
コード例 #19
0
ファイル: gitmanager.cpp プロジェクト: Caneda/Caneda
    /*!
     * \brief Parse and show the output from git-log
     *
     * We parse the output from previous git-log, and
     * then show the result in a QListWidget. The hash from
     * git log is not shown, but is used later to allow the
     * user to select an item, an recover that point in
     * history.
     */
    void GitManager::slotUpdateHistory()
    {
        QString data = "<gitHistory>\n";
        data.append(gitProcessHistory->readAllStandardOutput());
        data.append("\n</gitHistory>");

        ui.listHistory->clear();
        QXmlStreamReader *reader = new QXmlStreamReader(data.toUtf8());

        while(!reader->atEnd()) {
            reader->readNext();

            if(reader->isStartElement() && reader->name() == "commit") {
                QListWidgetItem *item = new QListWidgetItem(ui.listHistory);
                while(!reader->isEndElement() || reader->name() != "commit") {

                    reader->readNext();
                    if(reader->isStartElement() && reader->name() == "msg") {
                        item->setText(reader->readElementText());
                    }
                    else if(reader->isStartElement() && reader->name() == "hash") {
                        item->setData(Qt::AccessibleDescriptionRole, reader->readElementText());
                    }
                }
            }
        }

    }
コード例 #20
0
WeekSchedule::WeekSchedule(QXmlStreamReader &xmlReader) {
    xmlReader.readNext();
    while(!xmlReader.atEnd()) {
        if (xmlReader.isEndElement()) {
            xmlReader.readNext();
            break;
        }
        if (xmlReader.isStartElement()) {
            if (xmlReader.name() == "week") {
                Week w(xmlReader);
                week = w;
            } else if (xmlReader.name() == "dayschedule") {
                DaySchedule* ds = new DaySchedule(xmlReader);
                days.push_back(QSharedPointer<DaySchedule>(ds));
            } else {
                Helper::skipUnknownElements(xmlReader);
            }
        } else {
            xmlReader.readNext();
        }
    }
    summary = QSharedPointer<WeekSummary>(new WeekSummary());
    summary->setDays(&days);
    summary->update();
    createConnections();
}
コード例 #21
0
 void FluidLauncher::parseDemos(QXmlStreamReader& reader)
 {
     while (!reader.atEnd()) {
         reader.readNext();
         if (reader.isStartElement() && reader.name() == "example") {
             QXmlStreamAttributes attrs = reader.attributes();
             QStringRef filename = attrs.value("filename");
             if (!filename.isEmpty()) {
                 QStringRef name = attrs.value("name");
                 QStringRef image = attrs.value("image");
                 QStringRef args = attrs.value("args");
                 QStringRef idpocket = attrs.value("idpocket");
                 QStringRef desc = attrs.value("desc");

                 Launcher* newDemo = new Launcher(
                         idpocket.toString(),
                         filename.toString(),
                         name.isEmpty() ? "Unnamed Demo" : name.toString(),
                         image.toString(),
                         args.toString().split(" "),
                             desc.toString());
                 demoList.append(newDemo);
             }
         } else if(reader.isEndElement() && reader.name() == "demos") {
             return;
         }
     }
 }
コード例 #22
0
void PumpSpreadsheet::readTransactionElement(QXmlStreamReader &reader)
{
    QMap<QString, QString> map;

    reader.readNext();
    while (!reader.atEnd()) {
        if (reader.isEndElement()) {
            reader.readNext();
            break;
        }

        if (reader.isStartElement()) {
            QString key = reader.name().toString();
            map.insert(key, reader.readElementText());
        }
        reader.readNext();
    }

    QStringList fields;
    fields << map.value("date") << map.value("time")
           << map.value("pump") << map.value("company")
           << map.value("user") << map.value("quantity")
           << map.value("status");
    addItem(fields);
}
コード例 #23
0
ファイル: remoteaccountparser.cpp プロジェクト: tudalex/Orion
RemoteAccount RemoteAccount::Parser::parseXml(QXmlStreamReader& xml)
{
    RemoteAccount remoteaccount;

    // For specs about the XML provided, see here:
    // http://www.freedesktop.org/wiki/Specifications/open-collaboration-services-draft#RemoteAccounts
    while (!xml.atEnd()) {
        //qDebug() << "XML returned:" << xml.text().toString();
        xml.readNext();

        if (xml.isStartElement()) {
            if (xml.name() == "id") {
                remoteaccount.setId(xml.readElementText());
            } else if (xml.name() == "type") {
                remoteaccount.setType(xml.readElementText());
            } else if (xml.name() == "typeid") {  // FIXME: change to remoteserviceid sometime soon (OCS API change pending
                remoteaccount.setRemoteServiceId(xml.readElementText());
            } else if (xml.name() == "data") {
                remoteaccount.setData(xml.readElementText());
            } else if (xml.name() == "login") {
                remoteaccount.setLogin(xml.readElementText());
            } else if (xml.name() == "password") {
                remoteaccount.setPassword(xml.readElementText());
            }
        } else if (xml.isEndElement() && (xml.name() == "remoteaccount" || xml.name() == "user")) {
            break;
        }
    }
    return remoteaccount;
}
コード例 #24
0
QString LinNativeDisplayForm::parseText(
  QString elementName,
  QXmlStreamReader &textReader)
{
  QString textString;

  while (!textReader.atEnd())
  {
    textReader.readNext();

    if (textReader.isEndElement())
    {
      if (textReader.name() == elementName)
      {
        return textString;
      }
      else
      {
        textString.append(textReader.text().toString());
      }
    }
    else
    {
      textString.append(textReader.text().toString());
    }
  }

  return textString;
}
コード例 #25
0
ファイル: globstore.cpp プロジェクト: emuse/qmidiarp
void GlobStore::readData(QXmlStreamReader& xml)
{
    int tmp;
    while (!xml.atEnd()) {
        xml.readNext();
        if (xml.isEndElement())
            break;
        if (xml.name() == "timeMode") {
            tmp =xml.readElementText().toInt();
            timeModeBox->setCurrentIndex(tmp);
            updateTimeModeBox(tmp);
        }
        else if (xml.name() == "switchAtBeat") {
            tmp =xml.readElementText().toInt();
            switchAtBeatBox->setCurrentIndex(tmp);
            updateSwitchAtBeat(tmp);
        }
        else if (xml.name() == "timeModule") {
            tmp =xml.readElementText().toInt();
            if (tmp > -1) timeModuleBox->setCurrentIndex(tmp);
            updateTimeModule(tmp);
        }
        else if (xml.isStartElement() && (xml.name() == "midiControllers")) {
            midiControl->readData(xml);
        }
        else skipXmlElement(xml);
    }
    modified = false;
}
コード例 #26
0
void MetaInfoParser::handleMetaInfoElement(QXmlStreamReader &reader)
{
    while (!reader.atEnd() && !(reader.isEndElement() && reader.name() == "metainfo")) {
        reader.readNext();
        metaInfoHandler(reader);
    }
}
コード例 #27
0
bool CProjectFileParser::parseMapFiles( QXmlStreamReader &reader )
{
    while( !reader.atEnd() && !( reader.isStartElement() && reader.name() == "mapfiles" ) )
        reader.readNext();
    if( reader.atEnd() )
        return false;

    while( !reader.atEnd() && !( reader.isEndElement() && ( reader.name() == "mapfiles" ) ) )
    {
        if( reader.isStartElement() && ( reader.name() == "file" ) )
        {
            QString fileName = reader.readElementText( QXmlStreamReader::ErrorOnUnexpectedElement );
            if( fileName.isEmpty() )
                return false;
            files.mapFiles.push_back( fileName.toUtf8().constData() );

        }

        reader.readNext();
    }
    if( files.mapFiles.empty() )
        return false;

    return true;
}
コード例 #28
0
ファイル: xml_util.cpp プロジェクト: trigger-happy/Cerberus
Question XmlUtil::parseIdentificationQuestion(QXmlStreamReader &reader) {
	assert(reader.name() == "identification");
	const QXmlStreamAttributes &attrs = reader.attributes();

	Question q;
	q.type = Question::IDENTIFICATION;
	optional_assign(attrs, "score", q.score, reader);
	optional_assign(attrs, "time_limit", q.time_limit, reader);
	optional_assign(attrs, "id", q.id, reader);

	while ( !reader.atEnd() ) {
		reader.readNext();
		{
			const QStringRef &ns = reader.namespaceUri();
			if ( !ns.isEmpty() && ns != XML_NS ) continue;
		}
		if ( reader.isStartElement() ) {
			if ( reader.name() == "q" ) {
				q.question = reader.readElementText();
			} else if ( reader.name() == "a" )  {
				QString answer = reader.readElementText();
				q.answer_key.push_back(Question::AnswerKeyEntry(answer, true));
				q.answer.append(answer+" - ");
			} else if ( reader.name() == "identification" ) {
				throw InvalidXmlException("'identification' tag found inside 'identification'.", reader);
			} else {
				//barf?
			}
		} else if ( reader.isEndElement() && reader.name() == "identification" )
			break;
	}
	return q;
}
コード例 #29
0
ファイル: SyncMLExt.cpp プロジェクト: kavuri/buteo-syncml
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 );

}
コード例 #30
0
DataObjectPtr EventMonitorFactory::generateObject(ObjectStore *store, QXmlStreamReader& xml) {
  Q_ASSERT(store);

  QString equation, description, emailRecipients, script;
  bool logDebug=false, logEmail=false, logELOG=false;
  int logLevel=1;

  while (!xml.atEnd()) {
      const QString n = xml.name().toString();
    if (xml.isStartElement()) {
      if (n == EventMonitorEntry::staticTypeTag) {
        QXmlStreamAttributes attrs = xml.attributes();
        equation = attrs.value("equation").toString();
        description = attrs.value("description").toString();
        emailRecipients = attrs.value("emailrecipients").toString();
        script = attrs.value("script").toString();
        logLevel = attrs.value("loglevel").toString().toInt();

        logDebug = attrs.value("logdebug").toString() == "true" ? true : false;
        logEmail = attrs.value("logemail").toString() == "true" ? true : false;
        logELOG = attrs.value("logelog").toString() == "true" ? true : false;
      } else {
        return 0;
      }
    } else if (xml.isEndElement()) {
      if (n == EventMonitorEntry::staticTypeTag) {
        break;
      } else {
        Debug::self()->log(QObject::tr("Error creating EventMonitorEntry from Kst file."), Debug::Warning);
        return 0;
      }
    }
    xml.readNext();
  }

  if (xml.hasError()) {
    return 0;
  }

  EventMonitorEntryPtr eventMonitor = store->createObject<EventMonitorEntry>();
  Q_ASSERT(eventMonitor);

  eventMonitor->setScriptCode(script);
  eventMonitor->setEvent(equation);
  eventMonitor->setDescription(description);
  eventMonitor->setLevel((Debug::LogLevel)logLevel);
  eventMonitor->setLogDebug(logDebug);
  eventMonitor->setLogEMail(logEmail);
  eventMonitor->setLogELOG(logELOG);
  eventMonitor->setEMailRecipients(emailRecipients);

  eventMonitor->reparse();

  eventMonitor->writeLock();
  eventMonitor->registerChange();
  eventMonitor->unlock();

  return eventMonitor;
}