CatItem CatBuilder::updateItem(CatItem& it, int childDepth, UserEvent::LoadType lt) { if(!it.shouldUpdate(childDepth, lt)) { return it; } CatItem realItem; QList<int> matches = it.getMatchIndex(); if(!it.getIsTempItem()) { QString path = it.getPath(); realItem = getItem(path, childDepth); addSynonymChildren(realItem); //Our plugins can return items not in the database if(!realItem.isEmpty()) { //realItem.merge(it); it.merge(realItem); } if(lt!=UserEvent::IGNORE) { for(int i=0; i<childDepth; i++) { //avoiding address of reference of smart-pointer itme CatItem holder = it; if(plugins_ptr->itemLoading(&holder,lt)) { cat->addItem(holder); it = holder; } } } } it.setMatchIndex(matches); return it; }
void MyListWidget::setCurrentItem(CatItem catItem){ for(int i=0; i< count();i++){ QListWidgetItem* listWidgetItem = item(i); if((listWidgetItem->data((ROLE_ITEM_PATH)).toString() == catItem.getPath())){ setCurrentRow(i); break; } } }
bool PreviewPane::setItem(CatItem it, bool justTesting) { m_item = it; m_loadType = UNKNOWN_HTML; if(!justTesting){ settings()->setFontSize(QWebSettings::MinimumFontSize,18); settings()->setFontSize(QWebSettings::MinimumLogicalFontSize,18); settings()->setFontSize(QWebSettings::DefaultFontSize,18); settings()->setFontSize(QWebSettings::DefaultFixedFontSize,18); // QString styleSheetPath = (USER_APP_DIR + BROWSER_OPTION_DIR + BROWSER_STYLE_SHEET); QString styleSheetPath = m_item.getPreviewCSSPath(); settings()->setUserStyleSheetUrl(QUrl(styleSheetPath)); } if(justTesting ){ if((int)it.getTagLevel() >=(int)CatItem::KEY_WORD){ return false; } if(it.getItemType() == CatItem::LOCAL_DATA_FOLDER){ return false; } QFileInfo f(it.getPath()); if(f.isDir()){ return false; } } if(!justTesting){ setVisible(false); } if(it.hasLabel(PREVIEW_URL_KEY)){ if(!justTesting){ QUrl url(it.getCustomString(PREVIEW_URL_KEY)); qDebug() << "setting url:" << url.toString(); setUrl(url); load(url); loadingStart(); } return true; } else if(it.hasLabel(FIREFOX_PLUGIN_NAME) && !it.hasLabel(STREAM_SOURCE_PATH)){ if(!justTesting){ setHtml (HTTP_CONTENT_LOADING_MSG); QUrl url = it.previewUrl(); qDebug() << "setting url:" << url.toString(); //startGettingUrlHtml(url); setUrl(url); load(url); loadingStart(); //setReaderScript(true); connect(this, SIGNAL(loadProgress(int)),this, SLOT(progressLoading(int))); } return true; } else if(it.getMimeType() == DEFAULT_HTML_MIME_TYPE &&
void testpluginPlugin::extendCatalog(SearchInfo* , QList<CatItem>* r) { r=r; #ifdef TEST_GUI qDebug() << "testpluginPlugin::extendCatalog"; QList <CatItem> in_list = *(info->itemListPtr); QString extend_suffix = "/extended/"; CatItem me(itemPath); for(int i=0;i< in_list.count();i++){ if(in_list[i].getPath().right(extend_suffix.length()) !=extend_suffix){ CatItem e = in_list[i]; CatItem f(e.getPath() + extend_suffix, e.getName() + extend_suffix); f.setExternalWeight(0,me); r->append(f); } } #endif }
QList<CatItem> Catalog::expandStubs(QString userKeys, QList<CatItem>* inList){ QList<CatItem> stubs; QList<CatItem> oldStubs; QList<CatItem>* workingList = inList; QList<CatItem> res; bool refreshNeeded =false; int rep=0; QSet<QString> updated; while((workingList->length()>0)) { cat_store.beginAddGroup(); for(int i=0; i<workingList->count();i++){ CatItem toAdd = workingList->at(i); bool atStub = toAdd.isStub(); if(plugins.itemLoading(&toAdd, UserEvent::BECOMING_VISIBLE)){ if(toAdd.isForDelete()) { cat_store.removeItem(workingList->at(i)); continue; } if(atStub) { refreshNeeded = true; //toAdd.setStub(false); cat_store.addItemInGroup(toAdd); } } QList<CatItem> newStubs = extractStubs(toAdd); for(int j=0; j<newStubs.count(); j++){ if(!updated.contains(newStubs[j].getPath())){ updated.insert(newStubs[j].getPath()); stubs.append(newStubs[j]); } } } oldStubs = stubs; workingList = &oldStubs; cat_store.endAddGroup(); stubs.clear(); Q_ASSERT(workingList->count() <1000); rep++; Q_ASSERT(rep<10); } cat_store.beginAddGroup(); for(int i=0; i<inList->count();i++){ CatItem toAdd = inList->at(i); if(toAdd.isForDBInsertOnly()){ cat_store.addItemInGroup(toAdd); continue; } if(userKeys.isEmpty() || matches(&toAdd, userKeys) || toAdd.getTakesAnykeys()) { if(refreshNeeded){ CatItem refreshed = cat_store.getItemByPath(toAdd.getPath()); if(!refreshed.isEmpty()){ toAdd.mergeItem(refreshed,true); } toAdd.setMatchIndex(QList<int>()); } if(!toAdd.hasLabel(BUILTIN)) { res.append(toAdd);} }} cat_store.endAddGroup(); return res; }