summaryrefslogtreecommitdiff
path: root/src/modinforegular.cpp
diff options
context:
space:
mode:
authorSilarn <jrim@rimpo.org>2018-05-03 16:17:40 -0500
committerSilarn <jrim@rimpo.org>2018-05-03 16:17:40 -0500
commit9872c1e462d100221ca38aeb1f8ab35eda7fc8c2 (patch)
tree19fb68855960311b9504ef291f9aba3a8eb55ba9 /src/modinforegular.cpp
parente3989fe8f93a37d18f7c92785469a9ab87949041 (diff)
Allow for primary game sources and marking mods as converted/working
Diffstat (limited to 'src/modinforegular.cpp')
-rw-r--r--src/modinforegular.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 49fc3aa2..c19294f1 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -30,6 +30,7 @@ ModInfoRegular::ModInfoRegular(PluginContainer *pluginContainer, const IPluginGa
, m_Repository()
, m_GameName(game->gameShortName())
, m_IsAlternate(false)
+ , m_Converted(false)
, m_MetaInfoChanged(false)
, m_EndorsedState(ENDORSED_UNKNOWN)
, m_NexusBridge(pluginContainer)
@@ -39,7 +40,8 @@ ModInfoRegular::ModInfoRegular(PluginContainer *pluginContainer, const IPluginGa
// read out the meta-file for information
readMeta();
if (m_GameName.compare(game->gameShortName(), Qt::CaseInsensitive) != 0)
- m_IsAlternate = true;
+ if (!game->primarySources().contains(m_GameName, Qt::CaseInsensitive))
+ m_IsAlternate = true;
connect(&m_NexusBridge, SIGNAL(descriptionAvailable(QString,int,QVariant,QVariant))
, this, SLOT(nxmDescriptionAvailable(QString,int,QVariant,QVariant)));
@@ -82,9 +84,10 @@ void ModInfoRegular::readMeta()
m_IgnoredVersion = metaFile.value("ignoredVersion", "").toString();
m_InstallationFile = metaFile.value("installationFile", "").toString();
m_NexusDescription = metaFile.value("nexusDescription", "").toString();
- m_Repository = metaFile.value("repository", "Nexus").toString();
- m_URL = metaFile.value("url", "").toString();
- m_LastNexusQuery = QDateTime::fromString(metaFile.value("lastNexusQuery", "").toString(), Qt::ISODate);
+ m_Repository = metaFile.value("repository", "Nexus").toString();
+ m_Converted = metaFile.value("converted", false).toBool();
+ m_URL = metaFile.value("url", "").toString();
+ m_LastNexusQuery = QDateTime::fromString(metaFile.value("lastNexusQuery", "").toString(), Qt::ISODate);
if (metaFile.contains("endorsed")) {
if (metaFile.value("endorsed").canConvert<int>()) {
switch (metaFile.value("endorsed").toInt()) {
@@ -146,6 +149,7 @@ void ModInfoRegular::saveMeta()
metaFile.setValue("nexusDescription", m_NexusDescription);
metaFile.setValue("url", m_URL);
metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate));
+ metaFile.setValue("converted", m_Converted);
if (m_EndorsedState != ENDORSED_UNKNOWN) {
metaFile.setValue("endorsed", m_EndorsedState);
}
@@ -403,6 +407,14 @@ void ModInfoRegular::endorse(bool doEndorse)
}
}
+void ModInfoRegular::markConverted(bool converted)
+{
+ m_Converted = converted;
+ m_MetaInfoChanged = true;
+ saveMeta();
+ emit modDetailsUpdated(true);
+}
+
QString ModInfoRegular::absolutePath() const
{
@@ -435,7 +447,7 @@ std::vector<ModInfo::EFlag> ModInfoRegular::getFlags() const
if (m_PluginSelected) {
result.push_back(ModInfo::FLAG_PLUGIN_SELECTED);
}
- if (m_IsAlternate) {
+ if (m_IsAlternate && !m_Converted) {
result.push_back(ModInfo::FLAG_ALTERNATE_GAME);
}
return result;