本文整理汇总了C++中QDomElement::tagName方法的典型用法代码示例。如果您正苦于以下问题:C++ QDomElement::tagName方法的具体用法?C++ QDomElement::tagName怎么用?C++ QDomElement::tagName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDomElement
的用法示例。
在下文中一共展示了QDomElement::tagName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseFile
void AProProject::parseFile()
{
if(fileName.isEmpty())
{
QMessageBox::warning(0,"Erreur","Le projet spécifié n'existe pas !");
return;
}
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly))
{
QMessageBox::warning(0,"Erreur","Le projet spécifié n'existe pas !");
return;
}
QDomDocument doc("projet");
if (!doc.setContent(&file))
return;
file.close();
QDomElement root = doc.documentElement();
if (root.tagName()!="aproject")
return;
version = root.attribute("version","");
if (version != APROJECT_CURRENT_VERSION)
return;
QDomNode n = root.firstChild();
while(!n.isNull())
{
QDomElement e = n.toElement();
if (!e.isNull())
{
if (e.tagName()=="config")
{
name = e.attribute("name","");
}
else if (e.tagName()=="files")
{
if (e.attribute("type","") == "src")
{
QDomNode n2 = e.firstChild();
while (!n2.isNull())
{
QDomElement e2 = n2.toElement();
if (!e2.isNull())
{
QString src = e2.attribute("src","");
Sources.append(src);
}
n2 = n2.nextSibling();
}
}
if (e.attribute("type","") == "header")
{
QDomNode n2 = e.firstChild();
while (!n2.isNull())
{
QDomElement e2 = n2.toElement();
if (!e2.isNull())
{
QString h = e2.attribute("src","");
Headers.append(h);
}
n2 = n2.nextSibling();
}
}
}
}
n = n.nextSibling();
}
}
示例2: extractCalendarInfo
void EvolutionCalendar::extractCalendarInfo(const QString &info)
{
//qCDebug(IMPORTWIZARD_LOG)<<" info "<<info;
//Read QDomElement
QDomDocument cal;
if (!EvolutionUtil::loadInDomDocument(info, cal)) {
return;
}
QDomElement domElement = cal.documentElement();
if (domElement.isNull()) {
qCDebug(IMPORTWIZARD_LOG) << "Account not found";
return;
}
QString base_uri;
if (domElement.hasAttribute(QStringLiteral("base_uri"))) {
base_uri = domElement.attribute(QStringLiteral("base_uri"));
}
if (base_uri == QLatin1String("local:")) {
for (QDomElement e = domElement.firstChildElement(); !e.isNull(); e = e.nextSiblingElement()) {
const QString tag = e.tagName();
if (tag == QLatin1String("source")) {
QString name;
QMap<QString, QVariant> settings;
if (e.hasAttribute(QStringLiteral("uid"))) {
}
if (e.hasAttribute(QStringLiteral("name"))) {
name = e.attribute(QStringLiteral("name"));
settings.insert(QStringLiteral("DisplayName"), name);
}
if (e.hasAttribute(QStringLiteral("relative_uri"))) {
const QString path = mCalendarPath + e.attribute(QStringLiteral("relative_uri")) + QLatin1String("/calendar.ics");
settings.insert(QStringLiteral("Path"), path);
}
if (e.hasAttribute(QStringLiteral("color_spec"))) {
//const QString color = e.attribute(QStringLiteral("color_spec"));
//Need id.
//TODO: Need to get id for collection to add color.
}
QDomElement propertiesElement = e.firstChildElement();
if (!propertiesElement.isNull()) {
for (QDomElement property = propertiesElement.firstChildElement(); !property.isNull(); property = property.nextSiblingElement()) {
const QString propertyTag = property.tagName();
if (propertyTag == QLatin1String("property")) {
if (property.hasAttribute(QStringLiteral("name"))) {
const QString propertyName = property.attribute(QStringLiteral("name"));
if (propertyName == QLatin1String("custom-file-readonly")) {
if (property.hasAttribute(QStringLiteral("value"))) {
if (property.attribute(QStringLiteral("value")) == QLatin1String("1")) {
settings.insert(QStringLiteral("ReadOnly"), true);
}
}
} else if (propertyName == QLatin1String("alarm")) {
qCDebug(IMPORTWIZARD_LOG) << " need to implement alarm property";
} else {
qCDebug(IMPORTWIZARD_LOG) << " property unknown :" << propertyName;
}
}
} else {
qCDebug(IMPORTWIZARD_LOG) << " tag unknown :" << propertyTag;
}
}
}
AbstractBase::createResource(QStringLiteral("akonadi_ical_resource"), name, settings);
} else {
qCDebug(IMPORTWIZARD_LOG) << " tag unknown :" << tag;
}
}
} else if (base_uri == QLatin1String("webcal://")) {
qCDebug(IMPORTWIZARD_LOG) << " need to implement webcal protocol";
} else if (base_uri == QLatin1String("google://")) {
qCDebug(IMPORTWIZARD_LOG) << " need to implement google protocol";
} else if (base_uri == QLatin1String("caldav://")) {
qCDebug(IMPORTWIZARD_LOG) << " need to implement caldav protocol";
} else {
qCDebug(IMPORTWIZARD_LOG) << " base_uri unknown" << base_uri;
}
}
示例3: loadWFSConnections
void QgsManageConnectionsDialog::loadWFSConnections( const QDomDocument &doc, const QStringList &items )
{
QDomElement root = doc.documentElement();
if ( root.tagName() != "qgsWFSConnections" )
{
QMessageBox::information( this, tr( "Loading connections" ),
tr( "The file is not an WFS connections exchange file." ) );
return;
}
QString connectionName;
QSettings settings;
settings.beginGroup( "/Qgis/connections-wfs" );
QStringList keys = settings.childGroups();
settings.endGroup();
QDomElement child = root.firstChildElement();
bool prompt = true;
bool overwrite = true;
while ( !child.isNull() )
{
connectionName = child.attribute( "name" );
if ( !items.contains( connectionName ) )
{
child = child.nextSiblingElement();
continue;
}
// check for duplicates
if ( keys.contains( connectionName ) && prompt )
{
int res = QMessageBox::warning( this, tr( "Loading connections" ),
tr( "Connection with name '%1' already exists. Overwrite?" )
.arg( connectionName ),
QMessageBox::Yes | QMessageBox::YesToAll | QMessageBox::No | QMessageBox::NoToAll | QMessageBox::Cancel );
switch ( res )
{
case QMessageBox::Cancel: return;
case QMessageBox::No: child = child.nextSiblingElement();
continue;
case QMessageBox::Yes: overwrite = true;
break;
case QMessageBox::YesToAll: prompt = false;
overwrite = true;
break;
case QMessageBox::NoToAll: prompt = false;
overwrite = false;
break;
}
}
if ( keys.contains( connectionName ) && !overwrite )
{
child = child.nextSiblingElement();
continue;
}
// no dups detected or overwrite is allowed
settings.beginGroup( "/Qgis/connections-wfs" );
settings.setValue( QString( "/" + connectionName + "/url" ) , child.attribute( "url" ) );
settings.endGroup();
if ( !child.attribute( "username" ).isEmpty() )
{
settings.beginGroup( "/Qgis/WFS/" + connectionName );
settings.setValue( "/username", child.attribute( "username" ) );
settings.setValue( "/password", child.attribute( "password" ) );
settings.endGroup();
}
child = child.nextSiblingElement();
}
}
示例4: processExited
void QTestLibPlugin::processExited(int exitCode)
{
m_projectExplorer->applicationOutputWindow()->processExited(exitCode);
QFile f(m_outputFile);
if (!f.open(QIODevice::ReadOnly))
return;
QDomDocument doc;
if (!doc.setContent(&f))
return;
f.close();
f.remove();
m_outputPane->clearContents();
const QString testFunctionTag = QLatin1String("TestFunction");
const QString nameAttr = QLatin1String("name");
const QString typeAttr = QLatin1String("type");
const QString incidentTag = QLatin1String("Incident");
const QString fileAttr = QLatin1String("file");
const QString lineAttr = QLatin1String("line");
const QString messageTag = QLatin1String("Message");
const QString descriptionItem = QLatin1String("Description");
for (QDomElement testElement = doc.documentElement().firstChildElement();
!testElement.isNull(); testElement = testElement.nextSiblingElement()) {
if (testElement.tagName() != testFunctionTag)
continue;
QTestFunction *function = new QTestFunction(testElement.attribute(nameAttr));
for (QDomElement e = testElement.firstChildElement();
!e.isNull(); e = e.nextSiblingElement()) {
const QString type = e.attribute(typeAttr);
if (e.tagName() == incidentTag) {
QString file = e.attribute(fileAttr);
if (!file.isEmpty()
&& QFileInfo(file).isRelative()
&& !m_projectDirectory.isEmpty()) {
QFileInfo fi(m_projectDirectory, file);
if (fi.exists())
file = fi.absoluteFilePath();
}
const QString line = e.attribute(lineAttr);
const QString details = e.text();
QTestFunction::IncidentType itype = stringToIncident(type);
function->addIncident(itype, file, line, details);
} else if (e.tagName() == messageTag ) {
QTestFunction::MessageType msgType = stringToMessageType(type);
function->addMessage(msgType, e.namedItem(descriptionItem).toElement().text());
}
}
m_outputPane->addFunction(function);
}
m_outputPane->show();
}
示例5: parseElement
void xmlParser::parseElement(const QDomElement &element)
{
QDomNode nodeL2;
Station tmpS;
Edge tmpE;
if( element.tagName() == "stations_list" )
{
nodeL2 = element.firstChild();
while( !nodeL2.isNull() )
{
tmpS.id = nodeL2.toElement().attribute("id").toInt();
tmpS.fullName = nodeL2.toElement().attribute("fullname");
tmpS.name = nodeL2.toElement().attribute("name");
tmpS.x = nodeL2.toElement().attribute("x").toInt();
tmpS.y = nodeL2.toElement().attribute("y").toInt();
tmpS.width = nodeL2.toElement().attribute("width").toInt();
tmpS.height = nodeL2.toElement().attribute("height").toInt();
tmpS.HAlign = nodeL2.toElement().attribute("halign").toInt();
tmpS.VAlign = nodeL2.toElement().attribute("valign").toInt();
tmpS.color = nodeL2.toElement().attribute("stationcolor").toUtf8();
tmpS.line = nodeL2.toElement().attribute("line").toUShort();
tmpS.latitude = nodeL2.toElement().attribute("latitude").toDouble();
tmpS.longitude = nodeL2.toElement().attribute("longitude").toDouble();
tmpS.xCenter = nodeL2.toElement().attribute("xcenter",QString("-1")).toInt();
tmpS.yCenter = nodeL2.toElement().attribute("ycenter",QString("-1")).toInt();
/*
tmpS.id = nodeL2.toElement().attribute("id").toUShort();
tmpS.name = nodeL2.toElement().attribute("name");
tmpS.x = nodeL2.toElement().attribute("x").toUShort();
tmpS.y = nodeL2.toElement().attribute("y").toUShort();
*/
StLst->append( tmpS );
nodeL2 = nodeL2.nextSibling();
}
}
if( element.tagName() == "edges_list" )
{
nodeL2 = element.firstChild();
while( !nodeL2.isNull() )
{
tmpE.id = nodeL2.toElement().attribute("id").toUShort();
tmpE.value = nodeL2.toElement().attribute("value").toUShort();
tmpE.idFrom = nodeL2.toElement().attribute("idFrom").toUShort();
tmpE.idTo = nodeL2.toElement().attribute("idTo").toUShort();
tmpE.byLegs = nodeL2.toElement().attribute("byLegs").toUShort() ? true : false;
// tmpE.location = nodeL2.toElement().attribute("location");
// tmpE.x1 = nodeL2.toElement().attribute("x1").toInt() + 15;
// tmpE.y1 = nodeL2.toElement().attribute("y1").toInt() + 20;
// tmpE.x2 = nodeL2.toElement().attribute("x2").toInt() + 15;
// tmpE.y2 = nodeL2.toElement().attribute("y2").toInt() + 20;
tmpE.x1 = nodeL2.toElement().attribute("x1").toInt();
tmpE.y1 = nodeL2.toElement().attribute("y1").toInt();
tmpE.x2 = nodeL2.toElement().attribute("x2").toInt();
tmpE.y2 = nodeL2.toElement().attribute("y2").toInt();
tmpE.x3 = nodeL2.toElement().attribute("x3",QString("-1")).toInt();
tmpE.y3 = nodeL2.toElement().attribute("y3",QString("-1")).toInt();
tmpE.x4 = nodeL2.toElement().attribute("x4",QString("-1")).toInt();
tmpE.y4 = nodeL2.toElement().attribute("y4",QString("-1")).toInt();
EdLst->append( tmpE );
nodeL2 = nodeL2.nextSibling();
}
}
}
示例6: parseSchemaTag
bool Parser::parseSchemaTag( ParserContext *context, const QDomElement &root )
{
QName name = root.tagName();
if ( name.localName() != QLatin1String("schema") )
return false;
NSManager *parentManager = context->namespaceManager();
NSManager namespaceManager;
// copy namespaces from wsdl
if ( parentManager )
namespaceManager = *parentManager;
context->setNamespaceManager( &namespaceManager );
QDomNamedNodeMap attributes = root.attributes();
for ( int i = 0; i < attributes.count(); ++i ) {
QDomAttr attribute = attributes.item( i ).toAttr();
if ( attribute.name().startsWith( QLatin1String("xmlns:") ) ) {
QString prefix = attribute.name().mid( 6 );
context->namespaceManager()->setPrefix( prefix, attribute.value() );
}
}
if ( root.hasAttribute( QLatin1String("targetNamespace") ) )
d->mNameSpace = root.attribute( QLatin1String("targetNamespace") );
// mTypesTable.setTargetNamespace( mNameSpace );
QDomElement element = root.firstChildElement();
while ( !element.isNull() ) {
QName name = element.tagName();
if ( name.localName() == QLatin1String("import") ) {
parseImport( context, element );
} else if ( name.localName() == QLatin1String("element") ) {
addGlobalElement( parseElement( context, element, d->mNameSpace, element ) );
} else if ( name.localName() == QLatin1String("complexType") ) {
ComplexType ct = parseComplexType( context, element, element.attribute("name") );
d->mComplexTypes.append( ct );
} else if ( name.localName() == QLatin1String("simpleType") ) {
SimpleType st = parseSimpleType( context, element );
d->mSimpleTypes.append( st );
} else if ( name.localName() == QLatin1String("attribute") ) {
addGlobalAttribute( parseAttribute( context, element ) );
} else if ( name.localName() == QLatin1String("attributeGroup") ) {
d->mAttributeGroups.append( parseAttributeGroup( context, element ) );
} else if ( name.localName() == QLatin1String("annotation") ) {
d->mAnnotations = parseAnnotation( context, element );
} else if ( name.localName() == QLatin1String("include") ) {
parseInclude( context, element );
}
element = element.nextSiblingElement();
}
context->setNamespaceManager( parentManager );
d->mNamespaces = joinNamespaces( d->mNamespaces, namespaceManager.uris() );
d->mNamespaces = joinNamespaces( d->mNamespaces, QStringList( d->mNameSpace ) );
resolveForwardDeclarations();
return true;
}
示例7: loadDetailsFromXML
static bool loadDetailsFromXML(const QString &filename, FileDetails *details)
{
QDomDocument doc("mydocument");
QFile file(filename);
if (!file.open(QIODevice::ReadOnly))
return false;
if (!doc.setContent(&file))
{
file.close();
return false;
}
file.close();
QString docType = doc.doctype().name();
if (docType == "MYTHARCHIVEITEM")
{
QDomNodeList itemNodeList = doc.elementsByTagName("item");
QString type, dbVersion;
if (itemNodeList.count() < 1)
{
LOG(VB_GENERAL, LOG_ERR,
"Couldn't find an 'item' element in XML file");
return false;
}
QDomNode n = itemNodeList.item(0);
QDomElement e = n.toElement();
type = e.attribute("type");
dbVersion = e.attribute("databaseversion");
if (type == "recording")
{
QDomNodeList nodeList = e.elementsByTagName("recorded");
if (nodeList.count() < 1)
{
LOG(VB_GENERAL, LOG_ERR,
"Couldn't find a 'recorded' element in XML file");
return false;
}
n = nodeList.item(0);
e = n.toElement();
n = e.firstChild();
while (!n.isNull())
{
e = n.toElement();
if (!e.isNull())
{
if (e.tagName() == "title")
details->title = e.text();
if (e.tagName() == "subtitle")
details->subtitle = e.text();
if (e.tagName() == "starttime")
details->startTime = MythDate::fromString(e.text());
if (e.tagName() == "description")
details->description = e.text();
}
n = n.nextSibling();
}
// get channel info
n = itemNodeList.item(0);
e = n.toElement();
nodeList = e.elementsByTagName("channel");
if (nodeList.count() < 1)
{
LOG(VB_GENERAL, LOG_ERR,
"Couldn't find a 'channel' element in XML file");
details->chanID = "";
details->chanNo = "";
details->chanName = "";
details->callsign = "";
return false;
}
n = nodeList.item(0);
e = n.toElement();
details->chanID = e.attribute("chanid");
details->chanNo = e.attribute("channum");
details->chanName = e.attribute("name");
details->callsign = e.attribute("callsign");
return true;
}
else if (type == "video")
{
QDomNodeList nodeList = e.elementsByTagName("videometadata");
if (nodeList.count() < 1)
{
LOG(VB_GENERAL, LOG_ERR,
"Couldn't find a 'videometadata' element in XML file");
return false;
}
n = nodeList.item(0);
e = n.toElement();
//.........这里部分代码省略.........
示例8: setDocument
bool ParameterEdit::setDocument(const QDomDocument & doc)
{
QDomElement root = doc.documentElement();
if(root.tagName() != "report")
{
QMessageBox::critical(this, tr("Not a Valid Report"),
tr("The report definition does not appear to be a valid report."
"\n\nThe root node is not 'report'."));
return false;
}
_list->show();
_new->hide();
_delete->hide();
for(QDomNode n = root.firstChild(); !n.isNull(); n = n.nextSibling())
{
if(n.nodeName() == "parameter")
{
QDomElement elemSource = n.toElement();
ORParameter param;
param.name = elemSource.attribute("name");
if(param.name.isEmpty())
continue;
param.type = elemSource.attribute("type");
param.defaultValue = elemSource.attribute("default");
param.active = (elemSource.attribute("active") == "true");
param.listtype = elemSource.attribute("listtype");
QList<QPair<QString,QString> > pairs;
if(param.listtype.isEmpty())
param.description = elemSource.text();
else
{
QDomNodeList section = elemSource.childNodes();
for(int nodeCounter = 0; nodeCounter < section.count(); nodeCounter++)
{
QDomElement elemThis = section.item(nodeCounter).toElement();
if(elemThis.tagName() == "description")
param.description = elemThis.text();
else if(elemThis.tagName() == "query")
param.query = elemThis.text();
else if(elemThis.tagName() == "item")
param.values.append(qMakePair(elemThis.attribute("value"), elemThis.text()));
else
qDebug("While parsing parameter encountered an unknown element: %s",(const char*)elemThis.tagName().toLatin1().data());
}
}
QVariant defaultVar;
if(!param.defaultValue.isEmpty())
defaultVar = QVariant(param.defaultValue);
if("integer" == param.type)
defaultVar = defaultVar.toInt();
else if("double" == param.type)
defaultVar = defaultVar.toDouble();
else if("bool" == param.type)
defaultVar = QVariant(defaultVar.toBool());
else
defaultVar = defaultVar.toString();
updateParam(param.name, defaultVar, param.active);
QList<QPair<QString, QString> > list;
if("static" == param.listtype)
list = param.values;
else if("dynamic" == param.listtype && !param.query.isEmpty())
{
QSqlQuery qry(param.query);
while(qry.next())
list.append(qMakePair(qry.value(0).toString(), qry.value(1).toString()));
}
if(!list.isEmpty())
_lists.insert(param.name, list);
}
}
if(_lists.isEmpty())
return false; // no defined parameters
else
return true;
}
示例9: attr
BCLSearchResult::BCLSearchResult(const QDomElement& componentElement)
{
m_componentType = componentElement.tagName().toStdString();
QDomElement uidElement = componentElement.firstChildElement("uuid");
QDomElement versionIdElement = componentElement.firstChildElement("vuuid");
QDomElement nameElement = componentElement.firstChildElement("name");
QDomElement descriptionElement = componentElement.firstChildElement("description");
QDomElement modelerDescriptionElement = componentElement.firstChildElement("modeler_description");
QDomElement fidelityLevelElement = componentElement.firstChildElement("fidelity_level");
QDomElement provenancesElement = componentElement.firstChildElement("provenances");
QDomElement tagsElement = componentElement.firstChildElement("tags");
QDomElement attributesElement = componentElement.firstChildElement("attributes");
QDomElement filesElement = componentElement.firstChildElement("files");
QDomElement costsElement = componentElement.firstChildElement("costs");
OS_ASSERT(!nameElement.isNull());
OS_ASSERT(!uidElement.isNull());
OS_ASSERT(!versionIdElement.isNull());
QString name = nameElement.firstChild().nodeValue().replace('_', ' ');
while (name.indexOf(" ") != -1) {
name = name.replace(" ", " ");
}
name[0] = name[0].toUpper();
m_name = name.toStdString();
if (!uidElement.isNull() && uidElement.firstChild().nodeValue().length() == 36)
{
m_uid = uidElement.firstChild().nodeValue().toStdString();
}
if (!versionIdElement.isNull() && versionIdElement.firstChild().nodeValue().length() == 36)
{
m_versionId = versionIdElement.firstChild().nodeValue().toStdString();
}
if (!descriptionElement.isNull())
{
m_description = descriptionElement.firstChild().nodeValue().toStdString();
}
if (!modelerDescriptionElement.isNull())
{
m_modelerDescription = modelerDescriptionElement.firstChild().nodeValue().toStdString();
}
if (!fidelityLevelElement.isNull())
{
m_fidelityLevel= fidelityLevelElement.firstChild().nodeValue().toStdString();
}
QDomElement provenanceElement = provenancesElement.firstChildElement("provenance");
while (!provenanceElement.isNull())
{
if (provenanceElement.hasChildNodes())
{
m_provenances.push_back(BCLProvenance(provenanceElement));
}
else
{
break;
}
provenanceElement = provenanceElement.nextSiblingElement("provenance");
}
QDomElement provenanceRequiredElement = provenancesElement.firstChildElement("provenance_required");
if (!provenanceRequiredElement.isNull())
{
std::string required = provenanceRequiredElement.firstChild().nodeValue().toStdString();
m_provenanceRequired = (required == "true") ? true : false;
}
QDomElement tagElement = tagsElement.firstChildElement("tag");
while (!tagElement.isNull())
{
m_tags.push_back(tagElement.firstChild().nodeValue().toStdString());
tagElement = tagElement.nextSiblingElement("tag");
}
QDomElement attributeElement = attributesElement.firstChildElement("attribute");
while (!attributeElement.isNull())
{
if (attributeElement.hasChildNodes())
{
std::string name = attributeElement.firstChildElement("name").firstChild()
.nodeValue().toStdString();
std::string value = attributeElement.firstChildElement("value").firstChild()
.nodeValue().toStdString();
std::string datatype = attributeElement.firstChildElement("datatype").firstChild()
.nodeValue().toStdString();
// Units are optional
std::string units = attributeElement.firstChildElement("units").firstChild()
.nodeValue().toStdString();
bool doubleOk;
double doubleValue = toQString(value).toDouble(&doubleOk);
bool intOk;
int intValue = toQString(value).toInt(&intOk);
//.........这里部分代码省略.........
示例10: initialiseDefaultPrefs
void ColorSetManager::initialiseDefaultPrefs(struct ApplicationPrefs& appPrefs)
{
QString pfadC = ScPaths::instance().libDir()+"swatches/";
QString pfadC2 = pfadC + "Scribus_Basic.xml";
QFile fiC(pfadC2);
if (!fiC.exists())
{
appPrefs.colorPrefs.DColors.insert("White", ScColor(0, 0, 0, 0));
appPrefs.colorPrefs.DColors.insert("Black", ScColor(0, 0, 0, 255));
ScColor cc = ScColor(255, 255, 255, 255);
cc.setRegistrationColor(true);
appPrefs.colorPrefs.DColors.insert("Registration", cc);
appPrefs.colorPrefs.DColors.insert("Blue", ScColor(255, 255, 0, 0));
appPrefs.colorPrefs.DColors.insert("Cyan", ScColor(255, 0, 0, 0));
appPrefs.colorPrefs.DColors.insert("Green", ScColor(255, 0, 255, 0));
appPrefs.colorPrefs.DColors.insert("Red", ScColor(0, 255, 255, 0));
appPrefs.colorPrefs.DColors.insert("Yellow", ScColor(0, 0, 255, 0));
appPrefs.colorPrefs.DColors.insert("Magenta", ScColor(0, 255, 0, 0));
appPrefs.colorPrefs.DColorSet = "Scribus-Small";
}
else
{
if (fiC.open(QIODevice::ReadOnly))
{
QString ColorEn, Cname;
int Rval, Gval, Bval;
QTextStream tsC(&fiC);
ColorEn = tsC.readLine();
if (ColorEn.startsWith("<?xml version="))
{
QByteArray docBytes("");
loadRawText(pfadC2, docBytes);
QString docText("");
docText = QString::fromUtf8(docBytes);
QDomDocument docu("scridoc");
docu.setContent(docText);
ScColor lf = ScColor();
QDomElement elem = docu.documentElement();
QDomNode PAGE = elem.firstChild();
while(!PAGE.isNull())
{
QDomElement pg = PAGE.toElement();
if(pg.tagName()=="COLOR" && pg.attribute("NAME")!=CommonStrings::None)
{
if (pg.hasAttribute("CMYK"))
lf.setNamedColor(pg.attribute("CMYK"));
else
lf.fromQColor(QColor(pg.attribute("RGB")));
if (pg.hasAttribute("Spot"))
lf.setSpotColor(static_cast<bool>(pg.attribute("Spot").toInt()));
else
lf.setSpotColor(false);
if (pg.hasAttribute("Register"))
lf.setRegistrationColor(static_cast<bool>(pg.attribute("Register").toInt()));
else
lf.setRegistrationColor(false);
appPrefs.colorPrefs.DColors.insert(pg.attribute("NAME"), lf);
}
PAGE=PAGE.nextSibling();
}
}
else
{
while (!tsC.atEnd())
{
ColorEn = tsC.readLine();
QTextStream CoE(&ColorEn, QIODevice::ReadOnly);
CoE >> Rval;
CoE >> Gval;
CoE >> Bval;
CoE >> Cname;
ScColor tmp;
tmp.setColorRGB(Rval, Gval, Bval);
appPrefs.colorPrefs.DColors.insert(Cname, tmp);
}
}
fiC.close();
}
appPrefs.colorPrefs.DColorSet = "Scribus Basic";
}
示例11: render
void SdfRenderer::render(QPainter *painter, const QRectF &bounds)
{
current_size_x = static_cast<int>(bounds.width());
current_size_y = static_cast<int>(bounds.height());
mStartX = static_cast<int>(bounds.x());
mStartY = static_cast<int>(bounds.y());
this->painter = painter;
QDomElement docElem = doc.documentElement();
QDomNode node = docElem.firstChild();
while(!node.isNull())
{
QDomElement elem = node.toElement();
if(!elem.isNull())
{
if (elem.tagName()=="line")
{
line(elem);
}
else if(elem.tagName()=="ellipse")
{
ellipse(elem);
}
else if (elem.tagName() == "arc") {
arc(elem);
}
else if(elem.tagName()=="background")
{
background(elem);
}
else if(elem.tagName()=="text")
{
draw_text(elem);
}
else if (elem.tagName()=="rectangle")
{
rectangle(elem);
}
else if (elem.tagName()=="polygon")
{
polygon(elem);
}
else if (elem.tagName()=="point")
{
point(elem);
}
else if(elem.tagName()=="path")
{
path_draw(elem);
}
else if(elem.tagName()=="stylus")
{
stylus_draw(elem);
}
else if(elem.tagName()=="curve")
{
curve_draw(elem);
}
else if(elem.tagName()=="image")
{
image_draw(elem);
}
}
node = node.nextSibling();
}
this->painter = 0;
}
示例12: importColorsFromFile
//.........这里部分代码省略.........
else if (ext == "sbz")
{
PaletteLoader_Swatchbook swatchbookLoader;
if (swatchbookLoader.isFileSupported(fileName))
{
swatchbookLoader.setupTargets(&EditColors, dialogGradients);
return swatchbookLoader.importFile(fileName, merge);
}
return false;
}
else // try for OpenOffice, Viva and our own format
{
QFile fiC(fileName);
if (fiC.open(QIODevice::ReadOnly))
{
QString ColorEn, Cname;
int Rval, Gval, Bval, Kval;
ScTextStream tsC(&fiC);
ColorEn = tsC.readLine();
bool cus = false;
if (ColorEn.contains("OpenOffice"))
cus = true;
if ((ColorEn.startsWith("<?xml version=")) || (ColorEn.contains("VivaColors")))
{
QByteArray docBytes("");
loadRawText(fileName, docBytes);
QString docText("");
docText = QString::fromUtf8(docBytes);
QDomDocument docu("scridoc");
docu.setContent(docText);
ScColor lf = ScColor();
QDomElement elem = docu.documentElement();
QString dTag = "";
dTag = elem.tagName();
QString nameMask = "%1";
nameMask = elem.attribute("mask", "%1");
QDomNode PAGE = elem.firstChild();
while (!PAGE.isNull())
{
QDomElement pg = PAGE.toElement();
if (pg.tagName()=="COLOR" && pg.attribute("NAME")!=CommonStrings::None)
{
if (pg.hasAttribute("SPACE"))
{
QString space = pg.attribute("SPACE");
if (space == "CMYK")
{
double c = pg.attribute("C", "0").toDouble() / 100.0;
double m = pg.attribute("M", "0").toDouble() / 100.0;
double y = pg.attribute("Y", "0").toDouble() / 100.0;
double k = pg.attribute("K", "0").toDouble() / 100.0;
lf.setCmykColorF(c, m, y, k);
}
else if (space == "RGB")
{
double r = pg.attribute("R", "0").toDouble() / 255.0;
double g = pg.attribute("G", "0").toDouble() / 255.0;
double b = pg.attribute("B", "0").toDouble() / 255.0;
lf.setRgbColorF(r, g, b);
}
else if (space == "Lab")
{
double L = pg.attribute("L", "0").toDouble();
double a = pg.attribute("A", "0").toDouble();
double b = pg.attribute("B", "0").toDouble();
lf.setLabColor(L, a, b);
示例13: while
QgsFeatureRendererV2* QgsCategorizedSymbolRendererV2::create( QDomElement& element )
{
QDomElement symbolsElem = element.firstChildElement( "symbols" );
if ( symbolsElem.isNull() )
return NULL;
QDomElement catsElem = element.firstChildElement( "categories" );
if ( catsElem.isNull() )
return NULL;
QgsSymbolV2Map symbolMap = QgsSymbolLayerV2Utils::loadSymbols( symbolsElem );
QgsCategoryList cats;
QDomElement catElem = catsElem.firstChildElement();
while ( !catElem.isNull() )
{
if ( catElem.tagName() == "category" )
{
QVariant value = QVariant( catElem.attribute( "value" ) );
QString symbolName = catElem.attribute( "symbol" );
QString label = catElem.attribute( "label" );
bool render = catElem.attribute( "render" ) != "false";
if ( symbolMap.contains( symbolName ) )
{
QgsSymbolV2* symbol = symbolMap.take( symbolName );
cats.append( QgsRendererCategoryV2( value, symbol, label, render ) );
}
}
catElem = catElem.nextSiblingElement();
}
QString attrName = element.attribute( "attr" );
QgsCategorizedSymbolRendererV2* r = new QgsCategorizedSymbolRendererV2( attrName, cats );
// delete symbols if there are any more
QgsSymbolLayerV2Utils::clearSymbolMap( symbolMap );
// try to load source symbol (optional)
QDomElement sourceSymbolElem = element.firstChildElement( "source-symbol" );
if ( !sourceSymbolElem.isNull() )
{
QgsSymbolV2Map sourceSymbolMap = QgsSymbolLayerV2Utils::loadSymbols( sourceSymbolElem );
if ( sourceSymbolMap.contains( "0" ) )
{
r->setSourceSymbol( sourceSymbolMap.take( "0" ) );
}
QgsSymbolLayerV2Utils::clearSymbolMap( sourceSymbolMap );
}
// try to load color ramp (optional)
QDomElement sourceColorRampElem = element.firstChildElement( "colorramp" );
if ( !sourceColorRampElem.isNull() && sourceColorRampElem.attribute( "name" ) == "[source]" )
{
r->setSourceColorRamp( QgsSymbolLayerV2Utils::loadColorRamp( sourceColorRampElem ) );
QDomElement invertedColorRampElem = element.firstChildElement( "invertedcolorramp" );
if ( !invertedColorRampElem.isNull() )
r->setInvertedColorRamp( invertedColorRampElem.attribute( "value" ) == "1" );
}
QDomElement rotationElem = element.firstChildElement( "rotation" );
if ( !rotationElem.isNull() && !rotationElem.attribute( "field" ).isEmpty() )
{
QgsCategoryList::iterator it = r->mCategories.begin();
for ( ; it != r->mCategories.end(); ++it )
{
convertSymbolRotation( it->symbol(), rotationElem.attribute( "field" ) );
}
if ( r->mSourceSymbol.data() )
{
convertSymbolRotation( r->mSourceSymbol.data(), rotationElem.attribute( "field" ) );
}
}
QDomElement sizeScaleElem = element.firstChildElement( "sizescale" );
if ( !sizeScaleElem.isNull() && !sizeScaleElem.attribute( "field" ).isEmpty() )
{
QgsCategoryList::iterator it = r->mCategories.begin();
for ( ; it != r->mCategories.end(); ++it )
{
convertSymbolSizeScale( it->symbol(),
QgsSymbolLayerV2Utils::decodeScaleMethod( sizeScaleElem.attribute( "scalemethod" ) ),
sizeScaleElem.attribute( "field" ) );
}
if ( r->mSourceSymbol.data() && r->mSourceSymbol->type() == QgsSymbolV2::Marker )
{
convertSymbolSizeScale( r->mSourceSymbol.data(),
QgsSymbolLayerV2Utils::decodeScaleMethod( sizeScaleElem.attribute( "scalemethod" ) ),
sizeScaleElem.attribute( "field" ) );
}
}
// TODO: symbol levels
return r;
}
示例14: parseCapabilitiesDom
bool QgsWcsCapabilities::parseCapabilitiesDom( QByteArray const &xml, QgsWcsCapabilitiesProperty &capabilities )
{
QgsDebugMsg( "Entered." );
#ifdef QGISDEBUG
QFile file( QDir::tempPath() + "/qgis-wcs-capabilities.xml" );
if ( file.open( QIODevice::WriteOnly ) )
{
file.write( xml );
file.close();
}
#endif
if ( ! convertToDom( xml ) ) return false;
QDomElement docElem = mCapabilitiesDom.documentElement();
// Assert that the DTD is what we expected (i.e. a WCS Capabilities document)
QgsDebugMsg( "testing tagName " + docElem.tagName() );
QString tagName = stripNS( docElem.tagName() );
if (
// We don't support 1.0, but try WCS_Capabilities tag to get version
tagName != "WCS_Capabilities" && // 1.0
tagName != "Capabilities" // 1.1, tags seen: Capabilities, wcs:Capabilities
)
{
if ( tagName == "ExceptionReport" )
{
mErrorTitle = tr( "Exception" );
mErrorFormat = "text/plain";
mError = tr( "Could not get WCS capabilities: %1" ).arg( domElementText( docElem, "Exception.ExceptionText" ) );
}
else
{
mErrorTitle = tr( "Dom Exception" );
mErrorFormat = "text/plain";
mError = tr( "Could not get WCS capabilities in the expected format (DTD): no %1 found.\nThis might be due to an incorrect WCS Server URL.\nTag:%3\nResponse was:\n%4" )
.arg( "Capabilities" )
.arg( docElem.tagName() )
.arg( QString( xml ) );
}
QgsLogger::debug( "Dom Exception: " + mError );
return false;
}
capabilities.version = docElem.attribute( "version" );
mVersion = capabilities.version;
if ( !mVersion.startsWith( "1.0" ) && !mVersion.startsWith( "1.1" ) )
{
mErrorTitle = tr( "Version not supported" );
mErrorFormat = "text/plain";
mError = tr( "WCS server version %1 is not supported by QGIS (supported versions: 1.0.0, 1.1.0, 1.1.2)" )
.arg( mVersion );
QgsLogger::debug( "WCS version: " + mError );
return false;
}
if ( mVersion.startsWith( "1.0" ) )
{
capabilities.title = domElementText( docElem, "Service.name" );
capabilities.abstract = domElementText( docElem, "Service.description" );
// There is also "label" in 1.0
capabilities.getCoverageGetUrl = domElement( docElem, "Capability.Request.GetCoverage.DCPType.HTTP.Get.OnlineResource" ).attribute( "xlink:href" );
parseContentMetadata( domElement( docElem, "ContentMetadata" ), capabilities.contents );
}
else if ( mVersion.startsWith( "1.1" ) )
{
capabilities.title = domElementText( docElem, "ServiceIdentification.Title" );
capabilities.abstract = domElementText( docElem, "ServiceIdentification.Abstract" );
QList<QDomElement> operationElements = domElements( docElem, "OperationsMetadata.Operation" );
Q_FOREACH ( const QDomElement& el, operationElements )
{
if ( el.attribute( "name" ) == "GetCoverage" )
{
capabilities.getCoverageGetUrl = domElement( el, "DCP.HTTP.Get" ).attribute( "xlink:href" );
}
}
parseCoverageSummary( domElement( docElem, "Contents" ), capabilities.contents );
}
示例15: capabilitiesReplyFinished
void QgsWfsCapabilities::capabilitiesReplyFinished()
{
const QByteArray &buffer = mResponse;
QgsDebugMsg( "parsing capabilities: " + buffer );
// parse XML
QString capabilitiesDocError;
QDomDocument capabilitiesDocument;
if ( !capabilitiesDocument.setContent( buffer, true, &capabilitiesDocError ) )
{
mErrorCode = QgsWfsRequest::XmlError;
mErrorMessage = capabilitiesDocError;
emit gotCapabilities();
return;
}
QDomElement doc = capabilitiesDocument.documentElement();
// handle exceptions
if ( doc.tagName() == QLatin1String( "ExceptionReport" ) )
{
QDomNode ex = doc.firstChild();
QString exc = ex.toElement().attribute( QStringLiteral( "exceptionCode" ), QStringLiteral( "Exception" ) );
QDomElement ext = ex.firstChild().toElement();
mErrorCode = QgsWfsRequest::ServerExceptionError;
mErrorMessage = exc + ": " + ext.firstChild().nodeValue();
emit gotCapabilities();
return;
}
mCaps.clear();
//test wfs version
mCaps.version = doc.attribute( QStringLiteral( "version" ) );
if ( !mCaps.version.startsWith( QLatin1String( "1.0" ) ) &&
!mCaps.version.startsWith( QLatin1String( "1.1" ) ) &&
!mCaps.version.startsWith( QLatin1String( "2.0" ) ) )
{
mErrorCode = WFSVersionNotSupported;
mErrorMessage = tr( "WFS version %1 not supported" ).arg( mCaps.version );
emit gotCapabilities();
return;
}
// WFS 2.0 implementation are supposed to implement resultType=hits, and some
// implementations (GeoServer) might advertize it, whereas others (MapServer) do not.
// WFS 1.1 implementation too I think, but in the examples of the GetCapabilities
// response of the WFS 1.1 standard (and in common implementations), this is
// explicitly advertized
if ( mCaps.version.startsWith( QLatin1String( "2.0" ) ) )
mCaps.supportsHits = true;
// Note: for conveniency, we do not use the elementsByTagNameNS() method as
// the WFS and OWS namespaces URI are not the same in all versions
if ( mCaps.version.startsWith( QLatin1String( "1.0" ) ) )
{
QDomElement capabilityElem = doc.firstChildElement( QStringLiteral( "Capability" ) );
if ( !capabilityElem.isNull() )
{
QDomElement requestElem = capabilityElem.firstChildElement( QStringLiteral( "Request" ) );
if ( !requestElem.isNull() )
{
QDomElement getFeatureElem = requestElem.firstChildElement( QStringLiteral( "GetFeature" ) );
if ( !getFeatureElem.isNull() )
{
QDomElement resultFormatElem = getFeatureElem.firstChildElement( QStringLiteral( "ResultFormat" ) );
if ( !resultFormatElem.isNull() )
{
QDomElement child = resultFormatElem.firstChildElement();
while ( !child.isNull() )
{
mCaps.outputFormats << child.tagName();
child = child.nextSiblingElement();
}
}
}
}
}
}
// find <ows:OperationsMetadata>
QDomElement operationsMetadataElem = doc.firstChildElement( QStringLiteral( "OperationsMetadata" ) );
if ( !operationsMetadataElem.isNull() )
{
QDomNodeList contraintList = operationsMetadataElem.elementsByTagName( QStringLiteral( "Constraint" ) );
for ( int i = 0; i < contraintList.size(); ++i )
{
QDomElement contraint = contraintList.at( i ).toElement();
if ( contraint.attribute( QStringLiteral( "name" ) ) == QLatin1String( "DefaultMaxFeatures" ) /* WFS 1.1 */ )
{
QDomElement value = contraint.firstChildElement( QStringLiteral( "Value" ) );
if ( !value.isNull() )
{
mCaps.maxFeatures = value.text().toInt();
QgsDebugMsg( QString( "maxFeatures: %1" ).arg( mCaps.maxFeatures ) );
}
}
else if ( contraint.attribute( QStringLiteral( "name" ) ) == QLatin1String( "CountDefault" ) /* WFS 2.0 (e.g. MapServer) */ )
//.........这里部分代码省略.........