aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-01 12:52:10 -0500
committerSulfurNitride <SulfurNitride@users.noreply.github.com>2026-05-01 12:52:10 -0500
commit1f198921b2c1f23f132d25552cacb650af253d15 (patch)
tree90833b0b7c70486a33f68352a99a6b682a0f15d2 /src
parent95b1cb12c3f5604c865603e951646098f7cd593b (diff)
meta.ini: lowercase code keys to match normalize, kill dup writes
normalizeMetaIniCase folds keys to lowercase, but readMeta/saveMeta and the install paths still used CamelCase ("installationFile", "gameName", "nexusDescription", etc.). Qt6 IniFormat is case-sensitive on Linux, so setValue under CamelCase wrote a NEW key alongside the lowercase entry left by normalize, and value() reads with CamelCase missed the lowercase key and fell back to defaults — saveMeta then persisted those defaults under CamelCase. Net effect: every save grew meta.ini by ~12 duplicate lines (e.g. installationFile= + installationfile=<real value>; gameName=SkyrimSE + gamename=Skyrim). Lowercased all per-mod meta.ini key names in modinforegular.cpp, installationmanager.cpp, and organizercore.cpp. Section/group names (installedFiles, Plugins, INI Tweaks) stay CamelCase because normalize preserves section headers verbatim. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'src')
-rw-r--r--src/src/installationmanager.cpp12
-rw-r--r--src/src/modinforegular.cpp52
-rw-r--r--src/src/organizercore.cpp4
3 files changed, 34 insertions, 34 deletions
diff --git a/src/src/installationmanager.cpp b/src/src/installationmanager.cpp
index 3e58a2a..09e2a36 100644
--- a/src/src/installationmanager.cpp
+++ b/src/src/installationmanager.cpp
@@ -549,8 +549,8 @@ InstallationResult InstallationManager::doInstall(GuessedValue<QString>& modName
// overwrite settings only if they are actually are available or haven't been set
// before
- if ((gameName != "") || !settingsFile.contains("gameName")) {
- settingsFile.setValue("gameName", gameName);
+ if ((gameName != "") || !settingsFile.contains("gamename")) {
+ settingsFile.setValue("gamename", gameName);
}
if ((modID != 0) || !settingsFile.contains("modid")) {
settingsFile.setValue("modid", modID);
@@ -561,15 +561,15 @@ InstallationResult InstallationManager::doInstall(GuessedValue<QString>& modName
VersionInfo(settingsFile.value("version").toString()))))) {
settingsFile.setValue("version", version);
}
- if (!newestVersion.isEmpty() || !settingsFile.contains("newestVersion")) {
- settingsFile.setValue("newestVersion", newestVersion);
+ if (!newestVersion.isEmpty() || !settingsFile.contains("newestversion")) {
+ settingsFile.setValue("newestversion", newestVersion);
}
// issue #51 used to overwrite the manually set categories
if (!settingsFile.contains("category")) {
settingsFile.setValue("category", QString::number(categoryID));
}
- settingsFile.setValue("nexusFileStatus", fileCategoryID);
- settingsFile.setValue("installationFile", storeMetaPath(m_CurrentFile));
+ settingsFile.setValue("nexusfilestatus", fileCategoryID);
+ settingsFile.setValue("installationfile", storeMetaPath(m_CurrentFile));
settingsFile.setValue("repository", repository);
if (!merge) {
diff --git a/src/src/modinforegular.cpp b/src/src/modinforegular.cpp
index c59706d..3978f2e 100644
--- a/src/src/modinforegular.cpp
+++ b/src/src/modinforegular.cpp
@@ -113,21 +113,21 @@ void ModInfoRegular::readMeta()
QSettings metaFile(metaPath, QSettings::IniFormat);
m_Comments = metaFile.value("comments", "").toString();
m_Notes = metaFile.value("notes", "").toString();
- QString const tempGameName = metaFile.value("gameName", m_GameName).toString();
+ QString const tempGameName = metaFile.value("gamename", m_GameName).toString();
if (tempGameName.size())
m_GameName = tempGameName;
m_NexusID = metaFile.value("modid", -1).toInt();
m_Version.parse(metaFile.value("version", "").toString());
- m_NewestVersion = metaFile.value("newestVersion", "").toString();
- m_IgnoredVersion = metaFile.value("ignoredVersion", "").toString();
+ m_NewestVersion = metaFile.value("newestversion", "").toString();
+ m_IgnoredVersion = metaFile.value("ignoredversion", "").toString();
m_InstallationFile =
- loadMetaPath(metaFile.value("installationFile", "").toString());
- m_NexusDescription = metaFile.value("nexusDescription", "").toString();
- m_NexusFileStatus = metaFile.value("nexusFileStatus", "1").toInt();
- m_NexusCategory = metaFile.value("nexusCategory", 0).toInt();
+ loadMetaPath(metaFile.value("installationfile", "").toString());
+ m_NexusDescription = metaFile.value("nexusdescription", "").toString();
+ m_NexusFileStatus = metaFile.value("nexusfilestatus", "1").toInt();
+ m_NexusCategory = metaFile.value("nexuscategory", 0).toInt();
m_Author = metaFile.value("author", "").toString();
m_Uploader = metaFile.value("uploader", "").toString();
- m_UploaderUrl = metaFile.value("uploaderUrl", "").toString();
+ m_UploaderUrl = metaFile.value("uploaderurl", "").toString();
m_Repository = metaFile.value("repository", "Nexus").toString();
m_Converted = metaFile.value("converted", false).toBool();
m_Validated = metaFile.value("validated", false).toBool();
@@ -181,8 +181,8 @@ void ModInfoRegular::readMeta()
// always read the url
m_CustomURL = metaFile.value("url").toString();
- if (metaFile.contains("hasCustomURL")) {
- m_HasCustomURL = metaFile.value("hasCustomURL").toBool();
+ if (metaFile.contains("hascustomurl")) {
+ m_HasCustomURL = metaFile.value("hascustomurl").toBool();
} else {
if (m_NexusID > 0) {
// the mod id is valid, disable the custom url
@@ -196,13 +196,13 @@ void ModInfoRegular::readMeta()
}
m_LastNexusQuery = QDateTime::fromString(
- metaFile.value("lastNexusQuery", "").toString(), Qt::ISODate);
+ metaFile.value("lastnexusquery", "").toString(), Qt::ISODate);
m_LastNexusUpdate = QDateTime::fromString(
- metaFile.value("lastNexusUpdate", "").toString(), Qt::ISODate);
+ metaFile.value("lastnexusupdate", "").toString(), Qt::ISODate);
m_NexusLastModified = QDateTime::fromString(
- metaFile.value("nexusLastModified", QDateTime::currentDateTimeUtc()).toString(),
+ metaFile.value("nexuslastmodified", QDateTime::currentDateTimeUtc()).toString(),
Qt::ISODate);
- m_NexusCategory = metaFile.value("nexusCategory", 0).toInt();
+ m_NexusCategory = metaFile.value("nexuscategory", 0).toInt();
m_Color = metaFile.value("color", QColor()).value<QColor>();
m_TrackedState = metaFile.value("tracked", false).toBool()
? TrackedState::TRACKED_TRUE
@@ -285,26 +285,26 @@ void ModInfoRegular::saveMeta()
temp.erase(m_PrimaryCategory);
metaFile.setValue("category", QString("%1").arg(m_PrimaryCategory) + "," +
SetJoin(temp, ","));
- metaFile.setValue("newestVersion", m_NewestVersion.canonicalString());
- metaFile.setValue("ignoredVersion", m_IgnoredVersion.canonicalString());
+ metaFile.setValue("newestversion", m_NewestVersion.canonicalString());
+ metaFile.setValue("ignoredversion", m_IgnoredVersion.canonicalString());
metaFile.setValue("version", m_Version.canonicalString());
- metaFile.setValue("installationFile", storeMetaPath(m_InstallationFile));
+ metaFile.setValue("installationfile", storeMetaPath(m_InstallationFile));
metaFile.setValue("repository", m_Repository);
- metaFile.setValue("gameName", m_GameName);
+ metaFile.setValue("gamename", m_GameName);
metaFile.setValue("modid", m_NexusID);
metaFile.setValue("comments", m_Comments);
metaFile.setValue("notes", m_Notes);
- metaFile.setValue("nexusDescription", m_NexusDescription);
+ metaFile.setValue("nexusdescription", m_NexusDescription);
metaFile.setValue("url", m_CustomURL);
- metaFile.setValue("hasCustomURL", m_HasCustomURL);
- metaFile.setValue("nexusFileStatus", m_NexusFileStatus);
- metaFile.setValue("lastNexusQuery", m_LastNexusQuery.toString(Qt::ISODate));
- metaFile.setValue("lastNexusUpdate", m_LastNexusUpdate.toString(Qt::ISODate));
- metaFile.setValue("nexusLastModified", m_NexusLastModified.toString(Qt::ISODate));
- metaFile.setValue("nexusCategory", m_NexusCategory);
+ metaFile.setValue("hascustomurl", m_HasCustomURL);
+ metaFile.setValue("nexusfilestatus", m_NexusFileStatus);
+ metaFile.setValue("lastnexusquery", m_LastNexusQuery.toString(Qt::ISODate));
+ metaFile.setValue("lastnexusupdate", m_LastNexusUpdate.toString(Qt::ISODate));
+ metaFile.setValue("nexuslastmodified", m_NexusLastModified.toString(Qt::ISODate));
+ metaFile.setValue("nexuscategory", m_NexusCategory);
metaFile.setValue("author", m_Author);
metaFile.setValue("uploader", m_Uploader);
- metaFile.setValue("uploaderUrl", m_UploaderUrl);
+ metaFile.setValue("uploaderurl", m_UploaderUrl);
metaFile.setValue("converted", m_Converted);
metaFile.setValue("validated", m_Validated);
metaFile.setValue("color", m_Color);
diff --git a/src/src/organizercore.cpp b/src/src/organizercore.cpp
index 8b3171e..bc28969 100644
--- a/src/src/organizercore.cpp
+++ b/src/src/organizercore.cpp
@@ -964,9 +964,9 @@ MOBase::IModInterface* OrganizerCore::createMod(GuessedValue<QString>& name)
if (!result.merged()) {
settingsFile.setValue("modid", 0);
settingsFile.setValue("version", "");
- settingsFile.setValue("newestVersion", "");
+ settingsFile.setValue("newestversion", "");
settingsFile.setValue("category", 0);
- settingsFile.setValue("installationFile", "");
+ settingsFile.setValue("installationfile", "");
settingsFile.remove("installedFiles");
settingsFile.beginWriteArray("installedFiles", 0);