summaryrefslogtreecommitdiff
path: root/src/modinfo.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2015-03-18 19:35:49 +0100
committerTannin <devnull@localhost>2015-03-18 19:35:49 +0100
commit03b029c61398bf8c5db5faca44ff58e212454a1c (patch)
tree75df0891cc7ae1ed78403cae677450b430f8df21 /src/modinfo.cpp
parent7a1ae9b0f1560c9eda32e032796fbb3fd56ff236 (diff)
- avoiding unnecessary meta.ini saves when checking mods for updates
Diffstat (limited to 'src/modinfo.cpp')
-rw-r--r--src/modinfo.cpp29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp
index c7d1101d..ce51ecc6 100644
--- a/src/modinfo.cpp
+++ b/src/modinfo.cpp
@@ -634,13 +634,14 @@ bool ModInfoRegular::downgradeAvailable() const
void ModInfoRegular::nxmDescriptionAvailable(int, QVariant, QVariant resultData)
{
QVariantMap result = resultData.toMap();
- m_NewestVersion.parse(result["version"].toString());
- m_NexusDescription = result["description"].toString();
+ setNewestVersion(VersionInfo(result["version"].toString()));
+ setNexusDescription(result["description"].toString());
+
if ((m_EndorsedState != ENDORSED_NEVER) && (result.contains("voted_by_user"))) {
- m_EndorsedState = result["voted_by_user"].toBool() ? ENDORSED_TRUE : ENDORSED_FALSE;
+ setEndorsedState(result["voted_by_user"].toBool() ? ENDORSED_TRUE : ENDORSED_FALSE);
}
m_LastNexusQuery = QDateTime::currentDateTime();
- m_MetaInfoChanged = true;
+ //m_MetaInfoChanged = true;
saveMeta();
emit modDetailsUpdated(true);
}
@@ -774,14 +775,26 @@ void ModInfoRegular::setVersion(const VersionInfo &version)
void ModInfoRegular::setNewestVersion(const VersionInfo &version)
{
- m_NewestVersion = version;
- m_MetaInfoChanged = true;
+ if (version != m_NewestVersion) {
+ m_NewestVersion = version;
+ m_MetaInfoChanged = true;
+ }
}
void ModInfoRegular::setNexusDescription(const QString &description)
{
- m_NexusDescription = description;
- m_MetaInfoChanged = true;
+ if (qHash(description) != qHash(m_NexusDescription)) {
+ m_NexusDescription = description;
+ m_MetaInfoChanged = true;
+ }
+}
+
+void ModInfoRegular::setEndorsedState(EEndorsedState endorsedState)
+{
+ if (endorsedState != m_EndorsedState) {
+ m_EndorsedState = endorsedState;
+ m_MetaInfoChanged = true;
+ }
}
void ModInfoRegular::setInstallationFile(const QString &fileName)