change: make Mod a QObject used as a pointer
Prevents problems when copying it around! Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
@ -53,33 +53,33 @@ void ModFolderLoadTask::run()
|
||||
// Read JAR files that don't have metadata
|
||||
m_mods_dir.refresh();
|
||||
for (auto entry : m_mods_dir.entryInfoList()) {
|
||||
Mod mod(entry);
|
||||
auto* mod = new Mod(entry);
|
||||
|
||||
if (mod.enabled()) {
|
||||
if (m_result->mods.contains(mod.internal_id())) {
|
||||
m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
|
||||
if (mod->enabled()) {
|
||||
if (m_result->mods.contains(mod->internal_id())) {
|
||||
m_result->mods[mod->internal_id()]->setStatus(ModStatus::Installed);
|
||||
}
|
||||
else {
|
||||
m_result->mods[mod.internal_id()] = mod;
|
||||
m_result->mods[mod.internal_id()].setStatus(ModStatus::NoMetadata);
|
||||
m_result->mods[mod->internal_id()] = mod;
|
||||
m_result->mods[mod->internal_id()]->setStatus(ModStatus::NoMetadata);
|
||||
}
|
||||
}
|
||||
else {
|
||||
QString chopped_id = mod.internal_id().chopped(9);
|
||||
QString chopped_id = mod->internal_id().chopped(9);
|
||||
if (m_result->mods.contains(chopped_id)) {
|
||||
m_result->mods[mod.internal_id()] = mod;
|
||||
m_result->mods[mod->internal_id()] = mod;
|
||||
|
||||
auto metadata = m_result->mods[chopped_id].metadata();
|
||||
auto metadata = m_result->mods[chopped_id]->metadata();
|
||||
if (metadata) {
|
||||
mod.setMetadata(*metadata);
|
||||
mod->setMetadata(*metadata);
|
||||
|
||||
m_result->mods[mod.internal_id()].setStatus(ModStatus::Installed);
|
||||
m_result->mods[mod->internal_id()]->setStatus(ModStatus::Installed);
|
||||
m_result->mods.remove(chopped_id);
|
||||
}
|
||||
}
|
||||
else {
|
||||
m_result->mods[mod.internal_id()] = mod;
|
||||
m_result->mods[mod.internal_id()].setStatus(ModStatus::NoMetadata);
|
||||
m_result->mods[mod->internal_id()] = mod;
|
||||
m_result->mods[mod->internal_id()]->setStatus(ModStatus::NoMetadata);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -97,8 +97,8 @@ void ModFolderLoadTask::getFromMetadata()
|
||||
return;
|
||||
}
|
||||
|
||||
Mod mod(m_mods_dir, metadata);
|
||||
mod.setStatus(ModStatus::NotInstalled);
|
||||
m_result->mods[mod.internal_id()] = mod;
|
||||
auto* mod = new Mod(m_mods_dir, metadata);
|
||||
mod->setStatus(ModStatus::NotInstalled);
|
||||
m_result->mods[mod->internal_id()] = mod;
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,7 @@ class ModFolderLoadTask : public QObject, public QRunnable
|
||||
Q_OBJECT
|
||||
public:
|
||||
struct Result {
|
||||
QMap<QString, Mod> mods;
|
||||
QMap<QString, Mod*> mods;
|
||||
};
|
||||
using ResultPtr = std::shared_ptr<Result>;
|
||||
ResultPtr result() const {
|
||||
|
Reference in New Issue
Block a user