refactor: make mod metadata presence (or lack of) easier to find out
This commit is contained in:
		| @@ -54,7 +54,6 @@ Mod::Mod(const QDir& mods_dir, const Metadata::ModStruct& metadata) | ||||
|             m_type = MOD_SINGLEFILE; | ||||
|     } | ||||
|  | ||||
|     m_from_metadata = true; | ||||
|     m_enabled = true; | ||||
|     m_changedDateTime = m_file.lastModified(); | ||||
|  | ||||
| @@ -117,13 +116,27 @@ auto Mod::enable(bool value) -> bool | ||||
|             return false; | ||||
|     } | ||||
|  | ||||
|     if (!fromMetadata()) | ||||
|     if (status() == ModStatus::NoMetadata) | ||||
|         repath(QFileInfo(path)); | ||||
|  | ||||
|     m_enabled = value; | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| void Mod::setStatus(ModStatus status) | ||||
| { | ||||
|     if(m_localDetails.get()) | ||||
|         m_localDetails->status = status; | ||||
| } | ||||
| void Mod::setMetadata(Metadata::ModStruct* metadata) | ||||
| { | ||||
|     if(status() == ModStatus::NoMetadata) | ||||
|         setStatus(ModStatus::Installed); | ||||
|  | ||||
|     if(m_localDetails.get()) | ||||
|         m_localDetails->metadata.reset(metadata); | ||||
| } | ||||
|  | ||||
| auto Mod::destroy(QDir& index_dir) -> bool | ||||
| { | ||||
|     auto n = name(); | ||||
| @@ -170,13 +183,22 @@ auto Mod::authors() const -> QStringList | ||||
|     return details().authors; | ||||
| } | ||||
|  | ||||
| auto Mod::status() const -> ModStatus | ||||
| { | ||||
|     return details().status; | ||||
| } | ||||
|  | ||||
| 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.get()) { | ||||
|     if (status() != ModStatus::NoMetadata  | ||||
|             && m_temp_metadata.get() | ||||
|             && m_temp_metadata->isValid() &&  | ||||
|             m_localDetails.get()) { | ||||
|          | ||||
|         m_localDetails->metadata.swap(m_temp_metadata); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user