diff --git a/src/duckstation-qt/cheatmanagerdialog.cpp b/src/duckstation-qt/cheatmanagerdialog.cpp index b78ce52ac..736300f70 100644 --- a/src/duckstation-qt/cheatmanagerdialog.cpp +++ b/src/duckstation-qt/cheatmanagerdialog.cpp @@ -382,11 +382,20 @@ void CheatManagerDialog::cheatListItemChanged(QTreeWidgetItem* item, int column) if (!item || column != 0) return; + CheatList* list = getCheatList(); + const int index = getCheatIndexFromItem(item); if (index < 0) - return; + { + // we're probably a parent/group node + const int child_count = item->childCount(); + const Qt::CheckState cs = item->checkState(0); + for (int i = 0; i < child_count; i++) + item->child(i)->setCheckState(0, cs); + + return; + } - CheatList* list = getCheatList(); if (static_cast(index) >= list->GetCodeCount()) return;