From 40a6f0b1cad4274216e3a6c6759eeebc7b04494e Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Tue, 23 Oct 2012 21:15:06 +0200 Subject: [PATCH] Attach to Process: Fix crash When a non-desktop kit has no device Change-Id: I108f3f65d151183be1d40d659dc331e9bc57c48e Reviewed-by: hjk <qthjk@ovi.com> --- .../devicesupport/deviceprocessesdialog.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp index 1a5aca4c792..7d7555ca256 100644 --- a/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp +++ b/src/plugins/projectexplorer/devicesupport/deviceprocessesdialog.cpp @@ -204,6 +204,10 @@ DeviceProcessesDialogPrivate::DeviceProcessesDialogPrivate(KitChooser *chooser, void DeviceProcessesDialogPrivate::setDevice(const IDevice::ConstPtr &device) { delete processList; + processList = 0; + proxyModel.setSourceModel(0); + if (!device) + return; processList = device->createProcessListModel(); QTC_ASSERT(processList, return); @@ -246,7 +250,7 @@ void DeviceProcessesDialogPrivate::updateProcessList() void DeviceProcessesDialogPrivate::killProcess() { const QModelIndexList indexes = procView->selectionModel()->selectedIndexes(); - if (indexes.empty()) + if (indexes.empty() || !processList) return; updateListButton->setEnabled(false); killProcessButton->setEnabled(false); @@ -275,7 +279,7 @@ void DeviceProcessesDialogPrivate::updateButtons() DeviceProcess DeviceProcessesDialogPrivate::selectedProcess() const { const QModelIndexList indexes = procView->selectionModel()->selectedIndexes(); - if (indexes.empty()) + if (indexes.empty() || !processList) return DeviceProcess(); return processList->at(proxyModel.mapToSource(indexes.first()).row()); } -- GitLab