diff options
Diffstat (limited to 'plugins/autotest/testnavigationwidget.cpp')
-rw-r--r-- | plugins/autotest/testnavigationwidget.cpp | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/plugins/autotest/testnavigationwidget.cpp b/plugins/autotest/testnavigationwidget.cpp index 33c5f4342b..26c1bfd3d8 100644 --- a/plugins/autotest/testnavigationwidget.cpp +++ b/plugins/autotest/testnavigationwidget.cpp @@ -95,6 +95,11 @@ TestNavigationWidget::TestNavigationWidget(QWidget *parent) : connect(m_view, &QTreeView::collapsed, this, &TestNavigationWidget::onCollapsed); connect(m_model, &QAbstractItemModel::rowsInserted, this, &TestNavigationWidget::onRowsInserted); connect(m_model, &QAbstractItemModel::rowsRemoved, this, &TestNavigationWidget::onRowsRemoved); + + connect(m_view, &TestTreeView::runTestCase, + TestSquishFileHandler::instance(), &TestSquishFileHandler::runTestCase); + connect(m_view, &TestTreeView::runTestSuite, + TestSquishFileHandler::instance(), &TestSquishFileHandler::runTestSuite); } TestNavigationWidget::~TestNavigationWidget() @@ -111,12 +116,15 @@ bool TestNavigationWidget::handleSquishContextMenuEvent(QContextMenuEvent *event const QModelIndexList list = m_view->selectionModel()->selectedIndexes(); // 3 columns - but we only need the data of the first column as the others contain only an icon if (list.size() == 3) { - QRect rect(m_view->visualRect(list.first())); + const QModelIndex &index = list.first(); + QRect rect(m_view->visualRect(index)); rect.adjust(0, 0, defaultSectionSize * 2, 0); if (rect.contains(event->pos())) { - TestTreeItem::Type type = TestTreeItem::toTestType(list.first().data(TypeRole).toInt()); + TestTreeItem::Type type = TestTreeItem::toTestType(index.data(TypeRole).toInt()); if (type == TestTreeItem::SQUISH_TESTCASE) { + const QString caseName = index.data().toString(); + const QString suiteName = index.parent().data().toString(); isSquishMenu = true; QAction *runThisTestCase = new QAction(tr("Run This Test Case"), &menu); menu.addAction(runThisTestCase); @@ -125,8 +133,12 @@ bool TestNavigationWidget::handleSquishContextMenuEvent(QContextMenuEvent *event menu.addAction(deleteTestCase); deleteTestCase->setEnabled(enabled); menu.addSeparator(); + + connect(runThisTestCase, &QAction::triggered, [suiteName, caseName] () { + TestSquishFileHandler::instance()->runTestCase(suiteName, caseName); + }); } else if (type == TestTreeItem::SQUISH_SUITE) { - const QString suiteName = list.first().data().toString(); + const QString suiteName = index.data().toString(); isSquishMenu = true; QAction *runThisTestSuite = new QAction(tr("Run This Test Suite"), &menu); menu.addAction(runThisTestSuite); @@ -143,6 +155,10 @@ bool TestNavigationWidget::handleSquishContextMenuEvent(QContextMenuEvent *event deleteTestSuite->setEnabled(enabled); menu.addSeparator(); + connect(runThisTestSuite, &QAction::triggered, + [suiteName] () { + TestSquishFileHandler::instance()->runTestSuite(suiteName); + }); connect(closeTestSuite, &QAction::triggered, [suiteName] () { TestSquishFileHandler::instance()->closeTestSuite(suiteName); |