本文整理汇总了C++中MetadataLookupList::takeAt方法的典型用法代码示例。如果您正苦于以下问题:C++ MetadataLookupList::takeAt方法的具体用法?C++ MetadataLookupList::takeAt怎么用?C++ MetadataLookupList::takeAt使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MetadataLookupList
的用法示例。
在下文中一共展示了MetadataLookupList::takeAt方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: customEvent
void LookerUpper::customEvent(QEvent *levent)
{
if (levent->type() == MetadataFactoryMultiResult::kEventType)
{
MetadataFactoryMultiResult *mfmr = dynamic_cast<MetadataFactoryMultiResult*>(levent);
if (!mfmr)
return;
MetadataLookupList list = mfmr->results;
if (list.count() > 1)
{
int yearindex = -1;
for (int p = 0; p != list.size(); ++p)
{
ProgramInfo *pginfo = qVariantValue<ProgramInfo *>(list[p]->GetData());
if (pginfo && !pginfo->GetSeriesID().isEmpty() &&
pginfo->GetSeriesID() == (list[p])->GetTMSref())
{
MetadataLookup *lookup = list.takeAt(p);
if (!lookup->GetSubtype() == kProbableGenericTelevision)
pginfo->SaveSeasonEpisode(lookup->GetSeason(), lookup->GetEpisode());
pginfo->SaveInetRef(lookup->GetInetref());
m_busyRecList.removeAll(pginfo);
qDeleteAll(list);
return;
}
else if (pginfo && pginfo->GetYearOfInitialRelease() != 0 &&
(list[p])->GetYear() != 0 &&
pginfo->GetYearOfInitialRelease() == (list[p])->GetYear())
{
if (yearindex != -1)
{
LOG(VB_GENERAL, LOG_INFO, "Multiple results matched on year. No definite "
"match could be found.");
m_busyRecList.removeAll(pginfo);
qDeleteAll(list);
return;
}
else
{
LOG(VB_GENERAL, LOG_INFO, "Matched from multiple results based on year. ");
yearindex = p;
}
}
}
if (yearindex > -1)
{
MetadataLookup *lookup = list.takeAt(yearindex);
ProgramInfo *pginfo = qVariantValue<ProgramInfo *>(lookup->GetData());
if (!lookup->GetSubtype() == kProbableGenericTelevision)
pginfo->SaveSeasonEpisode(lookup->GetSeason(), lookup->GetEpisode());
pginfo->SaveInetRef(lookup->GetInetref());
m_busyRecList.removeAll(pginfo);
qDeleteAll(list);
return;
}
LOG(VB_GENERAL, LOG_INFO, "Unable to match this title, too many possible matches. "
"You may wish to manually set the season, episode, and "
"inetref in the 'Watch Recordings' screen.");
ProgramInfo *pginfo = qVariantValue<ProgramInfo *>(list.takeFirst()->GetData());
qDeleteAll(list);
if (pginfo)
{
m_busyRecList.removeAll(pginfo);
}
}
}
else if (levent->type() == MetadataFactorySingleResult::kEventType)
{
MetadataFactorySingleResult *mfsr =
dynamic_cast<MetadataFactorySingleResult*>(levent);
if (!mfsr)
return;
MetadataLookup *lookup = mfsr->result;
if (!lookup)
return;
ProgramInfo *pginfo = qVariantValue<ProgramInfo *>(lookup->GetData());
// This null check could hang us as this pginfo would then never be
// removed
if (!pginfo)
return;
LOG(VB_GENERAL, LOG_DEBUG, "I found the following data:");
LOG(VB_GENERAL, LOG_DEBUG,
QString(" Input Title: %1").arg(pginfo->GetTitle()));
LOG(VB_GENERAL, LOG_DEBUG,
//.........这里部分代码省略.........