I must have missed something but when I serialize my app properties, the XML is escaped and written as an attribute instead of being written as a tree. This behaviour happens only under windows, Mac version works fine .
The code :
ScopedPointer<XmlElement> xml( mData.createXml() );
mAppProperties.getUserSettings()->setValue("Preferences", xml);
The result :
<?xml version="1.0" encoding="UTF-8"?>
<PROPERTIES>
<VALUE name="Preferences" val="<?xml version="1.0" encoding="UTF-8"?> <Settings><MidiOutput0 name="LoopBe Internal MIDI"/><MidiOutput1/><MidiOutput2/><MidiOutput3/><MidiOutput4 name="LoopBe Internal MIDI"/><MidiOutput5/><MidiOutput6/><MidiOutput7/><Inputs><FA-66MIDIIN/><LoopBeInternalMIDI/><NovationImpulse active="1"/><MIDIIN2(NovationImpulse)/><MaschineMK2In/></Inputs></Settings>"/>
<VALUE name="Mappings">
<KEYMAPPINGS basedOnDefaults="1"/>
</VALUE>
</PROPERTIES>
Now, for the "Mappings" par I use the same kind of code and it works as expected.
The code :
ScopedPointer<XmlElement> xml( mKeyPressMappingSet.createXml(true) );
mAppProperties.getUserSettings()->setValue("Mappings", xml);
The result (which can also be seen above) :
<VALUE name="Mappings">
<KEYMAPPINGS basedOnDefaults="1"/>
</VALUE>
Do you have an idea of what is wrong ?