Save original paths

If directory path is a symlink it should be showed and written to config files
as is. Between launcher runs the resulting canonical path may be different so
the resolved path becomes outdated.
depth-refraction
elsid 2 years ago
parent ff7fcd752a
commit 9280957581
No known key found for this signature in database
GPG Key ID: 4DE04C198CBA7625

@ -231,14 +231,13 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
if (!globalDataDir.empty())
directories.insert(0, Files::pathToQString(globalDataDir));
// normalize user supplied directories: resolve symlink, convert to native separator, make absolute
for (auto& currentDir : directories)
currentDir = QDir(QDir::cleanPath(currentDir)).canonicalPath();
std::unordered_set<QString> visitedDirectories;
for (const QString& currentDir : directories)
{
if (!visitedDirectories.insert(currentDir).second)
// normalize user supplied directories: resolve symlink, convert to native separator, make absolute
const QString canonicalDirPath = QDir(QDir::cleanPath(currentDir)).canonicalPath();
if (!visitedDirectories.insert(canonicalDirPath).second)
continue;
// add new achives files presents in current directory
@ -247,7 +246,7 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
QString tooltip;
// add content files presents in current directory
mSelector->addFiles(currentDir, mNewDataDirs.contains(currentDir));
mSelector->addFiles(currentDir, mNewDataDirs.contains(canonicalDirPath));
// add current directory to list
ui.directoryListWidget->addItem(currentDir);
@ -255,7 +254,7 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
auto* item = ui.directoryListWidget->item(row);
// Display new content with green background
if (mNewDataDirs.contains(currentDir))
if (mNewDataDirs.contains(canonicalDirPath))
{
tooltip += "Will be added to the current profile\n";
item->setBackground(Qt::green);

Loading…
Cancel
Save