While it's true that QT leaves behind a sufficient amount of metadata, it's actually the structures that will be difficult. When everything is coded with C++ best practices, it's the data structures that bite your ass. Proper OOP means pointer chains for days. It's slightly more complex to read an std::vector than a flat array, and extremely more complex to read an std::map or std::set. std::list is somewhere in the middle, but if they're using things like QString and QList, it's much harder again. It really depends on how it was designed.