forked from qt-creator/qt-creator
Move Qt Widgets Application wizard to JSON
Adding support for CMake as well as QMake Task-number: QTCREATORBUG-17308 Change-Id: I615b58921918ec87f935e0f11d3dd23ec20f0ac1 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
@@ -1,10 +0,0 @@
|
|||||||
#include "%INCLUDE%"
|
|
||||||
#include <%QAPP_INCLUDE%>
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
QApplication a(argc, argv);
|
|
||||||
%CLASS% w;
|
|
||||||
%SHOWMETHOD%
|
|
||||||
return a.exec();
|
|
||||||
}
|
|
@@ -1,11 +0,0 @@
|
|||||||
#include "%INCLUDE%"
|
|
||||||
|
|
||||||
%CLASS%::%CLASS%(QWidget *parent)
|
|
||||||
: %BASECLASS%(parent)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
%CLASS%::~%CLASS%()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@@ -1,15 +0,0 @@
|
|||||||
#ifndef %PRE_DEF%
|
|
||||||
#define %PRE_DEF%
|
|
||||||
|
|
||||||
#include <%BASECLASS%>
|
|
||||||
|
|
||||||
class %CLASS% : public %BASECLASS%
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
%CLASS%(QWidget *parent = 0);
|
|
||||||
~%CLASS%();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // %PRE_DEF%
|
|
@@ -1,13 +0,0 @@
|
|||||||
#include "%INCLUDE%"
|
|
||||||
#include "%UI_HDR%"
|
|
||||||
|
|
||||||
%CLASS%::%CLASS%(QWidget *parent)
|
|
||||||
: %BASECLASS%(parent), ui(new Ui::%CLASS%)
|
|
||||||
{
|
|
||||||
ui->setupUi(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
%CLASS%::~%CLASS%()
|
|
||||||
{
|
|
||||||
delete ui;
|
|
||||||
}
|
|
@@ -1,23 +0,0 @@
|
|||||||
#ifndef %PRE_DEF%
|
|
||||||
#define %PRE_DEF%
|
|
||||||
|
|
||||||
#include <%BASECLASS%>
|
|
||||||
|
|
||||||
namespace Ui
|
|
||||||
{
|
|
||||||
class %CLASS%;
|
|
||||||
}
|
|
||||||
|
|
||||||
class %CLASS% : public %BASECLASS%
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
%CLASS%(QWidget *parent = 0);
|
|
||||||
~%CLASS%();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::%CLASS% *ui;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // %PRE_DEF%
|
|
@@ -1,20 +0,0 @@
|
|||||||
<ui version="4.0">
|
|
||||||
<class>%CLASS%</class>
|
|
||||||
<widget class="%BASECLASS%" name="%CLASS%" >
|
|
||||||
<property name="geometry" >
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>%WIDGET_WIDTH%</width>
|
|
||||||
<height>%WIDGET_HEIGHT%</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle" >
|
|
||||||
<string>%CLASS%</string>
|
|
||||||
</property>%CENTRAL_WIDGET%
|
|
||||||
</widget>
|
|
||||||
<layoutDefault spacing="6" margin="11" />
|
|
||||||
<pixmapfunction></pixmapfunction>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@@ -0,0 +1,23 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
|
||||||
|
project(%{ProjectName} LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
set(CMAKE_AUTOUIC ON)
|
||||||
|
set(CMAKE_AUTOMOC ON)
|
||||||
|
set(CMAKE_AUTORCC ON)
|
||||||
|
set(CMAKE_CXX_STANDARD 11)
|
||||||
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
|
find_package(Qt5 COMPONENTS Widgets REQUIRED)
|
||||||
|
|
||||||
|
add_executable(${PROJECT_NAME}
|
||||||
|
"%{MainFileName}"
|
||||||
|
"%{SrcFileName}"
|
||||||
|
"%{HdrFileName}"
|
||||||
|
@if %{GenerateForm}
|
||||||
|
"%{FormFileName}"
|
||||||
|
@endif
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets)
|
@@ -0,0 +1,12 @@
|
|||||||
|
%{Cpp:LicenseTemplate}\
|
||||||
|
#include "%{HdrFileName}"
|
||||||
|
|
||||||
|
%{JS: QtSupport.qtIncludes([ 'QtGui/QApplication' ], [ 'QtWidgets/QApplication' ]) }\
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
%{Class} w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
@@ -0,0 +1,33 @@
|
|||||||
|
QT += core gui
|
||||||
|
|
||||||
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
CONFIG += c++11
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
# You can also make your code fail to compile if it uses deprecated APIs.
|
||||||
|
# In order to do so, uncomment the following line.
|
||||||
|
# You can also select to disable deprecated APIs only up to a certain version of Qt.
|
||||||
|
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||||
|
|
||||||
|
SOURCES += \\
|
||||||
|
%{MainFileName} \\
|
||||||
|
%{SrcFileName}
|
||||||
|
|
||||||
|
HEADERS += \\
|
||||||
|
%{HdrFileName}
|
||||||
|
@if %{GenerateForm}
|
||||||
|
|
||||||
|
FORMS += \\
|
||||||
|
%{FormFileName}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
# Default rules for deployment.
|
||||||
|
qnx: target.path = /tmp/$${TARGET}/bin
|
||||||
|
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||||
|
!isEmpty(target.path): INSTALLS += target
|
@@ -0,0 +1,26 @@
|
|||||||
|
%{Cpp:LicenseTemplate}\
|
||||||
|
#include "%{HdrFileName}"
|
||||||
|
@if %{GenerateForm}
|
||||||
|
#include "%{UiHdrFileName}"
|
||||||
|
@endif
|
||||||
|
%{JS: Cpp.openNamespaces('%{Class}')}\
|
||||||
|
|
||||||
|
%{CN}::%{CN}(QWidget *parent)
|
||||||
|
: %{BaseClass}(parent)
|
||||||
|
@if %{GenerateForm}
|
||||||
|
, ui(new Ui::%{CN})
|
||||||
|
@endif
|
||||||
|
{
|
||||||
|
@if %{GenerateForm}
|
||||||
|
ui->setupUi(this);
|
||||||
|
@endif
|
||||||
|
}
|
||||||
|
|
||||||
|
%{CN}::~%{CN}()
|
||||||
|
{
|
||||||
|
@if %{GenerateForm}
|
||||||
|
delete ui;
|
||||||
|
@endif
|
||||||
|
}
|
||||||
|
|
||||||
|
%{JS: Cpp.closeNamespaces('%{Class}')}\
|
@@ -0,0 +1,32 @@
|
|||||||
|
%{Cpp:LicenseTemplate}\
|
||||||
|
@if '%{Cpp:PragmaOnce}'
|
||||||
|
#pragma once
|
||||||
|
@else
|
||||||
|
#ifndef %{GUARD}
|
||||||
|
#define %{GUARD}
|
||||||
|
@endif
|
||||||
|
|
||||||
|
%{JS: QtSupport.qtIncludes([ 'QtGui/%{BaseClass}' ], [ 'QtWidgets/%{BaseClass}' ]) }\
|
||||||
|
%{JS: Cpp.openNamespaces('%{Class}')}\
|
||||||
|
@if %{GenerateForm}
|
||||||
|
|
||||||
|
namespace Ui { class %{CN}; }
|
||||||
|
@endif
|
||||||
|
|
||||||
|
class %{CN} : public %{BaseClass}
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
%{CN}(QWidget *parent = nullptr);
|
||||||
|
~%{CN}();
|
||||||
|
@if %{GenerateForm}
|
||||||
|
|
||||||
|
private:
|
||||||
|
Ui::%{CN} *ui;
|
||||||
|
@endif
|
||||||
|
};
|
||||||
|
%{JS: Cpp.closeNamespaces('%{Class}')}\
|
||||||
|
@if ! '%{Cpp:PragmaOnce}'
|
||||||
|
#endif // %{GUARD}
|
||||||
|
@endif
|
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>%{Class}</class>
|
||||||
|
<widget class="%{BaseClass}" name="%{Class}">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>800</width>
|
||||||
|
<height>600</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>%{CN}</string>
|
||||||
|
</property>
|
||||||
|
@if '%{BaseClass}' === 'QMainWindow'
|
||||||
|
<widget class="QWidget" name="centralwidget"/>
|
||||||
|
<widget class="QMenuBar" name="menubar"/>
|
||||||
|
<widget class="QStatusBar" name="statusbar"/>
|
||||||
|
@endif
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@@ -0,0 +1,192 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qt4ProjectManager.Qt4Project" ],
|
||||||
|
"id": "C.QtWidgets",
|
||||||
|
"category": "F.Application",
|
||||||
|
"trDescription": "Creates a Qt application for the desktop. Includes a Qt Designer-based main window.\n\nPreselects a desktop Qt for building the application if available.",
|
||||||
|
"trDisplayName": "Qt Widgets Application",
|
||||||
|
"trDisplayCategory": "Application",
|
||||||
|
"icon": "../../global/guiapplication.png",
|
||||||
|
"featuresRequired": [ "QtSupport.Wizards.FeatureQt" ],
|
||||||
|
"enabled": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0 || [ %{Plugins} ].indexOf('CMakeProjectManager') >= 0}",
|
||||||
|
|
||||||
|
"options":
|
||||||
|
[
|
||||||
|
{ "key": "ProjectFile", "value": "%{JS: '%{BuildSystem}' === 'qmake' ? '%{ProFile}' : '%{CMakeFile}'}" },
|
||||||
|
{ "key": "ProFile", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'pro')}" },
|
||||||
|
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
|
||||||
|
{ "key": "MainFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" },
|
||||||
|
{ "key": "UiHdrFileName", "value": "%{JS: ('%{BuildSystem}' === 'cmake' ? (Util.path('%{FormFileName}') + '/') : '') + 'ui_' + Util.completeBaseName('%{FormFileName}') + '.h'}" },
|
||||||
|
{ "key": "CN", "value": "%{JS: Cpp.className('%{Class}')}" },
|
||||||
|
{ "key": "GUARD", "value": "%{JS: Cpp.headerGuard('%{HdrFileName}')}" }
|
||||||
|
],
|
||||||
|
|
||||||
|
"pages":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trDisplayName": "Project Location",
|
||||||
|
"trShortTitle": "Location",
|
||||||
|
"typeId": "Project",
|
||||||
|
"data": { "trDescription": "This wizard generates a Qt Widgets Application project. The application derives by default from QApplication and includes an empty widget." }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Define Build System",
|
||||||
|
"trShortTitle": "Build System",
|
||||||
|
"typeId": "Fields",
|
||||||
|
"enabled": "%{JS: ! %{IsSubproject}}",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "BuildSystem",
|
||||||
|
"trDisplayName": "Build system:",
|
||||||
|
"type": "ComboBox",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"index": 0,
|
||||||
|
"items":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"trKey": "QMake",
|
||||||
|
"value": "qmake",
|
||||||
|
"condition": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trKey": "CMake",
|
||||||
|
"value": "cmake",
|
||||||
|
"condition": "%{JS: [ %{Plugins} ].indexOf('CMakeProjectManager') >= 0}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Kit Selection",
|
||||||
|
"trShortTitle": "Kits",
|
||||||
|
"typeId": "Kits",
|
||||||
|
"enabled": "%{JS: ! %{IsSubproject}}",
|
||||||
|
"data": { "projectFilePath": "%{ProjectFile}" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Class Information",
|
||||||
|
"trShortTitle": "Details",
|
||||||
|
"typeId": "Fields",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "ClassPageDescription",
|
||||||
|
"type": "Label",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"trText": "Specify basic information about the classes for which you want to generate skeleton source code files.",
|
||||||
|
"wordWrap": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sp0",
|
||||||
|
"type": "Spacer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Class",
|
||||||
|
"trDisplayName": "Class name:",
|
||||||
|
"mandatory": true,
|
||||||
|
"type": "LineEdit",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"validator": "(?:(?:[a-zA-Z_][a-zA-Z_0-9]*::)*[a-zA-Z_][a-zA-Z_0-9]*|)",
|
||||||
|
"trText": "%{JS: '%{BaseClass}'.slice(1)}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "BaseClass",
|
||||||
|
"trDisplayName": "Base class:",
|
||||||
|
"type": "ComboBox",
|
||||||
|
"data":
|
||||||
|
{
|
||||||
|
"items": [ "QMainWindow", "QWidget", "QDialog" ]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Sp1",
|
||||||
|
"type": "Spacer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "HdrFileName",
|
||||||
|
"type": "LineEdit",
|
||||||
|
"trDisplayName": "Header file:",
|
||||||
|
"mandatory": true,
|
||||||
|
"data": { "trText": "%{JS: Cpp.classToFileName('%{Class}', '%{JS: Util.preferredSuffix('text/x-c++hdr')}')}" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "SrcFileName",
|
||||||
|
"type": "LineEdit",
|
||||||
|
"trDisplayName": "Source file:",
|
||||||
|
"mandatory": true,
|
||||||
|
"data": { "trText": "%{JS: Cpp.classToFileName('%{Class}', '%{JS: Util.preferredSuffix('text/x-c++src')}')}" }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "GenerateForm",
|
||||||
|
"type": "CheckBox",
|
||||||
|
"trDisplayName": "Generate form:",
|
||||||
|
"data": { "checked": true }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "FormFileName",
|
||||||
|
"type": "LineEdit",
|
||||||
|
"trDisplayName": "Form file:",
|
||||||
|
"enabled": "%{GenerateForm}",
|
||||||
|
"mandatory": true,
|
||||||
|
"data": { "trText": "%{JS: Cpp.classToFileName('%{Class}', 'ui')}" }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"trDisplayName": "Project Management",
|
||||||
|
"trShortTitle": "Summary",
|
||||||
|
"typeId": "Summary"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"generators":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"typeId": "File",
|
||||||
|
"data":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"source": "project.pro",
|
||||||
|
"target": "%{ProFile}",
|
||||||
|
"openAsProject": true,
|
||||||
|
"condition": "%{JS: '%{BuildSystem}' === 'qmake'}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "CMakeLists.txt",
|
||||||
|
"openAsProject": true,
|
||||||
|
"condition": "%{JS: '%{BuildSystem}' === 'cmake'}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "main.cpp",
|
||||||
|
"target": "%{MainFileName}",
|
||||||
|
"openInEditor": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "widget.cpp",
|
||||||
|
"target": "%{SrcFileName}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "widget.h",
|
||||||
|
"target": "%{HdrFileName}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "widget.ui",
|
||||||
|
"target": "%{FormFileName}",
|
||||||
|
"condition": "%{GenerateForm}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "../git.ignore",
|
||||||
|
"target": ".gitignore",
|
||||||
|
"condition": "%{JS: ! %{IsSubproject} && '%{VersionControl}' === 'G.Git'}"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -19,11 +19,9 @@ HEADERS += \
|
|||||||
profilehighlighter.h \
|
profilehighlighter.h \
|
||||||
profilehoverhandler.h \
|
profilehoverhandler.h \
|
||||||
wizards/qtprojectparameters.h \
|
wizards/qtprojectparameters.h \
|
||||||
wizards/guiappwizard.h \
|
|
||||||
wizards/libraryparameters.h \
|
wizards/libraryparameters.h \
|
||||||
wizards/librarywizard.h \
|
wizards/librarywizard.h \
|
||||||
wizards/librarywizarddialog.h \
|
wizards/librarywizarddialog.h \
|
||||||
wizards/guiappwizarddialog.h \
|
|
||||||
wizards/modulespage.h \
|
wizards/modulespage.h \
|
||||||
wizards/filespage.h \
|
wizards/filespage.h \
|
||||||
wizards/qtwizard.h \
|
wizards/qtwizard.h \
|
||||||
@@ -59,11 +57,9 @@ SOURCES += \
|
|||||||
profilehighlighter.cpp \
|
profilehighlighter.cpp \
|
||||||
profilehoverhandler.cpp \
|
profilehoverhandler.cpp \
|
||||||
wizards/qtprojectparameters.cpp \
|
wizards/qtprojectparameters.cpp \
|
||||||
wizards/guiappwizard.cpp \
|
|
||||||
wizards/libraryparameters.cpp \
|
wizards/libraryparameters.cpp \
|
||||||
wizards/librarywizard.cpp \
|
wizards/librarywizard.cpp \
|
||||||
wizards/librarywizarddialog.cpp \
|
wizards/librarywizarddialog.cpp \
|
||||||
wizards/guiappwizarddialog.cpp \
|
|
||||||
wizards/modulespage.cpp \
|
wizards/modulespage.cpp \
|
||||||
wizards/filespage.cpp \
|
wizards/filespage.cpp \
|
||||||
wizards/qtwizard.cpp \
|
wizards/qtwizard.cpp \
|
||||||
|
@@ -78,8 +78,6 @@ Project {
|
|||||||
prefix: "wizards/"
|
prefix: "wizards/"
|
||||||
files: [
|
files: [
|
||||||
"filespage.cpp", "filespage.h",
|
"filespage.cpp", "filespage.h",
|
||||||
"guiappwizard.cpp", "guiappwizard.h",
|
|
||||||
"guiappwizarddialog.cpp", "guiappwizarddialog.h",
|
|
||||||
"libraryparameters.cpp", "libraryparameters.h",
|
"libraryparameters.cpp", "libraryparameters.h",
|
||||||
"librarywizard.cpp", "librarywizard.h",
|
"librarywizard.cpp", "librarywizard.h",
|
||||||
"librarywizarddialog.cpp", "librarywizarddialog.h",
|
"librarywizarddialog.cpp", "librarywizarddialog.h",
|
||||||
|
@@ -33,7 +33,6 @@
|
|||||||
#include "qmakemakestep.h"
|
#include "qmakemakestep.h"
|
||||||
#include "qmakebuildconfiguration.h"
|
#include "qmakebuildconfiguration.h"
|
||||||
#include "desktopqmakerunconfiguration.h"
|
#include "desktopqmakerunconfiguration.h"
|
||||||
#include "wizards/guiappwizard.h"
|
|
||||||
#include "wizards/librarywizard.h"
|
#include "wizards/librarywizard.h"
|
||||||
#include "wizards/simpleprojectwizard.h"
|
#include "wizards/simpleprojectwizard.h"
|
||||||
#include "wizards/subdirsprojectwizard.h"
|
#include "wizards/subdirsprojectwizard.h"
|
||||||
@@ -151,7 +150,6 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString
|
|||||||
IWizardFactory::registerFactoryCreator([] {
|
IWizardFactory::registerFactoryCreator([] {
|
||||||
return QList<IWizardFactory *> {
|
return QList<IWizardFactory *> {
|
||||||
new SubdirsProjectWizard,
|
new SubdirsProjectWizard,
|
||||||
new GuiAppWizard,
|
|
||||||
new LibraryWizard,
|
new LibraryWizard,
|
||||||
new CustomWidgetWizard,
|
new CustomWidgetWizard,
|
||||||
new SimpleProjectWizard
|
new SimpleProjectWizard
|
||||||
|
@@ -1,270 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "guiappwizard.h"
|
|
||||||
|
|
||||||
#include "guiappwizarddialog.h"
|
|
||||||
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
|
||||||
#include <cpptools/abstracteditorsupport.h>
|
|
||||||
#include <designer/cpp/formclasswizardparameters.h>
|
|
||||||
#include <extensionsystem/pluginmanager.h>
|
|
||||||
#include <extensionsystem/invoker.h>
|
|
||||||
#include <qtsupport/qtsupportconstants.h>
|
|
||||||
|
|
||||||
#include <utils/fileutils.h>
|
|
||||||
|
|
||||||
#include <QCoreApplication>
|
|
||||||
#include <QDir>
|
|
||||||
#include <QTextStream>
|
|
||||||
#include <QSharedPointer>
|
|
||||||
|
|
||||||
static const char mainSourceFileC[] = "main";
|
|
||||||
static const char mainSourceShowC[] = " w.show();\n";
|
|
||||||
static const char mainSourceMobilityShowC[] = " w.show();\n";
|
|
||||||
|
|
||||||
static const char mainWindowUiContentsC[] =
|
|
||||||
"\n <widget class=\"QMenuBar\" name=\"menuBar\" />"
|
|
||||||
"\n <widget class=\"QToolBar\" name=\"mainToolBar\" />"
|
|
||||||
"\n <widget class=\"QWidget\" name=\"centralWidget\" />"
|
|
||||||
"\n <widget class=\"QStatusBar\" name=\"statusBar\" />";
|
|
||||||
static const char mainWindowMobileUiContentsC[] =
|
|
||||||
"\n <widget class=\"QWidget\" name=\"centralWidget\" />";
|
|
||||||
|
|
||||||
static const char *baseClassesC[] = {"QMainWindow", "QWidget", "QDialog"};
|
|
||||||
|
|
||||||
static inline QStringList baseClasses()
|
|
||||||
{
|
|
||||||
QStringList rc;
|
|
||||||
for (auto baseClass : baseClassesC)
|
|
||||||
rc.push_back(QLatin1String(baseClass));
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace QmakeProjectManager {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
GuiAppWizard::GuiAppWizard()
|
|
||||||
{
|
|
||||||
setId("C.Qt4Gui");
|
|
||||||
setCategory(QLatin1String(ProjectExplorer::Constants::QT_APPLICATION_WIZARD_CATEGORY));
|
|
||||||
setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
|
|
||||||
ProjectExplorer::Constants::QT_APPLICATION_WIZARD_CATEGORY_DISPLAY));
|
|
||||||
setDisplayName(tr("Qt Widgets Application"));
|
|
||||||
setDescription(tr("Creates a Qt application for the desktop. "
|
|
||||||
"Includes a Qt Designer-based main window.\n\n"
|
|
||||||
"Preselects a desktop Qt for building the application if available."));
|
|
||||||
setIcon(QIcon(QLatin1String(":/wizards/images/gui.png")));
|
|
||||||
setRequiredFeatures({QtSupport::Constants::FEATURE_QWIDGETS});
|
|
||||||
}
|
|
||||||
|
|
||||||
Core::BaseFileWizard *GuiAppWizard::create(QWidget *parent, const Core::WizardDialogParameters ¶meters) const
|
|
||||||
{
|
|
||||||
GuiAppWizardDialog *dialog = new GuiAppWizardDialog(this, displayName(), icon(), parent, parameters);
|
|
||||||
dialog->setProjectName(GuiAppWizardDialog::uniqueProjectName(parameters.defaultPath()));
|
|
||||||
// Order! suffixes first to generate files correctly
|
|
||||||
dialog->setLowerCaseFiles(QtWizard::lowerCaseFiles());
|
|
||||||
dialog->setSuffixes(headerSuffix(), sourceSuffix(), formSuffix());
|
|
||||||
dialog->setBaseClasses(baseClasses());
|
|
||||||
return dialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Use the class generation utils provided by the designer plugin
|
|
||||||
static inline bool generateFormClass(const GuiAppParameters ¶ms,
|
|
||||||
const Core::GeneratedFile &uiFile,
|
|
||||||
Core::GeneratedFile *formSource,
|
|
||||||
Core::GeneratedFile *formHeader,
|
|
||||||
QString *errorMessage)
|
|
||||||
{
|
|
||||||
// Retrieve parameters from settings
|
|
||||||
Designer::FormClassWizardParameters fp;
|
|
||||||
fp.uiTemplate = uiFile.contents();
|
|
||||||
fp.uiFile = uiFile.path();
|
|
||||||
fp.className = params.className;
|
|
||||||
fp.sourceFile = params.sourceFileName;
|
|
||||||
fp.headerFile = params.headerFileName;
|
|
||||||
fp.usePragmaOnce = CppTools::AbstractEditorSupport::usePragmaOnce();
|
|
||||||
QString headerContents;
|
|
||||||
QString sourceContents;
|
|
||||||
// Invoke code generation service of Qt Designer plugin.
|
|
||||||
if (QObject *codeGenerator = ExtensionSystem::PluginManager::getObjectByName("QtDesignerFormClassCodeGenerator")) {
|
|
||||||
const QVariant code = ExtensionSystem::invoke<QVariant>(codeGenerator, "generateFormClassCode", fp);
|
|
||||||
if (code.type() == QVariant::List) {
|
|
||||||
const QVariantList vl = code.toList();
|
|
||||||
if (vl.size() == 2) {
|
|
||||||
headerContents = vl.front().toString();
|
|
||||||
sourceContents = vl.back().toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (headerContents.isEmpty() || sourceContents.isEmpty()) {
|
|
||||||
*errorMessage = QString::fromLatin1("Failed to obtain Designer plugin code generation service.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
formHeader->setContents(headerContents);
|
|
||||||
formSource->setContents(sourceContents);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
Core::GeneratedFiles GuiAppWizard::generateFiles(const QWizard *w,
|
|
||||||
QString *errorMessage) const
|
|
||||||
{
|
|
||||||
const auto *dialog = qobject_cast<const GuiAppWizardDialog *>(w);
|
|
||||||
const QtProjectParameters projectParams = dialog->projectParameters();
|
|
||||||
const QString projectPath = projectParams.projectPath();
|
|
||||||
const GuiAppParameters params = dialog->parameters();
|
|
||||||
|
|
||||||
// Generate file names. Note that the path for the project files is the
|
|
||||||
// newly generated project directory.
|
|
||||||
const QString templatePath = templateDir();
|
|
||||||
// Create files: main source
|
|
||||||
QString contents;
|
|
||||||
const QString mainSourceFileName = buildFileName(projectPath, QLatin1String(mainSourceFileC), sourceSuffix());
|
|
||||||
Core::GeneratedFile mainSource(mainSourceFileName);
|
|
||||||
if (!parametrizeTemplate(templatePath, QLatin1String("main.cpp"), params, &contents, errorMessage))
|
|
||||||
return Core::GeneratedFiles();
|
|
||||||
mainSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(mainSourceFileName)
|
|
||||||
+ contents);
|
|
||||||
// Create files: form source with or without form
|
|
||||||
const QString formSourceFileName = buildFileName(projectPath, params.sourceFileName, sourceSuffix());
|
|
||||||
const QString formHeaderName = buildFileName(projectPath, params.headerFileName, headerSuffix());
|
|
||||||
Core::GeneratedFile formSource(formSourceFileName);
|
|
||||||
Core::GeneratedFile formHeader(formHeaderName);
|
|
||||||
formSource.setAttributes(Core::GeneratedFile::OpenEditorAttribute);
|
|
||||||
|
|
||||||
QSharedPointer<Core::GeneratedFile> form;
|
|
||||||
if (params.designerForm) {
|
|
||||||
// Create files: form
|
|
||||||
const QString formName = buildFileName(projectPath, params.formFileName, formSuffix());
|
|
||||||
form = QSharedPointer<Core::GeneratedFile>(new Core::GeneratedFile(formName));
|
|
||||||
if (!parametrizeTemplate(templatePath, QLatin1String("widget.ui"), params, &contents, errorMessage))
|
|
||||||
return Core::GeneratedFiles();
|
|
||||||
form->setContents(contents);
|
|
||||||
if (!generateFormClass(params, *form, &formSource, &formHeader, errorMessage))
|
|
||||||
return Core::GeneratedFiles();
|
|
||||||
} else {
|
|
||||||
const QString formSourceTemplate = QLatin1String("mywidget.cpp");
|
|
||||||
if (!parametrizeTemplate(templatePath, formSourceTemplate, params, &contents, errorMessage))
|
|
||||||
return Core::GeneratedFiles();
|
|
||||||
formSource.setContents(CppTools::AbstractEditorSupport::licenseTemplate(formSourceFileName)
|
|
||||||
+ contents);
|
|
||||||
// Create files: form header
|
|
||||||
const QString formHeaderTemplate = QLatin1String("mywidget.h");
|
|
||||||
if (!parametrizeTemplate(templatePath, formHeaderTemplate, params, &contents, errorMessage))
|
|
||||||
return Core::GeneratedFiles();
|
|
||||||
formHeader.setContents(CppTools::AbstractEditorSupport::licenseTemplate(formHeaderName)
|
|
||||||
+ contents);
|
|
||||||
}
|
|
||||||
// Create files: profile
|
|
||||||
const QString profileName = buildFileName(projectPath, projectParams.fileName, profileSuffix());
|
|
||||||
Core::GeneratedFile profile(profileName);
|
|
||||||
profile.setAttributes(Core::GeneratedFile::OpenProjectAttribute);
|
|
||||||
contents.clear();
|
|
||||||
{
|
|
||||||
QTextStream proStr(&contents);
|
|
||||||
QtProjectParameters::writeProFileHeader(proStr);
|
|
||||||
projectParams.writeProFile(proStr);
|
|
||||||
proStr << "\nCONFIG += c++11"; // ensure all Qt5 versions can handle the source
|
|
||||||
proStr << "\n\nSOURCES +="
|
|
||||||
<< " \\\n " << Utils::FileName::fromString(mainSourceFileName).fileName()
|
|
||||||
<< " \\\n " << Utils::FileName::fromString(formSource.path()).fileName()
|
|
||||||
<< "\n\nHEADERS +="
|
|
||||||
<< " \\\n " << Utils::FileName::fromString(formHeader.path()).fileName();
|
|
||||||
if (params.designerForm)
|
|
||||||
proStr << "\n\nFORMS +="
|
|
||||||
<< " \\\n " << Utils::FileName::fromString(form->path()).fileName();
|
|
||||||
if (params.isMobileApplication) {
|
|
||||||
proStr << "\n\nCONFIG += mobility"
|
|
||||||
<< "\nMOBILITY = "
|
|
||||||
<< "\n";
|
|
||||||
}
|
|
||||||
proStr << "\n\n# Default rules for deployment.\n"
|
|
||||||
"qnx: target.path = /tmp/$${TARGET}/bin\n"
|
|
||||||
"else: unix:!android: target.path = /opt/$${TARGET}/bin\n"
|
|
||||||
"!isEmpty(target.path): INSTALLS += target\n";
|
|
||||||
}
|
|
||||||
profile.setContents(contents);
|
|
||||||
// List
|
|
||||||
Core::GeneratedFiles rc;
|
|
||||||
rc << mainSource << formSource << formHeader;
|
|
||||||
if (params.designerForm)
|
|
||||||
rc << *form;
|
|
||||||
rc << profile;
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool GuiAppWizard::parametrizeTemplate(const QString &templatePath, const QString &templateName,
|
|
||||||
const GuiAppParameters ¶ms,
|
|
||||||
QString *target, QString *errorMessage)
|
|
||||||
{
|
|
||||||
const QString fileName = templatePath + QLatin1Char('/') + templateName;
|
|
||||||
Utils::FileReader reader;
|
|
||||||
if (!reader.fetch(fileName, QIODevice::Text, errorMessage))
|
|
||||||
return false;
|
|
||||||
QString contents = QString::fromUtf8(reader.data());
|
|
||||||
contents.replace(QLatin1String("%QAPP_INCLUDE%"), QLatin1String("QApplication"));
|
|
||||||
contents.replace(QLatin1String("%INCLUDE%"), params.headerFileName);
|
|
||||||
contents.replace(QLatin1String("%CLASS%"), params.className);
|
|
||||||
contents.replace(QLatin1String("%BASECLASS%"), params.baseClassName);
|
|
||||||
contents.replace(QLatin1String("%WIDGET_HEIGHT%"), QString::number(params.widgetHeight));
|
|
||||||
contents.replace(QLatin1String("%WIDGET_WIDTH%"), QString::number(params.widgetWidth));
|
|
||||||
if (params.isMobileApplication)
|
|
||||||
contents.replace(QLatin1String("%SHOWMETHOD%"), QString::fromLatin1(mainSourceMobilityShowC));
|
|
||||||
else
|
|
||||||
contents.replace(QLatin1String("%SHOWMETHOD%"), QString::fromLatin1(mainSourceShowC));
|
|
||||||
|
|
||||||
// Replace include guards with pragma once
|
|
||||||
if (CppTools::AbstractEditorSupport::usePragmaOnce()) {
|
|
||||||
contents.replace(QLatin1String("#ifndef %PRE_DEF%\n#define %PRE_DEF%"), "#pragma once");
|
|
||||||
contents.replace(QLatin1String("#endif // %PRE_DEF%\n"), QString());
|
|
||||||
}
|
|
||||||
|
|
||||||
const QChar dot = QLatin1Char('.');
|
|
||||||
|
|
||||||
QString preDef = params.headerFileName.toUpper();
|
|
||||||
preDef.replace(dot, QLatin1Char('_'));
|
|
||||||
contents.replace(QLatin1String("%PRE_DEF%"), preDef);
|
|
||||||
|
|
||||||
const QString uiFileName = params.formFileName;
|
|
||||||
QString uiHdr = QLatin1String("ui_");
|
|
||||||
uiHdr += uiFileName.left(uiFileName.indexOf(dot));
|
|
||||||
uiHdr += QLatin1String(".h");
|
|
||||||
|
|
||||||
contents.replace(QLatin1String("%UI_HDR%"), uiHdr);
|
|
||||||
if (params.baseClassName == QLatin1String("QMainWindow")) {
|
|
||||||
if (params.isMobileApplication)
|
|
||||||
contents.replace(QLatin1String("%CENTRAL_WIDGET%"), QLatin1String(mainWindowMobileUiContentsC));
|
|
||||||
else
|
|
||||||
contents.replace(QLatin1String("%CENTRAL_WIDGET%"), QLatin1String(mainWindowUiContentsC));
|
|
||||||
} else {
|
|
||||||
contents.remove(QLatin1String("%CENTRAL_WIDGET%"));
|
|
||||||
}
|
|
||||||
*target = contents;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace QmakeProjectManager
|
|
@@ -1,54 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "qtwizard.h"
|
|
||||||
|
|
||||||
namespace QmakeProjectManager {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
struct GuiAppParameters;
|
|
||||||
|
|
||||||
class GuiAppWizard : public QtWizard
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
GuiAppWizard();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters ¶meters) const override;
|
|
||||||
|
|
||||||
Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
static bool parametrizeTemplate(const QString &templatePath, const QString &templateName,
|
|
||||||
const GuiAppParameters ¶ms,
|
|
||||||
QString *target, QString *errorMessage);
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace QmakeProjectManager
|
|
@@ -1,108 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#include "guiappwizarddialog.h"
|
|
||||||
|
|
||||||
#include "filespage.h"
|
|
||||||
|
|
||||||
#include <projectexplorer/projectexplorerconstants.h>
|
|
||||||
|
|
||||||
namespace QmakeProjectManager {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
GuiAppWizardDialog::GuiAppWizardDialog(const Core::BaseFileWizardFactory *factory,
|
|
||||||
const QString &templateName,
|
|
||||||
const QIcon &icon, QWidget *parent,
|
|
||||||
const Core::WizardDialogParameters ¶meters) :
|
|
||||||
BaseQmakeProjectWizardDialog(factory, false, parent, parameters),
|
|
||||||
m_filesPage(new FilesPage)
|
|
||||||
{
|
|
||||||
setWindowIcon(icon);
|
|
||||||
setWindowTitle(templateName);
|
|
||||||
setSelectedModules(QLatin1String("core gui"), true);
|
|
||||||
|
|
||||||
setIntroDescription(tr("This wizard generates a Qt Widgets Application "
|
|
||||||
"project. The application derives by default from QApplication "
|
|
||||||
"and includes an empty widget."));
|
|
||||||
|
|
||||||
addModulesPage();
|
|
||||||
if (!parameters.extraValues().contains(QLatin1String(ProjectExplorer::Constants::PROJECT_KIT_IDS)))
|
|
||||||
addTargetSetupPage();
|
|
||||||
|
|
||||||
m_filesPage->setFormInputCheckable(true);
|
|
||||||
m_filesPage->setClassTypeComboVisible(false);
|
|
||||||
addPage(m_filesPage);
|
|
||||||
|
|
||||||
addExtensionPages(extensionPages());
|
|
||||||
}
|
|
||||||
|
|
||||||
void GuiAppWizardDialog::setBaseClasses(const QStringList &baseClasses)
|
|
||||||
{
|
|
||||||
m_filesPage->setBaseClassChoices(baseClasses);
|
|
||||||
if (!baseClasses.empty())
|
|
||||||
m_filesPage->setBaseClassName(baseClasses.front());
|
|
||||||
}
|
|
||||||
|
|
||||||
void GuiAppWizardDialog::setSuffixes(const QString &header, const QString &source, const QString &form)
|
|
||||||
{
|
|
||||||
m_filesPage->setSuffixes(header, source, form);
|
|
||||||
}
|
|
||||||
|
|
||||||
void GuiAppWizardDialog::setLowerCaseFiles(bool l)
|
|
||||||
{
|
|
||||||
m_filesPage->setLowerCaseFiles(l);
|
|
||||||
}
|
|
||||||
|
|
||||||
QtProjectParameters GuiAppWizardDialog::projectParameters() const
|
|
||||||
{
|
|
||||||
QtProjectParameters rc;
|
|
||||||
rc.type = QtProjectParameters::GuiApp;
|
|
||||||
rc.flags |= QtProjectParameters::WidgetsRequiredFlag;
|
|
||||||
rc.fileName = projectName();
|
|
||||||
rc.path = path();
|
|
||||||
rc.selectedModules = selectedModulesList();
|
|
||||||
rc.deselectedModules = deselectedModulesList();
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
GuiAppParameters GuiAppWizardDialog::parameters() const
|
|
||||||
{
|
|
||||||
GuiAppParameters rc;
|
|
||||||
rc.className = m_filesPage->className();
|
|
||||||
rc.baseClassName = m_filesPage->baseClassName();
|
|
||||||
rc.sourceFileName = m_filesPage->sourceFileName();
|
|
||||||
rc.headerFileName = m_filesPage->headerFileName();
|
|
||||||
rc.formFileName = m_filesPage->formFileName();
|
|
||||||
rc.designerForm = m_filesPage->formInputChecked();
|
|
||||||
if (isQtPlatformSelected("Android.Device.Type")) { // FIXME: Is this really necessary?
|
|
||||||
rc.isMobileApplication = true;
|
|
||||||
rc.widgetWidth = 800;
|
|
||||||
rc.widgetHeight = 480;
|
|
||||||
}
|
|
||||||
return rc;
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace QmakeProjectManager
|
|
@@ -1,72 +0,0 @@
|
|||||||
/****************************************************************************
|
|
||||||
**
|
|
||||||
** Copyright (C) 2016 The Qt Company Ltd.
|
|
||||||
** Contact: https://www.qt.io/licensing/
|
|
||||||
**
|
|
||||||
** This file is part of Qt Creator.
|
|
||||||
**
|
|
||||||
** Commercial License Usage
|
|
||||||
** Licensees holding valid commercial Qt licenses may use this file in
|
|
||||||
** accordance with the commercial license agreement provided with the
|
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
|
||||||
** a written agreement between you and The Qt Company. For licensing terms
|
|
||||||
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
||||||
** information use the contact form at https://www.qt.io/contact-us.
|
|
||||||
**
|
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3 as published by the Free Software
|
|
||||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
||||||
** included in the packaging of this file. Please review the following
|
|
||||||
** information to ensure the GNU General Public License requirements will
|
|
||||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
||||||
**
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "qtwizard.h"
|
|
||||||
|
|
||||||
namespace QmakeProjectManager {
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
struct QtProjectParameters;
|
|
||||||
class FilesPage;
|
|
||||||
|
|
||||||
// Additional parameters required besides QtProjectParameters
|
|
||||||
struct GuiAppParameters
|
|
||||||
{
|
|
||||||
QString className;
|
|
||||||
QString baseClassName;
|
|
||||||
QString sourceFileName;
|
|
||||||
QString headerFileName;
|
|
||||||
QString formFileName;
|
|
||||||
int widgetWidth = 400;
|
|
||||||
int widgetHeight = 300;
|
|
||||||
bool designerForm = true;
|
|
||||||
bool isMobileApplication = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
class GuiAppWizardDialog : public BaseQmakeProjectWizardDialog
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
explicit GuiAppWizardDialog(const Core::BaseFileWizardFactory *factory, const QString &templateName,
|
|
||||||
const QIcon &icon,
|
|
||||||
QWidget *parent,
|
|
||||||
const Core::WizardDialogParameters ¶meters);
|
|
||||||
|
|
||||||
void setBaseClasses(const QStringList &baseClasses);
|
|
||||||
void setSuffixes(const QString &header, const QString &source, const QString &form);
|
|
||||||
void setLowerCaseFiles(bool l);
|
|
||||||
|
|
||||||
QtProjectParameters projectParameters() const;
|
|
||||||
GuiAppParameters parameters() const;
|
|
||||||
|
|
||||||
private:
|
|
||||||
FilesPage *m_filesPage;
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
} // namespace QmakeProjectManager
|
|
Reference in New Issue
Block a user