Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
        }
    }
}
Exemplo n.º 3
0
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 &&
Exemplo n.º 4
0
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

}
Exemplo n.º 5
0
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;
}