void DataFile::write( QTextStream & _strm ) { if( type() == SongProject || type() == SongProjectTemplate || type() == InstrumentTrackSettings ) { cleanMetaNodes( documentElement() ); } save(_strm, 2); }
void DataFile::cleanMetaNodes( QDomElement _de ) { QDomNode node = _de.firstChild(); while( !node.isNull() ) { if( node.isElement() ) { if( node.toElement().attribute( "metadata" ).toInt() ) { QDomNode ns = node.nextSibling(); _de.removeChild( node ); node = ns; continue; } if( node.hasChildNodes() ) { cleanMetaNodes( node.toElement() ); } } node = node.nextSibling(); } }
bool multimediaProject::writeFile( const QString & _fn ) { if( type() == SongProject || type() == SongProjectTemplate || type() == InstrumentTrackSettings ) { cleanMetaNodes( documentElement() ); } QString fn = nameWithExtension( _fn ); QFile outfile( fn ); if( !outfile.open( QIODevice::WriteOnly | QIODevice::Truncate ) ) { QMessageBox::critical( NULL, songEditor::tr( "Could not write file" ), songEditor::tr( "Could not write file " "%1. You probably are " "not permitted to " "write to this file.\n" "Please make sure you " "have write-access to " "the file and try " "again." ).arg( fn ) ); return false; } QString xml = "<?xml version=\"1.0\"?>\n" + toString( 2 ); if( fn.section( '.', -1 ) == "mmpz" ) { outfile.write( qCompress( xml.toUtf8() ) ); } else { QTextStream( &outfile ) << xml; } outfile.close(); return true; }