And what are going to do if some Device object is about to destruct?
Are you going to remove its pointer from the QList<Device*>? How?