diff --git a/src/libs/utils/treemodel.cpp b/src/libs/utils/treemodel.cpp index 5c4296688c460d92f931b238aef1e09fe575b70c..bb629c94db7debaf827b37f14e343af356755260 100644 --- a/src/libs/utils/treemodel.cpp +++ b/src/libs/utils/treemodel.cpp @@ -617,17 +617,12 @@ TreeItem::~TreeItem() removeChildren(); } -TreeItem *TreeItem::child(int pos) const +TreeItem *TreeItem::childAt(int pos) const { QTC_ASSERT(pos >= 0, return 0); return pos < m_children.size() ? m_children.at(pos) : 0; } -int TreeItem::rowCount() const -{ - return m_children.size(); -} - QVariant TreeItem::data(int column, int role) const { Q_UNUSED(column); @@ -651,7 +646,7 @@ Qt::ItemFlags TreeItem::flags(int column) const bool TreeItem::hasChildren() const { - return canFetchMore() || rowCount() > 0; + return canFetchMore() || childCount() > 0; } bool TreeItem::canFetchMore() const @@ -692,11 +687,11 @@ void TreeItem::insertChild(int pos, TreeItem *item) void TreeItem::removeChildren() { - if (rowCount() == 0) + if (childCount() == 0) return; if (m_model) { QModelIndex idx = index(); - m_model->beginRemoveRows(idx, 0, rowCount() - 1); + m_model->beginRemoveRows(idx, 0, childCount() - 1); clear(); m_model->endRemoveRows(); } else { @@ -707,7 +702,7 @@ void TreeItem::removeChildren() void TreeItem::sortChildren(const std::function &cmp) { if (m_model) { - if (const int n = rowCount()) { + if (const int n = childCount()) { QVector tmp = m_children; std::sort(tmp.begin(), tmp.end(), cmp); if (tmp == m_children) { @@ -850,8 +845,8 @@ QModelIndex TreeModel::parent(const QModelIndex &idx) const if (!grandparent) return QModelIndex(); - for (int i = 0, n = grandparent->rowCount(); i < n; ++i) - if (grandparent->child(i) == parent) + for (int i = 0, n = grandparent->childCount(); i < n; ++i) + if (grandparent->childAt(i) == parent) return createIndex(i, 0, (void*) parent); return QModelIndex(); @@ -861,12 +856,12 @@ int TreeModel::rowCount(const QModelIndex &idx) const { CHECK_INDEX(idx); if (!idx.isValid()) - return m_root->rowCount(); + return m_root->childCount(); if (idx.column() > 0) return 0; const TreeItem *item = itemForIndex(idx); QTC_ASSERT(item, return 0); - return item->rowCount(); + return item->childCount(); } int TreeModel::columnCount(const QModelIndex &idx) const @@ -985,9 +980,9 @@ QModelIndex TreeModel::index(int row, int column, const QModelIndex &parent) con const TreeItem *item = itemForIndex(parent); QTC_ASSERT(item, return QModelIndex()); - if (row >= item->rowCount()) + if (row >= item->childCount()) return QModelIndex(); - return createIndex(row, column, (void*)(item->child(row))); + return createIndex(row, column, (void*)(item->childAt(row))); } TreeItem *TreeModel::itemForIndex(const QModelIndex &idx) const diff --git a/src/libs/utils/treemodel.h b/src/libs/utils/treemodel.h index 2a4efd0734f5cf84f6089edb3781a7078a5d6760..7c2120affe11d46cb94cd54d50529606550b873f 100644 --- a/src/libs/utils/treemodel.h +++ b/src/libs/utils/treemodel.h @@ -41,10 +41,6 @@ public: TreeItem(); virtual ~TreeItem(); - TreeItem *parent() const { return m_parent; } - virtual TreeItem *child(int pos) const; - virtual int rowCount() const; - virtual QVariant data(int column, int role) const; virtual bool setData(int column, const QVariant &data, int role); virtual Qt::ItemFlags flags(int column) const; @@ -53,6 +49,8 @@ public: virtual bool canFetchMore() const; virtual void fetchMore() {} + TreeItem *parent() const { return m_parent; } + void prependChild(TreeItem *item); void appendChild(TreeItem *item); void insertChild(int pos, TreeItem *item); @@ -67,7 +65,7 @@ public: void setFlags(Qt::ItemFlags flags); int childCount() const { return m_children.size(); } - TreeItem *childAt(int index) const { return m_children.at(index); } + TreeItem *childAt(int index) const; QVector children() const { return m_children; } QModelIndex index() const; diff --git a/src/plugins/autotest/testresultspane.cpp b/src/plugins/autotest/testresultspane.cpp index 78b8a8971aa421a2549516389488a43d9e0c4d3b..caefcb1115dc256b5190ca57c307b7dfcc38b788 100644 --- a/src/plugins/autotest/testresultspane.cpp +++ b/src/plugins/autotest/testresultspane.cpp @@ -338,7 +338,7 @@ void TestResultsPane::goToNext() if (!rootItem || !rootItem->childCount()) return; - nextCurrentIndex = m_filterModel->mapFromSource(m_model->indexForItem(rootItem->child(0))); + nextCurrentIndex = m_filterModel->mapFromSource(m_model->indexForItem(rootItem->childAt(0))); } m_treeView->setCurrentIndex(nextCurrentIndex); diff --git a/src/plugins/autotest/testtreeitem.cpp b/src/plugins/autotest/testtreeitem.cpp index 145ac5c344d34a427ab55ed9e5b9794cf7cb609c..9cc3e861405becfecd1e8a7d8ec403f53290bfbd 100644 --- a/src/plugins/autotest/testtreeitem.cpp +++ b/src/plugins/autotest/testtreeitem.cpp @@ -217,7 +217,7 @@ TestTreeItem *TestTreeItem::parentItem() const TestTreeItem *TestTreeItem::childItem(int row) const { - return static_cast(child(row)); + return static_cast(childAt(row)); } TestTreeItem *TestTreeItem::findChildByName(const QString &name) diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.cpp index 39d1d945bfaab1c41461da2f098c30fee2b8c723..36fee7b5070363965935d0e8e1dd118f52635382 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerdiagnosticmodel.cpp @@ -273,7 +273,7 @@ QVariant ExplainingStepItem::data(int column, int role) const return QVariant::fromValue(static_cast(parent())->diagnostic()); case Qt::DisplayRole: { const int row = parent()->children().indexOf(const_cast(this)) + 1; - const int padding = static_cast(std::log10(parent()->rowCount())) + const int padding = static_cast(std::log10(parent()->childCount())) - static_cast(std::log10(row)); return QString::fromLatin1("%1%2: %3") .arg(QString(padding, QLatin1Char(' '))) diff --git a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp index 8dadc0222019cd61910c2d77a0497d2ad1a2fb5c..c7b19033550a5279599594fb3b077476d6e02bcf 100644 --- a/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp +++ b/src/plugins/cmakeprojectmanager/cmakesettingspage.cpp @@ -189,12 +189,12 @@ void CMakeToolItemModel::addCMakeTool(const CMakeTool *item, bool changed) TreeItem *CMakeToolItemModel::autoGroupItem() const { - return rootItem()->child(0); + return rootItem()->childAt(0); } TreeItem *CMakeToolItemModel::manualGroupItem() const { - return rootItem()->child(1); + return rootItem()->childAt(1); } void CMakeToolItemModel::reevaluateChangedFlag(CMakeToolTreeItem *item) const diff --git a/src/plugins/debugger/console/consoleitemmodel.cpp b/src/plugins/debugger/console/consoleitemmodel.cpp index 1373556a0e3971ebf08b6c96143b88e004dae6b3..fc65764c71a770b2c8a2ce7fc71e499bcaf0fd01 100644 --- a/src/plugins/debugger/console/consoleitemmodel.cpp +++ b/src/plugins/debugger/console/consoleitemmodel.cpp @@ -80,7 +80,7 @@ int ConsoleItemModel::sizeOfFile(const QFont &font) lastReadOnlyRow -= 2; // skip editable row if (lastReadOnlyRow < 0) return 0; - QString filename = static_cast(rootItem()->child(lastReadOnlyRow))->file(); + QString filename = static_cast(rootItem()->childAt(lastReadOnlyRow))->file(); const int pos = filename.lastIndexOf(QLatin1Char('/')); if (pos != -1) filename = filename.mid(pos + 1); diff --git a/src/plugins/debugger/moduleshandler.cpp b/src/plugins/debugger/moduleshandler.cpp index 5e0edcd0083472b326e74736fe7c3314ca6c722b..e90093f50414d7075cb3f9e9124d907daa26726b 100644 --- a/src/plugins/debugger/moduleshandler.cpp +++ b/src/plugins/debugger/moduleshandler.cpp @@ -157,8 +157,8 @@ QVariant ModuleItem::data(int column, int role) const static ModuleItem *moduleFromPath(TreeItem *root, const QString &modulePath) { // Recent modules are more likely to be unloaded first. - for (int i = root->rowCount(); --i >= 0; ) { - auto item = static_cast(root->child(i)); + for (int i = root->childCount(); --i >= 0; ) { + auto item = static_cast(root->childAt(i)); if (item->module.modulePath == modulePath) return item; } @@ -199,8 +199,8 @@ Modules ModulesHandler::modules() const { Modules mods; TreeItem *root = m_model->rootItem(); - for (int i = root->rowCount(); --i >= 0; ) - mods.append(static_cast(root->child(i))->module); + for (int i = root->childCount(); --i >= 0; ) + mods.append(static_cast(root->childAt(i))->module); return mods; } @@ -239,15 +239,15 @@ void ModulesHandler::updateModule(const Module &module) void ModulesHandler::beginUpdateAll() { TreeItem *root = m_model->rootItem(); - for (int i = root->rowCount(); --i >= 0; ) - static_cast(root->child(i))->updated = false; + for (int i = root->childCount(); --i >= 0; ) + static_cast(root->childAt(i))->updated = false; } void ModulesHandler::endUpdateAll() { TreeItem *root = m_model->rootItem(); - for (int i = root->rowCount(); --i >= 0; ) { - auto item = static_cast(root->child(i)); + for (int i = root->childCount(); --i >= 0; ) { + auto item = static_cast(root->childAt(i)); if (!item->updated) m_model->destroyItem(item); } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 7c9b26764401a0ed91c44c6ba9a6d722c77865ab..8387f3f2e9aa3c714c88a5bdc544d2c1b799b1ff 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1162,7 +1162,7 @@ bool WatchModel::hasChildren(const QModelIndex &idx) const const WatchItem *item = nonRootItemForIndex(idx); if (!item) return true; - if (item->rowCount() > 0) + if (item->childCount() > 0) return true; // "Can fetch more", see above. diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp index 2287633d34b9d0aef052106fa50bbe3a986d7e74..190d2f52b448c8ca826fe92ac65ad3a224b8aa4a 100644 --- a/src/plugins/projectexplorer/toolchainoptionspage.cpp +++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp @@ -236,7 +236,7 @@ void ToolChainOptionsWidget::addToolChain(ToolChain *tc) } } - TreeItem *parent = m_model.rootItem()->child(tc->isAutoDetected() ? 0 : 1); + TreeItem *parent = m_model.rootItem()->childAt(tc->isAutoDetected() ? 0 : 1); parent->appendChild(new ToolChainTreeItem(tc, false)); updateState(); diff --git a/src/plugins/valgrind/xmlprotocol/errorlistmodel.cpp b/src/plugins/valgrind/xmlprotocol/errorlistmodel.cpp index a5f0a765ddb032c5eb6026238a15eae45f5ed9d7..a137948cc05f9c05ea747c3a0d7d8c9661cef71f 100644 --- a/src/plugins/valgrind/xmlprotocol/errorlistmodel.cpp +++ b/src/plugins/valgrind/xmlprotocol/errorlistmodel.cpp @@ -279,7 +279,7 @@ QVariant FrameItem::data(int column, int role) const return QVariant::fromValue(getErrorItem()->error()); case Qt::DisplayRole: { const int row = parent()->children().indexOf(const_cast(this)) + 1; - const int padding = static_cast(std::log10(parent()->rowCount())) + const int padding = static_cast(std::log10(parent()->childCount())) - static_cast(std::log10(row)); return QString::fromLatin1("%1%2: %3") .arg(QString(padding, QLatin1Char(' '))) diff --git a/tests/auto/utils/treemodel/tst_treemodel.cpp b/tests/auto/utils/treemodel/tst_treemodel.cpp index 974294d8e11b0652266cc3c8bc7ecc546c1b208a..603a92dc5b8258b4f88c6e1507295319a22a4dbb 100644 --- a/tests/auto/utils/treemodel/tst_treemodel.cpp +++ b/tests/auto/utils/treemodel/tst_treemodel.cpp @@ -79,7 +79,7 @@ void tst_TreeModel::testIteration() group2->appendChild(item21); group2->appendChild(item22); - QCOMPARE(r->rowCount(), 3); + QCOMPARE(r->childCount(), 3); QCOMPARE(countLevelItems(r, 1), 3); QCOMPARE(countLevelItems(r, 2), 6); QCOMPARE(countLevelItems(r, 3), 0);