本文整理汇总了C++中QDomNode类的典型用法代码示例。如果您正苦于以下问题:C++ QDomNode类的具体用法?C++ QDomNode怎么用?C++ QDomNode使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QDomNode类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Q_UNUSED
void QgsSLDConfigParser::layersAndStylesCapabilities( QDomElement& parentElement, QDomDocument& doc, const QString& version, bool fullProjectSettings ) const
{
Q_UNUSED( version );
Q_UNUSED( fullProjectSettings );
//iterate over all <UserLayer> nodes
if ( mXMLDoc )
{
QDomNode sldNode = mXMLDoc->documentElement();
if ( !sldNode.isNull() )
{
//create wgs84 to reproject the layer bounding boxes
//QgsCoordinateReferenceSystem wgs84;
//wgs84.createFromEpsg(4326);
QDomNodeList layerNodeList = sldNode.toElement().elementsByTagName( "UserLayer" );
for ( int i = 0; i < layerNodeList.size(); ++i )
{
QDomElement layerElement = doc.createElement( "Layer" );
layerElement.setAttribute( "queryable", "1" ); //support GetFeatureInfo for all layers
parentElement.appendChild( layerElement );
//add name
QDomNodeList nameList = layerNodeList.item( i ).toElement().elementsByTagName( "Name" );
if ( !nameList.isEmpty() )
{
//layer name
QDomElement layerNameElement = doc.createElement( "Name" );
QDomText layerNameText = doc.createTextNode( nameList.item( 0 ).toElement().text() );
layerNameElement.appendChild( layerNameText );
layerElement.appendChild( layerNameElement );
}
//add title
QDomNodeList titleList = layerNodeList.item( i ).toElement().elementsByTagName( "Title" );
if ( !titleList.isEmpty() )
{
QDomElement layerTitleElement = doc.createElement( "Title" );
QDomText layerTitleText = doc.createTextNode( titleList.item( 0 ).toElement().text() );
layerTitleElement.appendChild( layerTitleText );
layerElement.appendChild( layerTitleElement );
}
//add abstract
QDomNodeList abstractList = layerNodeList.item( i ).toElement().elementsByTagName( "Abstract" );
if ( !abstractList.isEmpty() )
{
QDomElement layerAbstractElement = doc.createElement( "Abstract" );
QDomText layerAbstractText = doc.createTextNode( abstractList.item( 0 ).toElement().text() );
layerAbstractElement.appendChild( layerAbstractText );
layerElement.appendChild( layerAbstractElement );
}
//get QgsMapLayer object to add Ex_GeographicalBoundingBox, Bounding Box
QList<QgsMapLayer*> layerList = mapLayerFromStyle( nameList.item( 0 ).toElement().text(), "" );
if ( layerList.size() < 1 )//error while generating the layer
{
QgsDebugMsg( "Error, no maplayer in layer list" );
continue;
}
//get only the first layer since we don't want to have the other ones in the capabilities document
QgsMapLayer* theMapLayer = layerList.at( 0 );
if ( !theMapLayer )//error while generating the layer
{
QgsDebugMsg( "Error, QgsMapLayer object is 0" );
continue;
}
//append geographic bbox and the CRS elements
QStringList crsNumbers = QgsConfigParserUtils::createCrsListForLayer( theMapLayer );
QStringList crsRestriction; //no crs restrictions in SLD parser
QgsConfigParserUtils::appendCrsElementsToLayer( layerElement, doc, crsNumbers, crsRestriction );
QgsConfigParserUtils::appendLayerBoundingBoxes( layerElement, doc, theMapLayer->extent(), theMapLayer->crs(), crsNumbers, crsRestriction );
//iterate over all <UserStyle> nodes within a user layer
QDomNodeList userStyleList = layerNodeList.item( i ).toElement().elementsByTagName( "UserStyle" );
for ( int j = 0; j < userStyleList.size(); ++j )
{
QDomElement styleElement = doc.createElement( "Style" );
layerElement.appendChild( styleElement );
//Name
QDomNodeList nameList = userStyleList.item( j ).toElement().elementsByTagName( "Name" );
if ( !nameList.isEmpty() )
{
QDomElement styleNameElement = doc.createElement( "Name" );
QDomText styleNameText = doc.createTextNode( nameList.item( 0 ).toElement().text() );
styleNameElement.appendChild( styleNameText );
styleElement.appendChild( styleNameElement );
QDomElement styleTitleElement = doc.createElement( "Title" );
QDomText styleTitleText = doc.createTextNode( nameList.item( 0 ).toElement().text() );
styleTitleElement.appendChild( styleTitleText );
styleElement.appendChild( styleTitleElement );
}
//Title
QDomNodeList titleList = userStyleList.item( j ).toElement().elementsByTagName( "Title" );
if ( !titleList.isEmpty() )
{
QDomElement styleTitleElement = doc.createElement( "Title" );
//.........这里部分代码省略.........
示例2: Q_UNUSED
// static
Skin SkinConfigWidget::loadSkin(KLFPluginConfigAccess * config, const QString& fn, bool getstylesheet)
{
Q_UNUSED(getstylesheet) ;
KLF_DEBUG_BLOCK(KLF_FUNC_NAME) ;
klfDbg("loading skin "<<fn<<", get style sheet="<<getstylesheet) ;
Skin skin;
skin.fn = fn;
QFile f(fn);
if ( ! f.open(QIODevice::ReadOnly) ) {
qWarning()<<KLF_FUNC_NAME<<": Can't read skin "<<fn<<"!";
return skin;
}
QDomDocument doc("klf-skin");
QString errMsg; int errLine, errCol;
bool r = doc.setContent(&f, false, &errMsg, &errLine, &errCol);
if (!r) {
qWarning()<<KLF_FUNC_NAME<<": Error parsing file "<<fn<<": "<<errMsg<<" at line "<<errLine<<", col "<<errCol;
return skin;
}
f.close();
QDomElement root = doc.documentElement();
if (root.nodeName() != "klf-skin") {
qWarning("%s: Error parsing XML for skin `%s': Bad root node `%s'.\n",
KLF_FUNC_NAME, qPrintable(fn), qPrintable(root.nodeName()));
return skin;
}
QMap<QString,QString> defines;
QStringList stylesheetpath = QStringList()
<< QLatin1String(":/plugindata/skin/stylesheets")
<< config->homeConfigPluginDataDir() + "/stylesheets";
// read XML file
QDomNode n;
for (n = root.firstChild(); ! n.isNull(); n = n.nextSibling()) {
QDomElement e = n.toElement(); // try to convert the node to an element.
if ( e.isNull() || n.nodeType() != QDomNode::ElementNode )
continue;
if ( e.nodeName() == "name" ) {
skin.name = qApp->translate("xmltr_pluginskins", e.text().toUtf8().constData(),
"[[tag: <name>]]", QCoreApplication::UnicodeUTF8);
continue;
} else if ( e.nodeName() == "author" ) {
skin.author = e.text();
continue;
} else if ( e.nodeName() == "def" ) {
QString key = e.attribute("name");
QString value = e.text();
if (QRegExp("^[A-Za-z][A-Za-z0-9_]*$").exactMatch(key))
defines[key] = value;
else
qWarning()<<KLF_FUNC_NAME<<": file "<<fn<<": Illegal <def> name: "<<key;
} else if ( e.nodeName() == "description" ) {
skin.description = qApp->translate("xmltr_pluginskins", e.text().toUtf8().constData(),
"[[tag: <description>]]", QCoreApplication::UnicodeUTF8);
continue;
} else if ( e.nodeName() == "stylesheet" ) {
QString fnqssbase = e.text().trimmed();
QString fnqss = klfSearchPath(fnqssbase, stylesheetpath);
QFile fqss(fnqss);
if (fnqss.isEmpty() || !fqss.exists() || !fqss.open(QIODevice::ReadOnly)) {
qWarning()<<KLF_FUNC_NAME<<"Can't open qss-stylesheet file "<<fnqssbase
<<" while reading skin "<<fn<<".";
continue;
}
QString ss = QString::fromUtf8(fqss.readAll());
if (!defines.isEmpty()) {
// we need to process <def>ines ...
QRegExp alldefines_rx = QRegExp("\\b("+QStringList(defines.keys()).join("|")+")\\b");
int k = 0;
while ( (k = alldefines_rx.indexIn(ss, k+1)) != -1) {
QString key = alldefines_rx.cap(1);
KLF_ASSERT_CONDITION( defines.contains(key), "Error: key "<<key<<" found, but not in defines="
<<defines<<"?!?", ++k; continue; ) ;
QString value = defines[key];
klfDbg("Substituting def. "<<key<<" by "<<value<<" in style sheet "<<fnqss<<" for "<<fn) ;
ss.replace(k, alldefines_rx.matchedLength(), value);
k += value.length();
}
klfDbg("def-Replaced style sheet is \n"<<ss) ;
}
示例3: setStates
void WPushButton::setup(QDomNode node, const SkinContext& context) {
// Number of states
int iNumStates = context.selectInt(node, "NumberStates");
setStates(iNumStates);
// Set background pixmap if available
if (context.hasNode(node, "BackPath")) {
QString mode_str = context.selectAttributeString(
context.selectElement(node, "BackPath"), "scalemode", "TILE");
setPixmapBackground(context.getSkinPath(context.selectString(node, "BackPath")),
Paintable::DrawModeFromString(mode_str));
}
// Load pixmaps for associated states
QDomNode state = context.selectNode(node, "State");
while (!state.isNull()) {
if (state.isElement() && state.nodeName() == "State") {
int iState = context.selectInt(state, "Number");
if (iState < m_iNoStates) {
if (context.hasNode(state, "Pressed")) {
setPixmap(iState, true,
context.getSkinPath(context.selectString(state, "Pressed")));
}
if (context.hasNode(state, "Unpressed")) {
setPixmap(iState, false,
context.getSkinPath(context.selectString(state, "Unpressed")));
}
m_text.replace(iState, context.selectString(state, "Text"));
}
}
state = state.nextSibling();
}
ControlParameterWidgetConnection* leftConnection = NULL;
if (m_leftConnections.isEmpty()) {
if (!m_connections.isEmpty()) {
// If no left connection is set, the this is the left connection
leftConnection = m_connections.at(0);
}
} else {
leftConnection = m_leftConnections.at(0);
}
if (leftConnection) {
bool leftClickForcePush = context.selectBool(node, "LeftClickIsPushButton", false);
m_leftButtonMode = ControlPushButton::PUSH;
if (!leftClickForcePush) {
const ConfigKey& configKey = leftConnection->getKey();
ControlPushButton* p = dynamic_cast<ControlPushButton*>(
ControlObject::getControl(configKey));
if (p) {
m_leftButtonMode = p->getButtonMode();
}
}
if (leftConnection->getEmitOption() &
ControlParameterWidgetConnection::EMIT_DEFAULT) {
switch (m_leftButtonMode) {
case ControlPushButton::PUSH:
case ControlPushButton::LONGPRESSLATCHING:
case ControlPushButton::POWERWINDOW:
leftConnection->setEmitOption(
ControlParameterWidgetConnection::EMIT_ON_PRESS_AND_RELEASE);
break;
default:
leftConnection->setEmitOption(
ControlParameterWidgetConnection::EMIT_ON_PRESS);
break;
}
}
if (leftConnection->getDirectionOption() &
ControlParameterWidgetConnection::DIR_DEFAULT) {
if (m_pDisplayConnection == leftConnection) {
leftConnection->setDirectionOption(ControlParameterWidgetConnection::DIR_FROM_AND_TO_WIDGET);
} else {
leftConnection->setDirectionOption(ControlParameterWidgetConnection::DIR_FROM_WIDGET);
if (m_pDisplayConnection->getDirectionOption() &
ControlParameterWidgetConnection::DIR_DEFAULT) {
m_pDisplayConnection->setDirectionOption(ControlParameterWidgetConnection::DIR_TO_WIDGET);
}
}
}
}
if (!m_rightConnections.isEmpty()) {
ControlParameterWidgetConnection* rightConnection = m_rightConnections.at(0);
bool rightClickForcePush = context.selectBool(node, "RightClickIsPushButton", false);
m_rightButtonMode = ControlPushButton::PUSH;
if (!rightClickForcePush) {
const ConfigKey configKey = rightConnection->getKey();
ControlPushButton* p = dynamic_cast<ControlPushButton*>(
ControlObject::getControl(configKey));
if (p) {
m_rightButtonMode = p->getButtonMode();
if (m_rightButtonMode != ControlPushButton::PUSH) {
qWarning()
<< "WPushButton::setup: Connecting a Pushbutton not in PUSH mode is not implemented\n"
<< "Please set <RightClickIsPushButton>true</RightClickIsPushButton>";
}
}
}
//.........这里部分代码省略.........
示例4: QUrl
bool UpdatesInfo::UpdatesInfoData::parsePackageUpdateElement(const QDomElement &updateE)
{
if (updateE.isNull())
return false;
UpdateInfo info;
info.type = PackageUpdate;
QDomNodeList childNodes = updateE.childNodes();
for (int i = 0; i < childNodes.count(); i++) {
QDomNode childNode = childNodes.at(i);
QDomElement childE = childNode.toElement();
if (childE.isNull())
continue;
if (childE.tagName() == QLatin1String("ReleaseNotes")) {
info.data[childE.tagName()] = QUrl(childE.text());
} else if (childE.tagName() == QLatin1String("UpdateFile")) {
UpdateFileInfo ufInfo;
ufInfo.arch = childE.attribute(QLatin1String("Arch"), QLatin1String("i386"));
ufInfo.os = childE.attribute(QLatin1String("OS"));
ufInfo.compressedSize = childE.attribute(QLatin1String("CompressedSize")).toLongLong();
ufInfo.uncompressedSize = childE.attribute(QLatin1String("UncompressedSize")).toLongLong();
ufInfo.sha1sum = QByteArray::fromHex(childE.attribute(QLatin1String("sha1sum")).toAscii());
ufInfo.fileName = childE.text();
info.updateFiles.append(ufInfo);
} else if (childE.tagName() == QLatin1String("Licenses")) {
QHash<QString, QVariant> licenseHash;
const QDomNodeList licenseNodes = childE.childNodes();
for (int i = 0; i < licenseNodes.count(); ++i) {
const QDomNode licenseNode = licenseNodes.at(i);
if (licenseNode.nodeName() == QLatin1String("License")) {
QDomElement element = licenseNode.toElement();
licenseHash.insert(element.attributeNode(QLatin1String("name")).value(),
element.attributeNode(QLatin1String("file")).value());
}
}
if (!licenseHash.isEmpty())
info.data.insert(QLatin1String("Licenses"), licenseHash);
} else if (childE.tagName() == QLatin1String("Version")) {
info.data.insert(QLatin1String("inheritVersionFrom"), childE.attribute(QLatin1String("inheritVersionFrom")));
info.data[childE.tagName()] = childE.text();
} else {
info.data[childE.tagName()] = childE.text();
}
}
if (!info.data.contains(QLatin1String("Name"))) {
setInvalidContentError(tr("PackageUpdate element without Name"));
return false;
}
if (!info.data.contains(QLatin1String("Version"))) {
setInvalidContentError(tr("PackageUpdate element without Version"));
return false;
}
if (!info.data.contains(QLatin1String("ReleaseDate"))) {
setInvalidContentError(tr("PackageUpdate element without ReleaseDate"));
return false;
}
if (info.updateFiles.isEmpty()) {
setInvalidContentError(tr("PackageUpdate element without UpdateFile"));
return false;
}
updateInfoList.append(info);
return true;
}
示例5: getFirstText
/**
* \copydoc MythUIType::ParseElement()
*/
bool MythUIShape::ParseElement(
const QString &filename, QDomElement &element, bool showWarnings)
{
if (element.tagName() == "type")
{
QString type = getFirstText(element);
if (type == "box" || type == "roundbox" || type == "ellipse") // Validate input
m_type = type;
}
else if (element.tagName() == "fill")
{
QString style = element.attribute("style", "solid");
QString color = element.attribute("color", "");
int alpha = element.attribute("alpha", "255").toInt();
if (style == "solid" && !color.isEmpty())
{
m_fillBrush.setStyle(Qt::SolidPattern);
QColor brushColor = QColor(color);
brushColor.setAlpha(alpha);
m_fillBrush.setColor(brushColor);
}
else if (style == "gradient")
{
for (QDomNode child = element.firstChild(); !child.isNull();
child = child.nextSibling())
{
QDomElement childElem = child.toElement();
if (childElem.tagName() == "gradient")
m_fillBrush = parseGradient(childElem);
}
}
else
m_fillBrush.setStyle(Qt::NoBrush);
}
else if (element.tagName() == "line")
{
QString style = element.attribute("style", "solid");
QString color = element.attribute("color", "");
if (style == "solid" && !color.isEmpty())
{
int orig_width = element.attribute("width", "1").toInt();
int width = (orig_width) ? max(NormX(orig_width), 1) : 0;
int alpha = element.attribute("alpha", "255").toInt();
QColor lineColor = QColor(color);
lineColor.setAlpha(alpha);
m_linePen.setColor(lineColor);
m_linePen.setWidth(width);
m_linePen.setStyle(Qt::SolidLine);
}
else
m_linePen.setStyle(Qt::NoPen);
}
else if (element.tagName() == "cornerradius")
{
m_cornerRadius = NormX(getFirstText(element).toInt());
}
else
{
return MythUIType::ParseElement(filename, element, showWarnings);
}
return true;
}
示例6: tr
// Slot called by the menu manager on user action
void UAVSettingsImportExportFactory::importUAVSettings()
{
// ask for file name
QString fileName;
QString filters = tr("UAVObjects XML files (*.uav);; XML files (*.xml)");
fileName = QFileDialog::getOpenFileName(0, tr("Import UAV Settings"), "", filters);
if (fileName.isEmpty()) {
return;
}
// Now open the file
QFile file(fileName);
QDomDocument doc("UAVObjects");
file.open(QFile::ReadOnly|QFile::Text);
if (!doc.setContent(file.readAll())) {
QMessageBox msgBox;
msgBox.setText(tr("File Parsing Failed."));
msgBox.setInformativeText(tr("This file is not a correct XML file"));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
return;
}
file.close();
// find the root of settings subtree
emit importAboutToBegin();
qDebug()<<"Import about to begin";
QDomElement root = doc.documentElement();
if (root.tagName() == "uavobjects") {
root = root.firstChildElement("settings");
}
if (root.isNull() || (root.tagName() != "settings")) {
QMessageBox msgBox;
msgBox.setText(tr("Wrong file contents"));
msgBox.setInformativeText(tr("This file does not contain correct UAVSettings"));
msgBox.setStandardButtons(QMessageBox::Ok);
msgBox.exec();
return;
}
// We are now ok: setup the import summary dialog & update it as we
// go along.
ImportSummaryDialog swui((QWidget*)Core::ICore::instance()->mainWindow());
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
swui.show();
QDomNode node = root.firstChild();
while (!node.isNull()) {
QDomElement e = node.toElement();
if (e.tagName() == "object") {
// - Read each object
QString uavObjectName = e.attribute("name");
uint uavObjectID = e.attribute("id").toUInt(NULL,16);
// Sanity Check:
UAVObject *obj = objManager->getObject(uavObjectName);
UAVDataObject *dobj = dynamic_cast<UAVDataObject*>(obj);
if (obj == NULL) {
// This object is unknown!
qDebug() << "Object unknown:" << uavObjectName << uavObjectID;
swui.addLine(uavObjectName, "Error (Object unknown)", false);
} else if(dobj && !dobj->getIsPresentOnHardware()) {
swui.addLine(uavObjectName, "Error (Object not present on hw)", false);
} else {
// - Update each field
// - Issue and "updated" command
bool error = false;
bool setError = false;
QDomNode field = node.firstChild();
while(!field.isNull()) {
QDomElement f = field.toElement();
if (f.tagName() == "field") {
UAVObjectField *uavfield = obj->getField(f.attribute("name"));
if (uavfield) {
QStringList list = f.attribute("values").split(",");
if (list.length() == 1) {
if (false == uavfield->checkValue(f.attribute("values"))) {
qDebug() << "checkValue returned false on: " << uavObjectName << f.attribute("values");
setError = true;
} else {
uavfield->setValue(f.attribute("values"));
}
} else {
// This is an enum:
int i = 0;
QStringList list = f.attribute("values").split(",");
foreach (QString element, list) {
if (false == uavfield->checkValue(element, i)) {
qDebug() << "checkValue(list) returned false on: " << uavObjectName << list;
setError = true;
} else {
uavfield->setValue(element,i);
}
i++;
}
//.........这里部分代码省略.........
示例7: doc
QMap<QString, QVariant> MainWindow::loadObjectFromTemplateFile(QString filename)
{
QDomDocument doc("New Object");
QFile file(filename);
if (!file.open(QIODevice::ReadOnly))
return QMap<QString, QVariant>();
if (!doc.setContent(&file)) {
file.close();
return QMap<QString, QVariant>();
}
file.close();
QMap<QString, QVariant> newObject;
QString itemName = "null";
QString itemName2 = "null";
QString itemContents = "null";
QString itemTag = "null";
// print out the element names of all elements that are direct children
// of the outermost element.
QDomElement docElem = doc.documentElement();
QDomNode n = docElem.firstChild();
n = n.firstChild();
while(!n.isNull()) {
QDomElement e = n.toElement(); // try to convert the node to an element.
if(!e.isNull()) {
itemName = qPrintable(e.text()); // the node really is an element.
itemTag = qPrintable(e.tagName());
Q_ASSERT_X(itemTag == "key", "MainWindow::loadObjectFromTemplateFile", "Tag should be a key, but isn't!");
n = n.nextSibling();
e = n.toElement();
itemContents = qPrintable(e.text());
itemTag = qPrintable(e.tagName());
if(itemTag != "array")
{
newObject.insert(itemName, itemContents);
}
else
{
QList< QVariant > subList;
QDomNode x = e.firstChild(); // guessing here...
while(!x.isNull())
{
QMap<QString, QVariant> newMap;
QDomNode p = x.firstChild();
while(!p.isNull())
{
QDomElement g = p.toElement(); // try to convert the node to an element.
if(!g.isNull()) {
itemName2 = qPrintable(g.text()); // the node really is an element.
itemTag = qPrintable(g.tagName());
Q_ASSERT_X(itemTag == "key", "MainWindow::loadLevelPlist", "Level object tag should be a key, but isn't!");
p = p.nextSibling();
g = p.toElement();
itemContents = qPrintable(g.text());
itemTag = qPrintable(g.tagName());
newMap.insert(itemName2, itemContents);
p = p.nextSibling();
}
} // while object dict is not done
subList.append(newMap);
x = x.nextSibling();
}
newObject.insert(itemName, subList);
}
n = n.nextSibling();
}
}
return newObject;
}
示例8: loadXML
bool VCSlider::loadXML(const QDomElement* root)
{
bool visible = false;
int x = 0;
int y = 0;
int w = 0;
int h = 0;
SliderMode sliderMode = Playback;
QDomElement tag;
QDomNode node;
QString caption;
QString str;
Q_ASSERT(root != NULL);
if (root->tagName() != KXMLQLCVCSlider)
{
qWarning() << Q_FUNC_INFO << "Slider node not found";
return false;
}
/* Caption */
caption = root->attribute(KXMLQLCVCCaption);
if (root->attribute(KXMLQLCVCSliderInvertedAppearance) == "false")
setInvertedAppearance(false);
else
setInvertedAppearance(true);
/* Children */
node = root->firstChild();
while (node.isNull() == false)
{
tag = node.toElement();
if (tag.tagName() == KXMLQLCWindowState)
{
loadXMLWindowState(&tag, &x, &y, &w, &h, &visible);
setGeometry(x, y, w, h);
}
else if (tag.tagName() == KXMLQLCVCWidgetAppearance)
{
loadXMLAppearance(&tag);
}
else if (tag.tagName() == KXMLQLCVCSliderMode)
{
sliderMode = stringToSliderMode(tag.text());
str = tag.attribute(KXMLQLCVCSliderValueDisplayStyle);
setValueDisplayStyle(stringToValueDisplayStyle(str));
}
else if (tag.tagName() == KXMLQLCVCSliderLevel)
{
loadXMLLevel(&tag);
}
else if (tag.tagName() == KXMLQLCVCWidgetInput)
{
loadXMLInput(&tag);
}
else if (tag.tagName() == KXMLQLCVCSliderPlayback)
{
loadXMLPlayback(&tag);
}
else
{
qWarning() << Q_FUNC_INFO << "Unknown slider tag:" << tag.tagName();
}
node = node.nextSibling();
}
/* Set the mode last, after everything else has been set */
setSliderMode(sliderMode);
setCaption(caption);
return true;
}
示例9: parseReportDetailSection
bool parseReportDetailSection(const QDomElement & elemSource, ORDetailSectionData & sectionTarget)
{
if(elemSource.tagName() != "section")
return FALSE;
bool have_name = FALSE;
bool have_detail = FALSE;
bool have_key = FALSE;
ORSectionData * old_head = 0;
ORSectionData * old_foot = 0;
QDomNodeList section = elemSource.childNodes();
for(int nodeCounter = 0; nodeCounter < section.count(); nodeCounter++)
{
QDomElement elemThis = section.item(nodeCounter).toElement();
if(elemThis.tagName() == "name")
{
sectionTarget.name = elemThis.text();
have_name = TRUE;
}
else if(elemThis.tagName() == "pagebreak")
{
if(elemThis.attribute("when") == "at end")
sectionTarget.pagebreak = ORDetailSectionData::BreakAtEnd;
}
else if(elemThis.tagName() == "grouphead")
{
ORSectionData * sd = new ORSectionData();
if(parseReportSection(elemThis, *sd) == TRUE)
{
old_head = sd;
sectionTarget.trackTotal += sd->trackTotal;
}
else
delete sd;
}
else if(elemThis.tagName() == "groupfoot")
{
ORSectionData * sd = new ORSectionData();
if(parseReportSection(elemThis, *sd) == TRUE)
{
old_foot = sd;
sectionTarget.trackTotal += sd->trackTotal;
}
else
delete sd;
}
else if(elemThis.tagName() == "group")
{
QDomNodeList nl = elemThis.childNodes();
QDomNode node;
ORDetailGroupSectionData * dgsd = new ORDetailGroupSectionData();
for(int i = 0; i < nl.count(); i++)
{
node = nl.item(i);
if(node.nodeName() == "name")
dgsd->name = node.firstChild().nodeValue();
else if(node.nodeName() == "column")
dgsd->column = node.firstChild().nodeValue();
else if(node.nodeName() == "pagebreak")
{
QDomElement elemThis = node.toElement();
QString n = elemThis.attribute("when");
if("after foot" == n)
dgsd->pagebreak = ORDetailGroupSectionData::BreakAfterGroupFoot;
}
else if(node.nodeName() == "head")
{
ORSectionData * sd = new ORSectionData();
if(parseReportSection(node.toElement(), *sd) == TRUE)
{
dgsd->head = sd;
sectionTarget.trackTotal += sd->trackTotal;
for(Q3ValueListIterator<ORDataData> it = sd->trackTotal.begin(); it != sd->trackTotal.end(); ++it)
dgsd->_subtotCheckPoints[*it] = 0.0;
}
else
delete sd;
}
else if(node.nodeName() == "foot")
{
ORSectionData * sd = new ORSectionData();
if(parseReportSection(node.toElement(), *sd) == TRUE)
{
dgsd->foot = sd;
sectionTarget.trackTotal += sd->trackTotal;
for(Q3ValueListIterator<ORDataData> it = sd->trackTotal.begin(); it != sd->trackTotal.end(); ++it)
dgsd->_subtotCheckPoints[*it] = 0.0;
}
else
delete sd;
}
else
qDebug("While parsing group section encountered an unknown element: %s", node.nodeName().latin1());
}
sectionTarget.groupList.append(dgsd);
}
else if(elemThis.tagName() == "detail")
{
//.........这里部分代码省略.........
示例10: STR2ID
/**
* Set the class attributes of this object from
* the passed element node.
*/
void CodeParameter::setAttributesFromNode ( QDomElement & root)
{
// set local attributes, parent object first
QString idStr = root.attribute("parent_id","-1");
Uml::IDType id = STR2ID(idStr);
// always disconnect
m_parentObject->disconnect(this);
// now, what is the new object we want to set?
UMLObject * obj = UMLApp::app()->document()->findObjectById(id);
if(obj)
{
// FIX..one day.
// Ugh. This is UGLY, but we have to do it this way because UMLRoles
// don't go into the document list of UMLobjects, and have the same
// ID as their parent UMLAssociations. So..the drill is then special
// for Associations..in that case we need to find out which role will
// serve as the parameter here. The REAL fix, of course, would be to
// treat UMLRoles on a more even footing, but im not sure how that change
// might ripple throughout the code and cause problems. Thus, since the
// change appears to be needed for only this part, I'll do this crappy
// change instead. -b.t.
UMLAssociation * assoc = dynamic_cast<UMLAssociation*>(obj);
if(assoc) {
// In this case we init with indicated role child obj.
UMLRole * role = 0;
int role_id = root.attribute("role_id","-1").toInt();
if(role_id == 1)
role = assoc->getUMLRole(Uml::A);
else if(role_id == 0)
role = assoc->getUMLRole(Uml::B);
else
uError() << "corrupt save file? "
<< "cant get proper UMLRole for codeparameter uml id:"
<< ID2STR(id) << " w/role_id:" << role_id;
// init using UMLRole obj
initFields ( m_parentDocument, role);
} else
initFields ( m_parentDocument, obj); // just the regular approach
} else
uError() << "Cant load CodeParam: parentUMLObject w/id:"
<< ID2STR(id) << " not found, corrupt save file?";
// other attribs now
setInitialValue(root.attribute("initialValue",""));
// load comment now
// by looking for our particular child element
QDomNode node = root.firstChild();
QDomElement element = node.toElement();
bool gotComment = false;
while( !element.isNull() ) {
QString tag = element.tagName();
if( tag == "header" ) {
QDomNode cnode = element.firstChild();
QDomElement celem = cnode.toElement();
getComment()->loadFromXMI(celem);
gotComment = true;
break;
}
node = element.nextSibling();
element = node.toElement();
}
if(!gotComment)
uWarning()<<" loadFromXMI : Warning: unable to initialize CodeComment in codeparam:"<<this;
}
示例11: qWarning
bool EFX::loadXML(const QDomElement& root)
{
if (root.tagName() != KXMLQLCFunction)
{
qWarning() << "Function node not found!";
return false;
}
if (root.attribute(KXMLQLCFunctionType) != typeToString(Function::EFX))
{
qWarning("Function is not an EFX!");
return false;
}
/* Load EFX contents */
QDomNode node = root.firstChild();
while (node.isNull() == false)
{
QDomElement tag = node.toElement();
if (tag.tagName() == KXMLQLCBus)
{
/* Bus */
QString str = tag.attribute(KXMLQLCBusRole);
if (str == KXMLQLCBusFade)
m_legacyFadeBus = tag.text().toUInt();
else if (str == KXMLQLCBusHold)
m_legacyHoldBus = tag.text().toUInt();
}
else if (tag.tagName() == KXMLQLCFunctionSpeed)
{
loadXMLSpeed(tag);
}
else if (tag.tagName() == KXMLQLCEFXFixture)
{
EFXFixture* ef = new EFXFixture(this);
ef->loadXML(tag);
if (ef->head().isValid())
{
if (addFixture(ef) == false)
delete ef;
}
}
else if (tag.tagName() == KXMLQLCEFXPropagationMode)
{
/* Propagation mode */
setPropagationMode(stringToPropagationMode(tag.text()));
}
else if (tag.tagName() == KXMLQLCEFXAlgorithm)
{
/* Algorithm */
setAlgorithm(stringToAlgorithm(tag.text()));
}
else if (tag.tagName() == KXMLQLCFunctionDirection)
{
loadXMLDirection(tag);
}
else if (tag.tagName() == KXMLQLCFunctionRunOrder)
{
loadXMLRunOrder(tag);
}
else if (tag.tagName() == KXMLQLCEFXWidth)
{
/* Width */
setWidth(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXHeight)
{
/* Height */
setHeight(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXRotation)
{
/* Rotation */
setRotation(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXStartOffset)
{
/* StartOffset */
setStartOffset(tag.text().toInt());
}
else if (tag.tagName() == KXMLQLCEFXIsRelative)
{
/* IsRelative */
setIsRelative(tag.text().toInt() != 0);
}
else if (tag.tagName() == KXMLQLCEFXAxis)
{
/* Axes */
loadXMLAxis(tag);
}
else
{
qWarning() << "Unknown EFX tag:" << tag.tagName();
}
node = node.nextSibling();
}
return true;
//.........这里部分代码省略.........
示例12: appendGroup
bool KigPlugin::readInfo( KFileMetaInfo& metainfo, uint /*what*/ )
{
KFileMetaInfoGroup metagroup = appendGroup( metainfo, "KigInfo");
QString sfile = metainfo.path();
bool iscompressed = false;
QFile f( sfile );
if ( !sfile.endsWith( ".kig", false ) )
{
iscompressed = true;
QString tempdir = KGlobal::dirs()->saveLocation( "tmp" );
if ( tempdir.isEmpty() )
return false;
QString tempname = sfile.section( '/', -1 );
if ( sfile.endsWith( ".kigz", false ) )
{
tempname.remove( QRegExp( "\\.[Kk][Ii][Gg][Zz]$" ) );
}
else
return false;
// reading compressed file
KTar* ark = new KTar( sfile, "application/x-gzip" );
ark->open( IO_ReadOnly );
const KArchiveDirectory* dir = ark->directory();
QStringList entries = dir->entries();
QStringList kigfiles = entries.grep( QRegExp( "\\.kig$" ) );
if ( kigfiles.count() != 1 )
return false;
const KArchiveEntry* kigz = dir->entry( kigfiles[0] );
if ( !kigz->isFile() )
return false;
dynamic_cast<const KArchiveFile*>( kigz )->copyTo( tempdir );
f.setName( tempdir + kigz->name() );
}
if ( !f.open( IO_ReadOnly ) )
return false;
QDomDocument doc( "KigDocument" );
if ( !doc.setContent( &f ) )
return false;
f.close();
// removing temp file
if ( iscompressed )
f.remove();
QDomElement main = doc.documentElement();
// reading the version...
QString version = main.attribute( "Version" );
if ( version.isEmpty() ) version = main.attribute( "version" );
if ( version.isEmpty() ) version = i18n( "Translators: Not Available", "n/a" );
appendItem( metagroup, "Version", version );
// reading the compatibility version...
QString compatversion = main.attribute( "CompatibilityVersion" );
if ( compatversion.isEmpty() )
compatversion = i18n( "%1 represents Kig version",
"%1 (as the version)" ).arg( version );
appendItem( metagroup, "CompatVersion", compatversion );
// reading the Coordinate System...
QCString coordsystem;
for ( QDomNode n = main.firstChild(); ! n.isNull(); n = n.nextSibling() )
{
QDomElement e = n.toElement();
if ( e.isNull() ) continue;
if ( e.tagName() == "CoordinateSystem" )
coordsystem = e.text().latin1();
}
appendItem( metagroup, "CoordSystem", coordsystem );
// has Kig document the grid?
bool btmp = true;
QString stmp = main.attribute( "grid" );
if ( !( stmp.isEmpty() || ( stmp != "0" ) ) )
btmp = ( stmp != "0" );
QString stmp2 = btmp ? i18n( "Yes" ) : i18n( "No" );
appendItem( metagroup, "Grid", stmp2 );
// has Kig document the axes?
btmp = true;
stmp = main.attribute( "axes" );
if ( !( stmp.isEmpty() || ( stmp != "0" ) ) )
btmp = ( stmp != "0" );
stmp2 = btmp ? i18n( "Yes" ) : i18n( "No" );
appendItem( metagroup, "Axes", stmp2 );
stmp2 = iscompressed ? i18n( "Yes" ) : i18n( "No" );
appendItem( metagroup, "Compressed", stmp2 );
return true;
}
示例13: setValue
void AutomatableModel::loadSettings( const QDomElement& element, const QString& name )
{
// compat code
QDomNode node = element.namedItem( AutomationPattern::classNodeName() );
if( node.isElement() )
{
node = node.namedItem( name );
if( node.isElement() )
{
AutomationPattern * p = AutomationPattern::globalAutomationPattern( this );
p->loadSettings( node.toElement() );
setValue( p->valueAt( 0 ) );
// in older projects we sometimes have odd automations
// with just one value in - eliminate if necessary
if( !p->hasAutomation() )
{
delete p;
}
return;
}
// logscales were not existing at this point of time
// so they can be ignored
}
QDomNode connectionNode = element.namedItem( "connection" );
// reads controller connection
if( connectionNode.isElement() )
{
QDomNode thisConnection = connectionNode.toElement().namedItem( name );
if( thisConnection.isElement() )
{
setControllerConnection( new ControllerConnection( (Controller*)NULL ) );
m_controllerConnection->loadSettings( thisConnection.toElement() );
//m_controllerConnection->setTargetName( displayName() );
}
}
// models can be stored as elements (port00) or attributes (port10):
// <ladspacontrols port10="4.41">
// <port00 value="4.41" id="4249278"/>
// </ladspacontrols>
// element => there is automation data, or scaletype information
node = element.namedItem( name );
if( node.isElement() )
{
changeID( node.toElement().attribute( "id" ).toInt() );
setValue( node.toElement().attribute( "value" ).toFloat() );
if( node.toElement().hasAttribute( "scale_type" ) )
{
if( node.toElement().attribute( "scale_type" ) == "linear" )
{
setScaleType( Linear );
}
else if( node.toElement().attribute( "scale_type" ) == "log" )
{
setScaleType( Logarithmic );
}
}
}
else
{
setScaleType( Linear );
if( element.hasAttribute( name ) )
// attribute => read the element's value from the attribute list
{
setInitValue( element.attribute( name ).toFloat() );
}
else
{
reset();
}
}
}
示例14: kDebug
QList< Choqok::Post* > TwitterSearch::parseAtom(const QByteArray& buffer)
{
kDebug();
QDomDocument document;
QList<Choqok::Post*> statusList;
document.setContent( buffer );
QDomElement root = document.documentElement();
if ( root.tagName() != "feed" ) {
kDebug() << "There is no feed element in Atom feed " << buffer.data();
return statusList;
}
QDomNode node = root.firstChild();
QString timeStr;
while ( !node.isNull() ) {
if ( node.toElement().tagName() != "entry" ) {
node = node.nextSibling();
continue;
}
QDomNode entryNode = node.firstChild();
Choqok::Post *status = new Choqok::Post;
status->isPrivate = false;
while ( !entryNode.isNull() ) {
QDomElement elm = entryNode.toElement();
if ( elm.tagName() == "id" ) {
// Fomatting example: "tag:search.twitter.com,2005:1235016836"
ChoqokId id;
if(m_rId.exactMatch(elm.text())) {
id = m_rId.cap(1);
}
/* sscanf( qPrintable( elm.text() ),
"tag:search.twitter.com,%*d:%d", &id);*/
status->postId = id;
} else if ( elm.tagName() == "published" ) {
// Formatting example: "2009-02-21T19:42:39Z"
// Need to extract date in similar fashion to dateFromString
int year, month, day, hour, minute, second;
sscanf( qPrintable( elm.text() ),
"%d-%d-%dT%d:%d:%d%*s", &year, &month, &day, &hour, &minute, &second);
QDateTime recognized( QDate( year, month, day), QTime( hour, minute, second ) );
recognized.setTimeSpec( Qt::UTC );
status->creationDateTime = recognized;
} else if ( elm.tagName() == "title" ) {
status->content = elm.text();
} else if ( elm.tagName() == "twitter:source" ) {
status->source = elm.text();
} else if ( elm.tagName() == "link") {
if(elm.attributeNode( "rel" ).value() == "image") {
status->author.profileImageUrl = elm.attribute( "href" );
} else if(elm.attributeNode( "rel" ).value() == "alternate") {
status->link = elm.attribute( "href" );
}
} else if ( elm.tagName() == "author") {
QDomNode userNode = entryNode.firstChild();
while ( !userNode.isNull() )
{
if ( userNode.toElement().tagName() == "name" )
{
QString fullName = userNode.toElement().text();
int bracketPos = fullName.indexOf( " ", 0 );
QString screenName = fullName.left( bracketPos );
QString name = fullName.right ( fullName.size() - bracketPos - 2 );
name.chop( 1 );
status->author.realName = name;
status->author.userName = screenName;
}
userNode = userNode.nextSibling();
}
}
entryNode = entryNode.nextSibling();
}
status->isFavorited = false;
statusList.insert( 0, status );
node = node.nextSibling();
}
return statusList;
}
示例15: loadXMLAxis
bool EFX::loadXMLAxis(const QDomElement* root)
{
int frequency = 0;
int offset = 0;
int phase = 0;
QString axis;
QDomNode node;
QDomElement tag;
Q_ASSERT(root != NULL);
if (root->tagName() != KXMLQLCEFXAxis)
{
qWarning() << "EFX axis node not found!";
return false;
}
/* Get the axis name */
axis = root->attribute(KXMLQLCFunctionName);
/* Load axis contents */
node = root->firstChild();
while (node.isNull() == false)
{
tag = node.toElement();
if (tag.tagName() == KXMLQLCEFXOffset)
{
offset = tag.text().toInt();
}
else if (tag.tagName() == KXMLQLCEFXFrequency)
{
frequency = tag.text().toInt();
}
else if (tag.tagName() == KXMLQLCEFXPhase)
{
phase = tag.text().toInt();
}
else
{
qWarning() << "Unknown EFX axis tag: "
<< tag.tagName();
}
node = node.nextSibling();
}
if (axis == KXMLQLCEFXY)
{
setYOffset(offset);
setYFrequency(frequency);
setYPhase(phase);
return true;
}
else if (axis == KXMLQLCEFXX)
{
setXOffset(offset);
setXFrequency(frequency);
setXPhase(phase);
return true;
}
else
{
qWarning() << "Unknown EFX axis:" << axis;
return false;
}
}