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

Method setCurrentIndex

kdevplatform/util/multilevellistview.cpp:398–435  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

396}
397
398void MultiLevelListView::setCurrentIndex(const QModelIndex& index)
399{
400 Q_D(MultiLevelListView);
401
402 // incoming index is for the original model
403 Q_ASSERT(!index.isValid() || index.model() == d->model);
404
405 const QModelIndex previous = currentIndex();
406
407 QModelIndex idx(index);
408 QVector<QModelIndex> indexes;
409
410 while (idx.isValid()) {
411 indexes.prepend(idx);
412 idx = idx.parent();
413 }
414
415 for (int i = 0; i < d->levels; ++i) {
416 QTreeView* view = d->views.at(i);
417 if (indexes.size() <= i) {
418 // select first item by default
419 view->setCurrentIndex(view->model()->index(0, 0));
420 continue;
421 }
422
423 QModelIndex index;
424 if (i + 1 == d->levels) {
425 // select the very last index in the list (i.e. might be deep down in the actual tree)
426 index = indexes.last();
427 } else {
428 // select the first index for that level
429 index = indexes.at(i);
430 }
431 view->setCurrentIndex(d->mapFromSource(index, i));
432 }
433
434 emit currentIndexChanged(index, previous);
435}
436
437void MultiLevelListView::setRootIndex(const QModelIndex& index)
438{

Callers 15

editMethod · 0.80
ProjectSourcePageMethod · 0.80
selectionChangedMethod · 0.80
createConfigurationMethod · 0.80
addConfigurationMethod · 0.80
setEditorDataMethod · 0.80
filterTextChangedMethod · 0.80
eventFilterMethod · 0.80
selectLanguageMethod · 0.80
selectProfileMethod · 0.80

Calls 8

isValidMethod · 0.45
modelMethod · 0.45
parentMethod · 0.45
atMethod · 0.45
sizeMethod · 0.45
indexMethod · 0.45
lastMethod · 0.45
mapFromSourceMethod · 0.45

Tested by 1

testSwitchTabMethod · 0.64