MCPcopy Create free account
hub / github.com/KDE/kdevelop / insertItemsOverrideCache

Method insertItemsOverrideCache

kdevplatform/project/projectbuildsetmodel.cpp:222–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

220}
221
222void ProjectBuildSetModel::insertItemsOverrideCache( int index, const QList< BuildItem >& items )
223{
224 Q_D(ProjectBuildSetModel);
225
226 Q_ASSERT( index >= 0 && index <= d->items.size() );
227
228 if (index == d->items.size()) {
229 beginInsertRows( QModelIndex(), index, index + items.size() - 1 );
230 d->items.append(items);
231 d->orderingCache.reserve(d->orderingCache.size() + items.size());
232 for (const BuildItem& item : items) {
233 d->orderingCache.append(item.itemPath());
234 }
235 endInsertRows();
236 } else {
237 int indexInCache = d->orderingCache.indexOf(d->items.at(index).itemPath());
238 Q_ASSERT( indexInCache >= 0 );
239
240 beginInsertRows( QModelIndex(), index, index + items.size() - 1 );
241 for( int i = 0; i < items.size(); ++i ) {
242 const BuildItem& item = items.at( i );
243 d->items.insert(index + i, item);
244 d->orderingCache.insert(indexInCache + i, item.itemPath());
245 }
246 endInsertRows();
247 }
248}
249
250QVariant ProjectBuildSetModel::data( const QModelIndex& idx, int role ) const
251{

Callers

nothing calls this directly

Calls 8

QModelIndexClass · 0.50
sizeMethod · 0.45
appendMethod · 0.45
reserveMethod · 0.45
itemPathMethod · 0.45
indexOfMethod · 0.45
atMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected