do it more correctly

This commit is contained in:
RickyRister 2026-11-13 01:29:05 -07:00
parent 67849802d6
commit d38a8d9145
2 changed files with 20 additions and 2 deletions

View file

@ -128,9 +128,9 @@ void CardSetList::markAllAsKnownBatched(ICardSetPriorityController *controller)
continue; continue;
} }
if (!set->getIsKnown() && !set->getIsKnownIgnored()) { if (!set->getIsKnown()) {
set->setIsKnownInMemory(true); set->setIsKnownInMemory(true);
set->setEnabledInMemory(false); set->setEnabledInMemory(set->getIsKnownIgnored());
saveData.append({set->getShortName(), static_cast<unsigned int>(set->getSortKey()), set->getEnabled(), saveData.append({set->getShortName(), static_cast<unsigned int>(set->getSortKey()), set->getEnabled(),
set->getIsKnown()}); set->getIsKnown()});
} }

View file

@ -663,6 +663,24 @@ TEST_F(CardDatabaseCacheInvalidationTest, MarkAllSetsAsKnownIsBatched)
EXPECT_TRUE(controller.isEnabled("XXX")); EXPECT_TRUE(controller.isEnabled("XXX"));
} }
TEST_F(CardDatabaseCacheInvalidationTest, MarkAllSetsAsKnownDoesNotOverwriteSettings)
{
SeededSetPriorityController controller;
CardSetList sets;
sets.append(CardSet::newInstance(&controller, "XXX")); // no metadata: ignored
// Ignored sets keep their known state but are enabled.
sets.markAllAsKnownBatched(&controller);
EXPECT_TRUE(controller.isEnabled("XXX")) << "unnamed set starts enabled";
// disable the set
controller.setEnabled("XXX", false);
// set should still be disabled after batching
sets.markAllAsKnownBatched(&controller);
EXPECT_FALSE(controller.isEnabled("XXX")) << "unnamed set should still be disabled after marking";
}
TEST_F(CardDatabaseCacheInvalidationTest, ReloadReleasesPreviousSnapshot) TEST_F(CardDatabaseCacheInvalidationTest, ReloadReleasesPreviousSnapshot)
{ {
NoopCardPreferenceProvider prefs; NoopCardPreferenceProvider prefs;