ItemRep::ItemRep(CatItem it, Tuple internalId, int change_count, short nthPiece, bool nameFromDescript){ Q_ASSERT(!it.isEmpty()); matchType = it.getMatchType(); matchIndex = it.getMatchIndex(); //description = it.fullDescription; m_internalId = internalId; m_name = it.getName(); Q_ASSERT(!m_name.isEmpty()); //Q_ASSERT(it.getFullWeight()); totalWeight = it.getFullWeight(); change_cn = change_count; l_to_match = -1; skip_m = false; this->itemType = it.getItemType(); //change_cn = 0; m_nthPiece= nthPiece; m_name_from_description=nameFromDescript; }
void CatBuilder::catalogTask() { qDebug() << "CatBuilder task starting: " << (int)this; mp_userItems = new QList<CatItem>; mp_extension_results = new QList<CatItem>; mp_timelyItems = new QList<CatItem>; gMainWidget->fillBuilderInfo(this); Q_ASSERT(cat); Q_ASSERT(plugins_ptr); QList<CatItem> insertList; //bool success=false; SearchInfo inf; inf.m_extensionType = m_extensionType; switch (m_extensionType) { // case LOAD: // success = plugins_ptr->loadCatalogs(&(insertList)); // if(!success) { // plugins_ptr->getCatalogs(&(insertList)); // } // break; case UserEvent::CATALOGUE_LOAD: plugins_ptr->getCatalogs(&(insertList)); break; case UserEvent::CATALOGUE_EXTEND: doExtension(&insertList); break; case UserEvent::BACKGROUND_SEARCH: default: { inf.m_userKeys = this->m_userKeys; inf.m_keyWords = this->m_keywords; inf.itemListPtr = (mp_userItems); plugins_ptr->backgroundSearch(&inf, &(insertList)); } break; } QList<CatItem> mergedItems = cat->indexItemList(&insertList); mp_extension_results->clear(); for(int i=0; i<mergedItems.count(); i++) { CatItem it = mergedItems[i]; if(it.getIsTimeDependant()) { mp_timelyItems->append(mergedItems[i]); } if(it.getMatchType() == CatItem::USER_KEYWORD) { setShown(it, UserEvent::KEYS_TYPE); continue; } mp_extension_results->append(it); //plugins_ptr->itemLoading(&it,UserEvent::JUST_FOUND); } QList<CatItem> res; inf.itemListPtr = &mergedItems; qDebug() << "give plugins another go at found items"; plugins_ptr->itemsLoading(&inf,&res); res = cat->indexItemList(&res); mergedItems.append(res); mp_extension_results->clear(); for(int i=0; i<mergedItems.count(); i++) { mp_extension_results->append(mergedItems[i]); } if(UserEvent::BACKGROUND_SEARCH == m_extensionType) { //emit backgroundSearchDone(this,m_userKeys); gMainWidget->backgroundSearchDone(this,m_userKeys); qDebug() << "search done for: " << (int)this; } else if( UserEvent::STANDARD_UPDATE== m_extensionType || UserEvent::CATALOGUE_EXTEND== m_extensionType || UserEvent::CATALOGUE_LOAD== m_extensionType || UserEvent::CATALOGUE_SAVE== m_extensionType ) { //emit catalogFinished(this); gMainWidget->catalogBuilt(this); qDebug() << "catabuilt for: " << (int)this; } qDebug() << "run done for: " << (int)this; emit finished(); }
void CatBuilder::setShown(CatItem it, UserEvent etv) { it.setBestMatchType(it.getMatchType()); cat->setShown(it, etv); }