aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/autotest/testnavigationwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/autotest/testnavigationwidget.cpp')
-rw-r--r--plugins/autotest/testnavigationwidget.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/autotest/testnavigationwidget.cpp b/plugins/autotest/testnavigationwidget.cpp
index 8338455623..db7776fbd2 100644
--- a/plugins/autotest/testnavigationwidget.cpp
+++ b/plugins/autotest/testnavigationwidget.cpp
@@ -29,7 +29,9 @@
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h>
#include <texteditor/texteditor.h>
+#include <utils/progressindicator.h>
+#include <QTimer>
#include <QToolButton>
#include <QVBoxLayout>
@@ -55,6 +57,21 @@ TestNavigationWidget::TestNavigationWidget(QWidget *parent) :
setLayout(layout);
connect(m_view, &TestTreeView::activated, this, &TestNavigationWidget::onItemActivated);
+
+ m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicator::Medium, this);
+ m_progressIndicator->attachToWidget(m_view);
+ m_progressIndicator->hide();
+
+ m_progressTimer = new QTimer(this);
+ m_progressTimer->setSingleShot(true);
+ m_progressTimer->setInterval(100); // don't display indicator if progress takes less than 100ms
+
+ connect(m_model->parser(), &TestCodeParser::parsingStarted,
+ this, &TestNavigationWidget::onParsingStarted);
+ connect(m_model->parser(), &TestCodeParser::parsingFinished,
+ this, &TestNavigationWidget::onParsingFinished);
+ connect(m_progressTimer, &QTimer::timeout,
+ m_progressIndicator, &Utils::ProgresssIndicator::show);
}
TestNavigationWidget::~TestNavigationWidget()
@@ -178,6 +195,17 @@ void TestNavigationWidget::onFilterMenuTriggered(QAction *action)
TestTreeSortFilterModel::toFilterMode(action->data().value<int>()));
}
+void TestNavigationWidget::onParsingStarted()
+{
+ m_progressTimer->start();
+}
+
+void TestNavigationWidget::onParsingFinished()
+{
+ m_progressTimer->stop();
+ m_progressIndicator->hide();
+}
+
void TestNavigationWidget::initializeFilterMenu()
{
QAction *action = new QAction(m_filterMenu);