forked from qt-creator/qt-creator
Update wizards to use targetsetuppage
This commit is contained in:
@@ -52,7 +52,7 @@ CustomWidgetWizardDialog::CustomWidgetWizardDialog(const QString &templateName,
|
|||||||
setIntroDescription(tr("This wizard generates a Qt4 Designer Custom Widget "
|
setIntroDescription(tr("This wizard generates a Qt4 Designer Custom Widget "
|
||||||
"or a Qt4 Designer Custom Widget Collection project."));
|
"or a Qt4 Designer Custom Widget Collection project."));
|
||||||
|
|
||||||
addTargetsPage(BaseQt4ProjectWizardDialog::desktopTarget());
|
addTargetSetupPage(BaseQt4ProjectWizardDialog::desktopTarget());
|
||||||
m_widgetPageId = addPage(m_widgetsPage);
|
m_widgetPageId = addPage(m_widgetsPage);
|
||||||
m_pluginPageId = addPage(m_pluginPage);
|
m_pluginPageId = addPage(m_pluginPage);
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ ConsoleAppWizardDialog::ConsoleAppWizardDialog(const QString &templateName,
|
|||||||
"provide a GUI."));
|
"provide a GUI."));
|
||||||
|
|
||||||
addModulesPage();
|
addModulesPage();
|
||||||
addTargetsPage();
|
addTargetSetupPage();
|
||||||
|
|
||||||
foreach (QWizardPage *p, extensionPages)
|
foreach (QWizardPage *p, extensionPages)
|
||||||
addPage(p);
|
addPage(p);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ EmptyProjectWizardDialog::EmptyProjectWizardDialog(const QString &templateName,
|
|||||||
setIntroDescription(tr("This wizard generates an empty Qt4 project. "
|
setIntroDescription(tr("This wizard generates an empty Qt4 project. "
|
||||||
"Add files to it later on by using the other wizards."));
|
"Add files to it later on by using the other wizards."));
|
||||||
|
|
||||||
addTargetsPage();
|
addTargetSetupPage();
|
||||||
|
|
||||||
foreach (QWizardPage *p, extensionPages)
|
foreach (QWizardPage *p, extensionPages)
|
||||||
addPage(p);
|
addPage(p);
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ GuiAppWizardDialog::GuiAppWizardDialog(const QString &templateName,
|
|||||||
"and includes an empty widget."));
|
"and includes an empty widget."));
|
||||||
|
|
||||||
addModulesPage();
|
addModulesPage();
|
||||||
addTargetsPage();
|
addTargetSetupPage();
|
||||||
|
|
||||||
m_filesPage->setFormInputCheckable(true);
|
m_filesPage->setFormInputCheckable(true);
|
||||||
m_filesPage->setClassTypeComboVisible(false);
|
m_filesPage->setClassTypeComboVisible(false);
|
||||||
@@ -110,12 +110,11 @@ GuiAppParameters GuiAppWizardDialog::parameters() const
|
|||||||
rc.formFileName = m_filesPage->formFileName();
|
rc.formFileName = m_filesPage->formFileName();
|
||||||
rc.designerForm = m_filesPage->formInputChecked();
|
rc.designerForm = m_filesPage->formInputChecked();
|
||||||
rc.isMobileApplication = true;
|
rc.isMobileApplication = true;
|
||||||
QSet<QString> targets = selectedTargets();
|
if (isTargetSelected(QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))) {
|
||||||
if (targets.contains(QLatin1String(Constants::MAEMO_DEVICE_TARGET_ID))) {
|
|
||||||
rc.widgetWidth = 800;
|
rc.widgetWidth = 800;
|
||||||
rc.widgetHeight = 480;
|
rc.widgetHeight = 480;
|
||||||
} else if (targets.contains(QLatin1String(Constants::S60_DEVICE_TARGET_ID)) ||
|
} else if (isTargetSelected(QLatin1String(Constants::S60_DEVICE_TARGET_ID)) ||
|
||||||
targets.contains(QLatin1String(Constants::S60_EMULATOR_TARGET_ID))) {
|
isTargetSelected(QLatin1String(Constants::S60_EMULATOR_TARGET_ID))) {
|
||||||
rc.widgetWidth = 360;
|
rc.widgetWidth = 360;
|
||||||
rc.widgetHeight = 640;
|
rc.widgetHeight = 640;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -146,7 +146,7 @@ LibraryWizardDialog::LibraryWizardDialog(const QString &templateName,
|
|||||||
// Use the intro page instead, set up initially
|
// Use the intro page instead, set up initially
|
||||||
setIntroDescription(tr("This wizard generates a C++ library project."));
|
setIntroDescription(tr("This wizard generates a C++ library project."));
|
||||||
|
|
||||||
m_targetPageId = addTargetsPage();
|
m_targetPageId = addTargetSetupPage();
|
||||||
m_modulesPageId = addModulesPage();
|
m_modulesPageId = addModulesPage();
|
||||||
|
|
||||||
m_filesPage->setNamespacesEnabled(true);
|
m_filesPage->setNamespacesEnabled(true);
|
||||||
|
|||||||
@@ -30,10 +30,11 @@
|
|||||||
#include "qtwizard.h"
|
#include "qtwizard.h"
|
||||||
|
|
||||||
#include "qt4project.h"
|
#include "qt4project.h"
|
||||||
|
#include "qt4projectmanager.h"
|
||||||
#include "qt4projectmanagerconstants.h"
|
#include "qt4projectmanagerconstants.h"
|
||||||
#include "qt4target.h"
|
#include "qt4target.h"
|
||||||
#include "modulespage.h"
|
#include "modulespage.h"
|
||||||
#include "targetspage.h"
|
#include "targetsetuppage.h"
|
||||||
|
|
||||||
#include <coreplugin/icore.h>
|
#include <coreplugin/icore.h>
|
||||||
#include <cpptools/cpptoolsconstants.h>
|
#include <cpptools/cpptoolsconstants.h>
|
||||||
@@ -164,7 +165,7 @@ QWizard *CustomQt4ProjectWizard::createWizardDialog(QWidget *parent,
|
|||||||
initProjectWizardDialog(wizard, defaultPath, extensionPages);
|
initProjectWizardDialog(wizard, defaultPath, extensionPages);
|
||||||
if (wizard->pageIds().contains(targetPageId))
|
if (wizard->pageIds().contains(targetPageId))
|
||||||
qWarning("CustomQt4ProjectWizard: Unable to insert target page at %d", int(targetPageId));
|
qWarning("CustomQt4ProjectWizard: Unable to insert target page at %d", int(targetPageId));
|
||||||
wizard->addTargetsPage(QSet<QString>(), targetPageId);
|
wizard->addTargetSetupPage(QSet<QString>(), targetPageId);
|
||||||
return wizard;
|
return wizard;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -182,7 +183,7 @@ void CustomQt4ProjectWizard::registerSelf()
|
|||||||
BaseQt4ProjectWizardDialog::BaseQt4ProjectWizardDialog(bool showModulesPage, QWidget *parent) :
|
BaseQt4ProjectWizardDialog::BaseQt4ProjectWizardDialog(bool showModulesPage, QWidget *parent) :
|
||||||
ProjectExplorer::BaseProjectWizardDialog(parent),
|
ProjectExplorer::BaseProjectWizardDialog(parent),
|
||||||
m_modulesPage(0),
|
m_modulesPage(0),
|
||||||
m_targetsPage(0)
|
m_targetSetupPage(0)
|
||||||
{
|
{
|
||||||
init(showModulesPage);
|
init(showModulesPage);
|
||||||
}
|
}
|
||||||
@@ -192,15 +193,15 @@ BaseQt4ProjectWizardDialog::BaseQt4ProjectWizardDialog(bool showModulesPage,
|
|||||||
int introId, QWidget *parent) :
|
int introId, QWidget *parent) :
|
||||||
ProjectExplorer::BaseProjectWizardDialog(introPage, introId, parent),
|
ProjectExplorer::BaseProjectWizardDialog(introPage, introId, parent),
|
||||||
m_modulesPage(0),
|
m_modulesPage(0),
|
||||||
m_targetsPage(0)
|
m_targetSetupPage(0)
|
||||||
{
|
{
|
||||||
init(showModulesPage);
|
init(showModulesPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
BaseQt4ProjectWizardDialog::~BaseQt4ProjectWizardDialog()
|
BaseQt4ProjectWizardDialog::~BaseQt4ProjectWizardDialog()
|
||||||
{
|
{
|
||||||
if (m_targetsPage && !m_targetsPage->parent())
|
if (m_targetSetupPage && !m_targetSetupPage->parent())
|
||||||
delete m_targetsPage;
|
delete m_targetSetupPage;
|
||||||
if (m_modulesPage && !m_modulesPage->parent())
|
if (m_modulesPage && !m_modulesPage->parent())
|
||||||
delete m_modulesPage;
|
delete m_modulesPage;
|
||||||
}
|
}
|
||||||
@@ -209,7 +210,6 @@ void BaseQt4ProjectWizardDialog::init(bool showModulesPage)
|
|||||||
{
|
{
|
||||||
if (showModulesPage)
|
if (showModulesPage)
|
||||||
m_modulesPage = new ModulesPage;
|
m_modulesPage = new ModulesPage;
|
||||||
m_targetsPage = new TargetsPage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int BaseQt4ProjectWizardDialog::addModulesPage(int id)
|
int BaseQt4ProjectWizardDialog::addModulesPage(int id)
|
||||||
@@ -223,18 +223,26 @@ int BaseQt4ProjectWizardDialog::addModulesPage(int id)
|
|||||||
return addPage(m_modulesPage);
|
return addPage(m_modulesPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
int BaseQt4ProjectWizardDialog::addTargetsPage(QSet<QString> targets, int id)
|
int BaseQt4ProjectWizardDialog::addTargetSetupPage(QSet<QString> targets, int id)
|
||||||
{
|
{
|
||||||
m_targetsPage->setValidTargets(targets);
|
m_targetSetupPage = new TargetSetupPage;
|
||||||
|
QList<TargetSetupPage::ImportInfo> infos = TargetSetupPage::importInfosForKnownQtVersions(0);
|
||||||
|
if (!targets.isEmpty())
|
||||||
|
infos = TargetSetupPage::filterImportInfos(targets, infos);
|
||||||
|
m_targetSetupPage->setImportDirectoryBrowsingEnabled(false);
|
||||||
|
m_targetSetupPage->setShowLocationInformation(false);
|
||||||
|
|
||||||
if (!m_targetsPage->needToDisplayPage())
|
if (infos.count() <= 1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (id >= 0) {
|
m_targetSetupPage->setImportInfos(infos);
|
||||||
setPage(id, m_targetsPage);
|
|
||||||
return id;
|
if (id >= 0)
|
||||||
}
|
setPage(id, m_targetSetupPage);
|
||||||
return addPage(m_targetsPage);
|
else
|
||||||
|
id = addPage(m_targetSetupPage);
|
||||||
|
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BaseQt4ProjectWizardDialog::selectedModules() const
|
QString BaseQt4ProjectWizardDialog::selectedModules() const
|
||||||
@@ -269,18 +277,30 @@ void BaseQt4ProjectWizardDialog::setDeselectedModules(const QString &modules)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseQt4ProjectWizardDialog::writeUserFile(const QString &proFileName) const
|
bool BaseQt4ProjectWizardDialog::writeUserFile(const QString &proFileName) const
|
||||||
{
|
{
|
||||||
if (m_targetsPage)
|
if (!m_targetSetupPage)
|
||||||
m_targetsPage->writeUserFile(proFileName);
|
return false;
|
||||||
|
|
||||||
|
Qt4Manager *manager = ExtensionSystem::PluginManager::instance()->getObject<Qt4Manager>();
|
||||||
|
Q_ASSERT(manager);
|
||||||
|
|
||||||
|
Qt4Project *pro = new Qt4Project(manager, proFileName);
|
||||||
|
bool success = m_targetSetupPage->setupProject(pro);
|
||||||
|
if (success)
|
||||||
|
pro->saveSettings();
|
||||||
|
delete pro;
|
||||||
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSet<QString> BaseQt4ProjectWizardDialog::selectedTargets() const
|
bool BaseQt4ProjectWizardDialog::setupProject(Qt4Project *project) const
|
||||||
{
|
{
|
||||||
QSet<QString> targets;
|
return m_targetSetupPage->setupProject(project);
|
||||||
if (m_targetsPage)
|
}
|
||||||
targets = m_targetsPage->selectedTargets();
|
|
||||||
return targets;
|
bool BaseQt4ProjectWizardDialog::isTargetSelected(const QString &targetid) const
|
||||||
|
{
|
||||||
|
return m_targetSetupPage->isTargetSelected(targetid);
|
||||||
}
|
}
|
||||||
|
|
||||||
QSet<QString> BaseQt4ProjectWizardDialog::desktopTarget()
|
QSet<QString> BaseQt4ProjectWizardDialog::desktopTarget()
|
||||||
|
|||||||
@@ -39,10 +39,13 @@
|
|||||||
#include <QtCore/QSet>
|
#include <QtCore/QSet>
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
namespace Qt4ProjectManager {
|
||||||
|
|
||||||
|
class Qt4Project;
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class ModulesPage;
|
class ModulesPage;
|
||||||
class TargetsPage;
|
class TargetSetupPage;
|
||||||
|
|
||||||
/* Base class for wizard creating Qt projects using QtProjectParameters.
|
/* Base class for wizard creating Qt projects using QtProjectParameters.
|
||||||
* To implement a project wizard, overwrite:
|
* To implement a project wizard, overwrite:
|
||||||
@@ -125,7 +128,7 @@ public:
|
|||||||
virtual ~BaseQt4ProjectWizardDialog();
|
virtual ~BaseQt4ProjectWizardDialog();
|
||||||
|
|
||||||
int addModulesPage(int id = -1);
|
int addModulesPage(int id = -1);
|
||||||
int addTargetsPage(QSet<QString> targets = QSet<QString>(), int id = -1);
|
int addTargetSetupPage(QSet<QString> targets = QSet<QString>(), int id = -1);
|
||||||
|
|
||||||
static QSet<QString> desktopTarget();
|
static QSet<QString> desktopTarget();
|
||||||
|
|
||||||
@@ -135,14 +138,15 @@ public:
|
|||||||
QString deselectedModules() const;
|
QString deselectedModules() const;
|
||||||
void setDeselectedModules(const QString &);
|
void setDeselectedModules(const QString &);
|
||||||
|
|
||||||
void writeUserFile(const QString &proFileName) const;
|
bool writeUserFile(const QString &proFileName) const;
|
||||||
QSet<QString> selectedTargets() const;
|
bool setupProject(Qt4Project *project) const;
|
||||||
|
bool isTargetSelected(const QString &targetid) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline void init(bool showModulesPage);
|
inline void init(bool showModulesPage);
|
||||||
|
|
||||||
ModulesPage *m_modulesPage;
|
ModulesPage *m_modulesPage;
|
||||||
TargetsPage *m_targetsPage;
|
TargetSetupPage *m_targetSetupPage;
|
||||||
QString m_selectedModules;
|
QString m_selectedModules;
|
||||||
QString m_deselectedModules;
|
QString m_deselectedModules;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,213 +0,0 @@
|
|||||||
/**************************************************************************
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator
|
|
||||||
**
|
|
||||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
**
|
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
|
||||||
** Commercial Usage
|
|
||||||
**
|
|
||||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
||||||
** accordance with the Qt Commercial License Agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and Nokia.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
**
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 2.1 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
**
|
|
||||||
** If you are unsure which license is appropriate for your use, please
|
|
||||||
** contact the sales department at http://qt.nokia.com/contact.
|
|
||||||
**
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
#include "targetspage.h"
|
|
||||||
|
|
||||||
#include "qt4projectmanager/qt4project.h"
|
|
||||||
#include "qt4projectmanager/qt4projectmanager.h"
|
|
||||||
#include "qt4projectmanager/qt4target.h"
|
|
||||||
#include "qt4projectmanager/qtversionmanager.h"
|
|
||||||
#include "qt4projectmanager/qt4projectmanagerconstants.h"
|
|
||||||
|
|
||||||
#include <extensionsystem/pluginmanager.h>
|
|
||||||
|
|
||||||
#include <QtCore/QSet>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
|
|
||||||
#include <QtGui/QTreeWidget>
|
|
||||||
#include <QtGui/QLabel>
|
|
||||||
#include <QtGui/QLayout>
|
|
||||||
|
|
||||||
using namespace Qt4ProjectManager::Internal;
|
|
||||||
|
|
||||||
TargetsPage::TargetsPage(QWidget *parent)
|
|
||||||
: QWizardPage(parent)
|
|
||||||
{
|
|
||||||
setTitle(tr("Choose Qt versions"));
|
|
||||||
|
|
||||||
QVBoxLayout *vbox = new QVBoxLayout(this);
|
|
||||||
|
|
||||||
setTitle(tr("Select required Qt versions"));
|
|
||||||
QLabel *label = new QLabel(tr("Select the Qt versions to use in your project."), this);
|
|
||||||
label->setWordWrap(true);
|
|
||||||
vbox->addWidget(label);
|
|
||||||
|
|
||||||
m_treeWidget = new QTreeWidget(this);
|
|
||||||
m_treeWidget->setHeaderHidden(true);
|
|
||||||
vbox->addWidget(m_treeWidget);
|
|
||||||
|
|
||||||
QtVersionManager *vm = QtVersionManager::instance();
|
|
||||||
QStringList targets = vm->supportedTargetIds().toList();
|
|
||||||
qSort(targets.begin(), targets.end());
|
|
||||||
|
|
||||||
Qt4TargetFactory factory;
|
|
||||||
|
|
||||||
foreach (const QString &t, targets) {
|
|
||||||
QTreeWidgetItem *targetItem = new QTreeWidgetItem(m_treeWidget);
|
|
||||||
targetItem->setText(0, factory.displayNameForId(t));
|
|
||||||
targetItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
|
||||||
targetItem->setData(0, Qt::UserRole, t);
|
|
||||||
targetItem->setExpanded(true);
|
|
||||||
|
|
||||||
foreach (QtVersion *v, vm->versionsForTargetId(t)) {
|
|
||||||
QTreeWidgetItem *versionItem = new QTreeWidgetItem(targetItem);
|
|
||||||
versionItem->setText(0, v->displayName());
|
|
||||||
versionItem->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
|
|
||||||
versionItem->setData(0, Qt::UserRole, v->uniqueId());
|
|
||||||
versionItem->setCheckState(0, Qt::Unchecked);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
connect(m_treeWidget, SIGNAL(itemChanged(QTreeWidgetItem*,int)),
|
|
||||||
this, SLOT(itemWasChanged()));
|
|
||||||
|
|
||||||
emit completeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TargetsPage::setValidTargets(const QSet<QString> &targets)
|
|
||||||
{
|
|
||||||
if (targets.isEmpty())
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
|
|
||||||
QTreeWidgetItem *currentTargetItem = m_treeWidget->topLevelItem(i);
|
|
||||||
QString currentTarget = currentTargetItem->data(0, Qt::UserRole).toString();
|
|
||||||
if (targets.contains(currentTarget))
|
|
||||||
currentTargetItem->setHidden(false);
|
|
||||||
else
|
|
||||||
currentTargetItem->setHidden(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure we have something checked!
|
|
||||||
if (selectedTargets().isEmpty()) {
|
|
||||||
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
|
|
||||||
QTreeWidgetItem *currentTargetItem = m_treeWidget->topLevelItem(i);
|
|
||||||
QString currentTarget = currentTargetItem->data(0, Qt::UserRole).toString();
|
|
||||||
if (targets.contains(currentTarget) && currentTargetItem->childCount() >= 1) {
|
|
||||||
currentTargetItem->child(0)->setCheckState(0, Qt::Checked);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
emit completeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
QSet<QString> TargetsPage::selectedTargets() const
|
|
||||||
{
|
|
||||||
QSet<QString> result;
|
|
||||||
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
|
|
||||||
QTreeWidgetItem * targetItem = m_treeWidget->topLevelItem(i);
|
|
||||||
QString target = targetItem->data(0, Qt::UserRole).toString();
|
|
||||||
|
|
||||||
QList<int> versions = selectedQtVersionIdsForTarget(target);
|
|
||||||
if (!versions.isEmpty())
|
|
||||||
result.insert(target);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
QList<int> TargetsPage::selectedQtVersionIdsForTarget(const QString &t) const
|
|
||||||
{
|
|
||||||
QList<int> result;
|
|
||||||
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
|
|
||||||
QTreeWidgetItem * current = m_treeWidget->topLevelItem(i);
|
|
||||||
QString target = current->data(0, Qt::UserRole).toString();
|
|
||||||
if (t != target || current->isHidden())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
for (int j = 0; j < current->childCount(); ++j) {
|
|
||||||
QTreeWidgetItem * child = current->child(j);
|
|
||||||
if (child->checkState(0) != Qt::Checked)
|
|
||||||
continue;
|
|
||||||
result.append(child->data(0, Qt::UserRole).toInt());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TargetsPage::itemWasChanged()
|
|
||||||
{
|
|
||||||
emit completeChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TargetsPage::isComplete() const
|
|
||||||
{
|
|
||||||
return !selectedTargets().isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TargetsPage::needToDisplayPage() const
|
|
||||||
{
|
|
||||||
int targetCount = 0;
|
|
||||||
for (int i = 0; i < m_treeWidget->topLevelItemCount(); ++i) {
|
|
||||||
QTreeWidgetItem * current = m_treeWidget->topLevelItem(i);
|
|
||||||
if (current->isHidden())
|
|
||||||
continue;
|
|
||||||
++targetCount;
|
|
||||||
if (targetCount > 1)
|
|
||||||
return true;
|
|
||||||
|
|
||||||
if (current->childCount() > 1)
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TargetsPage::writeUserFile(const QString &proFileName) const
|
|
||||||
{
|
|
||||||
Qt4Manager *manager = ExtensionSystem::PluginManager::instance()->getObject<Qt4Manager>();
|
|
||||||
Q_ASSERT(manager);
|
|
||||||
|
|
||||||
Qt4Project *pro = new Qt4Project(manager, proFileName);
|
|
||||||
if (setupProject(pro))
|
|
||||||
pro->saveSettings();
|
|
||||||
delete pro;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool TargetsPage::setupProject(Qt4ProjectManager::Qt4Project *project) const
|
|
||||||
{
|
|
||||||
if (!project)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Generate user settings:
|
|
||||||
QSet<QString> targets = selectedTargets();
|
|
||||||
if (targets.isEmpty())
|
|
||||||
return false;
|
|
||||||
|
|
||||||
QtVersionManager *vm = QtVersionManager::instance();
|
|
||||||
|
|
||||||
foreach (const QString &targetId, targets) {
|
|
||||||
QList<int> versionIds = selectedQtVersionIdsForTarget(targetId);
|
|
||||||
QList<QtVersion *> versions;
|
|
||||||
foreach (int id, versionIds)
|
|
||||||
versions.append(vm->version(id));
|
|
||||||
Qt4Target * target = project->targetFactory()->create(project, targetId, versions);
|
|
||||||
project->addTarget(target);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
@@ -1,78 +0,0 @@
|
|||||||
/**************************************************************************
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator
|
|
||||||
**
|
|
||||||
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
|
||||||
**
|
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
|
||||||
** Commercial Usage
|
|
||||||
**
|
|
||||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
||||||
** accordance with the Qt Commercial License Agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and Nokia.
|
|
||||||
**
|
|
||||||
** GNU Lesser General Public License Usage
|
|
||||||
**
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
||||||
** General Public License version 2.1 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
|
||||||
**
|
|
||||||
** If you are unsure which license is appropriate for your use, please
|
|
||||||
** contact the sales department at http://qt.nokia.com/contact.
|
|
||||||
**
|
|
||||||
**************************************************************************/
|
|
||||||
|
|
||||||
#ifndef TARGETSPAGE_H
|
|
||||||
#define TARGETSPAGE_H
|
|
||||||
|
|
||||||
#include <QtCore/QList>
|
|
||||||
#include <QtCore/QSet>
|
|
||||||
#include <QtCore/QString>
|
|
||||||
|
|
||||||
#include <QtGui/QWizard>
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
class QTreeWidget;
|
|
||||||
QT_END_NAMESPACE
|
|
||||||
|
|
||||||
namespace Qt4ProjectManager {
|
|
||||||
class Qt4Project;
|
|
||||||
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
class TargetsPage : public QWizardPage
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit TargetsPage(QWidget* parent = 0);
|
|
||||||
|
|
||||||
void setValidTargets(const QSet<QString> &targets);
|
|
||||||
|
|
||||||
QSet<QString> selectedTargets() const;
|
|
||||||
QList<int> selectedQtVersionIdsForTarget(const QString &) const;
|
|
||||||
|
|
||||||
bool isComplete() const;
|
|
||||||
|
|
||||||
bool needToDisplayPage() const;
|
|
||||||
|
|
||||||
void writeUserFile(const QString &proFileName) const;
|
|
||||||
bool setupProject(Qt4Project *project) const;
|
|
||||||
|
|
||||||
private slots:
|
|
||||||
void itemWasChanged();
|
|
||||||
|
|
||||||
private:
|
|
||||||
QSet<QString> m_validTargets;
|
|
||||||
QTreeWidget * m_treeWidget;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace Qt4ProjectManager
|
|
||||||
|
|
||||||
#endif // TARGETSPAGE_H
|
|
||||||
@@ -60,7 +60,7 @@ TestWizardDialog::TestWizardDialog(const QString &templateName,
|
|||||||
setWindowIcon(icon);
|
setWindowIcon(icon);
|
||||||
setWindowTitle(templateName);
|
setWindowTitle(templateName);
|
||||||
setSelectedModules(QLatin1String("core testlib"), true);
|
setSelectedModules(QLatin1String("core testlib"), true);
|
||||||
addTargetsPage();
|
addTargetSetupPage();
|
||||||
m_testPageId = addPage(m_testPage);
|
m_testPageId = addPage(m_testPage);
|
||||||
m_modulesPageId = addModulesPage();
|
m_modulesPageId = addModulesPage();
|
||||||
foreach (QWizardPage *p, extensionPages)
|
foreach (QWizardPage *p, extensionPages)
|
||||||
|
|||||||
Reference in New Issue
Block a user