From e25be3d5ee762093da01119d3a2f19fc0815d2e8 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 28 Jan 2019 10:05:38 +0100 Subject: [PATCH] PerfProfiler: Allow creating trace points without valid project We can still create trace points on the desktop device then. Change-Id: I123bece2d11a6405883e0bcec9b066cec4e017b9 Reviewed-by: Christian Kandeler --- .../perfprofiler/perftracepointdialog.cpp | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/plugins/perfprofiler/perftracepointdialog.cpp b/src/plugins/perfprofiler/perftracepointdialog.cpp index b821924f832..f42ec8a9a7a 100644 --- a/src/plugins/perfprofiler/perftracepointdialog.cpp +++ b/src/plugins/perfprofiler/perftracepointdialog.cpp @@ -26,6 +26,7 @@ #include "perftracepointdialog.h" #include "ui_perftracepointdialog.h" +#include #include #include #include @@ -46,17 +47,26 @@ PerfTracePointDialog::PerfTracePointDialog() : { m_ui->setupUi(this); - Project *currentProject = SessionManager::startupProject(); - QTC_ASSERT(currentProject, return); + if (Project *currentProject = SessionManager::startupProject()) { + if (const Target *target = currentProject->activeTarget()) { + const Kit *kit = target->kit(); + QTC_ASSERT(kit, return); - const Target *target = currentProject->activeTarget(); - QTC_ASSERT(target, return); + m_device = DeviceKitInformation::device(kit); + if (!m_device) { + m_ui->textEdit->setPlainText(tr("Error: No device available for active target.")); + return; + } + } + } - const Kit *kit = target->kit(); - QTC_ASSERT(kit, return); + if (!m_device) { + const DeviceManager *deviceManager = DeviceManager::instance(); - m_device = DeviceKitInformation::device(kit); - QTC_ASSERT(m_device, return); + // There should at least be a desktop device. + m_device = deviceManager->defaultDevice(Constants::DESKTOP_DEVICE_TYPE); + QTC_ASSERT(m_device, return); + } QFile file(":/perfprofiler/tracepoints.sh"); if (file.open(QIODevice::ReadOnly)) {