ProjectExplorer: Avoid possible nullptr dereference

Change-Id: I1c82c4187e075055a44746879df1513e48853c22
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-11-29 14:23:19 +01:00
parent afa226ea23
commit 7c4d993640

View File

@@ -456,8 +456,8 @@ public:
QMenu menu; QMenu menu;
ProjectItem *projectItem = m_projectsModel.rootItem()->childAt(0); ProjectItem *projectItem = m_projectsModel.rootItem()->childAt(0);
Project *project = projectItem ? projectItem->project() : 0; Project *project = projectItem ? projectItem->project() : nullptr;
ProjectImporter *projectImporter = project ? project->projectImporter() : 0; ProjectImporter *projectImporter = project ? project->projectImporter() : nullptr;
QModelIndex index = m_selectorTree->indexAt(pos); QModelIndex index = m_selectorTree->indexAt(pos);
TreeItem *item = m_projectsModel.itemForIndex(index); TreeItem *item = m_projectsModel.itemForIndex(index);
@@ -468,12 +468,12 @@ public:
menu.addSeparator(); menu.addSeparator();
QAction *importBuild = menu.addAction(ProjectWindow::tr("Import Existing Build...")); QAction *importBuild = menu.addAction(ProjectWindow::tr("Import Existing Build..."));
importBuild->setEnabled(projectImporter != 0); importBuild->setEnabled(projectImporter);
QAction *manageKits = menu.addAction(ProjectWindow::tr("Manage Kits...")); QAction *manageKits = menu.addAction(ProjectWindow::tr("Manage Kits..."));
QAction *act = menu.exec(m_selectorTree->mapToGlobal(pos)); QAction *act = menu.exec(m_selectorTree->mapToGlobal(pos));
if (act == importBuild) { if (project && projectImporter && act == importBuild) {
QString dir = project->projectDirectory().toString(); QString dir = project->projectDirectory().toString();
QString importDir = QFileDialog::getExistingDirectory(ICore::mainWindow(), QString importDir = QFileDialog::getExistingDirectory(ICore::mainWindow(),
ProjectWindow::tr("Import directory"), ProjectWindow::tr("Import directory"),
@@ -497,8 +497,10 @@ public:
} }
qDeleteAll(toImport); qDeleteAll(toImport);
} else if (act == manageKits) { } else if (act == manageKits) {
if (KitOptionsPage *page = ExtensionSystem::PluginManager::getObject<KitOptionsPage>()) if (KitOptionsPage *page = ExtensionSystem::PluginManager::getObject<KitOptionsPage>()) {
page->showKit(KitManager::find(Id::fromSetting(item->data(0, KitIdRole)))); if (item)
page->showKit(KitManager::find(Id::fromSetting(item->data(0, KitIdRole))));
}
ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, ICore::mainWindow()); ICore::showOptionsDialog(Constants::KITS_SETTINGS_PAGE_ID, ICore::mainWindow());
}; };
} }