diff options
Diffstat (limited to 'src/modinfowithconflictinfo.cpp')
| -rw-r--r-- | src/modinfowithconflictinfo.cpp | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index 00f4275c..0c67b4f7 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -1,11 +1,11 @@ #include "modinfowithconflictinfo.h" -#include "installationtester.h" #include "utility.h" #include "shared/directoryentry.h" #include "shared/filesorigin.h" #include "shared/fileentry.h" #include <filesystem> +#include "moddatachecker.h" #include "qdirfiletree.h" using namespace MOBase; @@ -298,30 +298,12 @@ bool ModInfoWithConflictInfo::hasHiddenFiles() const bool ModInfoWithConflictInfo::doTestValid() const { + auto mdc = m_GamePlugin->feature<ModDataChecker>(); - bool valid = false; - QDirIterator dirIter(absolutePath()); - while (dirIter.hasNext()) { - dirIter.next(); - if (dirIter.fileInfo().isDir()) { - if (InstallationTester::isTopLevelDirectory(dirIter.fileName())) { - valid = true; - break; - } - } - else { - if (InstallationTester::isTopLevelSuffix(dirIter.fileName())) { - valid = true; - break; - } - } - } - - // NOTE: in Qt 4.7 it seems that QDirIterator leaves a file handle open if it is not iterated to the - // end - while (dirIter.hasNext()) { - dirIter.next(); + if (mdc) { + auto qdirfiletree = QDirFileTree::makeTree(absolutePath()); + return mdc->dataLooksValid(qdirfiletree); } - return valid; + return true; } |
