diff options
author | Christian Stenger <christian.stenger@digia.com> | 2014-11-13 12:31:58 +0100 |
---|---|---|
committer | Christian Stenger <christian.stenger@theqtcompany.com> | 2014-12-04 13:52:16 +0100 |
commit | b0c4a9cc3bbe6697692c07c31c96a2c937171364 (patch) | |
tree | 3477dce68824001005eb3d67dddeadac1e9c9bbb /plugins/autotest/testtreeitem.cpp | |
parent | 9a644d1257199a58cbb208c79c33831458d4aa01 (diff) | |
download | qt-creator-b0c4a9cc3bbe6697692c07c31c96a2c937171364.tar.gz |
Improve support for Qt Quick Tests
Diffstat (limited to 'plugins/autotest/testtreeitem.cpp')
-rw-r--r-- | plugins/autotest/testtreeitem.cpp | 58 |
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; |