never use raw pointers - use `std::make_shared<QDialog>()` instead