MCPcopy Create free account
hub / github.com/KDE/kate / createFileTreeForCommit

Method createFileTreeForCommit

apps/lib/commitfilesview.cpp:488–533  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

486}
487
488void CommitDiffTreeView::createFileTreeForCommit(const QByteArray &rawNumStat)
489{
490 QStandardItem root;
491 std::vector<GitFileItem> items;
492 parseNumStat(rawNumStat, &items);
493 createFileTree(&root, m_gitDir, items);
494
495 // Remove nodes that have only one item. i.e.,
496 // - kate
497 // -- addons
498 // -- file 1
499 // kate will be removed since it has only item
500 // The tree will start from addons instead.
501 QList<QStandardItem *> tree = root.takeColumn(0);
502 while (tree.size() == 1) {
503 QStandardItem *subRoot = tree.takeFirst();
504 QList<QStandardItem *> subTree = subRoot->takeColumn(0);
505
506 // if its just one file
507 if (subTree.isEmpty()) {
508 tree.append(subRoot);
509 break;
510 }
511
512 if (subTree.size() > 1) {
513 tree.append(subRoot);
514 subRoot->insertColumn(0, subTree);
515 break;
516 } else {
517 // Is the only child of this node a "File" item?
518 if (subTree.first()->data(FileItem::TypeRole).toInt() == FileItem::File) {
519 subRoot->insertColumn(0, subTree);
520 tree.append(subRoot);
521 break;
522 }
523
524 delete subRoot;
525 tree = subTree;
526 }
527 }
528
529 m_model.clear();
530 m_model.invisibleRootItem()->appendColumn(tree);
531
532 m_tree.expandAll();
533}
534
535void CommitDiffTreeView::showDiff(const QModelIndex &idx)
536{

Callers

nothing calls this directly

Calls 6

parseNumStatFunction · 0.85
sizeMethod · 0.80
createFileTreeFunction · 0.70
isEmptyMethod · 0.45
dataMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected