1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-15 13:33:36 +02:00

Fix display of active submods of disabled root mods

This commit is contained in:
Ivan Savenko 2024-11-21 21:11:02 +00:00
parent 822b6a00e7
commit 6bad88ba99
5 changed files with 16 additions and 1 deletions

View File

@ -112,7 +112,10 @@ QVariant ModStateItemModel::getIcon(const ModState & mod, int field) const
if(mod.isSubmod() && !model->isModEnabled(mod.getTopParentID()))
{
if (model->isModEnabled(mod.getID()))
QString topParentID = mod.getTopParentID();
QString settingID = mod.getID().section('.', 1);
if (model->isModSettingEnabled(topParentID, settingID))
return QIcon(iconEnabledSubmod);
else
return QIcon(iconDisabledSubmod);

View File

@ -70,6 +70,11 @@ bool ModStateModel::isModInstalled(QString modName) const
return getMod(modName).isInstalled();
}
bool ModStateModel::isModSettingEnabled(QString rootModName, QString modSettingName) const
{
return modManager->isModSettingActive(rootModName.toStdString(), modSettingName.toStdString());
}
bool ModStateModel::isModEnabled(QString modName) const
{
return modManager->isModActive(modName.toStdString());

View File

@ -40,6 +40,7 @@ public:
bool isModExists(QString modName) const;
bool isModInstalled(QString modName) const;
bool isModEnabled(QString modName) const;
bool isModSettingEnabled(QString rootModName, QString modSettingName) const;
bool isModUpdateAvailable(QString modName) const;
bool isModVisible(QString modName) const;

View File

@ -387,6 +387,11 @@ const ModDescription & ModManager::getModDescription(const TModID & modID) const
return modsStorage->getMod(modID);
}
bool ModManager::isModSettingActive(const TModID & rootModID, const TModID & modSettingID) const
{
return modsPreset->getModSettings(rootModID).at(modSettingID);
}
bool ModManager::isModActive(const TModID & modID) const
{
return vstd::contains(getActiveMods(), modID);

View File

@ -128,6 +128,7 @@ public:
const TModList & getActiveMods() const;
TModList getAllMods() const;
bool isModSettingActive(const TModID & rootModID, const TModID & modSettingID) const;
bool isModActive(const TModID & modID) const;
uint32_t computeChecksum(const TModID & modName) const;
std::optional<uint32_t> getValidatedChecksum(const TModID & modName) const;