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(); } }
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(); }
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)); }