use std::unique_ptr for more things
This ports some things away from QScopedPointer
, some things from QObject
-parent memory management, and some things from manual memory management.
Porting completely everything will probably not make sense as smart pointers can have their fair share of complexity for some use cases as well, but I think in most places it makes object ownership more obvious and robust.