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" ); QDomText styleTitleText = doc.createTextNode( titleList.item( 0 ).toElement().text() ); styleTitleElement.appendChild( styleTitleText ); styleElement.appendChild( styleTitleElement ); } //Abstract QDomNodeList abstractList = userStyleList.item( j ).toElement().elementsByTagName( "Abstract" ); if ( !abstractList.isEmpty() ) { QDomElement styleAbstractElement = doc.createElement( "Abstract" ); QDomText styleAbstractText = doc.createTextNode( abstractList.item( 0 ).toElement().text() ); styleAbstractElement.appendChild( styleAbstractText ); styleElement.appendChild( styleAbstractElement ); } } } } } }
// 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) ; }
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>"; } } } if (rightConnection->getEmitOption() & ControlParameterWidgetConnection::EMIT_DEFAULT) { switch (m_rightButtonMode) { 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 (rightConnection->getDirectionOption() & ControlParameterWidgetConnection::DIR_DEFAULT) { rightConnection->setDirectionOption(ControlParameterWidgetConnection::DIR_FROM_WIDGET); } } }
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; }
/** * \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; }
// 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++; } } } else { error = true; } } field = field.nextSibling(); } obj->updated(); if (error) { swui.addLine(uavObjectName, "Warning (Object field unknown)", true); } else if (uavObjectID != obj->getObjID()) { qDebug() << "Mismatch for Object " << uavObjectName << uavObjectID << " - " << obj->getObjID(); swui.addLine(uavObjectName, "Warning (ObjectID mismatch)", true); } else if (setError) { swui.addLine(uavObjectName, "Warning (Objects field value(s) invalid)", false); } else { swui.addLine(uavObjectName, "OK", true); } }
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; }
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; }
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") { // find and read in the key data of this element have_key = parseReportKey(elemThis.namedItem("key").toElement(), sectionTarget.key); ORSectionData * sd = new ORSectionData(); if(parseReportSection(elemThis, *sd) == TRUE) { sectionTarget.detail = sd; sectionTarget.trackTotal += sd->trackTotal; have_detail = TRUE; } else delete sd; } else qDebug("While parsing detail section encountered an unknown element: %s",(const char*)elemThis.tagName()); } if(old_head || old_foot) { ORDetailGroupSectionData * gsec = new ORDetailGroupSectionData(); gsec->name = sectionTarget.name; gsec->column = sectionTarget.key.column; gsec->head = old_head; gsec->foot = old_foot; sectionTarget.groupList.append(gsec); } return (have_name && have_detail && have_key); }
/** * 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; }
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; }
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; }
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(); } } }
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; }
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; } }
bool QgsComposerLegend::readXml( const QDomElement &itemElem, const QDomDocument &doc ) { if ( itemElem.isNull() ) { return false; } //read general properties mTitle = itemElem.attribute( QStringLiteral( "title" ) ); mSettings.setTitle( mTitle ); if ( !itemElem.attribute( QStringLiteral( "titleAlignment" ) ).isEmpty() ) { mSettings.setTitleAlignment( static_cast< Qt::AlignmentFlag >( itemElem.attribute( QStringLiteral( "titleAlignment" ) ).toInt() ) ); } int colCount = itemElem.attribute( QStringLiteral( "columnCount" ), QStringLiteral( "1" ) ).toInt(); if ( colCount < 1 ) colCount = 1; mColumnCount = colCount; mSettings.setColumnCount( mColumnCount ); mSettings.setSplitLayer( itemElem.attribute( QStringLiteral( "splitLayer" ), QStringLiteral( "0" ) ).toInt() == 1 ); mSettings.setEqualColumnWidth( itemElem.attribute( QStringLiteral( "equalColumnWidth" ), QStringLiteral( "0" ) ).toInt() == 1 ); QDomNodeList stylesNodeList = itemElem.elementsByTagName( QStringLiteral( "styles" ) ); if ( !stylesNodeList.isEmpty() ) { QDomNode stylesNode = stylesNodeList.at( 0 ); for ( int i = 0; i < stylesNode.childNodes().size(); i++ ) { QDomElement styleElem = stylesNode.childNodes().at( i ).toElement(); QgsLegendStyle style; style.readXml( styleElem, doc ); QString name = styleElem.attribute( QStringLiteral( "name" ) ); QgsLegendStyle::Style s; if ( name == QLatin1String( "title" ) ) s = QgsLegendStyle::Title; else if ( name == QLatin1String( "group" ) ) s = QgsLegendStyle::Group; else if ( name == QLatin1String( "subgroup" ) ) s = QgsLegendStyle::Subgroup; else if ( name == QLatin1String( "symbol" ) ) s = QgsLegendStyle::Symbol; else if ( name == QLatin1String( "symbolLabel" ) ) s = QgsLegendStyle::SymbolLabel; else continue; setStyle( s, style ); } } //font color QColor fontClr; fontClr.setNamedColor( itemElem.attribute( QStringLiteral( "fontColor" ), QStringLiteral( "#000000" ) ) ); mSettings.setFontColor( fontClr ); //spaces mSettings.setBoxSpace( itemElem.attribute( QStringLiteral( "boxSpace" ), QStringLiteral( "2.0" ) ).toDouble() ); mSettings.setColumnSpace( itemElem.attribute( QStringLiteral( "columnSpace" ), QStringLiteral( "2.0" ) ).toDouble() ); mSettings.setSymbolSize( QSizeF( itemElem.attribute( QStringLiteral( "symbolWidth" ), QStringLiteral( "7.0" ) ).toDouble(), itemElem.attribute( QStringLiteral( "symbolHeight" ), QStringLiteral( "14.0" ) ).toDouble() ) ); mSettings.setWmsLegendSize( QSizeF( itemElem.attribute( QStringLiteral( "wmsLegendWidth" ), QStringLiteral( "50" ) ).toDouble(), itemElem.attribute( QStringLiteral( "wmsLegendHeight" ), QStringLiteral( "25" ) ).toDouble() ) ); mSettings.setLineSpacing( itemElem.attribute( QStringLiteral( "lineSpacing" ), "1.0" ).toDouble() ); mSettings.setDrawRasterStroke( itemElem.attribute( QStringLiteral( "rasterBorder" ), QStringLiteral( "1" ) ) != QLatin1String( "0" ) ); mSettings.setRasterStrokeColor( QgsSymbolLayerUtils::decodeColor( itemElem.attribute( QStringLiteral( "rasterBorderColor" ), QStringLiteral( "0,0,0" ) ) ) ); mSettings.setRasterStrokeWidth( itemElem.attribute( QStringLiteral( "rasterBorderWidth" ), QStringLiteral( "0" ) ).toDouble() ); mSettings.setWrapChar( itemElem.attribute( QStringLiteral( "wrapChar" ) ) ); mSizeToContents = itemElem.attribute( QStringLiteral( "resizeToContents" ), QStringLiteral( "1" ) ) != QLatin1String( "0" ); //composer map mLegendFilterByMap = itemElem.attribute( QStringLiteral( "legendFilterByMap" ), QStringLiteral( "0" ) ).toInt(); if ( !itemElem.attribute( QStringLiteral( "map" ) ).isEmpty() ) { setComposerMap( mComposition->getComposerMapById( itemElem.attribute( QStringLiteral( "map" ) ).toInt() ) ); } // QGIS >= 2.6 QDomElement layerTreeElem = itemElem.firstChildElement( QStringLiteral( "layer-tree" ) ); if ( layerTreeElem.isNull() ) layerTreeElem = itemElem.firstChildElement( QStringLiteral( "layer-tree-group" ) ); setCustomLayerTree( QgsLayerTree::readXml( layerTreeElem ) ); //restore general composer item properties QDomNodeList composerItemList = itemElem.elementsByTagName( QStringLiteral( "ComposerItem" ) ); if ( !composerItemList.isEmpty() ) { QDomElement composerItemElem = composerItemList.at( 0 ).toElement(); _readXml( composerItemElem, doc ); } // < 2.0 projects backward compatibility >>>>> //title font QString titleFontString = itemElem.attribute( QStringLiteral( "titleFont" ) ); if ( !titleFontString.isEmpty() ) { rstyle( QgsLegendStyle::Title ).rfont().fromString( titleFontString ); } //group font QString groupFontString = itemElem.attribute( QStringLiteral( "groupFont" ) ); if ( !groupFontString.isEmpty() ) { rstyle( QgsLegendStyle::Group ).rfont().fromString( groupFontString ); } //layer font QString layerFontString = itemElem.attribute( QStringLiteral( "layerFont" ) ); if ( !layerFontString.isEmpty() ) { rstyle( QgsLegendStyle::Subgroup ).rfont().fromString( layerFontString ); } //item font QString itemFontString = itemElem.attribute( QStringLiteral( "itemFont" ) ); if ( !itemFontString.isEmpty() ) { rstyle( QgsLegendStyle::SymbolLabel ).rfont().fromString( itemFontString ); } if ( !itemElem.attribute( QStringLiteral( "groupSpace" ) ).isEmpty() ) { rstyle( QgsLegendStyle::Group ).setMargin( QgsLegendStyle::Top, itemElem.attribute( QStringLiteral( "groupSpace" ), QStringLiteral( "3.0" ) ).toDouble() ); } if ( !itemElem.attribute( QStringLiteral( "layerSpace" ) ).isEmpty() ) { rstyle( QgsLegendStyle::Subgroup ).setMargin( QgsLegendStyle::Top, itemElem.attribute( QStringLiteral( "layerSpace" ), QStringLiteral( "3.0" ) ).toDouble() ); } if ( !itemElem.attribute( QStringLiteral( "symbolSpace" ) ).isEmpty() ) { rstyle( QgsLegendStyle::Symbol ).setMargin( QgsLegendStyle::Top, itemElem.attribute( QStringLiteral( "symbolSpace" ), QStringLiteral( "2.0" ) ).toDouble() ); rstyle( QgsLegendStyle::SymbolLabel ).setMargin( QgsLegendStyle::Top, itemElem.attribute( QStringLiteral( "symbolSpace" ), QStringLiteral( "2.0" ) ).toDouble() ); } // <<<<<<< < 2.0 projects backward compatibility emit itemChanged(); return true; }
bool MyMoneyStatement::read(const QDomElement& _e) { bool result = false; if (_e.tagName() == "STATEMENT") { result = true; m_strAccountName = _e.attribute("accountname"); m_strAccountNumber = _e.attribute("accountnumber"); m_strRoutingNumber = _e.attribute("routingnumber"); m_strCurrency = _e.attribute("currency"); m_dateBegin = QDate::fromString(_e.attribute("begindate"), Qt::ISODate); m_dateEnd = QDate::fromString(_e.attribute("enddate"), Qt::ISODate); m_closingBalance = MyMoneyMoney(_e.attribute("closingbalance")); m_accountId = _e.attribute("accountid"); m_skipCategoryMatching = _e.attribute("skipCategoryMatching").isEmpty(); int i = kAccountTypeTxt.indexOf(_e.attribute("type", kAccountTypeTxt[1])); if (i != -1) m_eType = static_cast<EType>(i); QDomNode child = _e.firstChild(); while (!child.isNull() && child.isElement()) { QDomElement c = child.toElement(); if (c.tagName() == "TRANSACTION") { MyMoneyStatement::Transaction t; t.m_datePosted = QDate::fromString(c.attribute("dateposted"), Qt::ISODate); t.m_amount = MyMoneyMoney(c.attribute("amount")); t.m_strMemo = c.attribute("memo"); t.m_strNumber = c.attribute("number"); t.m_strPayee = c.attribute("payee"); t.m_strBankID = c.attribute("bankid"); t.m_reconcile = static_cast<MyMoneySplit::reconcileFlagE>(c.attribute("reconcile").toInt()); int i = kActionText.indexOf(c.attribute("action", kActionText[1])); if (i != -1) t.m_eAction = static_cast<Transaction::EAction>(i); if (m_eType == etInvestment) { t.m_shares = MyMoneyMoney(c.attribute("shares")); t.m_strSecurity = c.attribute("security"); t.m_strBrokerageAccount = c.attribute("brokerageaccount"); } // process splits (if any) QDomNode child = c.firstChild(); while (!child.isNull() && child.isElement()) { QDomElement c = child.toElement(); if (c.tagName() == "SPLIT") { MyMoneyStatement::Split s; s.m_accountId = c.attribute("accountid"); s.m_amount = MyMoneyMoney(c.attribute("amount")); s.m_reconcile = static_cast<MyMoneySplit::reconcileFlagE>(c.attribute("reconcile").toInt()); s.m_strCategoryName = c.attribute("category"); s.m_strMemo = c.attribute("memo"); t.m_listSplits += s; } child = child.nextSibling(); } m_listTransactions += t; } else if (c.tagName() == "PRICE") { MyMoneyStatement::Price p; p.m_date = QDate::fromString(c.attribute("dateposted"), Qt::ISODate); p.m_strSecurity = c.attribute("security"); p.m_amount = MyMoneyMoney(c.attribute("amount")); m_listPrices += p; } else if (c.tagName() == "SECURITY") { MyMoneyStatement::Security s; s.m_strName = c.attribute("name"); s.m_strSymbol = c.attribute("symbol"); s.m_strId = c.attribute("id"); m_listSecurities += s; } child = child.nextSibling(); } } return result; }
/** * \fn UPNPScanner::ParseDescription(const QUrl&, QNetworkReply*) * Parse the device description XML return my a media server. */ bool UPNPScanner::ParseDescription(const QUrl &url, QNetworkReply *reply) { if (url.isEmpty() || !reply) return false; QByteArray data = reply->readAll(); if (data.isEmpty()) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("%1 returned an empty device description.") .arg(url.toString())); return false; } // parse the device description QString controlURL = QString(); QString eventURL = QString(); QString friendlyName = QString("Unknown"); QString URLBase = QString(); QDomDocument doc; QString errorMessage; int errorLine = 0; int errorColumn = 0; if (!doc.setContent(data, false, &errorMessage, &errorLine, &errorColumn)) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("Failed to parse device description from %1") .arg(url.toString())); LOG(VB_GENERAL, LOG_ERR, LOC + QString("Line: %1 Col: %2 Error: '%3'") .arg(errorLine).arg(errorColumn).arg(errorMessage)); return false; } QDomElement docElem = doc.documentElement(); QDomNode n = docElem.firstChild(); while (!n.isNull()) { QDomElement e1 = n.toElement(); if (!e1.isNull()) { if(e1.tagName() == "device") ParseDevice(e1, controlURL, eventURL, friendlyName); if (e1.tagName() == "URLBase") URLBase = e1.text(); } n = n.nextSibling(); } if (controlURL.isEmpty()) { LOG(VB_UPNP, LOG_ERR, LOC + QString("Failed to parse device description for %1") .arg(url.toString())); return false; } // if no URLBase was provided, use the known url if (URLBase.isEmpty()) URLBase = url.toString(QUrl::RemovePath | QUrl::RemoveFragment | QUrl::RemoveQuery); // strip leading slashes off the controlURL while (!controlURL.isEmpty() && controlURL.left(1) == "/") controlURL = controlURL.mid(1); // strip leading slashes off the eventURL //while (!eventURL.isEmpty() && eventURL.left(1) == "/") // eventURL = eventURL.mid(1); // strip trailing slashes off URLBase while (!URLBase.isEmpty() && URLBase.right(1) == "/") URLBase = URLBase.mid(0, URLBase.size() - 1); controlURL = URLBase + "/" + controlURL; QString fulleventURL = URLBase + "/" + eventURL; LOG(VB_UPNP, LOG_INFO, LOC + QString("Control URL for %1 at %2") .arg(friendlyName).arg(controlURL)); LOG(VB_UPNP, LOG_INFO, LOC + QString("Event URL for %1 at %2") .arg(friendlyName).arg(fulleventURL)); // update the server details. If the server has gone away since the request // was posted, this will silently fail and we won't try again QString usn; QUrl qeventurl = QUrl(fulleventURL); int timeout = 0; m_lock.lock(); QHashIterator<QString,MediaServer*> it(m_servers); while (it.hasNext()) { it.next(); if (it.value()->m_URL == url) { usn = it.key(); QUrl qcontrolurl(controlURL); it.value()->m_controlURL = qcontrolurl; it.value()->m_eventSubURL = qeventurl; it.value()->m_eventSubPath = eventURL; it.value()->m_friendlyName = friendlyName; it.value()->m_name = friendlyName; break; } } if (m_subscription && !usn.isEmpty()) { timeout = m_subscription->Subscribe(usn, qeventurl, eventURL); m_servers[usn]->m_subscribed = (timeout > 0); } m_lock.unlock(); if (timeout > 0) { LOG(VB_GENERAL, LOG_INFO, LOC + QString("Subscribed for %1 seconds to %2") .arg(timeout).arg(usn)); ScheduleRenewal(usn, timeout); // we only scan servers we are subscribed to - and the scan is now // incomplete m_scanComplete = false; } Debug(); return true; }
int YourPayProcessor::handleResponse(const QString &presponse, const int pccardid, const QString &ptype, const double pamount, const int pcurrid, QString &pneworder, QString &preforder, int &pccpayid, ParameterList &pparams) { if (DEBUG) qDebug("YP::handleResponse(%s, %d, %s, %f, %d, %s, %d, pparams)", presponse.toAscii().data(), pccardid, ptype.toAscii().data(), pamount, pcurrid, preforder.toAscii().data(), pccpayid); QDomDocument response; // YP doesn't even send back a valid XML doc! response.setContent("<yp_wrapper>" + presponse + "</yp_wrapper>"); QDomNode node; QDomElement root = response.documentElement(); QString r_approved; QString r_avs; QString r_code; QString r_error; QString r_message; QString r_ordernum; QString r_ref; QString r_score; QString r_shipping; QString r_tax; QString r_tdate; QString r_time; QString status; node = root.firstChild(); while ( !node.isNull() ) { if (node.isElement()) { if (node.nodeName() == "r_approved" ) r_approved = node.toElement().text(); else if (node.nodeName() == "r_avs" ) r_avs = node.toElement().text(); else if (node.nodeName() == "r_code" ) r_code = node.toElement().text(); else if (node.nodeName() == "r_error" ) r_error = node.toElement().text(); else if (node.nodeName() == "r_message" ) r_message = node.toElement().text(); else if (node.nodeName() == "r_ordernum" ) r_ordernum = node.toElement().text(); else if (node.nodeName() == "r_ref" ) r_ref = node.toElement().text(); else if (node.nodeName() == "r_score" ) r_score = node.toElement().text(); else if (node.nodeName() == "r_shipping" ) r_shipping = node.toElement().text(); else if (node.nodeName() == "r_tax" ) r_tax = node.toElement().text(); else if (node.nodeName() == "r_tdate" ) r_tdate = node.toElement().text(); else if (node.nodeName() == "r_time" ) r_time = node.toElement().text(); } node = node.nextSibling(); } if (isTest()) { // in test mode YP doesn't send an approval code if (r_approved == "APPROVED" && r_code.isEmpty()) r_code = "12345"; // inject failures to test AVS and CVV checking but ONLY IN TEST MODE if (r_avs.isEmpty() && _metrics->value("CCTestResult") == "S") { switch (qrand() % 50) { case 0: r_avs = "NN"; break; case 1: r_avs = "XN"; break; case 2: r_avs = "YN"; break; case 3: r_avs = "NX"; break; case 4: r_avs = "XX"; break; case 5: r_avs = "YX"; break; default: r_avs = "YY"; break; } switch (qrand() % 50) { case 0: r_avs += "N"; break; case 1: r_avs += "P"; break; case 2: r_avs += "S"; break; case 3: r_avs += "U"; break; default: r_avs += "M"; break; } } } int returnValue = 0; if (r_approved == "APPROVED") { _errorMsg = errorMsg(0).arg(r_ref); if (ptype == "A") status = "A"; // Authorized else if (ptype == "V") status = "V"; // Voided else status = "C"; // Completed/Charged } else if (r_approved == "DENIED") { _errorMsg = errorMsg(-90).arg(r_message); returnValue = -90; status = "D"; } else if (r_approved == "DUPLICATE") { _errorMsg = errorMsg(-91).arg(r_message); returnValue = -91; status = "D"; } else if (r_approved == "DECLINED") { _errorMsg = errorMsg(-92).arg(r_error); returnValue = -92; status = "D"; } else if (r_approved == "FRAUD") { _errorMsg = errorMsg(-93).arg(r_error); returnValue = -93; status = "D"; } else if (r_approved.isEmpty()) { _errorMsg = errorMsg(-100) .arg(r_error).arg(r_message).arg(presponse); returnValue = -100; status = "X"; } // YP encodes AVS and CVV checking in the r_avs response field QRegExp avsRegExp("^[" + _metrics->value("CCAvsAddr") + "][" + _metrics->value("CCAvsZIP") + "]"); _passedAvs = _metrics->value("CCAvsCheck") == "X" || ! r_avs.contains(avsRegExp); // avsregexp matches failures _passedCvv = _metrics->value("CCCVVCheck") == "X" || ! r_avs.contains(QRegExp("[" + _metrics->value("CCCVVErrors") + "]$")); _passedLinkShield = (! _metrics->boolean("CCYPLinkShield")) || (! r_score.isEmpty() && r_score.toInt() <= _metrics->value("CCYPLinkShieldMax").toInt()); if (DEBUG) qDebug("YP:%s\t_passedAvs %d\t_passedCvv %d\t_passedLinkShield %d", r_avs.toAscii().data(), _passedAvs, _passedCvv, _passedLinkShield); pparams.append("ccard_id", pccardid); pparams.append("auth_charge", ptype); pparams.append("type", ptype); pparams.append("reforder", preforder.isEmpty() ? pneworder : preforder); pparams.append("status", status); pparams.append("avs", r_avs); pparams.append("ordernum", pneworder); pparams.append("xactionid", r_ordernum.isEmpty() ? pneworder : r_ordernum); pparams.append("error", r_error); pparams.append("approved", r_approved); pparams.append("code", r_code); pparams.append("score", r_score.toInt()); pparams.append("shipping", r_shipping); pparams.append("tax", r_tax); pparams.append("tdate", r_tdate); pparams.append("ref", r_ref); pparams.append("message", r_message); if (pcurrid != _ypcurrid) { pparams.append("fromcurr", pcurrid); pparams.append("tocurr", _ypcurrid); } else pparams.append("currid", pcurrid); if (ptype == "A") pparams.append("auth", QVariant(true, 0)); else pparams.append("auth", QVariant(false, 1)); if (! r_time.isEmpty()) pparams.append("time", r_time); if (DEBUG) qDebug("YP:r_error.isEmpty() = %d", r_error.isEmpty()); if (! r_error.isEmpty()) { _errorMsg = errorMsg(-12).arg(r_error); returnValue = -12; } if (returnValue == 0) pparams.append("amount", pamount); else pparams.append("amount", 0); // no money changed hands this attempt return returnValue; }
/** * \fn UPNPScanner::ParseBrowse(const QUrl&, QNetworkReply*) * Parse the XML returned from Content Directory Service browse request. */ void UPNPScanner::ParseBrowse(const QUrl &url, QNetworkReply *reply) { QByteArray data = reply->readAll(); if (data.isEmpty()) return; // Open the response for parsing QDomDocument *parent = new QDomDocument(); QString errorMessage; int errorLine = 0; int errorColumn = 0; if (!parent->setContent(data, false, &errorMessage, &errorLine, &errorColumn)) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("DIDL Parse error, Line: %1 Col: %2 Error: '%3'") .arg(errorLine).arg(errorColumn).arg(errorMessage)); delete parent; return; } LOG(VB_UPNP, LOG_INFO, "\n\n" + parent->toString(4) + "\n\n"); // pull out the actual result QDomDocument *result = NULL; uint num = 0; uint total = 0; uint updateid = 0; QDomElement docElem = parent->documentElement(); QDomNode n = docElem.firstChild(); if (!n.isNull()) result = FindResult(n, num, total, updateid); delete parent; if (!result || num < 1 || total < 1) { LOG(VB_GENERAL, LOG_ERR, LOC + QString("Failed to find result for %1") .arg(url.toString())); return; } // determine the 'server' which requested the browse m_lock.lock(); MediaServer* server = NULL; QHashIterator<QString,MediaServer*> it(m_servers); while (it.hasNext()) { it.next(); if (url == it.value()->m_controlURL) { server = it.value(); break; } } // discard unmatched responses if (!server) { m_lock.unlock(); LOG(VB_GENERAL, LOG_ERR, LOC + QString("Received unknown response for %1").arg(url.toString())); return; } // check the update ID if (server->m_systemUpdateID != (int)updateid) { // if this is not the root container, this browse will now fail // as the appropriate parentID will not be found LOG(VB_GENERAL, LOG_ERR, LOC + QString("%1 updateID changed during browse (old %2 new %3)") .arg(server->m_friendlyName).arg(server->m_systemUpdateID) .arg(updateid)); m_scanComplete &= server->ResetContent(updateid); Debug(); } // find containers (directories) and actual items and add them docElem = result->documentElement(); n = docElem.firstChild(); while (!n.isNull()) { FindItems(n, *server); n = n.nextSibling(); } delete result; m_lock.unlock(); }
void InstrumentTrack::loadTrackSpecificSettings( const QDomElement & thisElement ) { silenceAllNotes( true ); lock(); m_volumeModel.loadSettings( thisElement, "vol" ); m_panningModel.loadSettings( thisElement, "pan" ); m_pitchRangeModel.loadSettings( thisElement, "pitchrange" ); m_pitchModel.loadSettings( thisElement, "pitch" ); m_effectChannelModel.setRange( 0, Engine::fxMixer()->numChannels()-1 ); m_effectChannelModel.loadSettings( thisElement, "fxch" ); m_baseNoteModel.loadSettings( thisElement, "basenote" ); m_useMasterPitchModel.loadSettings( thisElement, "usemasterpitch"); // clear effect-chain just in case we load an old preset without FX-data m_audioPort.effects()->clear(); QDomNode node = thisElement.firstChild(); while( !node.isNull() ) { if( node.isElement() ) { if( m_soundShaping.nodeName() == node.nodeName() ) { m_soundShaping.restoreState( node.toElement() ); } else if( m_noteStacking.nodeName() == node.nodeName() ) { m_noteStacking.restoreState( node.toElement() ); } else if( m_arpeggio.nodeName() == node.nodeName() ) { m_arpeggio.restoreState( node.toElement() ); } else if( m_midiPort.nodeName() == node.nodeName() ) { m_midiPort.restoreState( node.toElement() ); } else if( m_audioPort.effects()->nodeName() == node.nodeName() ) { m_audioPort.effects()->restoreState( node.toElement() ); } else if( node.nodeName() == "instrument" ) { delete m_instrument; m_instrument = NULL; m_instrument = Instrument::instantiate( node.toElement().attribute( "name" ), this ); m_instrument->restoreState( node.firstChildElement() ); emit instrumentChanged(); } // compat code - if node-name doesn't match any known // one, we assume that it is an instrument-plugin // which we'll try to load else if( AutomationPattern::classNodeName() != node.nodeName() && ControllerConnection::classNodeName() != node.nodeName() && !node.toElement().hasAttribute( "id" ) ) { delete m_instrument; m_instrument = NULL; m_instrument = Instrument::instantiate( node.nodeName(), this ); if( m_instrument->nodeName() == node.nodeName() ) { m_instrument->restoreState( node.toElement() ); } emit instrumentChanged(); } } node = node.nextSibling(); } updatePitchRange(); unlock(); }
void UPNPScanner::FindItems(const QDomNode &n, MediaServerItem &content) { QDomElement node = n.toElement(); if (node.isNull()) return; if (node.tagName() == "container") { QString title = "ERROR"; QDomNode next = node.firstChild(); while (!next.isNull()) { QDomElement container = next.toElement(); if (!container.isNull() && container.tagName() == "title") title = container.text(); next = next.nextSibling(); } MediaServerItem container = MediaServerItem(node.attribute("id", "ERROR"), node.attribute("parentID", "ERROR"), title, QString()); content.Add(container); return; } if (node.tagName() == "item") { QString title = "ERROR"; QString url = "ERROR"; QDomNode next = node.firstChild(); while (!next.isNull()) { QDomElement item = next.toElement(); if (!item.isNull()) { if(item.tagName() == "res") url = item.text(); if(item.tagName() == "title") title = item.text(); } next = next.nextSibling(); } MediaServerItem item = MediaServerItem(node.attribute("id", "ERROR"), node.attribute("parentID", "ERROR"), title, url); content.Add(item); return; } QDomNode next = node.firstChild(); while (!next.isNull()) { FindItems(next, content); next = next.nextSibling(); } }
void UpdatesInfo::UpdatesInfoData::parseFile(const QString &updateXmlFile) { QFile file(updateXmlFile); if (!file.open(QFile::ReadOnly)) { error = UpdatesInfo::CouldNotReadUpdateInfoFileError; errorMessage = tr("Could not read \"%1\"").arg(updateXmlFile); return; } QDomDocument doc; QString parseErrorMessage; int parseErrorLine; int parseErrorColumn; if (!doc.setContent(&file, &parseErrorMessage, &parseErrorLine, &parseErrorColumn)) { error = UpdatesInfo::InvalidXmlError; errorMessage = tr("Parse error in %1 at %2, %3: %4") .arg(updateXmlFile, QString::number(parseErrorLine), QString::number(parseErrorColumn), parseErrorMessage); return; } QDomElement rootE = doc.documentElement(); if (rootE.tagName() != QLatin1String("Updates")) { setInvalidContentError(tr("root element %1 unexpected, should be \"Updates\"").arg(rootE.tagName())); return; } QDomNodeList childNodes = rootE.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("ApplicationName")) applicationName = childE.text(); else if (childE.tagName() == QLatin1String("ApplicationVersion")) applicationVersion = childE.text(); else if (childE.tagName() == QLatin1String("RequiredCompatLevel")) compatLevel = childE.text().toInt(); else if (childE.tagName() == QLatin1String("PackageUpdate")) { const bool res = parsePackageUpdateElement(childE); if (!res) { //error handled in subroutine return; } } else if (childE.tagName() == QLatin1String("CompatUpdate")) { const bool res = parseCompatUpdateElement(childE); if (!res) { //error handled in subroutine return; } } } if (applicationName.isEmpty()) { setInvalidContentError(tr("ApplicationName element is missing")); return; } if (applicationVersion.isEmpty()) { setInvalidContentError(tr("ApplicationVersion element is missing")); return; } error = UpdatesInfo::NoError; errorMessage.clear(); }
void FileReader::parseDocument(const QDomElement& element) { model->removeRows(0, model->rowCount()); int row=0; QDomNode child = element.firstChild(); while(!child.isNull()) { if(child.toElement().tagName() == "title") readTitle(child.toElement()); else if(child.toElement().tagName() == "xlabel") readXLabel(child.toElement()); else if(child.toElement().tagName() == "ylabel") readYLabel(child.toElement()); else if(child.toElement().tagName() == "point") { model->insertRow(row); QDomNode nephew = child.firstChild(); while(!nephew.isNull()) { if(nephew.toElement().tagName() == "x") model->setData(model->index(row, 0), nephew.toElement().text()); else if(nephew.toElement().tagName() == "y") model->setData(model->index(row, 1), nephew.toElement().text()); nephew = nephew.nextSibling(); } row++; } child = child.nextSibling(); } }
bool TemporalVarianceBGModule::setParameters(QDomNode& config) { QDomNode n; if(config.isNull()) //Parameter set for module not defined { this->bgSizeWindow = 11; this->fgSizeWindow = 5; //influye en la permanencia de los fantasmas. this->detectionFactorThreshold = 7.0;//valores altos, clasifican a mas pixeles como fondo this->fgVarianceThreshold = 187.0;//un pixel con varianza mayor a este umbral es considerado pixel en movimiento this->factorSigmoid = 3;//entre mas grande es este valor, mas pixeles son clasificados como fondo this->minScale = 0; this->maxScale = 80; this->displayFirstModel = true; this->displayFeatureMap = true; m_tuningActivated = false; } else { if( !( n = XmlCommon::XmlCommon::getParameterNode("bgSizeWindow", config) ).isNull() ) this->bgSizeWindow = XmlCommon::getParameterValue(n).toInt(); else { this->bgSizeWindow = 9; AppendToLog("TemporalVarianceBGModule: Warning: 'bgSizeWindow' not defined. Taking defaults: \n\t\tbgSizeWindow = " + QString::number(this->bgSizeWindow) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("fgSizeWindow", config) ).isNull() ) this->fgSizeWindow = XmlCommon::getParameterValue(n).toInt(); else { this->fgSizeWindow = 4; AppendToLog("TemporalVarianceBGModule: Warning: 'fgSizeWindow' not defined. Taking defaults: \n\t\tfgSizeWindow = " + QString::number(this->fgSizeWindow) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("detectionFactorThreshold", config) ).isNull() ) this->detectionFactorThreshold = XmlCommon::getParameterValue(n).toFloat(); else { this->detectionFactorThreshold = 7; AppendToLog("TemporalVarianceBGModule: Warning: 'detectionFactorThreshold' not defined. Taking defaults: \n\t\tdetectionFactorThreshold = " + QString::number(this->detectionFactorThreshold) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("fgVarianceThreshold", config) ).isNull() ) this->fgVarianceThreshold = XmlCommon::getParameterValue(n).toFloat(); else { this->fgVarianceThreshold = 187; AppendToLog("TemporalVarianceBGModule: Warning: 'fgVarianceThreshold' not defined. Taking defaults: \n\t\tfgVarianceThreshold = " + QString::number(this->fgVarianceThreshold) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("factorSigmoid", config) ).isNull() ) this->factorSigmoid = XmlCommon::getParameterValue(n).toInt(); else { this->factorSigmoid = 3; AppendToLog("TemporalVarianceBGModule: Warning: 'factorSigmoid' not defined. Taking defaults: \n\t\tfactorSigmoid = " + QString::number(this->factorSigmoid) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("minScale", config) ).isNull() ) this->minScale = XmlCommon::getParameterValue(n).toInt(); else { this->minScale = 0; AppendToLog("TemporalVarianceBGModule: Warning: 'minScale' not defined. Taking defaults: \n\t\tminScale = " + QString::number(this->minScale) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("maxScale", config) ).isNull() ) this->maxScale = XmlCommon::getParameterValue(n).toInt(); else { this->maxScale = 255; AppendToLog("TemporalVarianceBGModule: Warning: 'maxScale' not defined. Taking defaults: \n\t\tmaxScale = " + QString::number(this->maxScale) + "\n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("displayFeatureMap", config) ).isNull() ) this->displayFeatureMap = XmlCommon::getParameterValue(n) == "true" ? true : false; else { this->displayFeatureMap = false; AppendToLog("TemporalVarianceBGModule: Warning: 'displayFeatureMap' not defined. Taking defaults: \n\t\tdisplayFeatureMap = false \n"); } if( !( n = XmlCommon::XmlCommon::getParameterNode("displayFirstModel", config) ).isNull() ) this->displayFirstModel = XmlCommon::getParameterValue(n) == "true" ? true : false; else { this->displayFirstModel = false; AppendToLog("TemporalVarianceBGModule: Warning: 'displayFirstModel' not defined. Taking defaults: \n\t\tdisplayFirstModel = false \n"); } if( ( n = XmlCommon::getParameterNode("TuningActivated", config) ).isNull() ) { m_tuningActivated = false; } else { m_tuningActivated = XmlCommon::getParameterValue(n) == "true" ? true : false; if(m_tuningActivated) { m_data->tuningEnded = false; } } } //Setea la lista de parametros y la lista de tipos de parametros utilizadas en el ParameterDialog. addParameter("bgSizeWindow", QString::number(this->bgSizeWindow), "int"); addParameter("fgSizeWindow", QString::number(this->fgSizeWindow), "int"); addParameter("detectionFactorThreshold", QString::number(this->detectionFactorThreshold), "float"); addParameter("fgVarianceThreshold", QString::number(this->fgVarianceThreshold), "float"); addParameter("factorSigmoid", QString::number(this->factorSigmoid), "int"); addParameter("minScale", QString::number(this->minScale), "uchar"); addParameter("maxScale", QString::number(this->maxScale), "uchar"); addParameter("displayFeatureMap", (this->displayFeatureMap== true)? "yes" : "no", "bool"); addParameter("displayFirstModel", (this->displayFirstModel== true)? "yes" : "no", "bool"); return true; }
void MythBurn::loadEncoderProfiles() { EncoderProfile *item = new EncoderProfile; item->name = "NONE"; item->description = ""; item->bitrate = 0.0f; m_profileList.append(item); // find the encoding profiles // first look in the ConfDir (~/.mythtv) QString filename = GetConfDir() + "/MythArchive/ffmpeg_dvd_" + ((gCoreContext->GetSetting("MythArchiveVideoFormat", "pal") .toLower() == "ntsc") ? "ntsc" : "pal") + ".xml"; if (!QFile::exists(filename)) { // not found yet so use the default profiles filename = GetShareDir() + "mytharchive/encoder_profiles/ffmpeg_dvd_" + ((gCoreContext->GetSetting("MythArchiveVideoFormat", "pal") .toLower() == "ntsc") ? "ntsc" : "pal") + ".xml"; } LOG(VB_GENERAL, LOG_NOTICE, "MythArchive: Loading encoding profiles from " + filename); QDomDocument doc("mydocument"); QFile file(filename); if (!file.open(QIODevice::ReadOnly)) return; if (!doc.setContent( &file )) { file.close(); return; } file.close(); QDomElement docElem = doc.documentElement(); QDomNodeList profileNodeList = doc.elementsByTagName("profile"); QString name, desc, bitrate; for (int x = 0; x < (int) profileNodeList.count(); x++) { QDomNode n = profileNodeList.item(x); QDomElement e = n.toElement(); QDomNode n2 = e.firstChild(); while (!n2.isNull()) { QDomElement e2 = n2.toElement(); if(!e2.isNull()) { if (e2.tagName() == "name") name = e2.text(); if (e2.tagName() == "description") desc = e2.text(); if (e2.tagName() == "bitrate") bitrate = e2.text(); } n2 = n2.nextSibling(); } EncoderProfile *item = new EncoderProfile; item->name = name; item->description = desc; item->bitrate = bitrate.toFloat(); m_profileList.append(item); } }
bool Chaser::loadXML(const QDomElement* root) { QDomNode node; QDomElement tag; Q_ASSERT(root != NULL); if (root->tagName() != KXMLQLCFunction) { qDebug() << "Function node not found!"; return false; } if (root->attribute(KXMLQLCFunctionType) != typeToString(Function::Chaser)) { qWarning("Function is not a chaser!"); return false; } /* Load chaser contents */ node = root->firstChild(); while (node.isNull() == false) { tag = node.toElement(); if (tag.tagName() == KXMLQLCBus) { /* Bus */ setBus(tag.text().toUInt()); } else if (tag.tagName() == KXMLQLCFunctionDirection) { /* Direction */ setDirection(Function::stringToDirection(tag.text())); } else if (tag.tagName() == KXMLQLCFunctionRunOrder) { /* Run Order */ setRunOrder(Function::stringToRunOrder(tag.text())); } else if (tag.tagName() == KXMLQLCFunctionStep) { t_function_id fid = -1; int num = 0; num = tag.attribute(KXMLQLCFunctionNumber).toInt(); fid = tag.text().toInt(); /* Don't check for the member function's existence, because it might not have been loaded yet. */ if (num >= m_steps.size()) m_steps.append(fid); else m_steps.insert(num, fid); } else { qDebug() << "Unknown chaser tag:" << tag.tagName(); } node = node.nextSibling(); } return true; }
bool EFX::loadXML(const QDomElement* root) { QString str; QDomNode node; QDomElement tag; Q_ASSERT(root != NULL); 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 */ node = root->firstChild(); while (node.isNull() == false) { tag = node.toElement(); if (tag.tagName() == KXMLQLCBus) { /* Bus */ str = tag.attribute(KXMLQLCBusRole); setBus(tag.text().toUInt()); } else if (tag.tagName() == KXMLQLCEFXFixture) { EFXFixture* ef = new EFXFixture(this); ef->loadXML(&tag); if (ef->fixture() != Fixture::invalidId()) { if (addFixture(ef) == false) delete ef; } } else if (tag.tagName() == KXMLQLCEFXPropagationMode) { /* Propagation mode */ setPropagationMode(stringToPropagationMode(tag.text())); } else if (tag.tagName() == KXMLQLCEFXAlgorithm) { /* Algorithm */ setAlgorithm(tag.text()); } else if (tag.tagName() == KXMLQLCFunctionDirection) { /* Direction */ setDirection(Function::stringToDirection(tag.text())); } else if (tag.tagName() == KXMLQLCFunctionRunOrder) { /* Run Order */ setRunOrder(Function::stringToRunOrder(tag.text())); } 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() == KXMLQLCEFXStartScene) { /* Start scene */ setStartScene(tag.text().toInt()); if (tag.attribute(KXMLQLCFunctionEnabled) == KXMLQLCTrue) setStartSceneEnabled(true); else setStartSceneEnabled(false); } else if (tag.tagName() == KXMLQLCEFXStopScene) { /* Stop scene */ setStopScene(tag.text().toInt()); if (tag.attribute(KXMLQLCFunctionEnabled) == KXMLQLCTrue) setStopSceneEnabled(true); else setStopSceneEnabled(false); } else if (tag.tagName() == KXMLQLCEFXAxis) { /* Axes */ loadXMLAxis(&tag); } else { qWarning() << "Unknown EFX tag:" << tag.tagName(); } node = node.nextSibling(); } return true; }
void XMLHandler::read_xml_file() { QDomDocument document; // load the file QFile file(filename); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Unable to open file!"; return; } else { if (!document.setContent(&file)) { qDebug() << "Invalid XML file!"; return; } file.close(); } // get root element QDomElement docElem = document.documentElement(); // check root tag QString rootTag = docElem.tagName(); if (!rootTag.compare("\"StreXRD_Project\"")) { qDebug() << "Not a StreXRD project file!"; } QDomElement root = document.firstChildElement(); // get the project name QDomNodeList items = root.elementsByTagName("Name"); QDomNode itemnode = items.at(0); QDomElement itemEl = itemnode.toElement(); project_name = itemEl.text(); // get file names and locations QDomNodeList files = docElem.elementsByTagName("File"); for (int i = 0; i < files.count(); i++) { QDomNode filenode = files.at(i); if (filenode.isElement()) { QString file_ID = filenode.toElement().attribute("ID"); int file_ID_number = file_ID.toInt(); file_ID_list.append(file_ID_number); QDomNodeList file_names = filenode.toElement().elementsByTagName("Name"); QDomNodeList file_locations = filenode.toElement().elementsByTagName("Location"); QString file_name = file_names.at(0).toElement().text(); QString file_location = file_locations.at(0).toElement().text(); this->file_names_locations.insert(file_name, file_location); file_name_list.append(file_name); file_location_list.append(file_location); } } }
QgsMapLayer* QgsSLDConfigParser::mapLayerFromUserLayer( const QDomElement& userLayerElem, const QString& layerName, bool allowCaching ) const { QgsDebugMsg( "Entering." ); QgsMSLayerBuilder* layerBuilder = nullptr; QDomElement builderRootElement; //hosted vector data? QDomNode hostedVDSNode = userLayerElem.namedItem( "HostedVDS" ); if ( !hostedVDSNode.isNull() ) { builderRootElement = hostedVDSNode.toElement(); layerBuilder = new QgsHostedVDSBuilder(); } //hosted raster data? QDomNode hostedRDSNode = userLayerElem.namedItem( "HostedRDS" ); if ( !layerBuilder && !hostedRDSNode.isNull() ) { builderRootElement = hostedRDSNode.toElement(); layerBuilder = new QgsHostedRDSBuilder(); } //remote OWS (WMS, WFS, WCS)? QDomNode remoteOWSNode = userLayerElem.namedItem( "RemoteOWS" ); if ( !layerBuilder && !remoteOWSNode.isNull() ) { builderRootElement = remoteOWSNode.toElement(); layerBuilder = new QgsRemoteOWSBuilder( mParameterMap ); } //remote vector/raster datasource QDomNode remoteRDSNode = userLayerElem.namedItem( "RemoteRDS" ); if ( !layerBuilder && !remoteRDSNode.isNull() ) { builderRootElement = remoteRDSNode.toElement(); layerBuilder = new QgsRemoteDataSourceBuilder(); QgsDebugMsg( "Detected remote raster datasource" ); } QDomNode remoteVDSNode = userLayerElem.namedItem( "RemoteVDS" ); if ( !layerBuilder && !remoteVDSNode.isNull() ) { builderRootElement = remoteVDSNode.toElement(); layerBuilder = new QgsRemoteDataSourceBuilder(); QgsDebugMsg( "Detected remote vector datasource" ); } //sent vector/raster datasource QDomNode sentVDSNode = userLayerElem.namedItem( "SentVDS" ); if ( !layerBuilder && !sentVDSNode.isNull() ) { builderRootElement = sentVDSNode.toElement(); layerBuilder = new QgsSentDataSourceBuilder(); } QDomNode sentRDSNode = userLayerElem.namedItem( "SentRDS" ); if ( !layerBuilder && !sentRDSNode.isNull() ) { builderRootElement = sentRDSNode.toElement(); layerBuilder = new QgsSentDataSourceBuilder(); } if ( !layerBuilder ) { return nullptr; } QgsMapLayer* theMapLayer = layerBuilder->createMapLayer( builderRootElement, layerName, mFilesToRemove, mLayersToRemove, allowCaching ); if ( theMapLayer ) { setCrsForLayer( builderRootElement, theMapLayer ); //consider attributes "epsg" and "proj" } //maybe the datasource is defined in the fallback SLD? if ( !theMapLayer && mFallbackParser ) { QList<QgsMapLayer*> fallbackList = mFallbackParser->mapLayerFromStyle( layerName, "", allowCaching ); if ( !fallbackList.isEmpty() ) { QgsMapLayer* fallbackLayer = fallbackList.at( 0 ); //todo: prevent crash if layer list is empty if ( fallbackLayer ) { theMapLayer = dynamic_cast<QgsVectorLayer*>( fallbackLayer ); } } } #if 0 //todo: fixme //GML from outside the SLD? if ( !theMapLayer ) { QMap<QString, QDomDocument*>::const_iterator gmlIt = mExternalGMLDatasets.find( layerName ); if ( gmlIt != mExternalGMLDatasets.end() ) { QgsDebugMsg( "Trying to get maplayer from external GML" ); theMapLayer = vectorLayerFromGML( gmlIt.value()->documentElement() ); } } #endif //0 //raster layer from interpolation QDomNode rasterInterpolationNode = userLayerElem.namedItem( "RasterInterpolation" ); if ( !rasterInterpolationNode.isNull() ) { QgsVectorLayer* vectorCast = dynamic_cast<QgsVectorLayer*>( theMapLayer ); if ( vectorCast ) { builderRootElement = rasterInterpolationNode.toElement(); layerBuilder = new QgsInterpolationLayerBuilder( vectorCast ); theMapLayer = layerBuilder->createMapLayer( builderRootElement, layerName, mFilesToRemove, mLayersToRemove, allowCaching ); } } return theMapLayer; }