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 <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2013-02-14 12:11:54 +01:00
parent ca8df404d9
commit 5c653f40a3
2 changed files with 8 additions and 13 deletions

View File

@@ -441,7 +441,6 @@ CMakeRunPage::CMakeRunPage(CMakeOpenProjectWizard *cmakeWizard, Mode mode, const
: QWizardPage(cmakeWizard), : QWizardPage(cmakeWizard),
m_cmakeWizard(cmakeWizard), m_cmakeWizard(cmakeWizard),
m_haveCbpFile(false), m_haveCbpFile(false),
m_optionalCMake(false),
m_mode(mode), m_mode(mode),
m_buildDirectory(buildDirectory) m_buildDirectory(buildDirectory)
{ {
@@ -534,7 +533,6 @@ void CMakeRunPage::initializePage()
tr("The directory %1 already contains a cbp file, which is recent enough. " tr("The directory %1 already contains a cbp file, which is recent enough. "
"You can pass special arguments and rerun CMake. " "You can pass special arguments and rerun CMake. "
"Or simply finish the wizard directly.").arg(m_buildDirectory)); "Or simply finish the wizard directly.").arg(m_buildDirectory));
m_optionalCMake = true;
m_haveCbpFile = true; m_haveCbpFile = true;
} else { } else {
m_descriptionLabel->setText( m_descriptionLabel->setText(
@@ -609,20 +607,17 @@ void CMakeRunPage::initializePage()
bool CMakeRunPage::validatePage() bool CMakeRunPage::validatePage()
{ {
if (m_optionalCMake) {
int index = m_generatorComboBox->currentIndex(); int index = m_generatorComboBox->currentIndex();
if (index == -1) if (index == -1)
return false; return false;
GeneratorInfo generatorInfo = m_generatorComboBox->itemData(index).value<GeneratorInfo>(); GeneratorInfo generatorInfo = m_generatorComboBox->itemData(index).value<GeneratorInfo>();
m_cmakeWizard->setKit(generatorInfo.kit()); m_cmakeWizard->setKit(generatorInfo.kit());
m_cmakeWizard->setUseNinja(generatorInfo.isNinja()); m_cmakeWizard->setUseNinja(generatorInfo.isNinja());
}
return QWizardPage::validatePage(); return QWizardPage::validatePage();
} }
void CMakeRunPage::runCMake() void CMakeRunPage::runCMake()
{ {
m_optionalCMake = false;
m_haveCbpFile = false; m_haveCbpFile = false;
Utils::Environment env = m_cmakeWizard->environment(); Utils::Environment env = m_cmakeWizard->environment();
@@ -726,5 +721,6 @@ void CMakeRunPage::cleanupPage()
bool CMakeRunPage::isComplete() const bool CMakeRunPage::isComplete() const
{ {
return m_haveCbpFile; int index = m_generatorComboBox->currentIndex();
return index != -1 && m_haveCbpFile;
} }

View File

@@ -189,7 +189,6 @@ private:
QLabel *m_descriptionLabel; QLabel *m_descriptionLabel;
QLabel *m_exitCodeLabel; QLabel *m_exitCodeLabel;
bool m_haveCbpFile; bool m_haveCbpFile;
bool m_optionalCMake;
Mode m_mode; Mode m_mode;
QString m_buildDirectory; QString m_buildDirectory;
}; };