summaryrefslogtreecommitdiff
path: root/src/modinfo.cpp
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-28 13:44:26 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-02 15:38:15 +0100
commitaddb38645b41507ae8e0536bb83d3b99d365f664 (patch)
treeb38a5f1d67dddd02c7fcebfc1dde37e427b4206c /src/modinfo.cpp
parentcc5f0c8555fbbcc4b6d0dc29a42b8c7869df1859 (diff)
Clean drag&drop of URLs and mods/archives.
Diffstat (limited to 'src/modinfo.cpp')
-rw-r--r--src/modinfo.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index a0382fe8..509c3837 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -47,6 +47,7 @@ using namespace MOShared;
std::vector<ModInfo::Ptr> ModInfo::s_Collection;
+ModInfo::Ptr ModInfo::s_Overwrite;
std::map<QString, unsigned int> ModInfo::s_ModsByName;
std::map<std::pair<QString, int>, std::vector<unsigned int>> ModInfo::s_ModsByModID;
int ModInfo::s_NextID;
@@ -108,13 +109,14 @@ ModInfo::Ptr ModInfo::createFromPlugin(const QString &modName,
return result;
}
-void ModInfo::createFromOverwrite(PluginContainer *pluginContainer,
- const MOBase::IPluginGame* game,
- MOShared::DirectoryEntry **directoryStructure)
+ModInfo::Ptr ModInfo::createFromOverwrite(
+ PluginContainer *pluginContainer, const MOBase::IPluginGame* game,
+ MOShared::DirectoryEntry **directoryStructure)
{
QMutexLocker locker(&s_Mutex);
-
- s_Collection.push_back(ModInfo::Ptr(new ModInfoOverwrite(pluginContainer, game, directoryStructure)));
+ ModInfo::Ptr overwrite = ModInfo::Ptr(new ModInfoOverwrite(pluginContainer, game, directoryStructure));
+ s_Collection.push_back(overwrite);
+ return overwrite;
}
unsigned int ModInfo::getNumMods()
@@ -237,6 +239,7 @@ void ModInfo::updateFromDisc(const QString &modDirectory,
QMutexLocker lock(&s_Mutex);
s_Collection.clear();
s_NextID = 0;
+ s_Overwrite = nullptr;
{ // list all directories in the mod directory and make a mod out of each
QDir mods(QDir::fromNativeSeparators(modDirectory));
@@ -263,7 +266,7 @@ void ModInfo::updateFromDisc(const QString &modDirectory,
}
}
- createFromOverwrite(pluginContainer, game, directoryStructure);
+ s_Overwrite = createFromOverwrite(pluginContainer, game, directoryStructure);
std::sort(s_Collection.begin(), s_Collection.end(), ModInfo::ByName);