void GameUI::searchStart(void) { MythGenericTree *parent = m_gameUITree->GetCurrentNode()->getParent(); if (parent != NULL) { QStringList childList; QList<MythGenericTree*>::iterator it; QList<MythGenericTree*> *children = parent->getAllChildren(); for (it = children->begin(); it != children->end(); ++it) { MythGenericTree *child = *it; childList << child->getString(); } MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack"); MythUISearchDialog *searchDialog = new MythUISearchDialog(popupStack, tr("Game Search"), childList, true, ""); if (searchDialog->Create()) { connect(searchDialog, SIGNAL(haveResult(QString)), SLOT(searchComplete(QString))); popupStack->AddScreen(searchDialog); } else delete searchDialog; } }
void GameUI::showMenu() { MythGenericTree *node = m_gameUITree->GetCurrentNode(); MythScreenStack *popupStack = GetMythMainWindow()-> GetStack("popup stack"); MythDialogBox *showMenuPopup = new MythDialogBox(node->getString(), popupStack, "showMenuPopup"); if (showMenuPopup->Create()) { showMenuPopup->SetReturnEvent(this, "showMenuPopup"); showMenuPopup->AddButton(tr("Scan For Changes")); if (isLeaf(node)) { RomInfo *romInfo = qVariantValue<RomInfo *>(node->GetData()); if (romInfo) { showMenuPopup->AddButton(tr("Show Information")); if (romInfo->Favorite()) showMenuPopup->AddButton(tr("Remove Favorite")); else showMenuPopup->AddButton(tr("Make Favorite")); showMenuPopup->AddButton(tr("Retrieve Details")); showMenuPopup->AddButton(tr("Edit Details")); } } popupStack->AddScreen(showMenuPopup); } else delete showMenuPopup; }
QStringList MythGenericTree::getRouteByString() { QStringList routeByString; routeByString.push_front(getString()); MythGenericTree *parent = this; while( (parent = parent->getParent()) ) { routeByString.push_front(parent->getString()); } return routeByString; }
MythGenericTree* MythGenericTree::getChildByName(const QString &a_name) const { QList<MythGenericTree*> *children = getAllChildren(); if (children && children->count() > 0) { SortableMythGenericTreeList::Iterator it; MythGenericTree *child = NULL; for (it = children->begin(); it != children->end(); ++it) { child = *it; if (!child) continue; if (child->getString() == a_name) return child; } } return NULL; }
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; } } }
void NetTree::UpdateItem(MythUIButtonListItem *item) { if (!item) return; MythGenericTree *node = GetNodePtrFromButton(item); if (!node) return; RSSSite *site = qVariantValue<RSSSite *>(node->GetData()); ResultItem *video = qVariantValue<ResultItem *>(node->GetData()); int nodeInt = node->getInt(); if (nodeInt == kSubFolder) { item->SetText(QString("%1").arg(node->visibleChildCount()), "childcount"); item->DisplayState("subfolder", "nodetype"); item->SetText(node->getString(), "title"); item->SetText(node->getString()); item->SetImage(node->GetData().toString()); } else if (nodeInt == kUpFolder) { item->DisplayState("upfolder", "nodetype"); item->SetText(node->getString(), "title"); item->SetText(node->getString()); } if (site) { item->SetText(site->GetTitle()); item->SetText(site->GetDescription(), "description"); item->SetText(site->GetURL(), "url"); item->SetImage(site->GetImage()); } else if (video) { item->SetText(video->GetTitle()); MetadataMap metadataMap; video->toMap(metadataMap); item->SetTextFromMap(metadataMap); int pos; if (m_type == DLG_TREE) pos = 0; else pos = m_siteButtonList->GetItemPos(item); QString dlfile = video->GetThumbnail(); if (dlfile.contains("%SHAREDIR%")) dlfile.replace("%SHAREDIR%", GetShareDir()); else dlfile = getDownloadFilename(video->GetTitle(), video->GetThumbnail()); if (QFile::exists(dlfile)) item->SetImage(dlfile); else if (video->GetThumbnail().startsWith("http")) m_imageDownload->addThumb(video->GetTitle(), video->GetThumbnail(), qVariantFromValue<uint>(pos)); } else { item->SetText(node->getString()); if (!node->GetData().toString().isEmpty()) { QString tpath = node->GetData().toString(); if (tpath.startsWith("http://")) { uint pos; if (m_type == DLG_TREE) pos = 0; else pos = m_siteButtonList->GetItemPos(item); QString dlfile = GetThumbnailFilename(tpath, node->getString()); if (QFile::exists(dlfile)) item->SetImage(dlfile); else m_imageDownload->addThumb(node->getString(), tpath, qVariantFromValue<uint>(pos)); } else if (tpath != "0") { QString filename = node->GetData().toString(); if (filename.contains("%SHAREDIR%")) filename.replace("%SHAREDIR%", GetShareDir()); item->SetImage(filename); } } } }