The problem seem to be in setting the parent to the backup_options_window. I suggest to change the code in the following way:
void start_backup_window::open_new_backup_options_window()
{
if (!self_backup_options)
self_backup_options = new backup_options_window;
self_backup_options->setWindowModality(Qt::WindowModal); // makes the window modal
self_backup_options->show();
}
With this implementation, you will need to delete self_backup_options
pointer later. For example in destructor of start_backup_window
class. Please don't forget to initialize the self_backup_options
to null in the constructor of start_backup_window
class.