feat: cache metadata in ModDetails

Allows for more easy access to the metadata by outside entities
This commit is contained in:
flow
2022-04-17 09:30:32 -03:00
committed by flow
parent fab4a7a602
commit 23febc6d94
3 changed files with 29 additions and 6 deletions

View File

@ -55,6 +55,8 @@ Mod::Mod(const QDir& mods_dir, const Metadata::ModStruct& metadata)
m_from_metadata = true;
m_enabled = true;
m_changedDateTime = m_file.lastModified();
m_temp_metadata = std::make_shared<Metadata::ModStruct>(std::move(metadata));
}
void Mod::repath(const QFileInfo& file)
@ -161,3 +163,15 @@ QStringList Mod::authors() const
{
return details().authors;
}
void Mod::finishResolvingWithDetails(std::shared_ptr<ModDetails> details)
{
m_resolving = false;
m_resolved = true;
m_localDetails = details;
if (fromMetadata() && m_temp_metadata->isValid()) {
m_localDetails->metadata = m_temp_metadata;
m_temp_metadata.reset();
}
}