(Un-)endorse & (un-)track mods from the same source (#2141)
Some checks failed
Build ModOrganizer 2 / build (push) Has been cancelled
Lint ModOrganizer 2 / lint (push) Has been cancelled

This commit is contained in:
Jonathan Feenstra 2024-10-30 16:20:39 +01:00 committed by GitHub
parent f42a9f1cef
commit 91912f5fef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 32 additions and 25 deletions

View File

@ -3068,12 +3068,14 @@ void MainWindow::nxmEndorsementsAvailable(QVariant userData, QVariant resultData
ModInfo::getByModID(result->first, result->second.first);
for (auto mod : modsList) {
if (result->second.second == "Endorsed")
mod->setIsEndorsed(true);
else if (result->second.second == "Abstained")
mod->setNeverEndorse();
else
mod->setIsEndorsed(false);
if (mod->endorsedState() != EndorsedState::ENDORSED_NEVER) {
if (result->second.second == "Endorsed")
mod->setIsEndorsed(true);
else if (result->second.second == "Abstained")
mod->setNeverEndorse();
else
mod->setIsEndorsed(false);
}
}
if (Settings::instance().nexus().endorsementIntegration()) {

View File

@ -369,26 +369,33 @@ void ModInfoRegular::nxmDescriptionAvailable(QString, int, QVariant,
void ModInfoRegular::nxmEndorsementToggled(QString, int, QVariant, QVariant resultData)
{
QMap results = resultData.toMap();
if (results["status"].toString().compare("Endorsed") == 0) {
m_EndorsedState = EndorsedState::ENDORSED_TRUE;
} else if (results["status"].toString().compare("Abstained") == 0) {
m_EndorsedState = EndorsedState::ENDORSED_NEVER;
} else {
m_EndorsedState = EndorsedState::ENDORSED_FALSE;
QMutexLocker locker(&s_Mutex);
for (auto& mod : s_Collection) {
if (mod->gameName().compare(m_GameName, Qt::CaseInsensitive) == 0 &&
mod->nexusId() == m_NexusID) {
if (results["status"].toString().compare("Endorsed") == 0) {
mod->setIsEndorsed(true);
} else if (results["status"].toString().compare("Abstained") == 0) {
mod->setNeverEndorse();
} else {
mod->setIsEndorsed(false);
}
mod->saveMeta();
}
}
m_MetaInfoChanged = true;
saveMeta();
emit modDetailsUpdated(true);
}
void ModInfoRegular::nxmTrackingToggled(QString, int, QVariant, bool tracked)
{
if (tracked)
m_TrackedState = TrackedState::TRACKED_TRUE;
else
m_TrackedState = TrackedState::TRACKED_FALSE;
m_MetaInfoChanged = true;
saveMeta();
QMutexLocker locker(&s_Mutex);
for (auto& mod : s_Collection) {
if (mod->gameName().compare(m_GameName, Qt::CaseInsensitive) == 0 &&
mod->nexusId() == m_NexusID) {
mod->setIsTracked(tracked);
mod->saveMeta();
}
}
emit modDetailsUpdated(true);
}
@ -583,11 +590,9 @@ void ModInfoRegular::addNexusCategory(int categoryID)
void ModInfoRegular::setIsEndorsed(bool endorsed)
{
if (m_EndorsedState != EndorsedState::ENDORSED_NEVER) {
m_EndorsedState =
endorsed ? EndorsedState::ENDORSED_TRUE : EndorsedState::ENDORSED_FALSE;
m_MetaInfoChanged = true;
}
m_EndorsedState =
endorsed ? EndorsedState::ENDORSED_TRUE : EndorsedState::ENDORSED_FALSE;
m_MetaInfoChanged = true;
}
void ModInfoRegular::setNeverEndorse()