summaryrefslogtreecommitdiff
path: root/src/modinfowithconflictinfo.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-05-22 15:50:50 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-05-22 15:50:50 +0200
commitee7438827e6fde8862b880e054a1506a06313de5 (patch)
tree4056dfaecd4abfaf70bbadd4bb17c2278bd00be5 /src/modinfowithconflictinfo.cpp
parent5fc66d879391135878e06ee25a32526b9d5c59d9 (diff)
Switch to ModDataChecker for testing mod validity.
Diffstat (limited to 'src/modinfowithconflictinfo.cpp')
-rw-r--r--src/modinfowithconflictinfo.cpp30
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;
}