ProjectLoadWizard::ProjectLoadWizard(Qt4Project *project, QWidget *parent, Qt::WindowFlags flags) : QWizard(parent, flags), m_project(project), m_importVersion(0), m_temporaryVersion(false) { QtVersionManager * vm = project->qt4ProjectManager()->versionManager(); QString directory = QFileInfo(project->file()->fileName()).absolutePath(); QString importVersion = vm->findQtVersionFromMakefile(directory); if (!importVersion.isNull()) { // This also means we have a build in there // First get the qt version m_importVersion = vm->qtVersionForDirectory(importVersion); // Okay does not yet exist, create if (!m_importVersion) { m_importVersion = new QtVersion(QFileInfo(importVersion).baseName(), importVersion); m_temporaryVersion = true; } m_importBuildConfig = m_importVersion->defaultBuildConfig(); m_importBuildConfig= vm->scanMakefileForQmakeConfig(directory, m_importBuildConfig); } // So now we have the version and the configuration for that version // If buildAll we create debug and release configurations, // if not then just either debug or release // The default buildConfiguration depends on QmakeBuildConfig::DebugBuild // Also if the qt version is not yet in the Tools Options dialog we offer to add it there if (m_importVersion) setupImportPage(m_importVersion, m_importBuildConfig); setOptions(options() | QWizard::NoCancelButton | QWizard::NoBackButtonOnLastPage); }
void Qt4BuildConfigWidget::setupQtVersionsComboBox() { if (m_buildConfiguration.isEmpty()) // not yet initialized return; disconnect(m_ui->qtVersionComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(qtVersionComboBoxCurrentIndexChanged(QString))); m_ui->qtVersionComboBox->clear(); m_ui->qtVersionComboBox->addItem(tr("Default Qt Version"), 0); if (m_pro->qtVersionId(m_buildConfiguration) == 0) { m_ui->qtVersionComboBox->setCurrentIndex(0); m_ui->invalidQtWarningLabel->setVisible(false); } // Add Qt Versions to the combo box QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager(); const QList<QtVersion *> &versions = vm->versions(); for (int i = 0; i < versions.size(); ++i) { m_ui->qtVersionComboBox->addItem(versions.at(i)->name(), versions.at(i)->uniqueId()); if (versions.at(i)->uniqueId() == m_pro->qtVersionId(m_buildConfiguration)) { m_ui->qtVersionComboBox->setCurrentIndex(i + 1); m_ui->invalidQtWarningLabel->setVisible(!versions.at(i)->isValid()); } } // And connect again connect(m_ui->qtVersionComboBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(qtVersionComboBoxCurrentIndexChanged(QString))); }
QWidget *QtOptionsPage::createPage(QWidget *parent) { QtVersionManager *vm = QtVersionManager::instance(); m_widget = new QtOptionsPageWidget(parent, vm->versions()); if (m_searchKeywords.isEmpty()) m_searchKeywords = m_widget->searchKeywords(); return m_widget; }
void QtOptionsPage::apply() { if (!m_widget) // page was never shown return; m_widget->finish(); QtVersionManager *vm = QtVersionManager::instance(); vm->setNewQtVersions(m_widget->versions()); }
void QtKitConfigWidget::versionsChanged(const QList<int> &added, const QList<int> &removed, const QList<int> &changed) { QtVersionManager *mgr = QtVersionManager::instance(); foreach (const int id, added) { BaseQtVersion *v = mgr->version(id); QTC_CHECK(v); QTC_CHECK(findQtVersion(id) < 0); m_combo->addItem(v->displayName(), id); }
void QtOptionsPage::apply() { if (!m_widget) // page was never shown return; m_widget->finish(); QtVersionManager *vm = QtVersionManager::instance(); // Turn into flat list QList<QtVersion *> versions; foreach(const QSharedPointerQtVersion &spv, m_widget->versions()) versions.push_back(new QtVersion(*spv)); vm->setNewQtVersions(versions); }
void Qt4BuildConfigWidget::importLabelClicked() { if (m_ui->shadowBuildCheckBox->isChecked()) { QString directory = m_ui->shadowBuildDirEdit->path(); if (!directory.isEmpty()) { QtVersionManager *vm = m_pro->qt4ProjectManager()->versionManager(); QString qtPath = vm->findQtVersionFromMakefile(directory); if (!qtPath.isEmpty()) { QtVersion *version = vm->qtVersionForDirectory(qtPath); if (!version) { version = new QtVersion(QFileInfo(qtPath).baseName(), qtPath); vm->addVersion(version); } QtVersion::QmakeBuildConfig qmakeBuildConfig = version->defaultBuildConfig(); qmakeBuildConfig = vm->scanMakefileForQmakeConfig(directory, qmakeBuildConfig); // So we got all the information now apply it... m_pro->setQtVersion(m_buildConfiguration, version->uniqueId()); // Combo box will be updated at the end // Find qmakestep... QMakeStep *qmakeStep = m_pro->qmakeStep(); MakeStep *makeStep = m_pro->makeStep(); qmakeStep->setValue(m_buildConfiguration, "buildConfiguration", int(qmakeBuildConfig)); // Adjust command line arguments, this is ugly as hell // If we are switching to BuildAll we want "release" in there and no "debug" // or "debug" in there and no "release" // If we are switching to not BuildAl we want neither "release" nor "debug" in there QStringList makeCmdArguments = makeStep->value(m_buildConfiguration, "makeargs").toStringList(); bool debug = qmakeBuildConfig & QtVersion::DebugBuild; if (qmakeBuildConfig & QtVersion::BuildAll) { makeCmdArguments.removeAll(debug ? "release" : "debug"); if (!makeCmdArguments.contains(debug ? "debug" : "release")) makeCmdArguments.append(debug ? "debug" : "release"); } else { makeCmdArguments.removeAll("debug"); makeCmdArguments.removeAll("remove"); } makeStep->setValue(m_buildConfiguration, "makeargs", makeCmdArguments); } } } setupQtVersionsComboBox(); }