Skip to content

Commit

Permalink
Merge branch 'fix_launcher_paths_48' into 'openmw-48'
Browse files Browse the repository at this point in the history
Save original paths in launcher (#7246) for 0.48

See merge request OpenMW/openmw!2849
  • Loading branch information
psi29a committed Mar 21, 2023
2 parents da5376f + 8038704 commit 64ca3e7
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions apps/launcher/datafilespage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <thread>
#include <mutex>
#include <algorithm>
#include <unordered_set>

#include <apps/launcher/utils/cellnameloader.hpp>

Expand Down Expand Up @@ -235,29 +236,30 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
if (!globalDataDir.isEmpty())
directories.insert(0, globalDataDir);

// normalize user supplied directories: resolve symlink, convert to native separator, make absolute
for (auto& currentDir : directories)
currentDir = QDir(QDir::cleanPath(currentDir)).canonicalPath();

// add directories, archives and content files
directories.removeDuplicates();
for (const auto& currentDir : directories)
std::unordered_set<QString> visitedDirectories;
for (const QString& currentDir : directories)
{
// 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
addArchivesFromDir(currentDir);

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);
auto row = ui.directoryListWidget->count() - 1;
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);
Expand Down

0 comments on commit 64ca3e7

Please sign in to comment.