void GameUI::itemClicked(MythUIButtonListItem*) { MythGenericTree *node = m_gameUITree->GetCurrentNode(); if (isLeaf(node)) { RomInfo *romInfo = qVariantValue<RomInfo *>(node->GetData()); if (!romInfo) return; if (romInfo->RomCount() == 1) { GameHandler::Launchgame(romInfo, NULL); } else { //: %1 is the game name QString msg = QString(tr("Choose System for:\n%1")) .arg(node->getString()); MythScreenStack *popupStack = GetMythMainWindow()-> GetStack("popup stack"); MythDialogBox *chooseSystemPopup = new MythDialogBox( msg, popupStack, "chooseSystemPopup"); if (chooseSystemPopup->Create()) { chooseSystemPopup->SetReturnEvent(this, "chooseSystemPopup"); QString all_systems = romInfo->AllSystems(); QStringList players = all_systems.split(","); for (QStringList::Iterator it = players.begin(); it != players.end(); ++it) { chooseSystemPopup->AddButton(*it); } chooseSystemPopup->AddButton(tr("Cancel")); popupStack->AddScreen(chooseSystemPopup); } else delete chooseSystemPopup; } } }