From fba3d52f5645bf2b0ec4a61f9b7fed9c4d481637 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Thu, 20 Oct 2022 22:54:29 -0500 Subject: Preserve old category if Nexus category can't be mapped --- src/modlistviewactions.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'src/modlistviewactions.cpp') diff --git a/src/modlistviewactions.cpp b/src/modlistviewactions.cpp index b9d0f419..5fc2aea9 100644 --- a/src/modlistviewactions.cpp +++ b/src/modlistviewactions.cpp @@ -264,15 +264,17 @@ void ModListViewActions::assignCategories() const { for (auto mod : m_core.modList()->allMods()) { ModInfo::Ptr modInfo = ModInfo::getByName(mod); - for (auto category : modInfo->categories()) { - modInfo->removeCategory(category); - } QString file = modInfo->installationFile(); auto download = m_core.downloadManager()->getDownloadIndex(file); if (download >= 0) { int nexusCategory = m_core.downloadManager()->getCategoryID(download); - int category = CategoryFactory::instance()->resolveNexusID(nexusCategory); - modInfo->setCategory(CategoryFactory::instance()->getCategoryID(category), true); + int newCategory = CategoryFactory::instance()->resolveNexusID(nexusCategory); + if (newCategory != 0) { + for (auto category : modInfo->categories()) { + modInfo->removeCategory(category); + } + } + modInfo->setCategory(CategoryFactory::instance()->getCategoryID(newCategory), true); } } } @@ -1109,7 +1111,8 @@ void ModListViewActions::remapCategory(const QModelIndexList& indices) const if (downloadIndex >= 0) { auto downloadInfo = m_core.downloadManager()->getFileInfo(downloadIndex); unsigned int categoryIndex = CategoryFactory::instance()->resolveNexusID(downloadInfo->categoryID); - modInfo->setPrimaryCategory(CategoryFactory::instance()->getCategoryID(categoryIndex)); + if (categoryIndex != 0) + modInfo->setPrimaryCategory(CategoryFactory::instance()->getCategoryID(categoryIndex)); } } } -- cgit v1.3.1