From cd2fc99e35cfb0282d0379eb64d7d8d9ed84fd91 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 14 Apr 2022 11:11:49 +0200 Subject: [PATCH] PerfConfigWidget: Connect to QtcProcess::done() signal Instead of connecting to errorOccurred() and finished() signals. Change-Id: Ib83c0f94eafe401b458732217f8b34cffe7b2d05 Reviewed-by: hjk Reviewed-by: --- src/plugins/perfprofiler/perfconfigwidget.cpp | 26 +++++++------------ src/plugins/perfprofiler/perfconfigwidget.h | 3 +-- 2 files changed, 11 insertions(+), 18 deletions(-) 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;