You can use different QSettings entries for each QFileDialog instance as you control your history by length and location.
something like that
void callFileDialog(QLinkedList<QString> & fileDialogHistory) { QString fileName = QFileDialog::getOpenFileName(Q_NULLPTR, "Open File", QStandardPaths::writableLocation(QStandardPaths::HomeLocation)); if(!fileName.isNull()){ fileDialogHistory << fileName; } } void saveFileDialogHistory(QLinkedList<QString> & fileDialogHistory, QString fileDialogHistoryName = "History_Default") { QSettings settings; settings.beginWriteArray(fileDialogHistoryName); int index = 0; for (QLinkedList<QString>::iterator it = fileDialogHistory.begin(); it != fileDialogHistory.end(); ++it){ settings.setArrayIndex(index); settings.setValue("filePath", QFileInfo(*it).filePath()); index++; } settings.endArray(); }
source share