void SvgImage::modify(const QString &tag, const QString &id, const QString &attribute, const QString &value) { bool modified = false; QDomNodeList nodeList = m_svgDocument.elementsByTagName( tag ); for ( int i = 0; i < nodeList.count(); ++i ) { QDomNode node = nodeList.at( i ); QDomNamedNodeMap attributes = node.attributes(); if ( checkIDAttribute( attributes, id ) ) { QDomNode attrElement = attributes.namedItem( attribute ); if ( attrElement.isAttr() ) { QDomAttr attr = attrElement.toAttr(); attr.setValue( value ); modified = true; } } } if ( modified ) { m_updateNeeded = true; update(); } }
bool QDomNodeProto:: isAttr() const { QDomNode *item = qscriptvalue_cast<QDomNode*>(thisObject()); if (item) return item->isAttr(); return false; }
void WbWidget::checkForViewBoxChange(const QDomNode &node) { if(node.isAttr() && node.nodeName().toLower() == "viewbox" && node.parentNode() == session_->document().documentElement()) { QRectF box = parseSvgViewBox(node.nodeValue()); if(box.width() > 0 && box.height() > 0) { scene_->setSceneRect(box); } } }
bool checkIDAttribute( const QDomNamedNodeMap& map, const QString& value ) { QDomNode attrElement = map.namedItem( "id" ); if ( attrElement.isAttr() ) { QDomAttr attr = attrElement.toAttr(); return attr.value() == value; } return false; }
void XMLParser::parseNode(IEntity *entity,QDomNode *node) { while(!node->isNull()) { QString namesp; QString name; IEntity *auxent = NULL; QDomElement child = node->toElement(); if(!child.isNull()) { #ifdef PARSER_DEBUG qDebug() << child.tagName(); #endif splitNode(child.tagName(),namesp,name); if(name.isEmpty()) throw new XMLParserException("Unable to parse node\n"); auxent = new IEntity(namesp,name); } if(node->hasAttributes()) { QDomNamedNodeMap attributes = node->attributes(); for(unsigned int i=0; i<=attributes.length(); i++) { QDomNode n = attributes.item(i); if(n.isAttr()) { #ifdef PARSER_DEBUG qDebug() << n.toAttr().name()<< "=" << n.toAttr().value(); #endif QString attnamesp; QString attname; splitNode(n.toAttr().name(),attnamesp,attname); //TODO: add attribute with namespace auxent->addAttribute(attname,n.toAttr().value()); } } } if(node->isText()) { #ifdef PARSER_DEBUG qDebug() << node->toText().data(); #endif entity->addValue(node->toText().data()); } else entity->addEntity(auxent); if (node->hasChildNodes()) parseNode(auxent,&node->firstChild()); node = &(node->nextSibling()); } }
void configManager::loadConfigFile() { // read the XML file and create DOM tree QFile cfg_file( m_lmmsRcFile ); QDomDocument dom_tree; if( cfg_file.open( QIODevice::ReadOnly ) ) { QString errorString; int errorLine, errorCol; if( dom_tree.setContent( &cfg_file, false, &errorString, &errorLine, &errorCol ) ) { // get the head information from the DOM QDomElement root = dom_tree.documentElement(); QDomNode node = root.firstChild(); // create the settings-map out of the DOM while( !node.isNull() ) { if( node.isElement() && node.toElement().hasAttributes () ) { stringPairVector attr; QDomNamedNodeMap node_attr = node.toElement().attributes(); for( int i = 0; i < node_attr.count(); ++i ) { QDomNode n = node_attr.item( i ); if( n.isAttr() ) { attr.push_back( qMakePair( n.toAttr().name(), n.toAttr().value() ) ); } } m_settings[node.nodeName()] = attr; } else if( node.nodeName() == "recentfiles" ) { m_recentlyOpenedProjects.clear(); QDomNode n = node.firstChild(); while( !n.isNull() ) { if( n.isElement() && n.toElement().hasAttributes() ) { m_recentlyOpenedProjects << n.toElement().attribute( "path" ); } n = n.nextSibling(); } } node = node.nextSibling(); } if( value( "paths", "artwork" ) != "" ) { m_artworkDir = value( "paths", "artwork" ); if( !QDir( m_artworkDir ).exists() ) { m_artworkDir = defaultArtworkDir(); } if( m_artworkDir.right( 1 ) != QDir::separator() ) { m_artworkDir += QDir::separator(); } } setWorkingDir( value( "paths", "workingdir" ) ); setVSTDir( value( "paths", "vstdir" ) ); setFLDir( value( "paths", "fldir" ) ); setLADSPADir( value( "paths", "laddir" ) ); #ifdef LMMS_HAVE_STK setSTKDir( value( "paths", "stkdir" ) ); #endif #ifdef LMMS_HAVE_FLUIDSYNTH setDefaultSoundfont( value( "paths", "defaultsf2" ) ); #endif setBackgroundArtwork( value( "paths", "backgroundartwork" ) ); } else { QMessageBox::warning( NULL, MainWindow::tr( "Configuration file" ), MainWindow::tr( "Error while parsing configuration file at line %1:%2: %3" ). arg( errorLine ). arg( errorCol ). arg( errorString ) ); } cfg_file.close(); } if( m_vstDir.isEmpty() || m_vstDir == QDir::separator() || !QDir( m_vstDir ).exists() ) { #ifdef LMMS_BUILD_WIN32 m_vstDir = windowsConfigPath( CSIDL_PROGRAM_FILES ) + QDir::separator() + "VstPlugins"; #else m_vstDir = ensureTrailingSlash( QDir::home().absolutePath() ); #endif } if( m_flDir.isEmpty() || m_flDir == QDir::separator() ) { m_flDir = ensureTrailingSlash( QDir::home().absolutePath() ); } if( m_ladDir.isEmpty() || m_ladDir == QDir::separator() || ( !m_ladDir.contains( ':' ) && !QDir( m_ladDir ).exists() ) ) { #if defined(LMMS_BUILD_WIN32) m_ladDir = m_pluginDir + "ladspa" + QDir::separator(); #elif defined(LMMS_BUILD_APPLE) m_ladDir = qApp->applicationDirPath() + "/../lib/lmms/ladspa/"; #else m_ladDir = qApp->applicationDirPath() + '/' + LIB_DIR + "/ladspa/"; #endif } #ifdef LMMS_HAVE_STK if( m_stkDir.isEmpty() || m_stkDir == QDir::separator() || !QDir( m_stkDir ).exists() ) { #if defined(LMMS_BUILD_WIN32) m_stkDir = m_dataDir + "stk/rawwaves/"; #elif defined(LMMS_BUILD_APPLE) m_stkDir = qApp->applicationDirPath() + "/../share/stk/rawwaves/"; #else m_stkDir = "/usr/share/stk/rawwaves/"; #endif } #endif QDir::setSearchPaths( "resources", QStringList() << artworkDir() << defaultArtworkDir() ); if( !QDir( m_workingDir ).exists() ) { if( QMessageBox::question( 0, MainWindow::tr( "Working directory" ), MainWindow::tr( "The LMMS working directory %1 does not " "exist. Create it now? You can change the directory " "later via Edit -> Settings." ).arg( m_workingDir ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) { QDir().mkpath( m_workingDir ); } } if( QDir( m_workingDir ).exists() ) { QDir().mkpath( userProjectsDir() ); QDir().mkpath( userSamplesDir() ); QDir().mkpath( userPresetsDir() ); } }