diff --git a/src/plugins/autotest/testtreeitem.cpp b/src/plugins/autotest/testtreeitem.cpp index c780bea089d66ba0898eae5bddee85e53425c883..50ca4c899f7a53b5424b94a467b3f5e13d16013b 100644 --- a/src/plugins/autotest/testtreeitem.cpp +++ b/src/plugins/autotest/testtreeitem.cpp @@ -42,7 +42,7 @@ TestTreeItem::TestTreeItem(const QString &name, const QString &filePath, Type ty m_filePath(filePath), m_type(type), m_line(0), - m_markedForRemoval(false) + m_status(NewlyAdded) { m_checked = (m_type == TestCase || m_type == TestFunctionOrSet) ? Qt::Checked : Qt::Unchecked; } @@ -207,12 +207,12 @@ Qt::CheckState TestTreeItem::checked() const void TestTreeItem::markForRemoval(bool mark) { - m_markedForRemoval = mark; + m_status = mark ? MarkedForRemoval : Cleared; } void TestTreeItem::markForRemovalRecursively(bool mark) { - m_markedForRemoval = mark; + markForRemoval(mark); for (int row = 0, count = childCount(); row < count; ++row) childItem(row)->markForRemovalRecursively(mark); } diff --git a/src/plugins/autotest/testtreeitem.h b/src/plugins/autotest/testtreeitem.h index 4d44923c2f855ccaea7cdaa7016a998176f59b70..5f45a723ef78820381140e439abdc0bbcd8e8c04 100644 --- a/src/plugins/autotest/testtreeitem.h +++ b/src/plugins/autotest/testtreeitem.h @@ -90,7 +90,8 @@ public: Type type() const { return m_type; } void markForRemoval(bool mark); void markForRemovalRecursively(bool mark); - bool markedForRemoval() const { return m_markedForRemoval; } + bool markedForRemoval() const { return m_status == MarkedForRemoval; } + bool newlyAdded() const { return m_status == NewlyAdded; } TestTreeItem *parentItem() const; TestTreeItem *childItem(int row) const; @@ -114,6 +115,13 @@ private: void revalidateCheckState(); bool modifyName(const QString &name); + enum Status + { + NewlyAdded, + MarkedForRemoval, + Cleared + }; + QString m_name; QString m_filePath; Qt::CheckState m_checked; @@ -121,7 +129,7 @@ private: unsigned m_line; unsigned m_column; QString m_proFile; - bool m_markedForRemoval; + Status m_status; }; typedef QVector<TestCodeLocationAndType> TestCodeLocationList; diff --git a/src/plugins/autotest/testtreemodel.cpp b/src/plugins/autotest/testtreemodel.cpp index 6fd7f52f491aa812b0e060340972fec7c16d27a4..fa69cafe42d97324ffb0d6e334748e5e9ab99169 100644 --- a/src/plugins/autotest/testtreemodel.cpp +++ b/src/plugins/autotest/testtreemodel.cpp @@ -703,6 +703,7 @@ bool TestTreeModel::sweepChildren(TestTreeItem *item) continue; } } + hasChanged |= child->newlyAdded(); child->markForRemoval(false); } return hasChanged;