summaryrefslogtreecommitdiff
path: root/src/modinforegular.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modinforegular.cpp')
-rw-r--r--src/modinforegular.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 0e73b70c..2042f772 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -227,8 +227,8 @@ void ModInfoRegular::readMeta()
int numFiles = metaFile.beginReadArray("installedFiles");
for (int i = 0; i < numFiles; ++i) {
metaFile.setArrayIndex(i);
- m_InstalledFileIDs.insert(std::make_pair(metaFile.value("modid").toInt(),
- metaFile.value("fileid").toInt()));
+ m_InstalledFileIDs.emplace_back(metaFile.value("modid").toInt(),
+ metaFile.value("fileid").toInt());
}
metaFile.endArray();
@@ -332,7 +332,7 @@ bool ModInfoRegular::updateAvailable() const
if (m_IgnoredVersion.isValid() && (m_IgnoredVersion == m_NewestVersion)) {
return false;
}
- if (m_NexusFileStatus == 4 || m_NexusFileStatus == 6) {
+ if (!NexusInterface::isActiveFileStatus(m_NexusFileStatus)) {
return true;
}
return m_NewestVersion.isValid() && (m_Version < m_NewestVersion);
@@ -942,7 +942,13 @@ QStringList ModInfoRegular::archives(bool checkOnDisk)
void ModInfoRegular::addInstalledFile(int modId, int fileId)
{
- m_InstalledFileIDs.insert(std::make_pair(modId, fileId));
+ const auto entry = std::make_pair(modId, fileId);
+ const auto existing =
+ std::find(m_InstalledFileIDs.begin(), m_InstalledFileIDs.end(), entry);
+ if (existing != m_InstalledFileIDs.end()) {
+ m_InstalledFileIDs.erase(existing);
+ }
+ m_InstalledFileIDs.push_back(entry);
m_MetaInfoChanged = true;
}