| |
| #include "CMakeFirstConfigure.h" |
| |
| #include <QSettings> |
| |
| CMakeFirstConfigure::CMakeFirstConfigure() |
| { |
| this->UI.setupUi(this); |
| this->UI.useDefaults->setChecked(true); |
| this->updatePage(); |
| |
| this->UI.useToolChainFile->setChecked(true); |
| this->updateToolChainPage(); |
| |
| QObject::connect(this->UI.useDefaults, SIGNAL(toggled(bool)), |
| this, SLOT(updatePage())); |
| QObject::connect(this->UI.compilerSetup, SIGNAL(toggled(bool)), |
| this, SLOT(updatePage())); |
| QObject::connect(this->UI.crossCompilerSetup, SIGNAL(toggled(bool)), |
| this, SLOT(updatePage())); |
| |
| QObject::connect(this->UI.useToolChainFile, SIGNAL(toggled(bool)), |
| this, SLOT(updateToolChainPage())); |
| } |
| |
| CMakeFirstConfigure::~CMakeFirstConfigure() |
| { |
| } |
| |
| void CMakeFirstConfigure::setGenerators(const QStringList& gens) |
| { |
| this->UI.generators->clear(); |
| this->UI.generators->addItems(gens); |
| } |
| |
| QString CMakeFirstConfigure::getGenerator() const |
| { |
| return this->UI.generators->currentText(); |
| } |
| |
| void CMakeFirstConfigure::loadFromSettings() |
| { |
| QSettings settings; |
| settings.beginGroup("Settings/StartPath"); |
| |
| // restore generator |
| QString lastGen = settings.value("LastGenerator").toString(); |
| int idx = this->UI.generators->findText(lastGen); |
| if(idx != -1) |
| { |
| this->UI.generators->setCurrentIndex(idx); |
| } |
| settings.endGroup(); |
| |
| // restore compiler setup |
| settings.beginGroup("Settings/Compiler"); |
| this->UI.CCompiler->setText(settings.value("CCompiler").toString()); |
| this->UI.CXXCompiler->setText(settings.value("CXXCompiler").toString()); |
| this->UI.FortranCompiler->setText(settings.value("FortranCompiler").toString()); |
| settings.endGroup(); |
| |
| // restore cross compiler setup |
| settings.beginGroup("Settings/CrossCompiler"); |
| this->UI.crossCCompiler->setText(settings.value("CCompiler").toString()); |
| this->UI.crossCXXCompiler->setText(settings.value("CXXCompiler").toString()); |
| this->UI.crossFortranCompiler->setText(settings.value("FortranCompiler").toString()); |
| this->UI.useToolChainFile->setChecked(settings.value("UseToolChainFile", true).toBool()); |
| this->UI.toolChainFile->setText(settings.value("ToolChainFile").toString()); |
| this->UI.systemName->setText(settings.value("SystemName").toString()); |
| this->UI.systemVersion->setText(settings.value("SystemVersion").toString()); |
| this->UI.systemProcessor->setText(settings.value("SystemProcessor").toString()); |
| this->UI.crossFindRoot->setText(settings.value("FindRoot").toString()); |
| this->UI.crossProgramMode->setCurrentIndex(settings.value("ProgramMode", 0).toInt()); |
| this->UI.crossLibraryMode->setCurrentIndex(settings.value("LibraryMode", 0).toInt()); |
| this->UI.crossIncludeMode->setCurrentIndex(settings.value("IncludeMode", 0).toInt()); |
| settings.endGroup(); |
| } |
| |
| void CMakeFirstConfigure::saveToSettings() |
| { |
| QSettings settings; |
| settings.beginGroup("Settings/StartPath"); |
| |
| // save generator |
| QString lastGen = this->UI.generators->currentText(); |
| settings.setValue("LastGenerator", lastGen); |
| |
| settings.endGroup(); |
| |
| // save compiler setup |
| settings.beginGroup("Settings/Compiler"); |
| settings.setValue("CCompiler", this->UI.CCompiler->text()); |
| settings.setValue("CXXCompiler", this->UI.CXXCompiler->text()); |
| settings.setValue("FortranCompiler", this->UI.FortranCompiler->text()); |
| settings.endGroup(); |
| |
| // save cross compiler setup |
| settings.beginGroup("Settings/CrossCompiler"); |
| settings.setValue("CCompiler", this->UI.crossCCompiler->text()); |
| settings.setValue("CXXCompiler", this->UI.crossCXXCompiler->text()); |
| settings.setValue("FortranCompiler", this->UI.crossFortranCompiler->text()); |
| settings.setValue("UseToolChainFile", this->UI.useToolChainFile->isChecked()); |
| settings.setValue("ToolChainFile", this->UI.toolChainFile->text()); |
| settings.setValue("SystemName", this->UI.systemName->text()); |
| settings.setValue("SystemVersion", this->UI.systemVersion->text()); |
| settings.setValue("SystemProcessor", this->UI.systemProcessor->text()); |
| settings.setValue("FindRoot", this->UI.crossFindRoot->text()); |
| settings.setValue("ProgramMode", this->UI.crossProgramMode->currentIndex()); |
| settings.setValue("LibraryMode", this->UI.crossLibraryMode->currentIndex()); |
| settings.setValue("IncludeMode", this->UI.crossIncludeMode->currentIndex()); |
| settings.endGroup(); |
| } |
| |
| void CMakeFirstConfigure::updatePage() |
| { |
| if(this->UI.useDefaults->isChecked()) |
| { |
| this->UI.stackedWidget->setCurrentIndex(0); |
| } |
| else if(this->UI.compilerSetup->isChecked()) |
| { |
| this->UI.stackedWidget->setCurrentIndex(1); |
| } |
| else if(this->UI.crossCompilerSetup->isChecked()) |
| { |
| this->UI.stackedWidget->setCurrentIndex(2); |
| } |
| } |
| |
| void CMakeFirstConfigure::updateToolChainPage() |
| { |
| if(this->UI.useToolChainFile->isChecked()) |
| { |
| this->UI.toolChainStack->setCurrentIndex(0); |
| } |
| else |
| { |
| this->UI.toolChainStack->setCurrentIndex(1); |
| } |
| } |
| |
| bool CMakeFirstConfigure::defaultSetup() const |
| { |
| return this->UI.useDefaults->isChecked(); |
| } |
| |
| bool CMakeFirstConfigure::compilerSetup() const |
| { |
| return this->UI.compilerSetup->isChecked(); |
| } |
| |
| bool CMakeFirstConfigure::crossCompilerSetup() const |
| { |
| return this->UI.crossCompilerSetup->isChecked(); |
| } |
| |
| QString CMakeFirstConfigure::crossCompilerToolChainFile() const |
| { |
| if(this->UI.useToolChainFile->isChecked()) |
| { |
| return this->UI.toolChainFile->text(); |
| } |
| return QString(); |
| } |
| |
| QString CMakeFirstConfigure::getSystemName() const |
| { |
| return this->UI.systemName->text(); |
| } |
| |
| QString CMakeFirstConfigure::getCCompiler() const |
| { |
| if(this->compilerSetup()) |
| { |
| return this->UI.CCompiler->text(); |
| } |
| else if(this->crossCompilerSetup()) |
| { |
| return this->UI.crossCCompiler->text(); |
| } |
| return QString(); |
| } |
| |
| QString CMakeFirstConfigure::getCXXCompiler() const |
| { |
| if(this->compilerSetup()) |
| { |
| return this->UI.CXXCompiler->text(); |
| } |
| else if(this->crossCompilerSetup()) |
| { |
| return this->UI.crossCXXCompiler->text(); |
| } |
| return QString(); |
| } |
| |
| QString CMakeFirstConfigure::getFortranCompiler() const |
| { |
| if(this->compilerSetup()) |
| { |
| return this->UI.FortranCompiler->text(); |
| } |
| else if(this->crossCompilerSetup()) |
| { |
| return this->UI.crossFortranCompiler->text(); |
| } |
| return QString(); |
| } |
| |
| |
| QString CMakeFirstConfigure::getSystemVersion() const |
| { |
| return this->UI.systemVersion->text(); |
| } |
| |
| QString CMakeFirstConfigure::getSystemProcessor() const |
| { |
| return this->UI.systemProcessor->text(); |
| } |
| |
| |
| QString CMakeFirstConfigure::getCrossRoot() const |
| { |
| return this->UI.crossFindRoot->text(); |
| } |
| |
| static const char* crossModes[3] = {"BOTH", "ONLY", "NEVER" }; |
| |
| QString CMakeFirstConfigure::getCrossProgramMode() const |
| { |
| return crossModes[this->UI.crossProgramMode->currentIndex()]; |
| } |
| |
| QString CMakeFirstConfigure::getCrossLibraryMode() const |
| { |
| return crossModes[this->UI.crossLibraryMode->currentIndex()]; |
| } |
| |
| QString CMakeFirstConfigure::getCrossIncludeMode() const |
| { |
| return crossModes[this->UI.crossIncludeMode->currentIndex()]; |
| } |
| |
| |