Quote Originally Posted by totem View Post
@tbscope : thank you for your suggestions. However, I want to keep the QDataStream support; if i'm right it will also open me doors of drag/drop support
Using QDataStream instead of any other serialization form doesn't help in any way to handle drag&drop. In either case you end up with a block of bytes, it's just a matter of which mechanism populates the blob but nothing happens on its own, you have to write code that does it yourself.

If you want to use QDataStream in this specific case then your base-class has to know all its potential subclasses and handle conversions between them and itself. This is of course possible but it's quite a lot of work so if you don't feel comfortable with the topic, I wouldn't recommend this approach.