forked from qt-creator/qt-creator
Make gtest related items checkable
This is a preparation for supporting 'Run Selected Tests' for gtest related tests. Change-Id: I4fc46b9c394d8c748b42b2cda2d27d3597a1c273 Reviewed-by: Niels Weber <niels.weber@theqtcompany.com>
This commit is contained in:
@@ -39,6 +39,9 @@ TestTreeItem::TestTreeItem(const QString &name, const QString &filePath, Type ty
|
|||||||
switch (m_type) {
|
switch (m_type) {
|
||||||
case TestClass:
|
case TestClass:
|
||||||
case TestFunction:
|
case TestFunction:
|
||||||
|
case GTestCase:
|
||||||
|
case GTestName:
|
||||||
|
case GTestNameDisabled:
|
||||||
m_checked = Qt::Checked;
|
m_checked = Qt::Checked;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -105,13 +108,13 @@ QVariant TestTreeItem::data(int /*column*/, int role) const
|
|||||||
case TestDataFunction:
|
case TestDataFunction:
|
||||||
case TestSpecialFunction:
|
case TestSpecialFunction:
|
||||||
case TestDataTag:
|
case TestDataTag:
|
||||||
case GTestCase:
|
|
||||||
case GTestName:
|
|
||||||
case GTestNameDisabled:
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
case TestClass:
|
case TestClass:
|
||||||
|
case GTestCase:
|
||||||
return m_name.isEmpty() ? QVariant() : checked();
|
return m_name.isEmpty() ? QVariant() : checked();
|
||||||
case TestFunction:
|
case TestFunction:
|
||||||
|
case GTestName:
|
||||||
|
case GTestNameDisabled:
|
||||||
if (parentItem() && parentItem()->name().isEmpty())
|
if (parentItem() && parentItem()->name().isEmpty())
|
||||||
return QVariant();
|
return QVariant();
|
||||||
return checked();
|
return checked();
|
||||||
@@ -180,12 +183,15 @@ bool TestTreeItem::modifyContent(const TestTreeItem *modified)
|
|||||||
void TestTreeItem::setChecked(const Qt::CheckState checkState)
|
void TestTreeItem::setChecked(const Qt::CheckState checkState)
|
||||||
{
|
{
|
||||||
switch (m_type) {
|
switch (m_type) {
|
||||||
case TestFunction: {
|
case TestFunction:
|
||||||
|
case GTestName:
|
||||||
|
case GTestNameDisabled: {
|
||||||
m_checked = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
|
m_checked = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
|
||||||
parentItem()->revalidateCheckState();
|
parentItem()->revalidateCheckState();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case TestClass: {
|
case TestClass:
|
||||||
|
case GTestCase: {
|
||||||
Qt::CheckState usedState = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
|
Qt::CheckState usedState = (checkState == Qt::Unchecked ? Qt::Unchecked : Qt::Checked);
|
||||||
for (int row = 0, count = childCount(); row < count; ++row)
|
for (int row = 0, count = childCount(); row < count; ++row)
|
||||||
childItem(row)->setChecked(usedState);
|
childItem(row)->setChecked(usedState);
|
||||||
@@ -201,6 +207,9 @@ Qt::CheckState TestTreeItem::checked() const
|
|||||||
switch (m_type) {
|
switch (m_type) {
|
||||||
case TestClass:
|
case TestClass:
|
||||||
case TestFunction:
|
case TestFunction:
|
||||||
|
case GTestCase:
|
||||||
|
case GTestName:
|
||||||
|
case GTestNameDisabled:
|
||||||
return m_checked;
|
return m_checked;
|
||||||
case TestDataFunction:
|
case TestDataFunction:
|
||||||
case TestSpecialFunction:
|
case TestSpecialFunction:
|
||||||
|
@@ -139,10 +139,13 @@ bool TestTreeModel::setData(const QModelIndex &index, const QVariant &value, int
|
|||||||
if (role == Qt::CheckStateRole) {
|
if (role == Qt::CheckStateRole) {
|
||||||
switch (item->type()) {
|
switch (item->type()) {
|
||||||
case TestTreeItem::TestClass:
|
case TestTreeItem::TestClass:
|
||||||
|
case TestTreeItem::GTestCase:
|
||||||
if (item->childCount() > 0)
|
if (item->childCount() > 0)
|
||||||
emit dataChanged(index.child(0, 0), index.child(item->childCount() - 1, 0));
|
emit dataChanged(index.child(0, 0), index.child(item->childCount() - 1, 0));
|
||||||
break;
|
break;
|
||||||
case TestTreeItem::TestFunction:
|
case TestTreeItem::TestFunction:
|
||||||
|
case TestTreeItem::GTestName:
|
||||||
|
case TestTreeItem::GTestNameDisabled:
|
||||||
emit dataChanged(index.parent(), index.parent());
|
emit dataChanged(index.parent(), index.parent());
|
||||||
break;
|
break;
|
||||||
default: // avoid warning regarding unhandled enum member
|
default: // avoid warning regarding unhandled enum member
|
||||||
@@ -162,10 +165,13 @@ Qt::ItemFlags TestTreeModel::flags(const QModelIndex &index) const
|
|||||||
TestTreeItem *item = static_cast<TestTreeItem *>(itemForIndex(index));
|
TestTreeItem *item = static_cast<TestTreeItem *>(itemForIndex(index));
|
||||||
switch(item->type()) {
|
switch(item->type()) {
|
||||||
case TestTreeItem::TestClass:
|
case TestTreeItem::TestClass:
|
||||||
|
case TestTreeItem::GTestCase:
|
||||||
if (item->name().isEmpty())
|
if (item->name().isEmpty())
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsUserCheckable;
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate | Qt::ItemIsUserCheckable;
|
||||||
case TestTreeItem::TestFunction:
|
case TestTreeItem::TestFunction:
|
||||||
|
case TestTreeItem::GTestName:
|
||||||
|
case TestTreeItem::GTestNameDisabled:
|
||||||
if (item->parentItem()->name().isEmpty())
|
if (item->parentItem()->name().isEmpty())
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsUserCheckable;
|
||||||
@@ -174,9 +180,6 @@ Qt::ItemFlags TestTreeModel::flags(const QModelIndex &index) const
|
|||||||
case TestTreeItem::TestDataFunction:
|
case TestTreeItem::TestDataFunction:
|
||||||
case TestTreeItem::TestSpecialFunction:
|
case TestTreeItem::TestSpecialFunction:
|
||||||
case TestTreeItem::TestDataTag:
|
case TestTreeItem::TestDataTag:
|
||||||
case TestTreeItem::GTestCase:
|
|
||||||
case TestTreeItem::GTestName:
|
|
||||||
case TestTreeItem::GTestNameDisabled:
|
|
||||||
default:
|
default:
|
||||||
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user