forked from qt-creator/qt-creator
Add Qt 5 support to Widget Gui wizard.
- Add flags to the wizards' QtProjectParameters, introduce flag to add widgets if required. - Change the modules to be lists for easier checking. Change-Id: I49a000565ffea1a1593cf20a84b240f5c7458ae3 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
This commit is contained in:
@@ -68,8 +68,8 @@ QtProjectParameters ConsoleAppWizardDialog::parameters() const
|
|||||||
rc.fileName = projectName();
|
rc.fileName = projectName();
|
||||||
rc.path = path();
|
rc.path = path();
|
||||||
|
|
||||||
rc.selectedModules = selectedModules();
|
rc.selectedModules = selectedModulesList();
|
||||||
rc.deselectedModules = deselectedModules();
|
rc.deselectedModules = deselectedModulesList();
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,10 +98,11 @@ QtProjectParameters GuiAppWizardDialog::projectParameters() const
|
|||||||
{
|
{
|
||||||
QtProjectParameters rc;
|
QtProjectParameters rc;
|
||||||
rc.type = QtProjectParameters::GuiApp;
|
rc.type = QtProjectParameters::GuiApp;
|
||||||
|
rc.flags |= QtProjectParameters::WidgetsRequiredFlag;
|
||||||
rc.fileName = projectName();
|
rc.fileName = projectName();
|
||||||
rc.path = path();
|
rc.path = path();
|
||||||
rc.selectedModules = selectedModules();
|
rc.selectedModules = selectedModulesList();
|
||||||
rc.deselectedModules = deselectedModules();
|
rc.deselectedModules = deselectedModulesList();
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,9 +85,9 @@ static const PluginBaseClasses *findPluginBaseClass(const QString &name)
|
|||||||
|
|
||||||
// return dependencies of a plugin as a line ready for the 'QT=' line in a pro
|
// return dependencies of a plugin as a line ready for the 'QT=' line in a pro
|
||||||
// file
|
// file
|
||||||
static QString pluginDependencies(const PluginBaseClasses *plb)
|
static QStringList pluginDependencies(const PluginBaseClasses *plb)
|
||||||
{
|
{
|
||||||
QString dependencies;
|
QStringList dependencies;
|
||||||
const QChar blank = QLatin1Char(' ');
|
const QChar blank = QLatin1Char(' ');
|
||||||
// Find the module names and convert to ids
|
// Find the module names and convert to ids
|
||||||
QStringList pluginModules= plb->dependentModules ?
|
QStringList pluginModules= plb->dependentModules ?
|
||||||
@@ -95,9 +95,7 @@ static QString pluginDependencies(const PluginBaseClasses *plb)
|
|||||||
QStringList();
|
QStringList();
|
||||||
pluginModules.push_back(QLatin1String(plb->module));
|
pluginModules.push_back(QLatin1String(plb->module));
|
||||||
foreach (const QString &module, pluginModules) {
|
foreach (const QString &module, pluginModules) {
|
||||||
if (!dependencies.isEmpty())
|
dependencies.append(ModulesPage::idOfModule(module));
|
||||||
dependencies += blank;
|
|
||||||
dependencies += ModulesPage::idOfModule(module);
|
|
||||||
}
|
}
|
||||||
return dependencies;
|
return dependencies;
|
||||||
}
|
}
|
||||||
@@ -303,8 +301,8 @@ QtProjectParameters LibraryWizardDialog::parameters() const
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Modules from modules page
|
// Modules from modules page
|
||||||
rc.selectedModules = selectedModules();
|
rc.selectedModules = selectedModulesList();
|
||||||
rc.deselectedModules = deselectedModules();
|
rc.deselectedModules = deselectedModulesList();
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,12 +91,12 @@ QString ModulesPage::idOfModule(const QString &module)
|
|||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ModulesPage::selectedModules() const
|
QStringList ModulesPage::selectedModulesList() const
|
||||||
{
|
{
|
||||||
return modules(true);
|
return modules(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ModulesPage::deselectedModules() const
|
QStringList ModulesPage::deselectedModulesList() const
|
||||||
{
|
{
|
||||||
return modules(false);
|
return modules(false);
|
||||||
}
|
}
|
||||||
@@ -115,7 +115,7 @@ void ModulesPage::setModuleEnabled(const QString &module, bool enabled) const
|
|||||||
checkBox->setEnabled(enabled);
|
checkBox->setEnabled(enabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ModulesPage::modules(bool selected) const
|
QStringList ModulesPage::modules(bool selected) const
|
||||||
{
|
{
|
||||||
QStringList modules;
|
QStringList modules;
|
||||||
foreach (const QString &module, QtModulesInfo::modules()) {
|
foreach (const QString &module, QtModulesInfo::modules()) {
|
||||||
@@ -123,5 +123,5 @@ QString ModulesPage::modules(bool selected) const
|
|||||||
&& selected == field(module).toBool())
|
&& selected == field(module).toBool())
|
||||||
modules << module;
|
modules << module;
|
||||||
}
|
}
|
||||||
return modules.join(QString(QLatin1Char(' ')));
|
return modules;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@
|
|||||||
#define MODULESPAGE_H
|
#define MODULESPAGE_H
|
||||||
|
|
||||||
#include <QtCore/QMap>
|
#include <QtCore/QMap>
|
||||||
|
#include <QtCore/QStringList>
|
||||||
#include <QtGui/QWizard>
|
#include <QtGui/QWizard>
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@@ -49,8 +50,10 @@ class ModulesPage : public QWizardPage
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
explicit ModulesPage(QWidget* parent = 0);
|
explicit ModulesPage(QWidget* parent = 0);
|
||||||
QString selectedModules() const;
|
|
||||||
QString deselectedModules() const;
|
QStringList selectedModulesList() const;
|
||||||
|
QStringList deselectedModulesList() const;
|
||||||
|
|
||||||
void setModuleSelected(const QString &module, bool selected = true) const;
|
void setModuleSelected(const QString &module, bool selected = true) const;
|
||||||
void setModuleEnabled(const QString &module, bool enabled = true) const;
|
void setModuleEnabled(const QString &module, bool enabled = true) const;
|
||||||
|
|
||||||
@@ -59,7 +62,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QMap<QString, QCheckBox*> m_moduleCheckBoxMap;
|
QMap<QString, QCheckBox*> m_moduleCheckBoxMap;
|
||||||
QString modules(bool selected = true) const;
|
QStringList modules(bool selected = true) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ namespace Internal {
|
|||||||
|
|
||||||
// ----------- QtProjectParameters
|
// ----------- QtProjectParameters
|
||||||
QtProjectParameters::QtProjectParameters()
|
QtProjectParameters::QtProjectParameters()
|
||||||
: type(ConsoleApp)
|
: type(ConsoleApp), flags(WidgetsRequiredFlag), qtVersionSupport(SupportQt4And5)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,12 +57,37 @@ QString QtProjectParameters::projectPath() const
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Write out a QT module line.
|
||||||
|
static inline void writeQtModulesList(QTextStream &str,
|
||||||
|
const QStringList &modules,
|
||||||
|
char op ='+')
|
||||||
|
{
|
||||||
|
if (const int size = modules.size()) {
|
||||||
|
str << "QT " << op << "= ";
|
||||||
|
for (int i =0; i < size; ++i) {
|
||||||
|
if (i)
|
||||||
|
str << ' ';
|
||||||
|
str << modules.at(i);
|
||||||
|
}
|
||||||
|
str << "\n\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void QtProjectParameters::writeProFile(QTextStream &str) const
|
void QtProjectParameters::writeProFile(QTextStream &str) const
|
||||||
{
|
{
|
||||||
if (!selectedModules.isEmpty())
|
QStringList allSelectedModules = selectedModules;
|
||||||
str << "QT += " << selectedModules << "\n\n";
|
// Handling of widgets module.
|
||||||
if (!deselectedModules.isEmpty())
|
const bool addWidgetsModule =
|
||||||
str << "QT -= " << deselectedModules << "\n\n";
|
(flags & WidgetsRequiredFlag) && qtVersionSupport != SupportQt4Only
|
||||||
|
&& !allSelectedModules.contains(QLatin1String("widgets"));
|
||||||
|
|
||||||
|
if (addWidgetsModule && qtVersionSupport == SupportQt5Only)
|
||||||
|
allSelectedModules.append(QLatin1String("widgets"));
|
||||||
|
writeQtModulesList(str, allSelectedModules, '+');
|
||||||
|
writeQtModulesList(str, deselectedModules, '-');
|
||||||
|
if (addWidgetsModule && qtVersionSupport == SupportQt4And5)
|
||||||
|
str << "greaterThan(QT_MAJOR_VERSION, 4): QT += widgets\n\n";
|
||||||
|
|
||||||
const QString &effectiveTarget = target.isEmpty() ? fileName : target;
|
const QString &effectiveTarget = target.isEmpty() ? fileName : target;
|
||||||
if (!effectiveTarget.isEmpty())
|
if (!effectiveTarget.isEmpty())
|
||||||
str << "TARGET = " << effectiveTarget << '\n';
|
str << "TARGET = " << effectiveTarget << '\n';
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ QString createMacro(const QString &name, const QString &suffix);
|
|||||||
|
|
||||||
struct QtProjectParameters {
|
struct QtProjectParameters {
|
||||||
enum Type { ConsoleApp, GuiApp, StaticLibrary, SharedLibrary, Qt4Plugin, EmptyProject };
|
enum Type { ConsoleApp, GuiApp, StaticLibrary, SharedLibrary, Qt4Plugin, EmptyProject };
|
||||||
|
enum QtVersionSupport { SupportQt4And5, SupportQt4Only, SupportQt5Only };
|
||||||
|
enum Flags { WidgetsRequiredFlag = 0x1 };
|
||||||
|
|
||||||
QtProjectParameters();
|
QtProjectParameters();
|
||||||
// Return project path as "path/name"
|
// Return project path as "path/name"
|
||||||
@@ -64,11 +66,13 @@ struct QtProjectParameters {
|
|||||||
static QString libraryMacro(const QString &projectName);
|
static QString libraryMacro(const QString &projectName);
|
||||||
|
|
||||||
Type type;
|
Type type;
|
||||||
|
unsigned flags;
|
||||||
|
QtVersionSupport qtVersionSupport;
|
||||||
QString fileName;
|
QString fileName;
|
||||||
QString target;
|
QString target;
|
||||||
QString path;
|
QString path;
|
||||||
QString selectedModules;
|
QStringList selectedModules;
|
||||||
QString deselectedModules;
|
QStringList deselectedModules;
|
||||||
QString targetDirectory;
|
QString targetDirectory;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -260,35 +260,37 @@ int BaseQt4ProjectWizardDialog::addTargetSetupPage(QSet<QString> targets, bool m
|
|||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BaseQt4ProjectWizardDialog::selectedModules() const
|
QStringList BaseQt4ProjectWizardDialog::selectedModulesList() const
|
||||||
{
|
{
|
||||||
return m_modulesPage ? m_modulesPage->selectedModules() : m_selectedModules;
|
return m_modulesPage ? m_modulesPage->selectedModulesList() : m_selectedModules;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseQt4ProjectWizardDialog::setSelectedModules(const QString &modules, bool lock)
|
void BaseQt4ProjectWizardDialog::setSelectedModules(const QString &modules, bool lock)
|
||||||
{
|
{
|
||||||
|
const QStringList modulesList = modules.split(QLatin1Char(' '));
|
||||||
if (m_modulesPage) {
|
if (m_modulesPage) {
|
||||||
foreach(const QString &module, modules.split(QLatin1Char(' '))) {
|
foreach (const QString &module, modulesList) {
|
||||||
m_modulesPage->setModuleSelected(module, true);
|
m_modulesPage->setModuleSelected(module, true);
|
||||||
m_modulesPage->setModuleEnabled(module, !lock);
|
m_modulesPage->setModuleEnabled(module, !lock);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
m_selectedModules = modules;
|
m_selectedModules = modulesList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BaseQt4ProjectWizardDialog::deselectedModules() const
|
QStringList BaseQt4ProjectWizardDialog::deselectedModulesList() const
|
||||||
{
|
{
|
||||||
return m_modulesPage ? m_modulesPage->deselectedModules() : m_deselectedModules;
|
return m_modulesPage ? m_modulesPage->deselectedModulesList() : m_deselectedModules;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BaseQt4ProjectWizardDialog::setDeselectedModules(const QString &modules)
|
void BaseQt4ProjectWizardDialog::setDeselectedModules(const QString &modules)
|
||||||
{
|
{
|
||||||
|
const QStringList modulesList = modules.split(QLatin1Char(' '));
|
||||||
if (m_modulesPage) {
|
if (m_modulesPage) {
|
||||||
foreach(const QString &module, modules.split(QLatin1Char(' ')))
|
foreach (const QString &module, modulesList)
|
||||||
m_modulesPage->setModuleSelected(module, false);
|
m_modulesPage->setModuleSelected(module, false);
|
||||||
} else {
|
} else {
|
||||||
m_deselectedModules = modules;
|
m_deselectedModules = modulesList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,10 +134,10 @@ public:
|
|||||||
|
|
||||||
static QSet<QString> desktopTarget();
|
static QSet<QString> desktopTarget();
|
||||||
|
|
||||||
QString selectedModules() const;
|
QStringList selectedModulesList() const;
|
||||||
void setSelectedModules(const QString &, bool lock = false);
|
void setSelectedModules(const QString &, bool lock = false);
|
||||||
|
|
||||||
QString deselectedModules() const;
|
QStringList deselectedModulesList() const;
|
||||||
void setDeselectedModules(const QString &);
|
void setDeselectedModules(const QString &);
|
||||||
|
|
||||||
bool writeUserFile(const QString &proFileName) const;
|
bool writeUserFile(const QString &proFileName) const;
|
||||||
@@ -152,8 +152,8 @@ private:
|
|||||||
|
|
||||||
ModulesPage *m_modulesPage;
|
ModulesPage *m_modulesPage;
|
||||||
TargetSetupPage *m_targetSetupPage;
|
TargetSetupPage *m_targetSetupPage;
|
||||||
QString m_selectedModules;
|
QStringList m_selectedModules;
|
||||||
QString m_deselectedModules;
|
QStringList m_deselectedModules;
|
||||||
QSet<QString> m_targets;
|
QSet<QString> m_targets;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ QtProjectParameters TestWizardDialog::projectParameters() const
|
|||||||
rc.path = path();
|
rc.path = path();
|
||||||
// Name binary "tst_xx" after the main source
|
// Name binary "tst_xx" after the main source
|
||||||
rc.target = QFileInfo(m_testPage->sourcefileName()).baseName();
|
rc.target = QFileInfo(m_testPage->sourcefileName()).baseName();
|
||||||
rc.selectedModules = selectedModules();
|
rc.selectedModules = selectedModulesList();
|
||||||
rc.deselectedModules = deselectedModules();
|
rc.deselectedModules = deselectedModulesList();
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user