QSettings, QFileDialog портит путь по умолчанию
От: Тёма  
Дата: 01.04.20 14:20
Оценка:
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 из кода выше. В итоге если пользователь выходит за пределы папки программы, файл с настройками перестаёт открываться. Изменение пути в этот момент видно в логе.

Собсно, какого хрена и что с этим делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.