void UMLArtifact::saveToXMI(QDomDocument& qDoc, QDomElement& qElement) { QDomElement artifactElement = UMLObject::save("UML:Artifact", qDoc); artifactElement.setAttribute("drawas", m_drawAsType); qElement.appendChild(artifactElement); }
bool StoreVCard::setVCard( const QString &bareJid, vCardData &vCard ) { QDomDocument vCardXMLDoc("vCard"); if( pathCache.isEmpty() ) return false; QDomElement rootVCard = vCardXMLDoc.createElement("vCard"); vCardXMLDoc.appendChild( rootVCard ); QDomElement nodeNickname = vCardXMLDoc.createElement( "nickName" ); rootVCard.appendChild(nodeNickname); QDomText txtNickname = vCardXMLDoc.createTextNode( vCard.nickName.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "firstName", vCard.firstName ); nodeNickname = vCardXMLDoc.createElement( "firstName" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.firstName.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "middleName", vCard.middleName ); nodeNickname = vCardXMLDoc.createElement( "middleName" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.middleName.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "lastName", vCard.lastName ); nodeNickname = vCardXMLDoc.createElement( "lastName" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.lastName.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "url", vCard.url ); nodeNickname = vCardXMLDoc.createElement( "url" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.url.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "eMail", vCard.eMail ); nodeNickname = vCardXMLDoc.createElement( "eMail" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.eMail.toUtf8() ); nodeNickname.appendChild( txtNickname ); //setElementStore( "fullName", vCard.fullName ); nodeNickname = vCardXMLDoc.createElement( "fullName" ); rootVCard.appendChild(nodeNickname); txtNickname = vCardXMLDoc.createTextNode( vCard.fullName.toUtf8() ); nodeNickname.appendChild( txtNickname ); #ifdef QT_DEBUG //qDebug() << "doc=" << vCardXMLDoc.toString(); #endif QString fileVCard = pathCache + QDir::separator() + bareJid + QDir::separator() +"vCard.xml"; QFile xmlVCardFile(fileVCard); if( !xmlVCardFile.open( QIODevice::WriteOnly | QIODevice::Text ) ) { qCritical() << "commitVCard: Failed to open file for writing: " << fileVCard; return false; } QTextStream stream( &xmlVCardFile ); stream << vCardXMLDoc.toString(); xmlVCardFile.close(); return true; }
QDomElement VCard::toXml(QDomDocument *doc) const { QDomElement v = doc->createElement("vCard"); v.setAttribute("version", "2.0"); v.setAttribute("prodid", "-//HandGen//NONSGML vGen v1.0//EN"); v.setAttribute("xmlns", "vcard-temp"); if ( !d->version.isEmpty() ) v.appendChild( textTag(doc, "VERSION", d->version) ); if ( !d->fullName.isEmpty() ) v.appendChild( textTag(doc, "FN", d->fullName) ); if ( !d->familyName.isEmpty() || !d->givenName.isEmpty() || !d->middleName.isEmpty() || !d->prefixName.isEmpty() || !d->suffixName.isEmpty() ) { QDomElement w = doc->createElement("N"); if ( !d->familyName.isEmpty() ) w.appendChild( textTag(doc, "FAMILY", d->familyName) ); if ( !d->givenName.isEmpty() ) w.appendChild( textTag(doc, "GIVEN", d->givenName) ); if ( !d->middleName.isEmpty() ) w.appendChild( textTag(doc, "MIDDLE", d->middleName) ); if ( !d->prefixName.isEmpty() ) w.appendChild( textTag(doc, "PREFIX", d->prefixName) ); if ( !d->suffixName.isEmpty() ) w.appendChild( textTag(doc, "SUFFIX", d->suffixName) ); v.appendChild(w); } if ( !d->nickName.isEmpty() ) v.appendChild( textTag(doc, "NICKNAME", d->nickName) ); if ( !d->photo.isEmpty() || !d->photoURI.isEmpty() ) { QDomElement w = doc->createElement("PHOTO"); if ( !d->photo.isEmpty() ) { w.appendChild( textTag(doc, "TYPE", image2type(d->photo)) ); w.appendChild( textTag(doc, "BINVAL", foldString( QCA::Base64().arrayToString(d->photo)) ) ); } else if ( !d->photoURI.isEmpty() ) w.appendChild( textTag(doc, "EXTVAL", d->photoURI) ); v.appendChild(w); } if ( !d->bday.isEmpty() ) v.appendChild( textTag(doc, "BDAY", d->bday) ); if ( !d->addressList.isEmpty() ) { AddressList::Iterator it = d->addressList.begin(); for ( ; it != d->addressList.end(); ++it ) { QDomElement w = doc->createElement("ADR"); Address a = *it; if ( a.home ) w.appendChild( emptyTag(doc, "HOME") ); if ( a.work ) w.appendChild( emptyTag(doc, "WORK") ); if ( a.postal ) w.appendChild( emptyTag(doc, "POSTAL") ); if ( a.parcel ) w.appendChild( emptyTag(doc, "PARCEL") ); if ( a.dom ) w.appendChild( emptyTag(doc, "DOM") ); if ( a.intl ) w.appendChild( emptyTag(doc, "INTL") ); if ( a.pref ) w.appendChild( emptyTag(doc, "PREF") ); if ( !a.pobox.isEmpty() ) w.appendChild( textTag(doc, "POBOX", a.pobox) ); if ( !a.extaddr.isEmpty() ) w.appendChild( textTag(doc, "EXTADR", a.extaddr) ); if ( !a.street.isEmpty() ) w.appendChild( textTag(doc, "STREET", a.street) ); if ( !a.locality.isEmpty() ) w.appendChild( textTag(doc, "LOCALITY", a.locality) ); if ( !a.region.isEmpty() ) w.appendChild( textTag(doc, "REGION", a.region) ); if ( !a.pcode.isEmpty() ) w.appendChild( textTag(doc, "PCODE", a.pcode) ); if ( !a.country.isEmpty() ) w.appendChild( textTag(doc, "CTRY", a.country) ); v.appendChild(w); } } if ( !d->labelList.isEmpty() ) { LabelList::Iterator it = d->labelList.begin(); for ( ; it != d->labelList.end(); ++it ) { QDomElement w = doc->createElement("LABEL"); Label l = *it; if ( l.home ) w.appendChild( emptyTag(doc, "HOME") ); if ( l.work ) w.appendChild( emptyTag(doc, "WORK") ); if ( l.postal ) w.appendChild( emptyTag(doc, "POSTAL") ); if ( l.parcel ) w.appendChild( emptyTag(doc, "PARCEL") ); if ( l.dom ) w.appendChild( emptyTag(doc, "DOM") ); if ( l.intl ) w.appendChild( emptyTag(doc, "INTL") ); if ( l.pref ) w.appendChild( emptyTag(doc, "PREF") ); if ( !l.lines.isEmpty() ) { QStringList::Iterator it = l.lines.begin(); for ( ; it != l.lines.end(); ++it ) w.appendChild( textTag(doc, "LINE", *it) ); } v.appendChild(w); } } if ( !d->phoneList.isEmpty() ) { PhoneList::Iterator it = d->phoneList.begin(); for ( ; it != d->phoneList.end(); ++it ) { QDomElement w = doc->createElement("TEL"); Phone p = *it; if ( p.home ) w.appendChild( emptyTag(doc, "HOME") ); if ( p.work ) w.appendChild( emptyTag(doc, "WORK") ); if ( p.voice ) w.appendChild( emptyTag(doc, "VOICE") ); if ( p.fax ) w.appendChild( emptyTag(doc, "FAX") ); if ( p.pager ) w.appendChild( emptyTag(doc, "PAGER") ); if ( p.msg ) w.appendChild( emptyTag(doc, "MSG") ); if ( p.cell ) w.appendChild( emptyTag(doc, "CELL") ); if ( p.video ) w.appendChild( emptyTag(doc, "VIDEO") ); if ( p.bbs ) w.appendChild( emptyTag(doc, "BBS") ); if ( p.modem ) w.appendChild( emptyTag(doc, "MODEM") ); if ( p.isdn ) w.appendChild( emptyTag(doc, "ISDN") ); if ( p.pcs ) w.appendChild( emptyTag(doc, "PCS") ); if ( p.pref ) w.appendChild( emptyTag(doc, "PREF") ); if ( !p.number.isEmpty() ) w.appendChild( textTag(doc, "NUMBER", p.number) ); v.appendChild(w); } } if ( !d->emailList.isEmpty() ) { EmailList::Iterator it = d->emailList.begin(); for ( ; it != d->emailList.end(); ++it ) { QDomElement w = doc->createElement("EMAIL"); Email e = *it; if ( e.home ) w.appendChild( emptyTag(doc, "HOME") ); if ( e.work ) w.appendChild( emptyTag(doc, "WORK") ); if ( e.internet ) w.appendChild( emptyTag(doc, "INTERNET") ); if ( e.x400 ) w.appendChild( emptyTag(doc, "X400") ); if ( !e.userid.isEmpty() ) w.appendChild( textTag(doc, "USERID", e.userid) ); v.appendChild(w); } } if ( !d->jid.isEmpty() ) v.appendChild( textTag(doc, "JABBERID", d->jid) ); if ( !d->mailer.isEmpty() ) v.appendChild( textTag(doc, "MAILER", d->mailer) ); if ( !d->timezone.isEmpty() ) v.appendChild( textTag(doc, "TZ", d->timezone) ); if ( !d->geo.lat.isEmpty() || !d->geo.lon.isEmpty() ) { QDomElement w = doc->createElement("GEO"); if ( !d->geo.lat.isEmpty() ) w.appendChild( textTag(doc, "LAT", d->geo.lat) ); if ( !d->geo.lon.isEmpty() ) w.appendChild( textTag(doc, "LON", d->geo.lon)); v.appendChild(w); } if ( !d->title.isEmpty() ) v.appendChild( textTag(doc, "TITLE", d->title) ); if ( !d->role.isEmpty() ) v.appendChild( textTag(doc, "ROLE", d->role) ); if ( !d->logo.isEmpty() || !d->logoURI.isEmpty() ) { QDomElement w = doc->createElement("LOGO"); if ( !d->logo.isEmpty() ) { w.appendChild( textTag(doc, "TYPE", image2type(d->logo)) ); w.appendChild( textTag(doc, "BINVAL", foldString( QCA::Base64().arrayToString(d->logo)) ) ); } else if ( !d->logoURI.isEmpty() ) w.appendChild( textTag(doc, "EXTVAL", d->logoURI) ); v.appendChild(w); } if ( !d->agentURI.isEmpty() || (d->agent && d->agent->isEmpty()) ) { QDomElement w = doc->createElement("AGENT"); if ( d->agent && !d->agent->isEmpty() ) w.appendChild( d->agent->toXml(doc) ); else if ( !d->agentURI.isEmpty() ) w.appendChild( textTag(doc, "EXTVAL", d->agentURI) ); v.appendChild(w); } if ( !d->org.name.isEmpty() || !d->org.unit.isEmpty() ) { QDomElement w = doc->createElement("ORG"); if ( !d->org.name.isEmpty() ) w.appendChild( textTag(doc, "ORGNAME", d->org.name) ); if ( !d->org.unit.isEmpty() ) { QStringList::Iterator it = d->org.unit.begin(); for ( ; it != d->org.unit.end(); ++it ) w.appendChild( textTag(doc, "ORGUNIT", *it) ); } v.appendChild(w); } if ( !d->categories.isEmpty() ) { QDomElement w = doc->createElement("CATEGORIES"); QStringList::Iterator it = d->categories.begin(); for ( ; it != d->categories.end(); ++it ) w.appendChild( textTag(doc, "KEYWORD", *it) ); v.appendChild(w); } if ( !d->note.isEmpty() ) v.appendChild( textTag(doc, "NOTE", d->note) ); if ( !d->prodId.isEmpty() ) v.appendChild( textTag(doc, "PRODID", d->prodId) ); if ( !d->rev.isEmpty() ) v.appendChild( textTag(doc, "REV", d->rev) ); if ( !d->sortString.isEmpty() ) v.appendChild( textTag(doc, "SORT-STRING", d->sortString) ); if ( !d->sound.isEmpty() || !d->soundURI.isEmpty() || !d->soundPhonetic.isEmpty() ) { QDomElement w = doc->createElement("SOUND"); if ( !d->sound.isEmpty() ) w.appendChild( textTag(doc, "BINVAL", foldString( QCA::Base64().arrayToString(d->sound)) ) ); else if ( !d->soundURI.isEmpty() ) w.appendChild( textTag(doc, "EXTVAL", d->soundURI) ); else if ( !d->soundPhonetic.isEmpty() ) w.appendChild( textTag(doc, "PHONETIC", d->soundPhonetic) ); v.appendChild(w); } if ( !d->uid.isEmpty() ) v.appendChild( textTag(doc, "UID", d->uid) ); if ( !d->url.isEmpty() ) v.appendChild( textTag(doc, "URL", d->url) ); if ( !d->desc.isEmpty() ) v.appendChild( textTag(doc, "DESC", d->desc) ); if ( d->privacyClass != pcNone ) { QDomElement w = doc->createElement("CLASS"); if ( d->privacyClass == pcPublic ) w.appendChild( emptyTag(doc, "PUBLIC") ); else if ( d->privacyClass == pcPrivate ) w.appendChild( emptyTag(doc, "PRIVATE") ); else if ( d->privacyClass == pcConfidential ) w.appendChild( emptyTag(doc, "CONFIDENTIAL") ); v.appendChild(w); } if ( !d->key.isEmpty() ) { QDomElement w = doc->createElement("KEY"); // TODO: Justin, please check out this code w.appendChild( textTag(doc, "TYPE", "text/plain")); // FIXME w.appendChild( textTag(doc, "CRED", QString::fromUtf8(d->key)) ); // FIXME v.appendChild(w); } #ifdef YAPSI if ( d->gender != UnknownGender ) { v.appendChild( textTag(doc, "GENDER", d->gender == Male ? "m" : "f") ); } if ( !d->mood.isEmpty() ) { v.appendChild( textTag(doc, "MOOD", d->mood) ); } #endif return v; }
QDomElement PListSerializer::serializeList(QDomDocument &doc, const QVariantList &list) { QDomElement element = doc.createElement(QStringLiteral("array")); foreach(QVariant item, list) { element.appendChild(serializeElement(doc, item)); }
QString PipelineLoader::serialize( Pipeline* pl ) throw(std::runtime_error) /*TODO checked exceptions*/ { //RefPtr<Pipeline> pl = pipeline; QDomDocument doc; QDomElement xmlPipeline = doc.createElement( "pipeline" ); doc.appendChild( xmlPipeline ); QDomElement xmlElements = doc.createElement( "elements" ); xmlPipeline.appendChild( xmlElements ); const Pipeline::PipelineElementMap& ples = pl->getChildren(); QMapIterator<int, RefPtr<PipelineElement> > itr( ples ); while( itr.hasNext() ) { itr.next(); RefPtr<PipelineElement> ple = itr.value(); QString className = ple->metaObject()->className(); int id = ple->getId(); QDomElement xmlElement = doc.createElement( "element" ); xmlElement.setAttribute( "id", id ); xmlElement.setAttribute( "name", className ); xmlElements.appendChild( xmlElement ); QDomElement xmlProperties = doc.createElement( "properties" ); xmlElement.appendChild( xmlProperties ); // first do static properties const QMetaObject* metaObject = ple->metaObject(); for(int i = metaObject->propertyOffset(); i < metaObject->propertyCount(); ++i) { QMetaProperty property = metaObject->property(i); QString propertyName = QString::fromLatin1( property.name() ); QString propertyValue; QVariant::Type propertyType = property.type(); // custom types are saved here if( propertyType == QVariant::UserType ) { // TODO: pass control here to pipeline element // to parse custom types? QVariant value = property.read( ple ); if( value.canConvert<plv::Enum>() ) { plv::Enum e = value.value<plv::Enum>(); propertyValue = e.getSelectedItemName(); } } // all other QVariant can easily be converted to string else { propertyValue = property.read( ple ).toString(); } QDomElement xmlProperty = doc.createElement( propertyName ); QDomText text = doc.createTextNode( propertyValue ); xmlProperty.appendChild( text ); xmlProperties.appendChild( xmlProperty ); } // now dynamic properties // these are not used by processor definitions { QVariant xVal = ple->property("sceneCoordX"); QVariant yVal = ple->property("sceneCoordY"); if( xVal.isValid() && yVal.isValid() ) { QDomElement xmlXValProperty = doc.createElement( "sceneCoordX" ); QDomText xValText = doc.createTextNode( xVal.toString() ); xmlXValProperty.appendChild( xValText ); xmlProperties.appendChild( xmlXValProperty ); QDomElement xmlYValProperty = doc.createElement( "sceneCoordY" ); QDomText yValText = doc.createTextNode( yVal.toString() ); xmlYValProperty.appendChild( yValText ); xmlProperties.appendChild( xmlYValProperty ); } } } QDomElement xmlConnections = doc.createElement( "connections" ); xmlPipeline.appendChild( xmlConnections ); const Pipeline::PipelineConnectionsList& connections = pl->getConnections(); foreach( RefPtr<PinConnection> connection, connections ) { QDomElement xmlConnection = doc.createElement( "connection" ); xmlConnections.appendChild( xmlConnection ); QDomElement xmlSink = doc.createElement("sink"); xmlConnection.appendChild( xmlSink ); QDomElement xmlSinkPinName = doc.createElement( "pinName" ); QDomElement xmlSinkId = doc.createElement( "processorId" ); xmlSink.appendChild( xmlSinkPinName ); xmlSink.appendChild( xmlSinkId ); QString sinkPinName = connection->toPin()->getName(); QString sinkId = QVariant( connection->toPin()->getOwner()->getId() ).toString(); QDomText xmlSinkNameText = doc.createTextNode( sinkPinName ); QDomText xmlSinkIdText = doc.createTextNode( sinkId ); xmlSinkPinName.appendChild( xmlSinkNameText ); xmlSinkId.appendChild( xmlSinkIdText ); QDomElement xmlSource = doc.createElement("source"); xmlConnection.appendChild( xmlSource ); QDomElement xmlSourcePinName = doc.createElement( "pinName" ); QDomElement xmlSourceId = doc.createElement( "processorId" ); xmlSource.appendChild( xmlSourcePinName ); xmlSource.appendChild( xmlSourceId ); QString sourcePinName = connection->fromPin()->getName(); QString sourceId = QVariant( connection->fromPin()->getOwner()->getId() ).toString(); QDomText xmlSourceNameText = doc.createTextNode( sourcePinName ); QDomText xmlSourceIdText = doc.createTextNode( sourceId ); xmlSourcePinName.appendChild( xmlSourceNameText ); xmlSourceId.appendChild( xmlSourceIdText ); }
void XMLOperations::insertDownloadingNode(SDownloading tmpStruct) { QDomDocument domDocument; QFile downloadingFile(DOWNLOADINGFILE_PATH); if (downloadingFile.open(QIODevice::ReadOnly)) { // 此处需做错误判断 if (!domDocument.setContent(&downloadingFile)) { return; } } else return; downloadingFile.close(); QDomElement fileElement = domDocument.createElement("File"); fileElement.appendChild(createChildElement("Name", tmpStruct.name)); fileElement.appendChild(createChildElement("JobMaxSpeed", tmpStruct.jobMaxSpeed)); fileElement.appendChild(createChildElement("SavePath", tmpStruct.savePath)); fileElement.appendChild(createChildElement("EnableUpload", tmpStruct.enableUpload)); fileElement.appendChild(createChildElement("URL", tmpStruct.URL)); fileElement.appendChild(createChildElement("RedirectURL", tmpStruct.redirectRUL)); fileElement.appendChild(createChildElement("DLToolsType", tmpStruct.dlToolsType)); fileElement.appendChild(createChildElement("BlockCount", tmpStruct.blockCount)); fileElement.appendChild(createChildElement("BlockSize", tmpStruct.blockSize)); fileElement.appendChild(createChildElement("TotalSize", tmpStruct.totalSize)); fileElement.appendChild(createChildElement("ReadySize", tmpStruct.readySize)); fileElement.appendChild(createChildElement("State", tmpStruct.state));//2014.4.7add fileElement.appendChild(createChildElement("AverageSpeed", tmpStruct.averageSpeed));//2014.4.7add fileElement.appendChild(createChildElement("LastModifyTime", tmpStruct.lastModifyTime));//2014.4.7add fileElement.appendChild(createChildElement("AutoOpenFolder", tmpStruct.autoOpenFolder)); fileElement.appendChild(createChildElement("IconPath",tmpStruct.iconPath)); fileElement.appendChild(createThreadElement(tmpStruct.threadList)); QDomElement rootElement = domDocument.documentElement(); rootElement.appendChild(fileElement); //写xml文件 if (!downloadingFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) return; QTextStream textStream(&downloadingFile); domDocument.save(textStream,4); downloadingFile.close(); }
void CreateMetadataXMLItem(MetadataLookup *lookup, QDomElement placetoadd, QDomDocument docroot) { if (!lookup) return; QDomElement item = docroot.createElement("item"); placetoadd.appendChild(item); QString RFC822("ddd, d MMMM yyyy hh:mm:ss"); // Language if (!lookup->GetLanguage().isEmpty()) { QDomElement language = docroot.createElement("language"); item.appendChild(language); language.appendChild(docroot.createTextNode(lookup->GetLanguage())); } // Title if (!lookup->GetTitle().isEmpty()) { QDomElement title = docroot.createElement("title"); item.appendChild(title); title.appendChild(docroot.createTextNode(lookup->GetTitle())); } // Subtitle if (!lookup->GetSubtitle().isEmpty()) { QDomElement subtitle = docroot.createElement("subtitle"); item.appendChild(subtitle); subtitle.appendChild(docroot.createTextNode(lookup->GetSubtitle())); } // Network if (!lookup->GetNetwork().isEmpty()) { QDomElement network = docroot.createElement("network"); item.appendChild(network); network.appendChild(docroot.createTextNode(lookup->GetNetwork())); } // Status if (!lookup->GetStatus().isEmpty()) { QDomElement status = docroot.createElement("status"); item.appendChild(status); status.appendChild(docroot.createTextNode(lookup->GetStatus())); } // Season if (lookup->GetSeason() > 0 || lookup->GetEpisode() > 0) { QDomElement season = docroot.createElement("season"); item.appendChild(season); season.appendChild(docroot.createTextNode( QString::number(lookup->GetSeason()))); } // Episode if (lookup->GetSeason() > 0 || lookup->GetEpisode() > 0) { QDomElement episode = docroot.createElement("episode"); item.appendChild(episode); episode.appendChild(docroot.createTextNode( QString::number(lookup->GetEpisode()))); } // Tagline if (!lookup->GetTagline().isEmpty()) { QDomElement tagline = docroot.createElement("tagline"); item.appendChild(tagline); tagline.appendChild(docroot.createTextNode(lookup->GetTagline())); } // Plot if (!lookup->GetDescription().isEmpty()) { QDomElement desc = docroot.createElement("description"); item.appendChild(desc); desc.appendChild(docroot.createTextNode(lookup->GetDescription())); } // Album Name if (!lookup->GetAlbumTitle().isEmpty()) { QDomElement albumname = docroot.createElement("albumname"); item.appendChild(albumname); albumname.appendChild(docroot.createTextNode(lookup->GetAlbumTitle())); } // Inetref if (!lookup->GetInetref().isEmpty()) { QDomElement inetref = docroot.createElement("inetref"); item.appendChild(inetref); inetref.appendChild(docroot.createTextNode(lookup->GetInetref())); } // Collectionref if (!lookup->GetCollectionref().isEmpty()) { QDomElement collectionref = docroot.createElement("collectionref"); item.appendChild(collectionref); collectionref.appendChild(docroot.createTextNode(lookup->GetCollectionref())); } // TMSref/SeriesID if (!lookup->GetTMSref().isEmpty()) { QDomElement tmsref = docroot.createElement("tmsref"); item.appendChild(tmsref); tmsref.appendChild(docroot.createTextNode(lookup->GetTMSref())); } // IMDB if (!lookup->GetIMDB().isEmpty()) { QDomElement imdb = docroot.createElement("imdb"); item.appendChild(imdb); imdb.appendChild(docroot.createTextNode(lookup->GetIMDB())); } // Home Page if (!lookup->GetHomepage().isEmpty()) { QDomElement homepage = docroot.createElement("homepage"); item.appendChild(homepage); homepage.appendChild(docroot.createTextNode(lookup->GetHomepage())); } // Trailer if (!lookup->GetTrailerURL().isEmpty()) { QDomElement trailer = docroot.createElement("trailer"); item.appendChild(trailer); trailer.appendChild(docroot.createTextNode(lookup->GetTrailerURL())); } // Chan ID if (lookup->GetChanId() > 0) { QDomElement chanid = docroot.createElement("chanid"); item.appendChild(chanid); chanid.appendChild(docroot.createTextNode( QString::number(lookup->GetChanId()))); } // Channel Number if (!lookup->GetChanNum().isEmpty()) { QDomElement channum = docroot.createElement("channum"); item.appendChild(channum); channum.appendChild(docroot.createTextNode(lookup->GetChanNum())); } // Callsign if (!lookup->GetChanSign().isEmpty()) { QDomElement callsign = docroot.createElement("chansign"); item.appendChild(callsign); callsign.appendChild(docroot.createTextNode(lookup->GetChanSign())); } // Channel Name if (!lookup->GetChanName().isEmpty()) { QDomElement channame = docroot.createElement("channame"); item.appendChild(channame); channame.appendChild(docroot.createTextNode(lookup->GetChanName())); } // Playback Filters if (!lookup->GetChanPlaybackFilters().isEmpty()) { QDomElement filters = docroot.createElement("filters"); item.appendChild(filters); filters.appendChild(docroot.createTextNode( lookup->GetChanPlaybackFilters())); } // Recording Group if (!lookup->GetRecGroup().isEmpty()) { QDomElement recgroup = docroot.createElement("recgroup"); item.appendChild(recgroup); recgroup.appendChild(docroot.createTextNode(lookup->GetRecGroup())); } // Playback Group if (!lookup->GetPlayGroup().isEmpty()) { QDomElement playgroup = docroot.createElement("playgroup"); item.appendChild(playgroup); playgroup.appendChild(docroot.createTextNode(lookup->GetPlayGroup())); } // SeriesID if (!lookup->GetSeriesId().isEmpty()) { QDomElement seriesid = docroot.createElement("seriesid"); item.appendChild(seriesid); seriesid.appendChild(docroot.createTextNode(lookup->GetSeriesId())); } // ProgramID if (!lookup->GetProgramId().isEmpty()) { QDomElement programid = docroot.createElement("programid"); item.appendChild(programid); programid.appendChild(docroot.createTextNode(lookup->GetProgramId())); } // Storage Group if (!lookup->GetStorageGroup().isEmpty()) { QDomElement sgroup = docroot.createElement("storagegroup"); item.appendChild(sgroup); sgroup.appendChild(docroot.createTextNode(lookup->GetStorageGroup())); } // Start TS if (!lookup->GetStartTS().isNull()) { QDomElement startts = docroot.createElement("startts"); item.appendChild(startts); startts.appendChild(docroot.createTextNode( lookup->GetStartTS().toString(RFC822))); } // End TS if (!lookup->GetEndTS().isNull()) { QDomElement endts = docroot.createElement("endts"); item.appendChild(endts); endts.appendChild(docroot.createTextNode( lookup->GetEndTS().toString(RFC822))); } // Rec Start TS if (!lookup->GetRecStartTS().isNull()) { QDomElement recstartts = docroot.createElement("recstartts"); item.appendChild(recstartts); recstartts.appendChild(docroot.createTextNode( lookup->GetRecStartTS().toString(RFC822))); } // Rec End TS if (!lookup->GetRecEndTS().isNull()) { QDomElement recendts = docroot.createElement("recendts"); item.appendChild(recendts); recendts.appendChild(docroot.createTextNode( lookup->GetRecEndTS().toString(RFC822))); } // Program Flags if (lookup->GetProgramFlags() > 0) { QDomElement progflags = docroot.createElement("programflags"); item.appendChild(progflags); progflags.appendChild(docroot.createTextNode( QString::number(lookup->GetProgramFlags()))); } // Audio Properties if (lookup->GetAudioProperties() > 0) { QDomElement audioprops = docroot.createElement("audioproperties"); item.appendChild(audioprops); audioprops.appendChild(docroot.createTextNode( QString::number(lookup->GetAudioProperties()))); } // Video Properties if (lookup->GetVideoProperties() > 0) { QDomElement videoprops = docroot.createElement("videoproperties"); item.appendChild(videoprops); videoprops.appendChild(docroot.createTextNode( QString::number(lookup->GetVideoProperties()))); } // Subtitle Type if (lookup->GetSubtitleType() > 0) { QDomElement subprops = docroot.createElement("subtitletype"); item.appendChild(subprops); subprops.appendChild(docroot.createTextNode( QString::number(lookup->GetSubtitleType()))); } // Release Date if (!lookup->GetReleaseDate().isNull()) { QDomElement releasedate = docroot.createElement("releasedate"); item.appendChild(releasedate); releasedate.appendChild(docroot.createTextNode( lookup->GetReleaseDate().toString("yyyy-MM-dd"))); } // Last Updated if (!lookup->GetLastUpdated().isNull()) { QDomElement lastupdated = docroot.createElement("lastupdated"); item.appendChild(lastupdated); lastupdated.appendChild(docroot.createTextNode( lookup->GetLastUpdated().toString(RFC822))); } // User Rating if (lookup->GetUserRating() > 0) { QDomElement userrating = docroot.createElement("userrating"); item.appendChild(userrating); userrating.appendChild(docroot.createTextNode(QString::number( lookup->GetUserRating()))); } // Rating Count if (lookup->GetRatingCount() > 0) { QDomElement ratingcount = docroot.createElement("ratingcount"); item.appendChild(ratingcount); ratingcount.appendChild(docroot.createTextNode(QString::number( lookup->GetRatingCount()))); } // Track Number if (lookup->GetTrackNumber() > 0) { QDomElement tracknum = docroot.createElement("tracknum"); item.appendChild(tracknum); tracknum.appendChild(docroot.createTextNode(QString::number( lookup->GetTrackNumber()))); } // Popularity if (lookup->GetPopularity() > 0) { QDomElement popularity = docroot.createElement("popularity"); item.appendChild(popularity); popularity.appendChild(docroot.createTextNode(QString::number( lookup->GetPopularity()))); } // Budget if (lookup->GetBudget() > 0) { QDomElement budget = docroot.createElement("budget"); item.appendChild(budget); budget.appendChild(docroot.createTextNode(QString::number( lookup->GetBudget()))); } // Revenue if (lookup->GetRevenue() > 0) { QDomElement revenue = docroot.createElement("revenue"); item.appendChild(revenue); revenue.appendChild(docroot.createTextNode(QString::number( lookup->GetRevenue()))); } // Runtime if (lookup->GetRuntime() > 0) { QDomElement runtime = docroot.createElement("runtime"); item.appendChild(runtime); runtime.appendChild(docroot.createTextNode(QString::number( lookup->GetRuntime()))); } // Runtimesecs if (lookup->GetRuntimeSeconds() > 0) { QDomElement runtimesecs = docroot.createElement("runtimesecs"); item.appendChild(runtimesecs); runtimesecs.appendChild(docroot.createTextNode(QString::number( lookup->GetRuntimeSeconds()))); } if (lookup->GetCertification().size()) AddCertifications(lookup, item, docroot); if (lookup->GetCategories().size()) AddCategories(lookup, item, docroot); if (lookup->GetStudios().size()) AddStudios(lookup, item, docroot); if (lookup->GetCountries().size()) AddCountries(lookup, item, docroot); }
void Chaser_Test::loadSuccessLegacy() { QDomDocument doc; QDomElement root = doc.createElement("Function"); root.setAttribute("Type", "Chaser"); QDomElement bus = doc.createElement("Bus"); bus.setAttribute("Role", "Hold"); QDomText busText = doc.createTextNode("16"); bus.appendChild(busText); root.appendChild(bus); QDomElement dir = doc.createElement("Direction"); QDomText dirText = doc.createTextNode("Backward"); dir.appendChild(dirText); root.appendChild(dir); QDomElement run = doc.createElement("RunOrder"); QDomText runText = doc.createTextNode("SingleShot"); run.appendChild(runText); root.appendChild(run); QDomElement s1 = doc.createElement("Step"); s1.setAttribute("Number", 1); QDomText s1Text = doc.createTextNode("50"); s1.appendChild(s1Text); root.appendChild(s1); QDomElement s2 = doc.createElement("Step"); s2.setAttribute("Number", 2); QDomText s2Text = doc.createTextNode("12"); s2.appendChild(s2Text); root.appendChild(s2); QDomElement s3 = doc.createElement("Step"); s3.setAttribute("Number", 0); QDomText s3Text = doc.createTextNode("87"); s3.appendChild(s3Text); root.appendChild(s3); // Unknown tag QDomElement foo = doc.createElement("Foo"); foo.setAttribute("Number", 3); QDomText fooText = doc.createTextNode("1"); foo.appendChild(fooText); root.appendChild(foo); Bus::instance()->setValue(16, MasterTimer::frequency()); Chaser c(m_doc); QVERIFY(c.loadXML(root) == true); QVERIFY(c.direction() == Chaser::Backward); QVERIFY(c.runOrder() == Chaser::SingleShot); QCOMPARE(c.steps().size(), 3); QVERIFY(c.steps().at(0) == ChaserStep(87)); QVERIFY(c.steps().at(1) == ChaserStep(50)); QVERIFY(c.steps().at(2) == ChaserStep(12)); // postLoad() removes nonexistent functions so let's check this here c.postLoad(); QCOMPARE(c.duration(), MasterTimer::frequency() * MasterTimer::tick()); }
void Chaser_Test::loadSuccess() { QDomDocument doc; QDomElement root = doc.createElement("Function"); root.setAttribute("Type", "Chaser"); QDomElement speed = doc.createElement("Speed"); speed.setAttribute("FadeIn", "42"); speed.setAttribute("FadeOut", "69"); speed.setAttribute("Duration", "1337"); root.appendChild(speed); QDomElement dir = doc.createElement("Direction"); QDomText dirText = doc.createTextNode("Backward"); dir.appendChild(dirText); root.appendChild(dir); QDomElement run = doc.createElement("RunOrder"); QDomText runText = doc.createTextNode("SingleShot"); run.appendChild(runText); root.appendChild(run); QDomElement s1 = doc.createElement("Step"); s1.setAttribute("Number", 1); s1.setAttribute("FadeIn", 600); s1.setAttribute("FadeOut", 700); s1.setAttribute("Duration", 800); QDomText s1Text = doc.createTextNode("50"); s1.appendChild(s1Text); root.appendChild(s1); QDomElement s2 = doc.createElement("Step"); s2.setAttribute("Number", 2); s2.setAttribute("FadeIn", 1600); s2.setAttribute("FadeOut", 1700); s2.setAttribute("Duration", 1800); QDomText s2Text = doc.createTextNode("12"); s2.appendChild(s2Text); root.appendChild(s2); QDomElement s3 = doc.createElement("Step"); s3.setAttribute("Number", 0); // Let's leave these out from this step just for test's sake //s3.setAttribute("FadeIn", 2600); //s3.setAttribute("FadeOut", 2700); //s3.setAttribute("Duration", 2800); QDomText s3Text = doc.createTextNode("87"); s3.appendChild(s3Text); root.appendChild(s3); QDomElement spd = doc.createElement("SpeedModes"); spd.setAttribute("FadeIn", "Common"); spd.setAttribute("FadeOut", "Default"); spd.setAttribute("Duration", "PerStep"); root.appendChild(spd); // Unknown tag QDomElement foo = doc.createElement("Foo"); foo.setAttribute("Number", 3); QDomText fooText = doc.createTextNode("1"); foo.appendChild(fooText); root.appendChild(foo); Chaser c(m_doc); QVERIFY(c.loadXML(root) == true); QVERIFY(c.fadeInSpeed() == 42); QVERIFY(c.fadeOutSpeed() == 69); QVERIFY(c.duration() == 1337); QCOMPARE(c.fadeInMode(), Chaser::Common); QCOMPARE(c.fadeOutMode(), Chaser::Default); QCOMPARE(c.durationMode(), Chaser::PerStep); QVERIFY(c.direction() == Chaser::Backward); QVERIFY(c.runOrder() == Chaser::SingleShot); QVERIFY(c.steps().size() == 3); QVERIFY(c.steps().at(0) == ChaserStep(87)); QCOMPARE(c.steps().at(0).fadeIn, uint(0)); QCOMPARE(c.steps().at(0).fadeOut, uint(0)); QCOMPARE(c.steps().at(0).duration, uint(0)); QVERIFY(c.steps().at(1) == ChaserStep(50)); QCOMPARE(c.steps().at(1).fadeIn, uint(600)); QCOMPARE(c.steps().at(1).fadeOut, uint(700)); QCOMPARE(c.steps().at(1).duration, uint(800)); QVERIFY(c.steps().at(2) == ChaserStep(12)); QCOMPARE(c.steps().at(2).fadeIn, uint(1600)); QCOMPARE(c.steps().at(2).fadeOut, uint(1700)); QCOMPARE(c.steps().at(2).duration, uint(1800)); }
QString KTheme::createYourself( bool pack ) { // start with empty dir for orig theme if ( !pack ) KTheme::remove( name() ); // 1. General stuff set by methods setBlah() // 2. Background theme KConfig * globalConf = KGlobal::config(); KConfig kwinConf( "kwinrc", true ); kwinConf.setGroup( "Desktops" ); uint numDesktops = kwinConf.readUnsignedNumEntry( "Number", 4 ); KConfig desktopConf( "kdesktoprc", true ); desktopConf.setGroup( "Background Common" ); bool common = desktopConf.readBoolEntry( "CommonDesktop", true ); for ( uint i=0; i < numDesktops-1; i++ ) { QDomElement desktopElem = m_dom.createElement( "desktop" ); desktopElem.setAttribute( "number", i ); desktopElem.setAttribute( "common", common ); desktopConf.setGroup( "Desktop" + QString::number( i ) ); QDomElement modeElem = m_dom.createElement( "mode" ); modeElem.setAttribute( "id", desktopConf.readEntry( "BackgroundMode", "Flat" ) ); desktopElem.appendChild( modeElem ); QDomElement c1Elem = m_dom.createElement( "color1" ); c1Elem.setAttribute( "rgb", desktopConf.readColorEntry( "Color1" ).name() ); desktopElem.appendChild( c1Elem ); QDomElement c2Elem = m_dom.createElement( "color2" ); c2Elem.setAttribute( "rgb", desktopConf.readColorEntry( "Color2" ).name() ); desktopElem.appendChild( c2Elem ); QDomElement blendElem = m_dom.createElement( "blending" ); blendElem.setAttribute( "mode", desktopConf.readEntry( "BlendMode", QString( "NoBlending" ) ) ); blendElem.setAttribute( "balance", desktopConf.readEntry( "BlendBalance", QString::number( 100 ) ) ); blendElem.setAttribute( "reverse", desktopConf.readBoolEntry( "ReverseBlending", false ) ); desktopElem.appendChild( blendElem ); QDomElement patElem = m_dom.createElement( "pattern" ); patElem.setAttribute( "name", desktopConf.readEntry( "Pattern" ) ); desktopElem.appendChild( patElem ); QDomElement wallElem = m_dom.createElement( "wallpaper" ); wallElem.setAttribute( "url", processFilePath( "desktop", desktopConf.readPathEntry( "Wallpaper" ) ) ); wallElem.setAttribute( "mode", desktopConf.readEntry( "WallpaperMode" ) ); desktopElem.appendChild( wallElem ); // TODO handle multi wallpapers (aka slideshow) m_root.appendChild( desktopElem ); if ( common ) // generate only one node break; } // 11. Screensaver desktopConf.setGroup( "ScreenSaver" ); QDomElement saverElem = m_dom.createElement( "screensaver" ); saverElem.setAttribute( "name", desktopConf.readEntry( "Saver" ) ); m_root.appendChild( saverElem ); // 3. Icons globalConf->setGroup( "Icons" ); QDomElement iconElem = m_dom.createElement( "icons" ); iconElem.setAttribute( "name", globalConf->readEntry( "Theme",KIconTheme::current() ) ); createIconElems( "DesktopIcons", "desktop", iconElem, globalConf ); createIconElems( "MainToolbarIcons", "mainToolbar", iconElem, globalConf ); createIconElems( "PanelIcons", "panel", iconElem, globalConf ); createIconElems( "SmallIcons", "small", iconElem, globalConf ); createIconElems( "ToolbarIcons", "toolbar", iconElem, globalConf ); m_root.appendChild( iconElem ); // 4. Sounds // 4.1 Global sounds KConfig * soundConf = new KConfig( "knotify.eventsrc", true ); QStringList stdEvents; stdEvents << "cannotopenfile" << "catastrophe" << "exitkde" << "fatalerror" << "notification" << "printerror" << "startkde" << "warning" << "messageCritical" << "messageInformation" << "messageWarning" << "messageboxQuestion"; // 4.2 KWin sounds KConfig * kwinSoundConf = new KConfig( "kwin.eventsrc", true ); QStringList kwinEvents; kwinEvents << "activate" << "close" << "delete" << "desktop1" << "desktop2" << "desktop3" << "desktop4" << "desktop5" << "desktop6" << "desktop7" << "desktop8" << "maximize" << "minimize" << "moveend" << "movestart" << "new" << "not_on_all_desktops" << "on_all_desktops" << "resizeend" << "resizestart" << "shadedown" << "shadeup" << "transdelete" << "transnew" << "unmaximize" << "unminimize"; QDomElement soundsElem = m_dom.createElement( "sounds" ); createSoundList( stdEvents, "global", soundsElem, soundConf ); createSoundList( kwinEvents, "kwin", soundsElem, kwinSoundConf ); m_root.appendChild( soundsElem ); delete soundConf; delete kwinSoundConf; // 5. Colors QDomElement colorsElem = m_dom.createElement( "colors" ); globalConf->setGroup( "KDE" ); colorsElem.setAttribute( "contrast", globalConf->readNumEntry( "contrast", 7 ) ); QStringList stdColors; stdColors << "background" << "selectBackground" << "foreground" << "windowForeground" << "windowBackground" << "selectForeground" << "buttonBackground" << "buttonForeground" << "linkColor" << "visitedLinkColor" << "alternateBackground"; globalConf->setGroup( "General" ); for ( QStringList::Iterator it = stdColors.begin(); it != stdColors.end(); ++it ) createColorElem( ( *it ), "global", colorsElem, globalConf ); QStringList kwinColors; kwinColors << "activeForeground" << "inactiveBackground" << "inactiveBlend" << "activeBackground" << "activeBlend" << "inactiveForeground" << "activeTitleBtnBg" << "inactiveTitleBtnBg" << "frame" << "inactiveFrame" << "handle" << "inactiveHandle"; globalConf->setGroup( "WM" ); for ( QStringList::Iterator it = kwinColors.begin(); it != kwinColors.end(); ++it ) createColorElem( ( *it ), "kwin", colorsElem, globalConf ); m_root.appendChild( colorsElem ); // 6. Cursors KConfig* mouseConf = new KConfig( "kcminputrc", true ); mouseConf->setGroup( "Mouse" ); QDomElement cursorsElem = m_dom.createElement( "cursors" ); cursorsElem.setAttribute( "name", mouseConf->readEntry( "cursorTheme" ) ); m_root.appendChild( cursorsElem ); delete mouseConf; // TODO copy the cursor theme? // 7. KWin kwinConf.setGroup( "Style" ); QDomElement wmElem = m_dom.createElement( "wm" ); wmElem.setAttribute( "name", kwinConf.readEntry( "PluginLib" ) ); wmElem.setAttribute( "type", "builtin" ); // TODO support pixmap themes when the kwin client gets ported if ( kwinConf.readBoolEntry( "CustomButtonPositions" ) ) { QDomElement buttonsElem = m_dom.createElement( "buttons" ); buttonsElem.setAttribute( "left", kwinConf.readEntry( "ButtonsOnLeft" ) ); buttonsElem.setAttribute( "right", kwinConf.readEntry( "ButtonsOnRight" ) ); wmElem.appendChild( buttonsElem ); } QDomElement borderElem = m_dom.createElement( "border" ); borderElem.setAttribute( "size", kwinConf.readNumEntry( "BorderSize", 1 ) ); wmElem.appendChild( borderElem ); m_root.appendChild( wmElem ); // 8. Konqueror KConfig konqConf( "konquerorrc", true ); konqConf.setGroup( "Settings" ); QDomElement konqElem = m_dom.createElement( "konqueror" ); QDomElement konqWallElem = m_dom.createElement( "wallpaper" ); QString bgImagePath = konqConf.readPathEntry( "BgImage" ); konqWallElem.setAttribute( "url", processFilePath( "konqueror", bgImagePath ) ); konqElem.appendChild( konqWallElem ); QDomElement konqBgColorElem = m_dom.createElement( "bgcolor" ); konqBgColorElem.setAttribute( "rgb", konqConf.readColorEntry( "BgColor" ).name() ); konqElem.appendChild( konqBgColorElem ); m_root.appendChild( konqElem ); // 9. Kicker (aka KDE Panel) KConfig kickerConf( "kickerrc", true ); kickerConf.setGroup( "General" ); QDomElement panelElem = m_dom.createElement( "panel" ); if ( kickerConf.readBoolEntry( "UseBackgroundTheme" ) ) { QDomElement backElem = m_dom.createElement( "background" ); QString kbgPath = kickerConf.readPathEntry( "BackgroundTheme" ); backElem.setAttribute( "url", processFilePath( "panel", kbgPath ) ); backElem.setAttribute( "colorize", kickerConf.readBoolEntry( "ColorizeBackground" ) ); panelElem.appendChild( backElem ); } QDomElement transElem = m_dom.createElement( "transparent" ); transElem.setAttribute( "value", kickerConf.readBoolEntry( "Transparent" ) ); panelElem.appendChild( transElem ); QDomElement posElem = m_dom.createElement( "position" ); posElem.setAttribute( "value", kickerConf.readEntry( "Position" ) ); panelElem.appendChild( posElem ); QDomElement showLeftHideButtonElem = m_dom.createElement( "showlefthidebutton" ); showLeftHideButtonElem.setAttribute( "value", kickerConf.readBoolEntry( "ShowLeftHideButton" ) ); panelElem.appendChild( showLeftHideButtonElem ); QDomElement showRightHideButtonElem = m_dom.createElement( "showrighthidebutton" ); showRightHideButtonElem.setAttribute( "value", kickerConf.readBoolEntry( "ShowRightHideButton" ) ); panelElem.appendChild( showRightHideButtonElem ); m_root.appendChild( panelElem ); // 10. Widget style globalConf->setGroup( "General" ); QDomElement widgetsElem = m_dom.createElement( "widgets" ); widgetsElem.setAttribute( "name", globalConf->readEntry( "widgetStyle",KStyle::defaultStyle() ) ); m_root.appendChild( widgetsElem ); // 12. QDomElement fontsElem = m_dom.createElement( "fonts" ); QStringList fonts; fonts << "General" << "font" << "General" << "fixed" << "General" << "toolBarFont" << "General" << "menuFont" << "WM" << "activeFont" << "General" << "taskbarFont" << "FMSettings" << "StandardFont"; for ( QStringList::Iterator it = fonts.begin(); it != fonts.end(); ++it ) { QString group = *it; ++it; QString key = *it; QString value; if ( group == "FMSettings" ) { desktopConf.setGroup( group ); value = desktopConf.readEntry( key ); } else { globalConf->setGroup( group ); value = globalConf->readEntry( key ); } QDomElement fontElem = m_dom.createElement( key ); fontElem.setAttribute( "object", group ); fontElem.setAttribute( "value", value ); fontsElem.appendChild( fontElem ); } m_root.appendChild( fontsElem ); // Save the XML QFile file( m_kgd->saveLocation( "themes", m_name + "/" ) + m_name + ".xml" ); if ( file.open( IO_WriteOnly ) ) { QTextStream stream( &file ); m_dom.save( stream, 2 ); file.close(); } QString result; if ( pack ) { // Pack the whole theme KTar tar( m_kgd->saveLocation( "themes" ) + m_name + ".kth", "application/x-gzip" ); tar.open( IO_WriteOnly ); kdDebug() << "Packing everything under: " << m_kgd->saveLocation( "themes", m_name + "/" ) << endl; if ( tar.addLocalDirectory( m_kgd->saveLocation( "themes", m_name + "/" ), QString::null ) ) result = tar.fileName(); tar.close(); } //kdDebug() << m_dom.toString( 2 ) << endl; return result; }
void KTheme::setProperty( const QString & name, const QString & value, QDomElement parent ) { QDomElement tmp = m_dom.createElement( name ); tmp.setAttribute( "value", value ); parent.appendChild( tmp ); }
QDomElement QgsCategorizedSymbolRendererV2::save( QDomDocument& doc ) { QDomElement rendererElem = doc.createElement( RENDERER_TAG_NAME ); rendererElem.setAttribute( "type", "categorizedSymbol" ); rendererElem.setAttribute( "symbollevels", ( mUsingSymbolLevels ? "1" : "0" ) ); rendererElem.setAttribute( "attr", mAttrName ); // categories int i = 0; QgsSymbolV2Map symbols; QDomElement catsElem = doc.createElement( "categories" ); QgsCategoryList::const_iterator it = mCategories.constBegin(); for ( ; it != mCategories.end(); ++it ) { const QgsRendererCategoryV2& cat = *it; QString symbolName = QString::number( i ); symbols.insert( symbolName, cat.symbol() ); QDomElement catElem = doc.createElement( "category" ); catElem.setAttribute( "value", cat.value().toString() ); catElem.setAttribute( "symbol", symbolName ); catElem.setAttribute( "label", cat.label() ); catElem.setAttribute( "render", cat.renderState() ? "true" : "false" ); catsElem.appendChild( catElem ); i++; } rendererElem.appendChild( catsElem ); // save symbols QDomElement symbolsElem = QgsSymbolLayerV2Utils::saveSymbols( symbols, "symbols", doc ); rendererElem.appendChild( symbolsElem ); // save source symbol if ( mSourceSymbol.data() ) { QgsSymbolV2Map sourceSymbols; sourceSymbols.insert( "0", mSourceSymbol.data() ); QDomElement sourceSymbolElem = QgsSymbolLayerV2Utils::saveSymbols( sourceSymbols, "source-symbol", doc ); rendererElem.appendChild( sourceSymbolElem ); } // save source color ramp if ( mSourceColorRamp.data() ) { QDomElement colorRampElem = QgsSymbolLayerV2Utils::saveColorRamp( "[source]", mSourceColorRamp.data(), doc ); rendererElem.appendChild( colorRampElem ); QDomElement invertedElem = doc.createElement( "invertedcolorramp" ); invertedElem.setAttribute( "value", mInvertedColorRamp ); rendererElem.appendChild( invertedElem ); } QDomElement rotationElem = doc.createElement( "rotation" ); if ( mRotation.data() ) rotationElem.setAttribute( "field", QgsSymbolLayerV2Utils::fieldOrExpressionFromExpression( mRotation.data() ) ); rendererElem.appendChild( rotationElem ); QDomElement sizeScaleElem = doc.createElement( "sizescale" ); if ( mSizeScale.data() ) sizeScaleElem.setAttribute( "field", QgsSymbolLayerV2Utils::fieldOrExpressionFromExpression( mSizeScale.data() ) ); sizeScaleElem.setAttribute( "scalemethod", QgsSymbolLayerV2Utils::encodeScaleMethod( mScaleMethod ) ); rendererElem.appendChild( sizeScaleElem ); return rendererElem; }
bool QgsLayerMetadata::writeMetadataXml( QDomElement &metadataElement, QDomDocument &document ) const { // identifier QDomElement identifier = document.createElement( QStringLiteral( "identifier" ) ); QDomText identifierText = document.createTextNode( mIdentifier ); identifier.appendChild( identifierText ); metadataElement.appendChild( identifier ); // parent identifier QDomElement parentIdentifier = document.createElement( QStringLiteral( "parentidentifier" ) ); QDomText parentIdentifierText = document.createTextNode( mParentIdentifier ); parentIdentifier.appendChild( parentIdentifierText ); metadataElement.appendChild( parentIdentifier ); // language QDomElement language = document.createElement( QStringLiteral( "language" ) ); QDomText languageText = document.createTextNode( mLanguage ); language.appendChild( languageText ); metadataElement.appendChild( language ); // type QDomElement type = document.createElement( QStringLiteral( "type" ) ); QDomText typeText = document.createTextNode( mType ); type.appendChild( typeText ); metadataElement.appendChild( type ); // title QDomElement title = document.createElement( QStringLiteral( "title" ) ); QDomText titleText = document.createTextNode( mTitle ); title.appendChild( titleText ); metadataElement.appendChild( title ); // abstract QDomElement abstract = document.createElement( QStringLiteral( "abstract" ) ); QDomText abstractText = document.createTextNode( mAbstract ); abstract.appendChild( abstractText ); metadataElement.appendChild( abstract ); // keywords QMapIterator<QString, QStringList> i( mKeywords ); while ( i.hasNext() ) { i.next(); QDomElement keywordsElement = document.createElement( QStringLiteral( "keywords" ) ); keywordsElement.setAttribute( QStringLiteral( "vocabulary" ), i.key() ); const QStringList values = i.value(); for ( const QString &kw : values ) { QDomElement keyword = document.createElement( QStringLiteral( "keyword" ) ); QDomText keywordText = document.createTextNode( kw ); keyword.appendChild( keywordText ); keywordsElement.appendChild( keyword ); } metadataElement.appendChild( keywordsElement ); } // fees QDomElement fees = document.createElement( QStringLiteral( "fees" ) ); QDomText feesText = document.createTextNode( mFees ); fees.appendChild( feesText ); metadataElement.appendChild( fees ); // constraints for ( const QgsLayerMetadata::Constraint &constraint : mConstraints ) { QDomElement constraintElement = document.createElement( QStringLiteral( "constraints" ) ); constraintElement.setAttribute( QStringLiteral( "type" ), constraint.type ); QDomText constraintText = document.createTextNode( constraint.constraint ); constraintElement.appendChild( constraintText ); metadataElement.appendChild( constraintElement ); } // rights for ( const QString &right : mRights ) { QDomElement rightElement = document.createElement( QStringLiteral( "rights" ) ); QDomText rightText = document.createTextNode( right ); rightElement.appendChild( rightText ); metadataElement.appendChild( rightElement ); } // license for ( const QString &license : mLicenses ) { QDomElement licenseElement = document.createElement( QStringLiteral( "license" ) ); QDomText licenseText = document.createTextNode( license ); licenseElement.appendChild( licenseText ); metadataElement.appendChild( licenseElement ); } // encoding QDomElement encoding = document.createElement( QStringLiteral( "encoding" ) ); QDomText encodingText = document.createTextNode( mEncoding ); encoding.appendChild( encodingText ); metadataElement.appendChild( encoding ); // crs QDomElement crsElement = document.createElement( QStringLiteral( "crs" ) ); mCrs.writeXml( crsElement, document ); metadataElement.appendChild( crsElement ); // extent QDomElement extentElement = document.createElement( QStringLiteral( "extent" ) ); // spatial extents const QList< QgsLayerMetadata::SpatialExtent > sExtents = extent().spatialExtents(); for ( const QgsLayerMetadata::SpatialExtent &spatialExtent : sExtents ) { QDomElement spatialElement = document.createElement( QStringLiteral( "spatial" ) ); // Dimensions fixed in the XSD spatialElement.setAttribute( QStringLiteral( "dimensions" ), QStringLiteral( "2" ) ); spatialElement.setAttribute( QStringLiteral( "crs" ), spatialExtent.extentCrs.authid() ); spatialElement.setAttribute( QStringLiteral( "minx" ), qgsDoubleToString( spatialExtent.bounds.xMinimum() ) ); spatialElement.setAttribute( QStringLiteral( "miny" ), qgsDoubleToString( spatialExtent.bounds.yMinimum() ) ); spatialElement.setAttribute( QStringLiteral( "minz" ), qgsDoubleToString( spatialExtent.bounds.zMinimum() ) ); spatialElement.setAttribute( QStringLiteral( "maxx" ), qgsDoubleToString( spatialExtent.bounds.xMaximum() ) ); spatialElement.setAttribute( QStringLiteral( "maxy" ), qgsDoubleToString( spatialExtent.bounds.yMaximum() ) ); spatialElement.setAttribute( QStringLiteral( "maxz" ), qgsDoubleToString( spatialExtent.bounds.zMaximum() ) ); extentElement.appendChild( spatialElement ); } // temporal extents const QList< QgsDateTimeRange > tExtents = extent().temporalExtents(); for ( const QgsDateTimeRange &temporalExtent : tExtents ) { QDomElement temporalElement = document.createElement( QStringLiteral( "temporal" ) ); if ( temporalExtent.isInstant() ) { QDomElement instantElement = document.createElement( QStringLiteral( "instant" ) ); QDomText instantText = document.createTextNode( temporalExtent.begin().toTimeSpec( Qt::OffsetFromUTC ).toString( Qt::ISODate ) ); instantElement.appendChild( instantText ); temporalElement.appendChild( instantElement ); } else { QDomElement periodElement = document.createElement( QStringLiteral( "period" ) ); QDomElement startElement = document.createElement( QStringLiteral( "start" ) ); QDomElement endElement = document.createElement( QStringLiteral( "end" ) ); QDomText startText = document.createTextNode( temporalExtent.begin().toTimeSpec( Qt::OffsetFromUTC ).toString( Qt::ISODate ) ); QDomText endText = document.createTextNode( temporalExtent.end().toTimeSpec( Qt::OffsetFromUTC ).toString( Qt::ISODate ) ); startElement.appendChild( startText ); endElement.appendChild( endText ); periodElement.appendChild( startElement ); periodElement.appendChild( endElement ); temporalElement.appendChild( periodElement ); } extentElement.appendChild( temporalElement ); } metadataElement.appendChild( extentElement ); // contact for ( const QgsLayerMetadata::Contact &contact : mContacts ) { QDomElement contactElement = document.createElement( QStringLiteral( "contact" ) ); QDomElement nameElement = document.createElement( QStringLiteral( "name" ) ); QDomElement organizationElement = document.createElement( QStringLiteral( "organization" ) ); QDomElement positionElement = document.createElement( QStringLiteral( "position" ) ); QDomElement voiceElement = document.createElement( QStringLiteral( "voice" ) ); QDomElement faxElement = document.createElement( QStringLiteral( "fax" ) ); QDomElement emailElement = document.createElement( QStringLiteral( "email" ) ); QDomElement roleElement = document.createElement( QStringLiteral( "role" ) ); QDomText nameText = document.createTextNode( contact.name ); QDomText orgaText = document.createTextNode( contact.organization ); QDomText positionText = document.createTextNode( contact.position ); QDomText voiceText = document.createTextNode( contact.voice ); QDomText faxText = document.createTextNode( contact.fax ); QDomText emailText = document.createTextNode( contact.email ); QDomText roleText = document.createTextNode( contact.role ); for ( const QgsLayerMetadata::Address &oneAddress : contact.addresses ) { QDomElement addressElement = document.createElement( QStringLiteral( "contactAddress" ) ); QDomElement typeElement = document.createElement( QStringLiteral( "type" ) ); QDomElement addressDetailedElement = document.createElement( QStringLiteral( "address" ) ); QDomElement cityElement = document.createElement( QStringLiteral( "city" ) ); QDomElement administrativeAreaElement = document.createElement( QStringLiteral( "administrativearea" ) ); QDomElement postalCodeElement = document.createElement( QStringLiteral( "postalcode" ) ); QDomElement countryElement = document.createElement( QStringLiteral( "country" ) ); typeElement.appendChild( document.createTextNode( oneAddress.type ) ); addressDetailedElement.appendChild( document.createTextNode( oneAddress.address ) ); cityElement.appendChild( document.createTextNode( oneAddress.city ) ); administrativeAreaElement.appendChild( document.createTextNode( oneAddress.administrativeArea ) ); postalCodeElement.appendChild( document.createTextNode( oneAddress.postalCode ) ); countryElement.appendChild( document.createTextNode( oneAddress.country ) ); addressElement.appendChild( typeElement ); addressElement.appendChild( addressDetailedElement ); addressElement.appendChild( cityElement ); addressElement.appendChild( administrativeAreaElement ); addressElement.appendChild( postalCodeElement ); addressElement.appendChild( countryElement ); contactElement.appendChild( addressElement ); } nameElement.appendChild( nameText ); organizationElement.appendChild( orgaText ); positionElement.appendChild( positionText ); voiceElement.appendChild( voiceText ); faxElement.appendChild( faxText ); emailElement.appendChild( emailText ); roleElement.appendChild( roleText ); contactElement.appendChild( nameElement ); contactElement.appendChild( organizationElement ); contactElement.appendChild( positionElement ); contactElement.appendChild( voiceElement ); contactElement.appendChild( faxElement ); contactElement.appendChild( emailElement ); contactElement.appendChild( roleElement ); metadataElement.appendChild( contactElement ); } // links QDomElement links = document.createElement( QStringLiteral( "links" ) ); for ( const QgsLayerMetadata::Link &link : mLinks ) { QDomElement linkElement = document.createElement( QStringLiteral( "link" ) ); linkElement.setAttribute( QStringLiteral( "name" ), link.name ); linkElement.setAttribute( QStringLiteral( "type" ), link.type ); linkElement.setAttribute( QStringLiteral( "url" ), link.url ); linkElement.setAttribute( QStringLiteral( "description" ), link.description ); linkElement.setAttribute( QStringLiteral( "format" ), link.format ); linkElement.setAttribute( QStringLiteral( "mimeType" ), link.mimeType ); linkElement.setAttribute( QStringLiteral( "size" ), link.size ); links.appendChild( linkElement ); } metadataElement.appendChild( links ); // history for ( const QString &history : mHistory ) { QDomElement historyElement = document.createElement( QStringLiteral( "history" ) ); QDomText historyText = document.createTextNode( history ); historyElement.appendChild( historyText ); metadataElement.appendChild( historyElement ); } return true; }
bool SyncDocument::save(const QString &fileName) { QDomDocument doc; QDomElement rootNode = doc.createElement("sync"); rootNode.setAttribute("rows", int(getRows())); doc.appendChild(rootNode); rootNode.appendChild(doc.createTextNode("\n\t")); QDomElement tracksNode = doc.createElement("tracks"); for (size_t i = 0; i < getTrackCount(); ++i) { const SyncTrack *t = getTrack(trackOrder[i]); QDomElement trackElem = doc.createElement("track"); trackElem.setAttribute("name", t->name); QMap<int, SyncTrack::TrackKey> keyMap = t->getKeyMap(); QMap<int, SyncTrack::TrackKey>::const_iterator it; for (it = keyMap.constBegin(); it != keyMap.constEnd(); ++it) { int row = it.key(); float value = it->value; char interpolationType = char(it->type); QDomElement keyElem = doc.createElement("key"); keyElem.setAttribute("row", row); keyElem.setAttribute("value", value); keyElem.setAttribute("interpolation", (int)interpolationType); trackElem.appendChild( doc.createTextNode("\n\t\t\t")); trackElem.appendChild(keyElem); } if (keyMap.size()) trackElem.appendChild( doc.createTextNode("\n\t\t")); tracksNode.appendChild(doc.createTextNode("\n\t\t")); tracksNode.appendChild(trackElem); } if (getTrackCount()) tracksNode.appendChild(doc.createTextNode("\n\t")); rootNode.appendChild(tracksNode); rootNode.appendChild(doc.createTextNode("\n\t")); QDomElement bookmarksNode = doc.createElement("bookmarks"); QList<int>::const_iterator it; for (it = rowBookmarks.begin(); it != rowBookmarks.end(); ++it) { QDomElement bookmarkElem = doc.createElement("bookmark"); bookmarkElem.setAttribute("row", *it); bookmarksNode.appendChild( doc.createTextNode("\n\t\t")); bookmarksNode.appendChild(bookmarkElem); } if (0 != rowBookmarks.size()) bookmarksNode.appendChild( doc.createTextNode("\n\t")); rootNode.appendChild(bookmarksNode); rootNode.appendChild(doc.createTextNode("\n")); QFile file(fileName); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) { QMessageBox::critical(NULL, "Error", file.errorString()); return false; } QTextStream streamFileOut(&file); streamFileOut.setCodec("UTF-8"); streamFileOut << doc.toString(); streamFileOut.flush(); file.close(); undoStack.setClean(); return true; }
QDomDocument createDescribeFeatureTypeDocument( QgsServerInterface *serverIface, const QgsProject *project, const QString &version, const QgsServerRequest &request ) { Q_UNUSED( version ); QDomDocument doc; QgsServerRequest::Parameters parameters = request.parameters(); QgsWfsParameters wfsParameters( parameters ); QgsWfsParameters::Format oFormat = wfsParameters.outputFormat(); // test oFormat if ( oFormat == QgsWfsParameters::Format::NONE ) throw QgsBadRequestException( QStringLiteral( "Invalid WFS Parameter" ), "OUTPUTFORMAT " + wfsParameters.outputFormatAsString() + "is not supported" ); QgsAccessControl *accessControl = serverIface->accessControls(); //xsd:schema QDomElement schemaElement = doc.createElement( QStringLiteral( "schema" )/*xsd:schema*/ ); schemaElement.setAttribute( QStringLiteral( "xmlns" ), QStringLiteral( "http://www.w3.org/2001/XMLSchema" ) ); schemaElement.setAttribute( QStringLiteral( "xmlns:xsd" ), QStringLiteral( "http://www.w3.org/2001/XMLSchema" ) ); schemaElement.setAttribute( QStringLiteral( "xmlns:ogc" ), OGC_NAMESPACE ); schemaElement.setAttribute( QStringLiteral( "xmlns:gml" ), GML_NAMESPACE ); schemaElement.setAttribute( QStringLiteral( "xmlns:qgs" ), QGS_NAMESPACE ); schemaElement.setAttribute( QStringLiteral( "targetNamespace" ), QGS_NAMESPACE ); schemaElement.setAttribute( QStringLiteral( "elementFormDefault" ), QStringLiteral( "qualified" ) ); schemaElement.setAttribute( QStringLiteral( "version" ), QStringLiteral( "1.0" ) ); doc.appendChild( schemaElement ); //xsd:import QDomElement importElement = doc.createElement( QStringLiteral( "import" )/*xsd:import*/ ); importElement.setAttribute( QStringLiteral( "namespace" ), GML_NAMESPACE ); if ( oFormat == QgsWfsParameters::Format::GML2 ) importElement.setAttribute( QStringLiteral( "schemaLocation" ), QStringLiteral( "http://schemas.opengis.net/gml/2.1.2/feature.xsd" ) ); else if ( oFormat == QgsWfsParameters::Format::GML3 ) importElement.setAttribute( QStringLiteral( "schemaLocation" ), QStringLiteral( "http://schemas.opengis.net/gml/3.1.1/base/gml.xsd" ) ); schemaElement.appendChild( importElement ); QStringList typeNameList; QDomDocument queryDoc; QString errorMsg; if ( queryDoc.setContent( parameters.value( QStringLiteral( "REQUEST_BODY" ) ), true, &errorMsg ) ) { //read doc QDomElement queryDocElem = queryDoc.documentElement(); QDomNodeList docChildNodes = queryDocElem.childNodes(); if ( docChildNodes.size() ) { for ( int i = 0; i < docChildNodes.size(); i++ ) { QDomElement docChildElem = docChildNodes.at( i ).toElement(); if ( docChildElem.tagName() == QLatin1String( "TypeName" ) ) { QString typeName = docChildElem.text().trimmed(); if ( typeName.contains( ':' ) ) typeNameList << typeName.section( ':', 1, 1 ); else typeNameList << typeName; } } } } else { QString typeNames = request.parameter( QStringLiteral( "TYPENAME" ) ); if ( !typeNames.isEmpty() ) { QStringList typeNameSplit = typeNames.split( ',' ); for ( int i = 0; i < typeNameSplit.size(); ++i ) { QString typeName = typeNameSplit.at( i ).trimmed(); if ( typeName.contains( ':' ) ) typeNameList << typeName.section( ':', 1, 1 ); else typeNameList << typeName; } } } QStringList wfsLayerIds = QgsServerProjectUtils::wfsLayerIds( *project ); for ( int i = 0; i < wfsLayerIds.size(); ++i ) { QgsMapLayer *layer = project->mapLayer( wfsLayerIds.at( i ) ); if ( layer->type() != QgsMapLayer::LayerType::VectorLayer ) { continue; } QString name = layer->name(); if ( !layer->shortName().isEmpty() ) name = layer->shortName(); name = name.replace( ' ', '_' ); if ( !typeNameList.isEmpty() && !typeNameList.contains( name ) ) { continue; } if ( accessControl && !accessControl->layerReadPermission( layer ) ) { if ( !typeNameList.isEmpty() ) { throw QgsSecurityAccessException( QStringLiteral( "Feature access permission denied" ) ); } else { continue; } } QgsVectorLayer *vLayer = qobject_cast<QgsVectorLayer *>( layer ); QgsVectorDataProvider *provider = vLayer->dataProvider(); if ( !provider ) { continue; } setSchemaLayer( schemaElement, doc, const_cast<QgsVectorLayer *>( vLayer ) ); } return doc; }
void Chaser_Test::postLoad() { Scene* sc1 = new Scene(m_doc); m_doc->addFunction(sc1); Scene* sc2 = new Scene(m_doc); m_doc->addFunction(sc2); Chaser* ch1 = new Chaser(m_doc); m_doc->addFunction(ch1); Chaser* ch2 = new Chaser(m_doc); m_doc->addFunction(ch2); Collection* co1 = new Collection(m_doc); m_doc->addFunction(co1); Collection* co2 = new Collection(m_doc); m_doc->addFunction(co2); EFX* ef1 = new EFX(m_doc); m_doc->addFunction(ef1); EFX* ef2 = new EFX(m_doc); m_doc->addFunction(ef2); QDomDocument doc; QDomElement root = doc.createElement("Function"); root.setAttribute("Type", "Chaser"); QDomElement bus = doc.createElement("Bus"); bus.setAttribute("Role", "Hold"); QDomText busText = doc.createTextNode("16"); bus.appendChild(busText); root.appendChild(bus); QDomElement dir = doc.createElement("Direction"); QDomText dirText = doc.createTextNode("Backward"); dir.appendChild(dirText); root.appendChild(dir); QDomElement run = doc.createElement("RunOrder"); QDomText runText = doc.createTextNode("SingleShot"); run.appendChild(runText); root.appendChild(run); QDomElement step0 = doc.createElement("Step"); step0.setAttribute("Number", 0); QDomText step0Text = doc.createTextNode(QString::number(sc1->id())); step0.appendChild(step0Text); root.appendChild(step0); QDomElement step1 = doc.createElement("Step"); step1.setAttribute("Number", 1); QDomText step1Text = doc.createTextNode(QString::number(sc2->id())); step1.appendChild(step1Text); root.appendChild(step1); QDomElement step2 = doc.createElement("Step"); step2.setAttribute("Number", 2); QDomText step2Text = doc.createTextNode(QString::number(ch1->id())); step2.appendChild(step2Text); root.appendChild(step2); QDomElement step3 = doc.createElement("Step"); step3.setAttribute("Number", 3); QDomText step3Text = doc.createTextNode(QString::number(ch2->id())); step3.appendChild(step3Text); root.appendChild(step3); QDomElement step4 = doc.createElement("Step"); step4.setAttribute("Number", 4); QDomText step4Text = doc.createTextNode(QString::number(co1->id())); step4.appendChild(step4Text); root.appendChild(step4); QDomElement step5 = doc.createElement("Step"); step5.setAttribute("Number", 5); QDomText step5Text = doc.createTextNode(QString::number(co2->id())); step5.appendChild(step5Text); root.appendChild(step5); QDomElement step6 = doc.createElement("Step"); step6.setAttribute("Number", 6); QDomText step6Text = doc.createTextNode(QString::number(ef1->id())); step6.appendChild(step6Text); root.appendChild(step6); QDomElement step7 = doc.createElement("Step"); step7.setAttribute("Number", 7); QDomText step7Text = doc.createTextNode(QString::number(ef2->id())); step7.appendChild(step7Text); root.appendChild(step7); // Nonexistent function QDomElement step8 = doc.createElement("Step"); step8.setAttribute("Number", 8); QDomText step8Text = doc.createTextNode(QString::number(INT_MAX - 1)); step8.appendChild(step8Text); root.appendChild(step8); // Unknown tag QDomElement foo = doc.createElement("Foo"); foo.setAttribute("Number", 3); QDomText fooText = doc.createTextNode("1"); foo.appendChild(fooText); root.appendChild(foo); Chaser c(m_doc); QCOMPARE(c.loadXML(root), true); QCOMPARE(c.direction(), Chaser::Backward); QCOMPARE(c.runOrder(), Chaser::SingleShot); QCOMPARE(c.steps().size(), 9); c.postLoad(); QCOMPARE(c.steps().size(), 8); QCOMPARE(c.steps().at(0), ChaserStep(sc1->id())); QCOMPARE(c.steps().at(1), ChaserStep(sc2->id())); QCOMPARE(c.steps().at(2), ChaserStep(ch1->id())); QCOMPARE(c.steps().at(3), ChaserStep(ch2->id())); QCOMPARE(c.steps().at(4), ChaserStep(co1->id())); QCOMPARE(c.steps().at(5), ChaserStep(co2->id())); QCOMPARE(c.steps().at(6), ChaserStep(ef1->id())); QCOMPARE(c.steps().at(7), ChaserStep(ef2->id())); }
void VCXYPad_Test::loadXML() { QWidget w; QDomDocument xmldoc; QDomElement root = xmldoc.createElement("XYPad"); xmldoc.appendChild(root); QDomElement pos = xmldoc.createElement("Position"); pos.setAttribute("X", "10"); pos.setAttribute("Y", "20"); root.appendChild(pos); QDomElement fxi = xmldoc.createElement("Fixture"); fxi.setAttribute("ID", "69"); root.appendChild(fxi); QDomElement x = xmldoc.createElement("Axis"); x.setAttribute("ID", "X"); x.setAttribute("LowLimit", "0.1"); x.setAttribute("HighLimit", "0.5"); x.setAttribute("Reverse", "True"); fxi.appendChild(x); QDomElement y = xmldoc.createElement("Axis"); y.setAttribute("ID", "Y"); y.setAttribute("LowLimit", "0.2"); y.setAttribute("HighLimit", "0.6"); y.setAttribute("Reverse", "True"); fxi.appendChild(y); QDomElement fxi2 = xmldoc.createElement("Fixture"); fxi2.setAttribute("ID", "50"); root.appendChild(fxi2); QDomElement x2 = xmldoc.createElement("Axis"); x2.setAttribute("ID", "X"); x2.setAttribute("LowLimit", "0.0"); x2.setAttribute("HighLimit", "1.0"); x2.setAttribute("Reverse", "False"); fxi2.appendChild(x2); QDomElement y2 = xmldoc.createElement("Axis"); y2.setAttribute("ID", "Y"); y2.setAttribute("LowLimit", "0.0"); y2.setAttribute("HighLimit", "1.0"); y2.setAttribute("Reverse", "False"); fxi2.appendChild(y2); QDomElement wstate = xmldoc.createElement("WindowState"); wstate.setAttribute("Width", "42"); wstate.setAttribute("Height", "69"); wstate.setAttribute("X", "3"); wstate.setAttribute("Y", "4"); wstate.setAttribute("Visible", "True"); root.appendChild(wstate); QDomElement appearance = xmldoc.createElement("Appearance"); QFont f(w.font()); f.setPointSize(f.pointSize() + 3); QDomElement font = xmldoc.createElement("Font"); QDomText fontText = xmldoc.createTextNode(f.toString()); font.appendChild(fontText); appearance.appendChild(font); root.appendChild(appearance); QDomElement foobar = xmldoc.createElement("Foobar"); root.appendChild(foobar); VCXYPad pad(&w, m_doc); QVERIFY(pad.loadXML(&root) == true); QCOMPARE(pad.m_fixtures.size(), 2); QCOMPARE(pad.pos(), QPoint(3, 4)); QCOMPARE(pad.size(), QSize(42, 69)); QCOMPARE(pad.m_area->position(), QPoint(10, 20)); VCXYPadFixture fixture(m_doc); fixture.setFixture(69); QVERIFY(pad.m_fixtures.contains(fixture) == true); fixture.setFixture(50); QVERIFY(pad.m_fixtures.contains(fixture) == true); root.setTagName("YXPad"); QVERIFY(pad.loadXML(&root) == false); }
void OSInfo::fillXml(QDomDocument &doc, QDomElement &root, const QString &os, const QString &osver, const QList<QHostAddress> &qlBind) { QDomElement tag; QDomText t; bool bIs64; bool bSSE2 = false; QString cpu_id, cpu_extid; tag=doc.createElement(QLatin1String("machash")); root.appendChild(tag); t=doc.createTextNode(OSInfo::getMacHash(qlBind)); tag.appendChild(t); tag=doc.createElement(QLatin1String("version")); root.appendChild(tag); t=doc.createTextNode(QLatin1String(MUMTEXT(MUMBLE_VERSION_STRING))); tag.appendChild(t); tag=doc.createElement(QLatin1String("release")); root.appendChild(tag); t=doc.createTextNode(QLatin1String(MUMBLE_RELEASE)); tag.appendChild(t); tag=doc.createElement(QLatin1String("os")); root.appendChild(tag); t=doc.createTextNode(os); tag.appendChild(t); tag=doc.createElement(QLatin1String("osver")); root.appendChild(tag); t=doc.createTextNode(osver); tag.appendChild(t); tag=doc.createElement(QLatin1String("qt")); root.appendChild(tag); t=doc.createTextNode(QString::fromLatin1(qVersion())); tag.appendChild(t); #if defined(Q_OS_WIN) BOOL bIsWow64 = FALSE; IsWow64Process(GetCurrentProcess(), &bIsWow64); bIs64 = bIsWow64; #elif defined(Q_OS_MAC) size_t len = sizeof(bool); sysctlbyname("hw.cpu64bit_capable", &bIs64, &len, NULL, 0); #else bIs64 = (QSysInfo::WordSize == 64); #endif tag=doc.createElement(QLatin1String("is64bit")); root.appendChild(tag); t=doc.createTextNode(QString::number(bIs64 ? 1 : 0)); tag.appendChild(t); #if defined(Q_OS_WIN) #define regstr(x) QString::fromLatin1(reinterpret_cast<const char *>(& x), 4) int chop; int cpuinfo[4]; __cpuid(cpuinfo, 1); bSSE2 = (cpuinfo[3] & 0x04000000); __cpuid(cpuinfo, 0); cpu_id = regstr(cpuinfo[1]) + regstr(cpuinfo[3]) + regstr(cpuinfo[2]); for (unsigned int j=2; j<=4;++j) { __cpuid(cpuinfo, 0x80000000 + j); cpu_extid += regstr(cpuinfo[0]) + regstr(cpuinfo[1]) + regstr(cpuinfo[2]) + regstr(cpuinfo[3]); } cpu_id = cpu_id.trimmed(); chop = cpu_id.indexOf(QLatin1Char('\0')); if (chop != -1) cpu_id.truncate(chop); cpu_extid = cpu_extid.trimmed(); chop = cpu_extid.indexOf(QLatin1Char('\0')); if (chop != -1) cpu_extid.truncate(chop); #endif tag=doc.createElement(QLatin1String("cpu_id")); root.appendChild(tag); t=doc.createTextNode(cpu_id); tag.appendChild(t); tag=doc.createElement(QLatin1String("cpu_extid")); root.appendChild(tag); t=doc.createTextNode(cpu_extid); tag.appendChild(t); tag=doc.createElement(QLatin1String("cpu_sse2")); root.appendChild(tag); t=doc.createTextNode(QString::number(bSSE2 ? 1 : 0)); tag.appendChild(t); }
void XMLOperations::touchMainConfigFile() { QFile mainConfigFile(MAINCONFIGFILE_PATH); if (!mainConfigFile.exists()) { if (!mainConfigFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) { return; } QDomDocument domDocument; QDomProcessingInstruction instruction; instruction=domDocument.createProcessingInstruction("xml","version=\'1.0\' encoding=\'UTF-8\'"); domDocument.appendChild(instruction); //创建MainConfig根节点 QDomElement mainConfigNode = domDocument.createElement("MainConfig"); //将各个子节点添加到@mainConfigNode节点上 #ifdef Q_OS_LINUX mainConfigNode.appendChild(createChildElement("OperatingSystem", "Linux")); #elif Q_OS_WIN mainConfigNode.appendChild(createChildElement("OperatingSystem", "Windows")); #else mainConfigNode.appendChild(createChildElement("OperatingSystem", "UnSupport")); #endif mainConfigNode.appendChild(createChildElement("Version", "1.0.0")); mainConfigNode.appendChild(createChildElement("DownloadSpeed", "2000")); mainConfigNode.appendChild(createChildElement("UploadSpeed", "500")); mainConfigNode.appendChild(createChildElement("WindowsSavePath", QStandardPaths::standardLocations(QStandardPaths::DownloadLocation).at(0) + "/PointDownload")); mainConfigNode.appendChild(createChildElement("LinuxSavePath", QStandardPaths::standardLocations(QStandardPaths::DownloadLocation).at(0) + "/PointDownload")); mainConfigNode.appendChild(createChildElement("Beep", "true")); mainConfigNode.appendChild(createChildElement("EnableUpload", "true")); mainConfigNode.appendChild(createChildElement("ThreadCount", "5")); mainConfigNode.appendChild(createChildElement("VideoDetectType", "mov;mkv;swf;flv;mp4;avi;rmvb;rm;3gp")); mainConfigNode.appendChild(createChildElement("AudioDetectType", "mp3;wma;flac;ape;wav;acc")); mainConfigNode.appendChild(createChildElement("MaxJobCount", "10")); mainConfigNode.appendChild(createChildElement("clipboard", "true")); mainConfigNode.appendChild(createChildElement("exitOnClose", "false")); mainConfigNode.appendChild(createChildElement("aria2Path", "")); mainConfigNode.appendChild(createChildElement("yougetPath", "")); //添加元素节点到父节点 domDocument.appendChild(mainConfigNode); //写xml文件 QTextStream textStream(&mainConfigFile); domDocument.save(textStream,4); mainConfigFile.close(); } }
void XMLWriter::Body(QDomElement& root){ auto body = doc.createElement("Body"); root.appendChild(body); Scene(body); }
static QDomElement textElement(QDomDocument& doc, const char *tagName, QString contents) { QDomElement tag = doc.createElement(QString::fromLatin1(tagName)); tag.appendChild(doc.createTextNode(contents)); return tag; }
void IconData::ExportIconMap(const QString &filename) { LOG(VB_GENERAL, LOG_INFO, LOC + QString("Exporting icon mapping to '%1'").arg(filename)); QFile xml_file(filename); if (dash_open(xml_file, filename, QIODevice::WriteOnly)) { QTextStream os(&xml_file); os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; os << "<!-- generated by mythfilldatabase -->\n"; QDomDocument iconmap; QDomElement roote = iconmap.createElement(IM_DOC_TAG); MSqlQuery query(MSqlQuery::InitCon()); query.prepare("SELECT * FROM callsignnetworkmap ORDER BY callsign;"); if (query.exec()) { while (query.next()) { QDomElement cs2nettag = iconmap.createElement(IM_CS_TO_NET_TAG); QDomElement cstag = iconmap.createElement(IM_CS_TAG); QDomElement nettag = iconmap.createElement(IM_NET_TAG); QDomText cs_text = iconmap.createTextNode( query.value(1).toString()); QDomText net_text = iconmap.createTextNode( query.value(2).toString()); cstag.appendChild(cs_text); nettag.appendChild(net_text); cs2nettag.appendChild(cstag); cs2nettag.appendChild(nettag); roote.appendChild(cs2nettag); } } query.prepare("SELECT * FROM networkiconmap ORDER BY network;"); if (query.exec()) { while (query.next()) { QDomElement net2urltag = iconmap.createElement( IM_NET_TO_URL_TAG); QDomElement nettag = iconmap.createElement(IM_NET_TAG); QDomElement urltag = iconmap.createElement(IM_NET_URL_TAG); QDomText net_text = iconmap.createTextNode( query.value(1).toString()); QDomText url_text = iconmap.createTextNode( query.value(2).toString()); nettag.appendChild(net_text); urltag.appendChild(url_text); net2urltag.appendChild(nettag); net2urltag.appendChild(urltag); roote.appendChild(net2urltag); } } query.prepare("SELECT value,data FROM settings WHERE value " "LIKE :URLMAP"); query.bindValue(":URLMAP", QString(BASEURLMAP_START) + "%"); if (query.exec()) { QRegExp baseax("\\.([^\\.]+)$"); while (query.next()) { QString base_stub = query.value(0).toString(); if (baseax.indexIn(base_stub) != -1) { base_stub = baseax.cap(1); } QDomElement baseurltag = iconmap.createElement(IM_BASEURL_TAG); QDomElement stubtag = iconmap.createElement( IM_BASE_STUB_TAG); QDomElement urltag = iconmap.createElement(IM_NET_URL_TAG); QDomText base_text = iconmap.createTextNode(base_stub); QDomText url_text = iconmap.createTextNode( query.value(1).toString()); stubtag.appendChild(base_text); urltag.appendChild(url_text); baseurltag.appendChild(stubtag); baseurltag.appendChild(urltag); roote.appendChild(baseurltag); } } iconmap.appendChild(roote); iconmap.save(os, 4); } else { LOG(VB_GENERAL, LOG_ERR, LOC + QString("unable to open '%1' for writing.").arg(filename)); } }
bool QgsComposerScaleBar::writeXML( QDomElement& elem, QDomDocument & doc ) const { if ( elem.isNull() ) { return false; } QDomElement composerScaleBarElem = doc.createElement( "ComposerScaleBar" ); composerScaleBarElem.setAttribute( "height", QString::number( mHeight ) ); composerScaleBarElem.setAttribute( "labelBarSpace", QString::number( mLabelBarSpace ) ); composerScaleBarElem.setAttribute( "boxContentSpace", QString::number( mBoxContentSpace ) ); composerScaleBarElem.setAttribute( "numSegments", mNumSegments ); composerScaleBarElem.setAttribute( "numSegmentsLeft", mNumSegmentsLeft ); composerScaleBarElem.setAttribute( "numUnitsPerSegment", QString::number( mNumUnitsPerSegment ) ); composerScaleBarElem.setAttribute( "segmentMillimeters", QString::number( mSegmentMillimeters ) ); composerScaleBarElem.setAttribute( "numMapUnitsPerScaleBarUnit", QString::number( mNumMapUnitsPerScaleBarUnit ) ); composerScaleBarElem.setAttribute( "font", mFont.toString() ); composerScaleBarElem.setAttribute( "outlineWidth", QString::number( mPen.widthF() ) ); composerScaleBarElem.setAttribute( "unitLabel", mUnitLabeling ); composerScaleBarElem.setAttribute( "units", mUnits ); composerScaleBarElem.setAttribute( "lineJoinStyle", QgsSymbolLayerV2Utils::encodePenJoinStyle( mLineJoinStyle ) ); composerScaleBarElem.setAttribute( "lineCapStyle", QgsSymbolLayerV2Utils::encodePenCapStyle( mLineCapStyle ) ); //style if ( mStyle ) { composerScaleBarElem.setAttribute( "style", mStyle->name() ); } //map id if ( mComposerMap ) { composerScaleBarElem.setAttribute( "mapId", mComposerMap->id() ); } //colors //fill color QDomElement fillColorElem = doc.createElement( "fillColor" ); QColor fillColor = mBrush.color(); fillColorElem.setAttribute( "red", QString::number( fillColor.red() ) ); fillColorElem.setAttribute( "green", QString::number( fillColor.green() ) ); fillColorElem.setAttribute( "blue", QString::number( fillColor.blue() ) ); fillColorElem.setAttribute( "alpha", QString::number( fillColor.alpha() ) ); composerScaleBarElem.appendChild( fillColorElem ); //fill color 2 QDomElement fillColor2Elem = doc.createElement( "fillColor2" ); QColor fillColor2 = mBrush2.color(); fillColor2Elem.setAttribute( "red", QString::number( fillColor2.red() ) ); fillColor2Elem.setAttribute( "green", QString::number( fillColor2.green() ) ); fillColor2Elem.setAttribute( "blue", QString::number( fillColor2.blue() ) ); fillColor2Elem.setAttribute( "alpha", QString::number( fillColor2.alpha() ) ); composerScaleBarElem.appendChild( fillColor2Elem ); //pen color QDomElement strokeColorElem = doc.createElement( "strokeColor" ); QColor strokeColor = mPen.color(); strokeColorElem.setAttribute( "red", QString::number( strokeColor.red() ) ); strokeColorElem.setAttribute( "green", QString::number( strokeColor.green() ) ); strokeColorElem.setAttribute( "blue", QString::number( strokeColor.blue() ) ); strokeColorElem.setAttribute( "alpha", QString::number( strokeColor.alpha() ) ); composerScaleBarElem.appendChild( strokeColorElem ); //font color QDomElement fontColorElem = doc.createElement( "textColor" ); fontColorElem.setAttribute( "red", QString::number( mFontColor.red() ) ); fontColorElem.setAttribute( "green", QString::number( mFontColor.green() ) ); fontColorElem.setAttribute( "blue", QString::number( mFontColor.blue() ) ); fontColorElem.setAttribute( "alpha", QString::number( mFontColor.alpha() ) ); composerScaleBarElem.appendChild( fontColorElem ); //alignment composerScaleBarElem.setAttribute( "alignment", QString::number(( int ) mAlignment ) ); elem.appendChild( composerScaleBarElem ); return _writeXML( composerScaleBarElem, doc ); }
void DomUtil::writeEntry(QDomDocument &doc, const QString &path, const QString &value) { QDomElement el = DomUtil::createElementByPath(doc, path); el.appendChild(doc.createTextNode(value)); }
QDomElement TupPathItem::toXml(QDomDocument &doc) const { QDomElement root = doc.createElement("path"); QString strPath = ""; QChar t; for(int i=0; i < path().elementCount(); i++) { QPainterPath::Element e = path().elementAt(i); switch (e.type) { case QPainterPath::MoveToElement: { if (t != 'M') { t = 'M'; strPath += "M " + QString::number(e.x) + " " + QString::number(e.y) + " "; } else { strPath += QString::number(e.x) + " " + QString::number(e.y) + " "; } } break; case QPainterPath::LineToElement: { if (t != 'L') { t = 'L'; strPath += " L " + QString::number(e.x) + " " + QString::number(e.y) + " "; } else { strPath += QString::number(e.x) + " " + QString::number(e.y) + " "; } } break; case QPainterPath::CurveToElement: { if (t != 'C') { t = 'C'; strPath += " C " + QString::number(e.x) + " " + QString::number(e.y) + " "; } else { strPath += " " + QString::number(e.x) + " " + QString::number(e.y) + " "; } } break; case QPainterPath::CurveToDataElement: { if (t == 'C') strPath += " " +QString::number(e.x) + " " + QString::number(e.y) + " "; } break; } } root.setAttribute("coords", strPath); root.appendChild(TupSerializer::properties(this, doc)); QBrush brush = this->brush(); root.appendChild(TupSerializer::brush(&brush, doc)); QPen pen = this->pen(); root.appendChild(TupSerializer::pen(&pen, doc)); return root; }
void QgsWFSProjectParser::featureTypeList( QDomElement& parentElement, QDomDocument& doc ) const { const QList<QDomElement>& projectLayerElements = mProjectParser.projectLayerElements(); if ( projectLayerElements.size() < 1 ) { return; } QStringList wfsLayersId = mProjectParser.wfsLayers(); QStringList wfstUpdateLayersId = wfstUpdateLayers(); QStringList wfstInsertLayersId = wfstInsertLayers(); QStringList wfstDeleteLayersId = wfstDeleteLayers(); QMap<QString, QgsMapLayer *> layerMap; foreach ( const QDomElement &elem, projectLayerElements ) { QString type = elem.attribute( "type" ); if ( type == "vector" ) { QgsMapLayer *layer = mProjectParser.createLayerFromElement( elem ); if ( layer && wfsLayersId.contains( layer->id() ) ) { QgsDebugMsg( QString( "add layer %1 to map" ).arg( layer->id() ) ); layerMap.insert( layer->id(), layer ); QDomElement layerElem = doc.createElement( "FeatureType" ); QDomElement nameElem = doc.createElement( "Name" ); //We use the layer name even though it might not be unique. //Because the id sometimes contains user/pw information and the name is more descriptive QString typeName = layer->name(); typeName = typeName.replace( " ", "_" ); QDomText nameText = doc.createTextNode( typeName ); nameElem.appendChild( nameText ); layerElem.appendChild( nameElem ); QDomElement titleElem = doc.createElement( "Title" ); QString titleName = layer->title(); if ( titleName.isEmpty() ) { titleName = layer->name(); } QDomText titleText = doc.createTextNode( titleName ); titleElem.appendChild( titleText ); layerElem.appendChild( titleElem ); QDomElement abstractElem = doc.createElement( "Abstract" ); QString abstractName = layer->abstract(); if ( abstractName.isEmpty() ) { abstractName = ""; } QDomText abstractText = doc.createTextNode( abstractName ); abstractElem.appendChild( abstractText ); layerElem.appendChild( abstractElem ); //keyword list if ( !layer->keywordList().isEmpty() ) { QDomElement keywordsElem = doc.createElement( "Keywords" ); QDomText keywordsText = doc.createTextNode( layer->keywordList() ); keywordsElem.appendChild( keywordsText ); layerElem.appendChild( keywordsElem ); } //appendExGeographicBoundingBox( layerElem, doc, layer->extent(), layer->crs() ); QDomElement srsElem = doc.createElement( "SRS" ); QDomText srsText = doc.createTextNode( layer->crs().authid() ); srsElem.appendChild( srsText ); layerElem.appendChild( srsElem ); //wfs:Operations element QDomElement operationsElement = doc.createElement( "Operations"/*wfs:Operations*/ ); //wfs:Query element QDomElement queryElement = doc.createElement( "Query"/*wfs:Query*/ ); operationsElement.appendChild( queryElement ); QgsVectorLayer* vlayer = qobject_cast<QgsVectorLayer*>( layer ); QgsVectorDataProvider* provider = vlayer->dataProvider(); if (( provider->capabilities() & QgsVectorDataProvider::AddFeatures ) && wfstInsertLayersId.contains( layer->id() ) ) { //wfs:Insert element QDomElement insertElement = doc.createElement( "Insert"/*wfs:Insert*/ ); operationsElement.appendChild( insertElement ); } if (( provider->capabilities() & QgsVectorDataProvider::ChangeAttributeValues ) && ( provider->capabilities() & QgsVectorDataProvider::ChangeGeometries ) && wfstUpdateLayersId.contains( layer->id() ) ) { //wfs:Update element QDomElement updateElement = doc.createElement( "Update"/*wfs:Update*/ ); operationsElement.appendChild( updateElement ); } if (( provider->capabilities() & QgsVectorDataProvider::DeleteFeatures ) && wfstDeleteLayersId.contains( layer->id() ) ) { //wfs:Delete element QDomElement deleteElement = doc.createElement( "Delete"/*wfs:Delete*/ ); operationsElement.appendChild( deleteElement ); } layerElem.appendChild( operationsElement ); QgsRectangle layerExtent = layer->extent(); QDomElement bBoxElement = doc.createElement( "LatLongBoundingBox" ); bBoxElement.setAttribute( "minx", QString::number( layerExtent.xMinimum() ) ); bBoxElement.setAttribute( "miny", QString::number( layerExtent.yMinimum() ) ); bBoxElement.setAttribute( "maxx", QString::number( layerExtent.xMaximum() ) ); bBoxElement.setAttribute( "maxy", QString::number( layerExtent.yMaximum() ) ); layerElem.appendChild( bBoxElement ); // layer metadata URL QString metadataUrl = layer->metadataUrl(); if ( !metadataUrl.isEmpty() ) { QDomElement metaUrlElem = doc.createElement( "MetadataURL" ); QString metadataUrlType = layer->metadataUrlType(); metaUrlElem.setAttribute( "type", metadataUrlType ); QString metadataUrlFormat = layer->metadataUrlFormat(); if ( metadataUrlFormat == "text/xml" ) { metaUrlElem.setAttribute( "format", "XML" ); } else { metaUrlElem.setAttribute( "format", "TXT" ); } QDomText metaUrlText = doc.createTextNode( metadataUrl ); metaUrlElem.appendChild( metaUrlText ); layerElem.appendChild( metaUrlElem ); } parentElement.appendChild( layerElem ); } } }
bool RGBMatrix::saveXML(QDomDocument* doc, QDomElement* wksp_root) { QDomElement root; QDomElement tag; QDomText text; QString str; Q_ASSERT(doc != NULL); Q_ASSERT(wksp_root != NULL); /* Function tag */ root = doc->createElement(KXMLQLCFunction); wksp_root->appendChild(root); /* Common attributes */ saveXMLCommon(&root); /* Speeds */ saveXMLSpeed(doc, &root); /* Direction */ saveXMLDirection(doc, &root); /* Run order */ saveXMLRunOrder(doc, &root); /* Algorithm */ if (m_algorithm != NULL) m_algorithm->saveXML(doc, &root); /* Start Color */ tag = doc->createElement(KXMLQLCRGBMatrixStartColor); root.appendChild(tag); text = doc->createTextNode(QString::number(startColor().rgb())); tag.appendChild(text); /* End Color */ if (endColor().isValid()) { tag = doc->createElement(KXMLQLCRGBMatrixEndColor); root.appendChild(tag); text = doc->createTextNode(QString::number(endColor().rgb())); tag.appendChild(text); } /* Fixture Group */ tag = doc->createElement(KXMLQLCRGBMatrixFixtureGroup); root.appendChild(tag); text = doc->createTextNode(QString::number(fixtureGroup())); tag.appendChild(text); /* Properties */ QHashIterator<QString, QString> it(m_properties); while(it.hasNext()) { it.next(); tag = doc->createElement(KXMLQLCRGBMatrixProperty); tag.setAttribute(KXMLQLCRGBMatrixPropertyName, it.key()); tag.setAttribute(KXMLQLCRGBMatrixPropertyValue, it.value()); root.appendChild(tag); } return true; }
void setSchemaLayer( QDomElement &parentElement, QDomDocument &doc, const QgsVectorLayer *layer ) { const QgsVectorDataProvider *provider = layer->dataProvider(); if ( !provider ) { return; } QString typeName = layer->name(); if ( !layer->shortName().isEmpty() ) typeName = layer->shortName(); typeName = typeName.replace( ' ', '_' ); //xsd:element QDomElement elementElem = doc.createElement( QStringLiteral( "element" )/*xsd:element*/ ); elementElem.setAttribute( QStringLiteral( "name" ), typeName ); elementElem.setAttribute( QStringLiteral( "type" ), "qgs:" + typeName + "Type" ); elementElem.setAttribute( QStringLiteral( "substitutionGroup" ), QStringLiteral( "gml:_Feature" ) ); parentElement.appendChild( elementElem ); //xsd:complexType QDomElement complexTypeElem = doc.createElement( QStringLiteral( "complexType" )/*xsd:complexType*/ ); complexTypeElem.setAttribute( QStringLiteral( "name" ), typeName + "Type" ); parentElement.appendChild( complexTypeElem ); //xsd:complexType QDomElement complexContentElem = doc.createElement( QStringLiteral( "complexContent" )/*xsd:complexContent*/ ); complexTypeElem.appendChild( complexContentElem ); //xsd:extension QDomElement extensionElem = doc.createElement( QStringLiteral( "extension" )/*xsd:extension*/ ); extensionElem.setAttribute( QStringLiteral( "base" ), QStringLiteral( "gml:AbstractFeatureType" ) ); complexContentElem.appendChild( extensionElem ); //xsd:sequence QDomElement sequenceElem = doc.createElement( QStringLiteral( "sequence" )/*xsd:sequence*/ ); extensionElem.appendChild( sequenceElem ); //xsd:element if ( layer->isSpatial() ) { QDomElement geomElem = doc.createElement( QStringLiteral( "element" )/*xsd:element*/ ); geomElem.setAttribute( QStringLiteral( "name" ), QStringLiteral( "geometry" ) ); QgsWkbTypes::Type wkbType = layer->wkbType(); switch ( wkbType ) { case QgsWkbTypes::Point25D: case QgsWkbTypes::Point: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PointPropertyType" ) ); break; case QgsWkbTypes::LineString25D: case QgsWkbTypes::LineString: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:LineStringPropertyType" ) ); break; case QgsWkbTypes::Polygon25D: case QgsWkbTypes::Polygon: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:PolygonPropertyType" ) ); break; case QgsWkbTypes::MultiPoint25D: case QgsWkbTypes::MultiPoint: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPointPropertyType" ) ); break; case QgsWkbTypes::MultiLineString25D: case QgsWkbTypes::MultiLineString: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiLineStringPropertyType" ) ); break; case QgsWkbTypes::MultiPolygon25D: case QgsWkbTypes::MultiPolygon: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:MultiPolygonPropertyType" ) ); break; default: geomElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "gml:GeometryPropertyType" ) ); break; } geomElem.setAttribute( QStringLiteral( "minOccurs" ), QStringLiteral( "0" ) ); geomElem.setAttribute( QStringLiteral( "maxOccurs" ), QStringLiteral( "1" ) ); sequenceElem.appendChild( geomElem ); //Attributes const QgsFields &fields = layer->pendingFields(); //hidden attributes for this layer const QSet<QString> &layerExcludedAttributes = layer->excludeAttributesWfs(); for ( int idx = 0; idx < fields.count(); ++idx ) { QString attributeName = fields.at( idx ).name(); //skip attribute if excluded from WFS publication if ( layerExcludedAttributes.contains( attributeName ) ) { continue; } //xsd:element QDomElement attElem = doc.createElement( QStringLiteral( "element" )/*xsd:element*/ ); attElem.setAttribute( QStringLiteral( "name" ), attributeName ); QVariant::Type attributeType = fields.at( idx ).type(); if ( attributeType == QVariant::Int ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "integer" ) ); else if ( attributeType == QVariant::LongLong ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "long" ) ); else if ( attributeType == QVariant::Double ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "double" ) ); else if ( attributeType == QVariant::Bool ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "boolean" ) ); else if ( attributeType == QVariant::Date ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "date" ) ); else if ( attributeType == QVariant::Time ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "time" ) ); else if ( attributeType == QVariant::DateTime ) attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "dateTime" ) ); else attElem.setAttribute( QStringLiteral( "type" ), QStringLiteral( "string" ) ); sequenceElem.appendChild( attElem ); QString alias = fields.at( idx ).alias(); if ( !alias.isEmpty() ) { attElem.setAttribute( QStringLiteral( "alias" ), alias ); } } } }
void OSInfo::fillXml(QDomDocument &doc, QDomElement &root, const QString &os, const QString &osver, const QList<QHostAddress> &qlBind) { QDomElement tag; QDomText t; bool bIs64; tag=doc.createElement(QLatin1String("machash")); root.appendChild(tag); t=doc.createTextNode(OSInfo::getMacHash(qlBind)); tag.appendChild(t); tag=doc.createElement(QLatin1String("version")); root.appendChild(tag); t=doc.createTextNode(QLatin1String(MUMTEXT(MUMBLE_VERSION_STRING))); tag.appendChild(t); tag=doc.createElement(QLatin1String("release")); root.appendChild(tag); t=doc.createTextNode(QLatin1String(MUMBLE_RELEASE)); tag.appendChild(t); tag=doc.createElement(QLatin1String("os")); root.appendChild(tag); t=doc.createTextNode(os); tag.appendChild(t); tag=doc.createElement(QLatin1String("osver")); root.appendChild(tag); t=doc.createTextNode(osver); tag.appendChild(t); tag=doc.createElement(QLatin1String("qt")); root.appendChild(tag); t=doc.createTextNode(QString::fromLatin1(qVersion())); tag.appendChild(t); #if defined(Q_WS_WIN) BOOL bIsWow64 = FALSE; IsWow64Process(GetCurrentProcess(), &bIsWow64); bIs64 = bIsWow64; #else bIs64 = (QSysInfo::WordSize == 64); #endif tag=doc.createElement(QLatin1String("is64bit")); root.appendChild(tag); t=doc.createTextNode(QString::number(bIs64 ? 1 : 0)); tag.appendChild(t); }
void KexiFormPart::generateForm(KexiDB::FieldList *list, QDomDocument &domDoc) { //this form generates a .ui from FieldList list //basically that is a Label and a LineEdit for each field domDoc = QDomDocument("UI"); QDomElement uiElement = domDoc.createElement("UI"); domDoc.appendChild(uiElement); uiElement.setAttribute("version", "3.1"); uiElement.setAttribute("stdsetdef", 1); QDomElement baseClass = domDoc.createElement("class"); uiElement.appendChild(baseClass); QDomText baseClassV = domDoc.createTextNode("QWidget"); baseClass.appendChild(baseClassV); QDomElement baseWidget = domDoc.createElement("widget"); baseWidget.setAttribute("class", "QWidget"); int y = 0; for (unsigned int i = 0; i < list->fieldCount(); i++) { QDomElement lclass = domDoc.createElement("widget"); baseWidget.appendChild(lclass); lclass.setAttribute("class", "QLabel"); QDomElement lNameProperty = domDoc.createElement("property"); lNameProperty.setAttribute("name", "name"); QDomElement lType = domDoc.createElement("cstring"); QDomText lClassN = domDoc.createTextNode(QString("l%1").arg(list->field(i)->name())); lType.appendChild(lClassN); lNameProperty.appendChild(lType); lclass.appendChild(lNameProperty); QDomElement gNameProperty = domDoc.createElement("property"); gNameProperty.setAttribute("name", "geometry"); QDomElement lGType = domDoc.createElement("rect"); QDomElement lx = domDoc.createElement("x"); QDomText lxV = domDoc.createTextNode("10"); lx.appendChild(lxV); QDomElement ly = domDoc.createElement("y"); QDomText lyV = domDoc.createTextNode(QString::number(y + 10)); ly.appendChild(lyV); QDomElement lWidth = domDoc.createElement("width"); QDomText lWidthV = domDoc.createTextNode("100"); lWidth.appendChild(lWidthV); QDomElement lHeight = domDoc.createElement("height"); QDomText lHeightV = domDoc.createTextNode("20"); lHeight.appendChild(lHeightV); lGType.appendChild(lx); lGType.appendChild(ly); lGType.appendChild(lWidth); lGType.appendChild(lHeight); gNameProperty.appendChild(lGType); lclass.appendChild(gNameProperty); QDomElement tNameProperty = domDoc.createElement("property"); tNameProperty.setAttribute("name", "text"); QDomElement lTType = domDoc.createElement("string"); QDomText lTextV = domDoc.createTextNode(list->field(i)->name()); lTType.appendChild(lTextV); tNameProperty.appendChild(lTType); lclass.appendChild(tNameProperty); ///line edit! QDomElement vclass = domDoc.createElement("widget"); baseWidget.appendChild(vclass); vclass.setAttribute("class", "KLineEdit"); QDomElement vNameProperty = domDoc.createElement("property"); vNameProperty.setAttribute("name", "name"); QDomElement vType = domDoc.createElement("cstring"); QDomText vClassN = domDoc.createTextNode(list->field(i)->name()); vType.appendChild(vClassN); vNameProperty.appendChild(vType); vclass.appendChild(vNameProperty); QDomElement vgNameProperty = domDoc.createElement("property"); vgNameProperty.setAttribute("name", "geometry"); QDomElement vGType = domDoc.createElement("rect"); QDomElement vx = domDoc.createElement("x"); QDomText vxV = domDoc.createTextNode("110"); vx.appendChild(vxV); QDomElement vy = domDoc.createElement("y"); QDomText vyV = domDoc.createTextNode(QString::number(y + 10)); vy.appendChild(vyV); QDomElement vWidth = domDoc.createElement("width"); QDomText vWidthV = domDoc.createTextNode("200"); vWidth.appendChild(vWidthV); QDomElement vHeight = domDoc.createElement("height"); QDomText vHeightV = domDoc.createTextNode("20"); vHeight.appendChild(vHeightV); vGType.appendChild(vx); vGType.appendChild(vy); vGType.appendChild(vWidth); vGType.appendChild(vHeight); vgNameProperty.appendChild(vGType); vclass.appendChild(vgNameProperty); y += 20; } QDomElement lNameProperty = domDoc.createElement("property"); lNameProperty.setAttribute("name", "name"); QDomElement lType = domDoc.createElement("cstring"); QDomText lClassN = domDoc.createTextNode("DBForm"); lType.appendChild(lClassN); lNameProperty.appendChild(lType); baseWidget.appendChild(lNameProperty); QDomElement wNameProperty = domDoc.createElement("property"); wNameProperty.setAttribute("name", "geometry"); QDomElement wGType = domDoc.createElement("rect"); QDomElement wx = domDoc.createElement("x"); QDomText wxV = domDoc.createTextNode("0"); wx.appendChild(wxV); QDomElement wy = domDoc.createElement("y"); QDomText wyV = domDoc.createTextNode("0"); wy.appendChild(wyV); QDomElement wWidth = domDoc.createElement("width"); QDomText wWidthV = domDoc.createTextNode("340"); wWidth.appendChild(wWidthV); QDomElement wHeight = domDoc.createElement("height"); QDomText wHeightV = domDoc.createTextNode(QString::number(y + 30)); wHeight.appendChild(wHeightV); wGType.appendChild(wx); wGType.appendChild(wy); wGType.appendChild(wWidth); wGType.appendChild(wHeight); wNameProperty.appendChild(wGType); baseWidget.appendChild(wNameProperty); uiElement.appendChild(baseWidget); }