From 5c653f40a3b7ea0b04cd43b8b8b8c69cf2e98856 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 14 Feb 2013 12:11:54 +0100 Subject: [PATCH] CMakeOpenProjectWizard: The user needs to always select a kit So check that in isComplete() and prevent a crash. Task-number: QTCREATORBUG-8717 Change-Id: Ib485941534a4f0f3aa4e791fdb655eb9061ba9fa Reviewed-by: Tobias Hunger --- .../cmakeopenprojectwizard.cpp | 20 ++++++++----------- .../cmakeopenprojectwizard.h | 1 - 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp index ad1234244fd..13a1610dd4b 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.cpp @@ -441,7 +441,6 @@ CMakeRunPage::CMakeRunPage(CMakeOpenProjectWizard *cmakeWizard, Mode mode, const : QWizardPage(cmakeWizard), m_cmakeWizard(cmakeWizard), m_haveCbpFile(false), - m_optionalCMake(false), m_mode(mode), m_buildDirectory(buildDirectory) { @@ -534,7 +533,6 @@ void CMakeRunPage::initializePage() tr("The directory %1 already contains a cbp file, which is recent enough. " "You can pass special arguments and rerun CMake. " "Or simply finish the wizard directly.").arg(m_buildDirectory)); - m_optionalCMake = true; m_haveCbpFile = true; } else { m_descriptionLabel->setText( @@ -609,20 +607,17 @@ void CMakeRunPage::initializePage() bool CMakeRunPage::validatePage() { - if (m_optionalCMake) { - int index = m_generatorComboBox->currentIndex(); - if (index == -1) - return false; - GeneratorInfo generatorInfo = m_generatorComboBox->itemData(index).value(); - m_cmakeWizard->setKit(generatorInfo.kit()); - m_cmakeWizard->setUseNinja(generatorInfo.isNinja()); - } + int index = m_generatorComboBox->currentIndex(); + if (index == -1) + return false; + GeneratorInfo generatorInfo = m_generatorComboBox->itemData(index).value(); + m_cmakeWizard->setKit(generatorInfo.kit()); + m_cmakeWizard->setUseNinja(generatorInfo.isNinja()); return QWizardPage::validatePage(); } void CMakeRunPage::runCMake() { - m_optionalCMake = false; m_haveCbpFile = false; Utils::Environment env = m_cmakeWizard->environment(); @@ -726,5 +721,6 @@ void CMakeRunPage::cleanupPage() bool CMakeRunPage::isComplete() const { - return m_haveCbpFile; + int index = m_generatorComboBox->currentIndex(); + return index != -1 && m_haveCbpFile; } diff --git a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h index 6786ab36778..7b62612e470 100644 --- a/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h +++ b/src/plugins/cmakeprojectmanager/cmakeopenprojectwizard.h @@ -189,7 +189,6 @@ private: QLabel *m_descriptionLabel; QLabel *m_exitCodeLabel; bool m_haveCbpFile; - bool m_optionalCMake; Mode m_mode; QString m_buildDirectory; };