From 18412cc9303b1c11c8e35818d57b39aee72a5ec2 Mon Sep 17 00:00:00 2001 From: Crystalwarrior Date: Mon, 28 Mar 2022 16:50:41 +0300 Subject: [PATCH] Allow base folder to be overridden by reversing the mount paths lookup (#713) * Allow base folder to be overridden by reversing the mount paths lookup * Improve label communicating how assets work --- src/aooptionsdialog.cpp | 2 +- src/path_functions.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/aooptionsdialog.cpp b/src/aooptionsdialog.cpp index 6af93ed..7604fc7 100644 --- a/src/aooptionsdialog.cpp +++ b/src/aooptionsdialog.cpp @@ -953,7 +953,7 @@ AOOptionsDialog::AOOptionsDialog(QWidget *parent, AOApplication *p_ao_app) ui_asset_lbl = new QLabel(ui_assets_tab); ui_asset_lbl->setText( tr("Add or remove base folders for use by assets. " - "Base folders will be searched in the order provided.")); + "Base folders on the bottom are prioritized over those above them.")); ui_asset_lbl->setWordWrap(true); ui_assets_tab_layout->addWidget(ui_asset_lbl); diff --git a/src/path_functions.cpp b/src/path_functions.cpp index fe0a77e..ded1b67 100644 --- a/src/path_functions.cpp +++ b/src/path_functions.cpp @@ -267,8 +267,17 @@ QString AOApplication::get_real_path(const VPath &vpath) { // Cache miss; try all known mount paths QStringList bases = get_mount_paths(); - bases.push_front(get_base_path()); + bases.prepend(get_base_path()); + // base + // content 1 + // content 2 + // We search last to first + std::reverse(bases.begin(), bases.end()); + + // content 2 + // content 1 + // base for (const QString &base : bases) { QDir baseDir(base); QString path = baseDir.absoluteFilePath(vpath.toQString());