From ad1ab1c8803f64834b9e9521d624f65358b7f8ba Mon Sep 17 00:00:00 2001 From: Frederic Chardon Date: Wed, 27 Apr 2022 19:51:54 +0000 Subject: [PATCH] Follow up to !192 --- apps/launcher/datafilespage.cpp | 12 ++++++---- files/ui/datafilespage.ui | 40 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/apps/launcher/datafilespage.cpp b/apps/launcher/datafilespage.cpp index 9268c8e142..fe6d96b51a 100644 --- a/apps/launcher/datafilespage.cpp +++ b/apps/launcher/datafilespage.cpp @@ -44,10 +44,10 @@ namespace QDir currentDir(path); if (!currentDir.entryInfoList(fileFilter, QDir::Files).empty() || !currentDir.entryInfoList(dirFilter, QDir::Dirs | QDir::NoDotAndDotDot).empty()) - dirs.push_back(currentDir.absolutePath()); + dirs.push_back(currentDir.canonicalPath()); for (const auto& subdir : currentDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot)) - contentSubdirs(subdir.absoluteFilePath(), dirs); + contentSubdirs(subdir.canonicalFilePath(), dirs); } } @@ -236,6 +236,10 @@ 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) @@ -361,7 +365,7 @@ QStringList Launcher::DataFilesPage::selectedDirectoriesPaths() const QStringList dirList; for (int i = 0; i < ui.directoryListWidget->count(); ++i) { - if (ui.directoryListWidget->item(i)->background() != Qt::gray) + if (ui.directoryListWidget->item(i)->flags() & Qt::ItemIsEnabled) dirList.append(ui.directoryListWidget->item(i)->text()); } return dirList; @@ -581,7 +585,7 @@ QString Launcher::DataFilesPage::selectDirectory() if (fileDialog.exec() == QDialog::Rejected) return {}; - return fileDialog.selectedFiles()[0]; + return QDir(fileDialog.selectedFiles()[0]).canonicalPath(); } diff --git a/files/ui/datafilespage.ui b/files/ui/datafilespage.ui index dfcf02fced..813d0109ee 100644 --- a/files/ui/datafilespage.ui +++ b/files/ui/datafilespage.ui @@ -17,8 +17,25 @@ - 2 + 0 + + + Content Files + + + + + + + + + <html><head/><body><p><span style=" font-style:italic;">note: content files that are not part of current Content List are </span><span style=" font-style:italic; background-color:#00ff00;">highlighted</span></p></body></html> + + + + + Data Directories @@ -137,23 +154,6 @@ - - - Content Files - - - - - - - - - <html><head/><body><p><span style=" font-style:italic;">note: content files that are not part of current Content List are </span><span style=" font-style:italic; background-color:#00ff00;">highlighted</span></p></body></html> - - - - - Navigation mesh cache @@ -212,7 +212,7 @@ - + Max size @@ -261,7 +261,7 @@ false - + 6