forked from qt-creator/qt-creator
Allow filtering of test results always
This almost reverts 8bb0340935
.
Change-Id: I57ac2e1dd052ce434f7381f4d6df52ecdc68fed6
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
committed by
David Schulz
parent
ae7b3e8404
commit
3f506a2a36
@@ -114,12 +114,13 @@ QVariant TestResultModel::data(const QModelIndex &index, int role) const
|
|||||||
void TestResultModel::addTestResult(const TestResult &testResult)
|
void TestResultModel::addTestResult(const TestResult &testResult)
|
||||||
{
|
{
|
||||||
const bool isCurrentTestMssg = testResult.result() == Result::MESSAGE_CURRENT_TEST;
|
const bool isCurrentTestMssg = testResult.result() == Result::MESSAGE_CURRENT_TEST;
|
||||||
const bool hasCurrentTestMssg = m_availableResultTypes.contains(Result::MESSAGE_CURRENT_TEST);
|
TestResult lastMssg = m_testResults.empty() ? TestResult() : m_testResults.last();
|
||||||
|
|
||||||
int position = m_testResults.size();
|
int position = m_testResults.size();
|
||||||
|
|
||||||
if (hasCurrentTestMssg && isCurrentTestMssg) {
|
if (isCurrentTestMssg && lastMssg.result() == Result::MESSAGE_CURRENT_TEST) {
|
||||||
m_testResults.last().setDescription(testResult.description());
|
lastMssg.setDescription(testResult.description());
|
||||||
|
m_testResults.replace(m_testResults.size() - 1, lastMssg);
|
||||||
const QModelIndex changed = index(m_testResults.size() - 1, 0, QModelIndex());
|
const QModelIndex changed = index(m_testResults.size() - 1, 0, QModelIndex());
|
||||||
emit dataChanged(changed, changed);
|
emit dataChanged(changed, changed);
|
||||||
} else {
|
} else {
|
||||||
@@ -134,17 +135,15 @@ void TestResultModel::addTestResult(const TestResult &testResult)
|
|||||||
int count = m_testResultCount.value(testResult.result(), 0);
|
int count = m_testResultCount.value(testResult.result(), 0);
|
||||||
m_testResultCount.insert(testResult.result(), ++count);
|
m_testResultCount.insert(testResult.result(), ++count);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_availableResultTypes.insert(testResult.result());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestResultModel::removeCurrentTestMessage()
|
void TestResultModel::removeCurrentTestMessage()
|
||||||
{
|
{
|
||||||
if (m_availableResultTypes.contains(Result::MESSAGE_CURRENT_TEST)) {
|
TestResult lastMssg = m_testResults.empty() ? TestResult() : m_testResults.last();
|
||||||
|
if (lastMssg.result() == Result::MESSAGE_CURRENT_TEST) {
|
||||||
beginRemoveRows(QModelIndex(), m_testResults.size() - 1, m_testResults.size() - 1);
|
beginRemoveRows(QModelIndex(), m_testResults.size() - 1, m_testResults.size() - 1);
|
||||||
m_testResults.removeLast();
|
m_testResults.removeLast();
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
m_availableResultTypes.remove(Result::MESSAGE_CURRENT_TEST);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,7 +158,6 @@ void TestResultModel::clearTestResults()
|
|||||||
m_maxWidthOfFileName = 0;
|
m_maxWidthOfFileName = 0;
|
||||||
m_widthOfLineNumber = 0;
|
m_widthOfLineNumber = 0;
|
||||||
endRemoveRows();
|
endRemoveRows();
|
||||||
m_availableResultTypes.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TestResult TestResultModel::testResult(const QModelIndex &index) const
|
TestResult TestResultModel::testResult(const QModelIndex &index) const
|
||||||
|
@@ -52,7 +52,6 @@ public:
|
|||||||
int maxWidthOfFileName(const QFont &font);
|
int maxWidthOfFileName(const QFont &font);
|
||||||
int maxWidthOfLineNumber(const QFont &font);
|
int maxWidthOfLineNumber(const QFont &font);
|
||||||
|
|
||||||
bool hasResultType(Result::Type type) { return m_availableResultTypes.contains(type); }
|
|
||||||
int resultTypeCount(Result::Type type);
|
int resultTypeCount(Result::Type type);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
@@ -66,7 +65,6 @@ private:
|
|||||||
int m_maxWidthOfFileName;
|
int m_maxWidthOfFileName;
|
||||||
int m_lastMaxWidthIndex;
|
int m_lastMaxWidthIndex;
|
||||||
QFont m_measurementFont;
|
QFont m_measurementFont;
|
||||||
QSet<Result::Type> m_availableResultTypes;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class TestResultFilterModel : public QSortFilterProxyModel
|
class TestResultFilterModel : public QSortFilterProxyModel
|
||||||
|
@@ -120,7 +120,6 @@ void TestResultsPane::createToolButtons()
|
|||||||
m_filterButton->setPopupMode(QToolButton::InstantPopup);
|
m_filterButton->setPopupMode(QToolButton::InstantPopup);
|
||||||
m_filterMenu = new QMenu(m_filterButton);
|
m_filterMenu = new QMenu(m_filterButton);
|
||||||
initializeFilterMenu();
|
initializeFilterMenu();
|
||||||
connect(m_filterMenu, &QMenu::aboutToShow, this, &TestResultsPane::updateFilterMenu);
|
|
||||||
connect(m_filterMenu, &QMenu::triggered, this, &TestResultsPane::filterMenuTriggered);
|
connect(m_filterMenu, &QMenu::triggered, this, &TestResultsPane::filterMenuTriggered);
|
||||||
m_filterButton->setMenu(m_filterMenu);
|
m_filterButton->setMenu(m_filterMenu);
|
||||||
}
|
}
|
||||||
@@ -349,15 +348,6 @@ void TestResultsPane::updateSummaryLabel()
|
|||||||
m_summaryLabel->setText(labelText);
|
m_summaryLabel->setText(labelText);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TestResultsPane::updateFilterMenu()
|
|
||||||
{
|
|
||||||
foreach (QAction *action, m_filterMenu->actions()) {
|
|
||||||
if (action->isCheckable())
|
|
||||||
action->setEnabled(m_model->hasResultType(
|
|
||||||
TestResult::toResultType(action->data().value<int>())));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void TestResultsPane::enableAllFilter()
|
void TestResultsPane::enableAllFilter()
|
||||||
{
|
{
|
||||||
foreach (QAction *action, m_filterMenu->actions()) {
|
foreach (QAction *action, m_filterMenu->actions()) {
|
||||||
|
@@ -78,7 +78,6 @@ private slots:
|
|||||||
void onItemActivated(const QModelIndex &index);
|
void onItemActivated(const QModelIndex &index);
|
||||||
void onRunAllTriggered();
|
void onRunAllTriggered();
|
||||||
void onRunSelectedTriggered();
|
void onRunSelectedTriggered();
|
||||||
void updateFilterMenu();
|
|
||||||
void enableAllFilter();
|
void enableAllFilter();
|
||||||
void filterMenuTriggered(QAction *action);
|
void filterMenuTriggered(QAction *action);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user