diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index 2b94d56311c..78e80b273f7 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -966,6 +966,18 @@ QModelIndex BaseTreeModel::parent(const QModelIndex &idx) const return createIndex(i, 0, static_cast(parent)); } +QModelIndex BaseTreeModel::sibling(int row, int column, const QModelIndex &idx) const +{ + const TreeItem *item = itemForIndex(idx); + QTC_ASSERT(item, return QModelIndex()); + QModelIndex result; + if (TreeItem *parent = item->parent()) { + if (TreeItem *sibl = parent->childAt(row)) + result = createIndex(row, column, static_cast(sibl)); + } + return result; +} + int BaseTreeModel::rowCount(const QModelIndex &idx) const { CHECK_INDEX(idx); diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index 63818b27c22..b28eebf79dd 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -188,6 +188,7 @@ protected: QVariant data(const QModelIndex &idx, int role) const override; QModelIndex index(int, int, const QModelIndex &idx = QModelIndex()) const override; QModelIndex parent(const QModelIndex &idx) const override; + QModelIndex sibling(int row, int column, const QModelIndex &idx) const override; Qt::ItemFlags flags(const QModelIndex &idx) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override; bool hasChildren(const QModelIndex &idx) const override;