Здравствуйте, _niko_, Вы писали:
__>. . . а ожидание закрытия диалога реализовать через QEventLoop, где соединение сигнала диалога со слотом QEventLoop::quit соединить с тем же типом Qt::BlockingQueuedConnection.
Может я чего-то не знаю, но в описанном случае emit будет "ожидать" завершения работы всех слотов. Разве нет? (Это если QDialog показывать через вызов .exec() то всё должно быть хорошо.)