Ejemplo n.º 1
0
void QueryResultsNode::fetchMore(const QModelIndex &parent)
{
    EntityValue item;
    ItemsContainer::List list;
    Snapshot::Files files(m_container.container());

    list.reserve(PrefetchLimit);

    if (m_reader.entity().type() == Entity::Composite)
        for (qint32 actualLimit = 0; actualLimit < PrefetchLimit; ++actualLimit)
            if ((item = m_reader.next()).isValid())
                list.push_back(Item::Holder(new QueryResultCompositeRootItem(files, m_container, item)));
            else
                break;
    else
        for (qint32 actualLimit = 0; actualLimit < PrefetchLimit; ++actualLimit)
            if ((item = m_reader.next()).isValid())
                list.push_back(Item::Holder(new QueryResultRootItem(item)));
            else
                break;

    if (!list.isEmpty())
    {
        if (!files.isEmpty())
            handleTask(new ScanFilesTask(ModelEvent::UpdateFiles, this, files));

        beginInsertRows(parent, m_items.size(), m_items.size() + list.size() - 1);
        m_items.append(list);
        endInsertRows();
    }
}
Ejemplo n.º 2
0
void CompilerOutputProcessor::start()
{
    ProjectExplorer::OsParser parser;
    parser.appendOutputParser(new QmakeProjectManager::QMakeParser);
    parser.appendOutputParser(new ProjectExplorer::GnuMakeParser);
    parser.appendOutputParser(new QtSupport::QtParser);
    switch (m_compilerType) {
    case CompilerTypeGcc:
        parser.appendOutputParser(new ProjectExplorer::GccParser);
        break;
    case CompilerTypeClang:
        parser.appendOutputParser(new ProjectExplorer::ClangParser);
        break;
#ifdef HAS_MSVC_PARSER
    case CompilerTypeMsvc:
        parser.appendOutputParser(new ProjectExplorer::MsvcParser);
        break;
#endif
    }

    connect(&parser, SIGNAL(addTask(ProjectExplorer::Task)),
            SLOT(handleTask(ProjectExplorer::Task)));
    while (!m_source.atEnd())
        parser.stdError(QString::fromLocal8Bit(m_source.readLine().trimmed()));
    qApp->quit();
}
Ejemplo n.º 3
0
void QueryResultsNode::refresh(const QModelIndex &index)
{
    Snapshot::Files files(m_container.container());
    QueryResultItem *item = static_cast<QueryResultItem *>(index.internalPointer());

    for (QueryResultItem::size_type i = 0, size = item->size(); i < size; ++i)
        files.add(static_cast<QueryResultPathItem *>(item->at(i))->location(), Item::Holder(static_cast<QueryResultItem *>(item->at(i))));

    if (!files.isEmpty())
        handleTask(new ScanFilesTask(ModelEvent::UpdateFiles, this, files));
}