QFactoryLoader: fix the ability to load symlinks to plugins
Amends commit 7cf39bd785e8ba817960d48b120983cafcc539f3, which changed to use QDirListing but used FilesOnly. As documented, that does not include symlinks to files. I'm updating a few other uses of FilesOnly where they were ported from QDir::Files and it would be reasonable to expect that symlink to files would be included. That's why I've left QNetworkDiskCache alone. Fixes: QTBUG-130109 Pick-to: 6.8 Change-Id: I1fa195b42fd5e00be157fffd6c861f6ddb1eeed1 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
This commit is contained in:
parent
a5364a279e
commit
56fa23911c
@ -316,7 +316,7 @@ void NmakeMakefileGenerator::writeImplicitRulesPart(QTextStream &t)
|
||||
fixifiedSourceDirs.removeDuplicates();
|
||||
using F = QDirListing::IteratorFlag;
|
||||
for (const QString &sourceDir : std::as_const(fixifiedSourceDirs)) {
|
||||
for (const auto &dirEntry : QDirListing(sourceDir, sourceFilesFilter, F::FilesOnly)) {
|
||||
for (const auto &dirEntry : QDirListing(sourceDir, sourceFilesFilter, F::FilesOnly | F::ResolveSymlinks)) {
|
||||
QString &duplicate = fileNames[dirEntry.completeBaseName()];
|
||||
if (duplicate.isNull()) {
|
||||
duplicate = dirEntry.filePath();
|
||||
|
@ -1294,7 +1294,7 @@ void VcprojGenerator::initDeploymentTool()
|
||||
|
||||
int pathSize = searchPath.size();
|
||||
using F = QDirListing::IteratorFlag;
|
||||
QDirListing dirList(searchPath, QStringList{nameFilter}, F::FilesOnly | F::Recursive);
|
||||
QDirListing dirList(searchPath, QStringList{nameFilter}, F::FilesOnly | F::ResolveSymlinks | F::Recursive);
|
||||
// foreach dirIterator-entry in d
|
||||
for (const auto &dirEntry : dirList) {
|
||||
const QString absoluteItemPath = Option::fixPathToTargetOS(dirEntry.absolutePath());
|
||||
|
@ -729,7 +729,8 @@ void QMimeXMLProvider::ensureLoaded()
|
||||
{
|
||||
QStringList allFiles;
|
||||
const QString packageDir = m_directory + QStringView(u"/packages");
|
||||
for (const auto &entry : QDirListing(packageDir, QDirListing::IteratorFlag::FilesOnly))
|
||||
for (const auto &entry : QDirListing(packageDir, QDirListing::IteratorFlag::FilesOnly
|
||||
| QDirListing::IteratorFlag::ResolveSymlinks))
|
||||
allFiles.emplace_back(packageDir + u'/' + entry.fileName());
|
||||
|
||||
if (m_allFiles == allFiles)
|
||||
|
@ -309,7 +309,7 @@ inline void QFactoryLoaderPrivate::updateSinglePath(const QString &path)
|
||||
#elif defined(Q_OS_ANDROID)
|
||||
QStringList("libplugins_%1_*.so"_L1.arg(suffix)),
|
||||
#endif
|
||||
QDirListing::IteratorFlag::FilesOnly);
|
||||
QDirListing::IteratorFlag::FilesOnly | QDirListing::IteratorFlag::ResolveSymlinks);
|
||||
|
||||
for (const auto &dirEntry : plugins) {
|
||||
const QString &fileName = dirEntry.fileName();
|
||||
|
Loading…
x
Reference in New Issue
Block a user