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 Change-Id: I1fa195b42fd5e00be157fffd6c861f6ddb1eeed1 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> (cherry picked from commit 56fa23911c3a0681de39601489d51805e208dc03)
This commit is contained in:
parent
5baa0d759b
commit
e25150ca29
@ -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());
|
||||
|
@ -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