summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-05-07 02:07:15 +0200
committerMikaël Capelle <capelle.mikael@gmail.com>2020-05-07 12:16:33 +0200
commit5a90eecc21412fa705837eb724250ef1b758c993 (patch)
tree66afc6d69385d1d3202866168f211f0595c86fd0 /src
parent068e12bbb2cd774af89715105241ba7d3e3d0dcd (diff)
Fix issue with mods not being checked properly and overwrite not having the right priority.
Diffstat (limited to 'src')
-rw-r--r--src/modinfoforeign.h1
-rw-r--r--src/modinfooverwrite.h5
-rw-r--r--src/modinforegular.cpp29
-rw-r--r--src/modinforegular.h7
-rw-r--r--src/modinfowithconflictinfo.cpp31
-rw-r--r--src/modinfowithconflictinfo.h9
6 files changed, 41 insertions, 41 deletions
diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h
index 7725c793..0c15c7a4 100644
--- a/src/modinfoforeign.h
+++ b/src/modinfoforeign.h
@@ -73,7 +73,6 @@ protected:
const QStringList &archives, ModInfo::EModType modType,
MOShared::DirectoryEntry **directoryStructure, PluginContainer *pluginContainer);
- virtual bool doTestValid() const { return true; }
private:
QString m_Name;
diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h
index 070ba6ef..10d405bd 100644
--- a/src/modinfooverwrite.h
+++ b/src/modinfooverwrite.h
@@ -46,7 +46,7 @@ public:
virtual QString absolutePath() const override;
virtual MOBase::VersionInfo getNewestVersion() const override { return QString(); }
virtual QString getInstallationFile() const override { return ""; }
- virtual int getFixedPriority() const override { return std::numeric_limits<int>::min(); }
+ virtual int getFixedPriority() const override { return std::numeric_limits<int>::max(); }
virtual QString getGameName() const override { return ""; }
virtual int getNexusID() const override { return -1; }
virtual QDateTime getExpires() const override { return QDateTime(); }
@@ -67,9 +67,6 @@ public:
virtual QStringList archives(bool checkOnDisk = false) override;
virtual void addInstalledFile(int, int) override {}
-protected:
- virtual bool doTestValid() const { return true; }
-
private:
ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure );
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 6a0a1b7d..e74c5070 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -1,5 +1,4 @@
#include "modinforegular.h"
-#include "installationtester.h"
#include "categories.h"
#include "messagedialog.h"
@@ -271,34 +270,6 @@ void ModInfoRegular::saveMeta()
}
}
-bool ModInfoRegular::doTestValid() const {
-
- 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();
- }
-
- return valid;
-}
bool ModInfoRegular::updateAvailable() const
{
diff --git a/src/modinforegular.h b/src/modinforegular.h
index 1cef24fb..11a78765 100644
--- a/src/modinforegular.h
+++ b/src/modinforegular.h
@@ -420,13 +420,6 @@ protected:
ModInfoRegular(PluginContainer *pluginContainer, const MOBase::IPluginGame *game, const QDir &path, MOShared::DirectoryEntry **directoryStructure);
- /**
- * @brief check if the content of this mod is valid.
- *
- * @return true if the content is valid, false otherwize.
- **/
- virtual bool doTestValid() const;
-
private:
QString m_Name;
diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp
index 2b4fa11c..d0516d06 100644
--- a/src/modinfowithconflictinfo.cpp
+++ b/src/modinfowithconflictinfo.cpp
@@ -1,4 +1,5 @@
#include "modinfowithconflictinfo.h"
+#include "installationtester.h"
#include "utility.h"
#include "shared/directoryentry.h"
#include "shared/filesorigin.h"
@@ -291,3 +292,33 @@ bool ModInfoWithConflictInfo::hasHiddenFiles() const
return m_HasHiddenFiles;
}
+
+
+bool ModInfoWithConflictInfo::doTestValid() const {
+
+ 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();
+ }
+
+ return valid;
+}
diff --git a/src/modinfowithconflictinfo.h b/src/modinfowithconflictinfo.h
index c2a49afb..0bb7c422 100644
--- a/src/modinfowithconflictinfo.h
+++ b/src/modinfowithconflictinfo.h
@@ -34,6 +34,15 @@ public:
virtual void doConflictCheck() const override;
+protected:
+
+ /**
+ * @brief check if the content of this mod is valid.
+ *
+ * @return true if the content is valid, false otherwize.
+ **/
+ virtual bool doTestValid() const;
+
private:
enum EConflictType {