ENH: Allow cancelling the dialog that prompts for the generator.

This commit is contained in:
Clinton Stimpson 2008-04-02 14:01:37 -04:00
parent 05060801d9
commit 76ed89cede
2 changed files with 20 additions and 10 deletions

View File

@ -237,6 +237,7 @@ void CMakeSetupDialog::doConfigure()
return; return;
} }
// make sure build directory exists
QString bindir = this->CMakeThread->cmakeInstance()->binaryDirectory(); QString bindir = this->CMakeThread->cmakeInstance()->binaryDirectory();
QDir dir(bindir); QDir dir(bindir);
if(!dir.exists()) if(!dir.exists())
@ -257,10 +258,13 @@ void CMakeSetupDialog::doConfigure()
dir.mkpath("."); dir.mkpath(".");
} }
// prompt for generator if one doesn't exist // prompt for generator if it hasn't been set
if(this->CMakeThread->cmakeInstance()->generator().isEmpty()) if(this->CMakeThread->cmakeInstance()->generator().isEmpty())
{ {
this->promptForGenerator(); if(!this->promptForGenerator())
{
return;
}
} }
// remember path // remember path
@ -520,7 +524,7 @@ void CMakeSetupDialog::setEnabledState(bool enabled)
this->RemoveEntry->setEnabled(false); // let selection re-enable it this->RemoveEntry->setEnabled(false); // let selection re-enable it
} }
void CMakeSetupDialog::promptForGenerator() bool CMakeSetupDialog::promptForGenerator()
{ {
QSettings settings; QSettings settings;
settings.beginGroup("Settings/StartPath"); settings.beginGroup("Settings/StartPath");
@ -540,19 +544,25 @@ void CMakeSetupDialog::promptForGenerator()
{ {
combo->setCurrentIndex(idx); combo->setCurrentIndex(idx);
} }
QDialogButtonBox* btns = new QDialogButtonBox(QDialogButtonBox::Ok, QDialogButtonBox* btns = new QDialogButtonBox(QDialogButtonBox::Ok |
QDialogButtonBox::Cancel,
Qt::Horizontal, &dialog); Qt::Horizontal, &dialog);
QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept())); QObject::connect(btns, SIGNAL(accepted()), &dialog, SLOT(accept()));
QObject::connect(btns, SIGNAL(rejected()), &dialog, SLOT(reject()));
QVBoxLayout* l = new QVBoxLayout(&dialog); QVBoxLayout* l = new QVBoxLayout(&dialog);
l->addWidget(lab); l->addWidget(lab);
l->addWidget(combo); l->addWidget(combo);
l->addWidget(btns); l->addWidget(btns);
dialog.exec(); if(dialog.exec() == QDialog::Accepted)
{
lastGen = combo->currentText(); lastGen = combo->currentText();
settings.setValue("LastGenerator", lastGen); settings.setValue("LastGenerator", lastGen);
this->CMakeThread->cmakeInstance()->setGenerator(combo->currentText()); this->CMakeThread->cmakeInstance()->setGenerator(combo->currentText());
return true;
}
return false;
} }
void CMakeSetupDialog::updateGeneratorLabel(const QString& gen) void CMakeSetupDialog::updateGeneratorLabel(const QString& gen)

View File

@ -60,7 +60,7 @@ protected slots:
void updateSourceDirectory(const QString& dir); void updateSourceDirectory(const QString& dir);
void showProgress(const QString& msg, float percent); void showProgress(const QString& msg, float percent);
void setEnabledState(bool); void setEnabledState(bool);
void promptForGenerator(); bool promptForGenerator();
void updateGeneratorLabel(const QString& gen); void updateGeneratorLabel(const QString& gen);
void setExitAfterGenerate(bool); void setExitAfterGenerate(bool);
void addBinaryPath(const QString&); void addBinaryPath(const QString&);