Windows 10, Qt 4.8
Из отдельного потока, созданного через boost::thread, периодически вызывается QCoreApplication::postEvent, в целевом объекте вызывается customEvent примерно с таким кодом.
QSettings settings ("file.ini", QSettings::IniFormat);
log << settings.fileName();
В итоге в лог пишется имя файла настроек в виде <путь до программы>\file.ini
Одновременно с этими периодическими вызовами, совсем в другом месте программы, в основном потоке, пользователь через QFileDialog::getOpenFileName выбирает путь до файла, никак не связанного с тем объектом и его QSettings-ом.
Проблема: когда пользователь ходит по папкам в Open file диалоге, текущий путь в этом диалоге становится текущим путём для QSettings из кода выше. В итоге если пользователь выходит за пределы папки программы, файл с настройками перестаёт открываться. Изменение пути в этот момент видно в логе.
Собсно, какого хрена и что с этим делать?