diff --git a/src/plugins/perfprofiler/perfconfigwidget.cpp b/src/plugins/perfprofiler/perfconfigwidget.cpp index 97d5ed752de..8fcc50a8042 100644 --- a/src/plugins/perfprofiler/perfconfigwidget.cpp +++ b/src/plugins/perfprofiler/perfconfigwidget.cpp @@ -149,11 +149,8 @@ void PerfConfigWidget::setTarget(ProjectExplorer::Target *target) return; } - connect(m_process.get(), &QtcProcess::finished, - this, &PerfConfigWidget::handleProcessFinished); - - connect(m_process.get(), &QtcProcess::errorOccurred, - this, &PerfConfigWidget::handleProcessError); + connect(m_process.get(), &QtcProcess::done, + this, &PerfConfigWidget::handleProcessDone); useTracePointsButton->setEnabled(true); } @@ -182,8 +179,15 @@ void PerfConfigWidget::readTracePoints() } } -void PerfConfigWidget::handleProcessFinished() +void PerfConfigWidget::handleProcessDone() { + if (m_process->error() == QProcess::FailedToStart) { + Core::AsynchronousMessageBox::warning( + tr("Cannot List Trace Points"), + tr("\"perf probe -l\" failed to start. Is perf installed?")); + useTracePointsButton->setEnabled(true); + return; + } const QList lines = m_process->readAllStandardOutput().append(m_process->readAllStandardError()) .split('\n'); @@ -220,16 +224,6 @@ void PerfConfigWidget::handleProcessFinished() useTracePointsButton->setEnabled(true); } -void PerfConfigWidget::handleProcessError(QProcess::ProcessError error) -{ - if (error == QProcess::FailedToStart) { - Core::AsynchronousMessageBox::warning( - tr("Cannot List Trace Points"), - tr("\"perf probe -l\" failed to start. Is perf installed?")); - useTracePointsButton->setEnabled(true); - } -} - QWidget *SettingsDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const { diff --git a/src/plugins/perfprofiler/perfconfigwidget.h b/src/plugins/perfprofiler/perfconfigwidget.h index 4f6c5c5602b..bac4993dec1 100644 --- a/src/plugins/perfprofiler/perfconfigwidget.h +++ b/src/plugins/perfprofiler/perfconfigwidget.h @@ -56,8 +56,7 @@ private: void apply() final; void readTracePoints(); - void handleProcessFinished(); - void handleProcessError(QProcess::ProcessError error); + void handleProcessDone(); PerfSettings *m_settings; std::unique_ptr m_process;