summaryrefslogtreecommitdiff
path: root/plugins/autotest/testtreeitem.cpp
diff options
context:
space:
mode:
authorChristian Stenger <christian.stenger@digia.com>2014-11-13 12:31:58 +0100
committerChristian Stenger <christian.stenger@theqtcompany.com>2014-12-04 13:52:16 +0100
commitb0c4a9cc3bbe6697692c07c31c96a2c937171364 (patch)
tree3477dce68824001005eb3d67dddeadac1e9c9bbb /plugins/autotest/testtreeitem.cpp
parent9a644d1257199a58cbb208c79c33831458d4aa01 (diff)
downloadqt-creator-b0c4a9cc3bbe6697692c07c31c96a2c937171364.tar.gz
Improve support for Qt Quick Tests
Diffstat (limited to 'plugins/autotest/testtreeitem.cpp')
-rw-r--r--plugins/autotest/testtreeitem.cpp58
1 files changed, 51 insertions, 7 deletions
diff --git a/plugins/autotest/testtreeitem.cpp b/plugins/autotest/testtreeitem.cpp
index 5ffd192761..2da060da52 100644
--- a/plugins/autotest/testtreeitem.cpp
+++ b/plugins/autotest/testtreeitem.cpp
@@ -24,11 +24,29 @@ namespace Internal {
TestTreeItem::TestTreeItem(const QString &name, const QString &filePath, Type type, TestTreeItem *parent)
: m_name(name),
m_filePath(filePath),
- m_checked(type == ROOT ? Qt::Unchecked : Qt::Checked),
m_type(type),
m_line(0),
m_parent(parent)
{
+ switch (m_type) {
+ case ROOT:
+ m_checked = Qt::Unchecked;
+ break;
+ case TEST_CLASS:
+ case TEST_FUNCTION:
+ m_checked = Qt::Checked;
+ break;
+ case TEST_DATAFUNCTION:
+ case TEST_SPECIALFUNCTION:
+ if (m_parent)
+ m_checked = m_parent->checked() == Qt::PartiallyChecked ? Qt::Unchecked
+ : m_parent->checked();
+ else
+ m_checked = Qt::Unchecked;
+ break;
+ default:
+ m_checked = Qt::Unchecked;
+ }
}
TestTreeItem::~TestTreeItem()
@@ -121,19 +139,37 @@ bool TestTreeItem::modifyContent(const TestTreeItem *modified)
void TestTreeItem::setChecked(const Qt::CheckState checkState)
{
switch (m_type) {
- case ROOT:
- return;
- case TEST_FUNCTION:
+ case TEST_FUNCTION: {
m_checked = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
m_parent->revalidateCheckState();
break;
- case TEST_CLASS:
+ }
+ case TEST_CLASS: {
Qt::CheckState usedState = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
foreach (TestTreeItem *child, m_children) {
child->setChecked(usedState);
}
m_checked = usedState;
}
+ default:
+ return;
+ }
+}
+
+Qt::CheckState TestTreeItem::checked() const
+{
+ switch (m_type) {
+ case TEST_CLASS:
+ case TEST_FUNCTION:
+ return m_checked;
+ case TEST_DATAFUNCTION:
+ case TEST_SPECIALFUNCTION:
+ return m_parent->m_checked == Qt::PartiallyChecked ? Qt::Unchecked : m_parent->m_checked;
+ default:
+ if (m_parent)
+ return m_parent->m_checked;
+ }
+ return Qt::Unchecked;
}
void TestTreeItem::revalidateCheckState()
@@ -143,8 +179,16 @@ void TestTreeItem::revalidateCheckState()
bool foundChecked = false;
bool foundUnchecked = false;
foreach (const TestTreeItem *child, m_children) {
- foundChecked |= (child->m_checked != Qt::Unchecked);
- foundUnchecked |= (child->m_checked == Qt::Unchecked);
+ switch (child->type()) {
+ case TEST_DATAFUNCTION:
+ case TEST_SPECIALFUNCTION:
+ continue;
+ default:
+ break;
+ }
+
+ foundChecked |= (child->checked() != Qt::Unchecked);
+ foundUnchecked |= (child->checked() == Qt::Unchecked);
if (foundChecked && foundUnchecked) {
m_checked = Qt::PartiallyChecked;
return;