diff --git a/src/lib_gui/qt/element/QtDirectoryListBox.cpp b/src/lib_gui/qt/element/QtDirectoryListBox.cpp index 56858eaf..140f23ad 100644 --- a/src/lib_gui/qt/element/QtDirectoryListBox.cpp +++ b/src/lib_gui/qt/element/QtDirectoryListBox.cpp @@ -75,7 +75,14 @@ void QtListItemWidget::setFocus() void QtListItemWidget::handleButtonPress() { - QStringList list = QtFileDialog::getFileNamesAndDirectories(this, m_data->text()); + FilePath path(m_data->text().toStdString()); + FilePath relativeRoot = m_list->getRelativeRootDirectory(); + if (!relativeRoot.empty()) + { + path = relativeRoot.concat(path); + } + + QStringList list = QtFileDialog::getFileNamesAndDirectories(this, QString::fromStdString(path.str())); for (int i = 0; i < list.size(); i++) { setText(list.at(i)); diff --git a/src/lib_gui/qt/element/QtLocationPicker.cpp b/src/lib_gui/qt/element/QtLocationPicker.cpp index 8d85af41..cdce401e 100644 --- a/src/lib_gui/qt/element/QtLocationPicker.cpp +++ b/src/lib_gui/qt/element/QtLocationPicker.cpp @@ -98,14 +98,20 @@ void QtLocationPicker::changeEvent(QEvent *event) void QtLocationPicker::handleButtonPress() { + FilePath path(m_data->text().toStdString()); + if (!m_relativeRootDirectory.empty()) + { + path = m_relativeRootDirectory.concat(path); + } + QString fileName; if (m_pickDirectory) { - fileName = QtFileDialog::getExistingDirectory(this, tr("Select Directory"), m_data->text()); + fileName = QtFileDialog::getExistingDirectory(this, tr("Select Directory"), QString::fromStdString(path.str())); } else { - fileName = QtFileDialog::getOpenFileName(this, tr("Open File"), m_data->text(), m_fileFilter); + fileName = QtFileDialog::getOpenFileName(this, tr("Open File"), QString::fromStdString(path.str()), m_fileFilter); } if (!fileName.isEmpty())