diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-05-07 02:07:15 +0200 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-05-07 12:16:33 +0200 |
| commit | 5a90eecc21412fa705837eb724250ef1b758c993 (patch) | |
| tree | 66afc6d69385d1d3202866168f211f0595c86fd0 /src | |
| parent | 068e12bbb2cd774af89715105241ba7d3e3d0dcd (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.h | 1 | ||||
| -rw-r--r-- | src/modinfooverwrite.h | 5 | ||||
| -rw-r--r-- | src/modinforegular.cpp | 29 | ||||
| -rw-r--r-- | src/modinforegular.h | 7 | ||||
| -rw-r--r-- | src/modinfowithconflictinfo.cpp | 31 | ||||
| -rw-r--r-- | src/modinfowithconflictinfo.h | 9 |
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 { |
