diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index e2ae750..373473c 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -971,12 +971,18 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) ui_mount_add->setSizePolicy(stretch_btns); ui_mount_buttons_layout->addWidget(ui_mount_add, 0, 0, 1, 1); connect(ui_mount_add, &QPushButton::clicked, this, [this] { - QString dir = QFileDialog::getExistingDirectory(this, tr("Select a base folder"), + QString path = QFileDialog::getExistingDirectory(this, tr("Select a base folder"), QApplication::applicationDirPath(), QFileDialog::ShowDirsOnly); - if (dir.isEmpty()) + if (path.isEmpty()) { return; - QListWidgetItem *dir_item = new QListWidgetItem(dir); + } + QDir dir(QApplication::applicationDirPath()); + QString relative = dir.relativeFilePath(path); + if (!relative.contains("../")) { + path = relative; + } + QListWidgetItem *dir_item = new QListWidgetItem(path); ui_mount_list->addItem(dir_item); ui_mount_list->setCurrentItem(dir_item); diff --git a/src/evidence.cpp b/src/evidence.cpp index 76d16af..3b38b41 100644 --- a/src/evidence.cpp +++ b/src/evidence.cpp @@ -397,7 +397,7 @@ void Courtroom::on_evidence_image_name_edited() void Courtroom::on_evidence_image_button_clicked() { - QDir dir(ao_app->get_base_path() + "evidence"); + QDir dir(ao_app->get_real_path(ao_app->get_evidence_path(""))); QFileDialog dialog(this); dialog.setFileMode(QFileDialog::ExistingFile); dialog.setNameFilter(tr("Images (*.png)")); @@ -413,6 +413,15 @@ void Courtroom::on_evidence_image_button_clicked() return; QString filename = filenames.at(0); + QStringList bases = ao_app->get_mount_paths(); + bases.prepend(ao_app->get_base_path()); + for (const QString &base : bases) { + QDir baseDir(base); + if (filename.startsWith(baseDir.absolutePath())) { + dir.setPath(baseDir.absolutePath() + "/evidence"); + break; + } + } filename = dir.relativeFilePath(filename); ui_evidence_image_name->setText(filename); on_evidence_image_name_edited();