Wizards: Refresh the basic Qt Quick Application wizard

It now really creates an empty project.
Also, adapt the QtQuickPrototype template accordingly.

Change-Id: I0749805211df080c88cad1b9c2d476d56836c18a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
This commit is contained in:
Alessandro Portale
2017-08-01 15:37:05 +02:00
parent d6591625c3
commit dbf9bd444b
12 changed files with 162 additions and 230 deletions

View File

@@ -1,29 +0,0 @@
import QtQuick %{QtQuickVersion}
Rectangle {
property alias mouseArea: mouseArea
property alias textEdit: textEdit
width: 360
height: 360
MouseArea {
id: mouseArea
anchors.fill: parent
}
TextEdit {
id: textEdit
text: qsTr("Enter some text...")
verticalAlignment: Text.AlignVCenter
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
Rectangle {
anchors.fill: parent
anchors.margins: -10
color: "transparent"
border.width: 1
}
}
}

View File

@@ -0,0 +1,38 @@
import qbs
Project {
minimumQbsVersion: "1.7.1"
CppApplication {
Depends { name: "Qt.core" }
Depends { name: "Qt.quick" }
// Additional import path used to resolve QML modules in Qt Creator's code model
property pathList qmlImportPaths: []
cpp.cxxLanguageVersion: "c++11"
cpp.defines: [
// The following define makes your compiler emit warnings if you use
// any feature of Qt which as 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.
"QT_DEPRECATED_WARNINGS",
// You can also make your code fail to compile if you use 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.
//"QT_DISABLE_DEPRECATED_BEFORE=0x060000" // disables all the APIs deprecated before Qt 6.0.0
]
files: [
"%{MainCppFileName}",
"qml.qrc",
]
Group { // Properties for the produced executable
fileTagsFilter: product.type
qbs.install: true
}
}
}

View File

@@ -0,0 +1,46 @@
import QtQuick %{QtQuickVersion}
import QtQuick.Window %{QtQuickWindowVersion}
@if %{UseVirtualKeyboard}
import %{QtQuickVirtualKeyboardImport}
@endif
Window {
@if %{UseVirtualKeyboard}
id: window
@endif
visible: true
width: 640
height: 480
title: qsTr("Hello World")
@if %{UseVirtualKeyboard}
InputPanel {
id: inputPanel
z: 99
x: 0
y: window.height
width: window.width
states: State {
name: "visible"
when: inputPanel.active
PropertyChanges {
target: inputPanel
y: window.height - inputPanel.height
}
}
transitions: Transition {
from: ""
to: "visible"
reversible: true
ParallelAnimation {
NumberAnimation {
properties: "y"
duration: 250
easing.type: Easing.InOutQuad
}
}
}
}
@endif
}

View File

@@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>main.qml</file>
</qresource>
</RCC>

View File

@@ -1,13 +1,13 @@
{
"version": 1,
"supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
"id": "U.QtQuickApplication",
"id": "U.QtQuickApplicationEmpty",
"category": "F.Application",
"trDescription": "Creates a deployable Qt Quick 2 application.",
"trDisplayName": "Qt Quick Application",
"trDescription": "Creates a Qt Quick application that contains an empty window.",
"trDisplayName": "Qt Quick Application - Empty",
"trDisplayCategory": "Application",
"icon": "icon-empty.png",
"featuresRequired": [ "QtSupport.Wizards.FeatureQt.5.3" ],
"icon": "icon.png",
"featuresRequired": [ "QtSupport.Wizards.FeatureQt.5.6" ],
"enabled": "%{JS: [ %{Plugins} ].indexOf('QmakeProjectManager') >= 0 || [ %{Plugins} ].indexOf('QbsProjectManager') >= 0 || [ %{Plugins} ].indexOf('CMakeProjectManager') >= 0}",
"options":
@@ -17,14 +17,12 @@
{ "key": "QbsFile", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'qbs')}" },
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "MainCppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" },
{ "key": "QtQuickVersion", "value": "%{JS: %{QtVersion}.qtQuickVersion}" },
{ "key": "QtQuickWindowVersion", "value": "%{JS: %{QtVersion}.qtQuickWindowVersion}" },
{ "key": "QtQuickVirtualKeyboardImport", "value": "%{JS: %{QtVersion}.qtQuickVirtualKeyboardImport}" },
{ "key": "QtQuickVirtualKeyboardWhenVisible", "value": "%{JS: %{QtVersion}.qtQuickVirtualKeyboardWhenVisible}" },
{ "key": "QtQuickVersion", "value": "%{JS: %{QtVersion}.QtQuickVersion}" },
{ "key": "QtQuickWindowVersion", "value": "%{JS: %{QtVersion}.QtQuickWindowVersion}" },
{ "key": "QtQuickVirtualKeyboardImport", "value": "%{JS: %{QtVersion}.QtQuickVirtualKeyboardImport}" },
{ "key": "QtQuickFeature", "value": "QtSupport.Wizards.FeatureQtQuick.%{QtQuickVersion}" },
{ "key": "UiSupport", "value": "%{JS: '%{QtQuickVersion}' !== '2.3' }" },
{ "key": "IsUiFileInUse", "value": "%{JS: %{UiSupport} && %{QmlUiSplit} }" },
{ "key": "UseVirtualKeyboard", "value": "%{JS: [ %{Plugins} ].indexOf('Boot2Qt') >= 0 || [ %{Plugins} ].indexOf('Boot2QtQdb') >= 0}" }
{ "key": "UseVirtualKeyboardByDefault", "value": "%{JS: [ %{Plugins} ].indexOf('Boot2Qt') >= 0 || [ %{Plugins} ].indexOf('Boot2QtQdb') >= 0}" },
{ "key": "SetQPAPhysicalSize", "value": "%{UseVirtualKeyboardByDefault}" }
],
"pages":
@@ -82,80 +80,55 @@
"type": "ComboBox",
"data":
{
"index": 2,
"index": 0,
"items":
[
{
"trKey": "Qt 5.9",
"value":
"{
'QtQuickVersion': '2.9',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.8",
"value":
"{
'qtQuickVersion': '2.8',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1',
'qtQuickVirtualKeyboardWhenVisible': 'inputPanel.active'
'QtQuickVersion': '2.8',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.7",
"value":
"{
'qtQuickVersion': '2.7',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1',
'qtQuickVirtualKeyboardWhenVisible': 'inputPanel.active'
'QtQuickVersion': '2.7',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.6",
"value":
"{
'qtQuickVersion': '2.6',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 2.0',
'qtQuickVirtualKeyboardWhenVisible': 'inputPanel.active'
}"
},
{
"trKey": "Qt 5.5",
"value":
"{
'qtQuickVersion': '2.5',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 1.3',
'qtQuickVirtualKeyboardWhenVisible': 'Qt.inputMethod.visible'
}"
},
{
"trKey": "Qt 5.4",
"value":
"{
'qtQuickVersion': '2.4',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 1.0',
'qtQuickVirtualKeyboardWhenVisible': 'Qt.inputMethod.visible'
}"
},
{
"trKey": "Qt 5.3",
"value":
"{
'qtQuickVersion': '2.3',
'qtQuickWindowVersion': '2.2',
'qtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 1.0',
'qtQuickVirtualKeyboardWhenVisible': 'Qt.inputMethod.visible'
'QtQuickVersion': '2.6',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 2.0'
}"
}
]
}
},
{
"name": "QmlUiSplit",
"trDisplayName": "With ui.qml file",
"name": "UseVirtualKeyboard",
"trDisplayName": "Use Qt Virtual Keyboard.",
"type": "CheckBox",
"visible": "%{UiSupport}",
"data":
{
"checked": true
"checked": "%{JS: %{UseVirtualKeyboardByDefault}}"
}
}
]
@@ -183,24 +156,25 @@
"data":
[
{
"source": "app.pro",
"source": "../app.pro",
"target": "%{ProFile}",
"openAsProject": true,
"condition": "%{JS: '%{BuildSystem}' === 'qmake'}"
},
{
"source": "CMakeLists.txt",
"source": "../CMakeLists.txt",
"target": "CMakeLists.txt",
"openAsProject": true,
"condition": "%{JS: '%{BuildSystem}' === 'cmake'}"
},
{
"source": "file.qbs",
"source": "../app.qbs",
"target": "%{QbsFile}",
"openAsProject": true,
"condition": "%{JS: '%{BuildSystem}' === 'qbs'}"
},
{
"source": "main.cpp",
"source": "../main.cpp",
"target": "%{MainCppFileName}"
},
{
@@ -208,11 +182,6 @@
"target": "main.qml",
"openInEditor": true
},
{
"source": "MainForm.ui.qml.tpl",
"target": "MainForm.ui.qml",
"condition": "%{IsUiFileInUse}"
},
{
"source": "qml.qrc"
},

View File

@@ -2,10 +2,17 @@
%{JS: QtSupport.qtIncludes([], ["QtGui/QGuiApplication", "QtQml/QQmlApplicationEngine"])}
int main(int argc, char *argv[])
{
@if %{SetQPAPhysicalSize}
qputenv("QT_QPA_EGLFS_PHYSICAL_WIDTH", QByteArray("213"));
qputenv("QT_QPA_EGLFS_PHYSICAL_HEIGHT", QByteArray("120"));
@endif
@if %{UseVirtualKeyboard}
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
@endif
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;

View File

@@ -1,77 +0,0 @@
import QtQuick %{QtQuickVersion}
import QtQuick.Window %{QtQuickWindowVersion}
@if %{UseVirtualKeyboard}
import %{QtQuickVirtualKeyboardImport}
@endif
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
@if %{UseVirtualKeyboard}
id: root
@endif
@if %{IsUiFileInUse}
MainForm {
anchors.fill: parent
mouseArea.onClicked: {
console.log(qsTr('Clicked on background. Text: "' + textEdit.text + '"'))
}
}
@else
MouseArea {
anchors.fill: parent
onClicked: {
console.log(qsTr('Clicked on background. Text: "' + textEdit.text + '"'))
}
}
TextEdit {
id: textEdit
text: qsTr("Enter some text...")
verticalAlignment: Text.AlignVCenter
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 20
Rectangle {
anchors.fill: parent
anchors.margins: -10
color: "transparent"
border.width: 1
}
}
@endif
@if %{UseVirtualKeyboard}
InputPanel {
id: inputPanel
z: 99
x: 0
y: root.height
width: root.width
states: State {
name: "visible"
when: %{QtQuickVirtualKeyboardWhenVisible}
PropertyChanges {
target: inputPanel
y: root.height - inputPanel.height
}
}
transitions: Transition {
from: ""
to: "visible"
reversible: true
ParallelAnimation {
NumberAnimation {
properties: "y"
duration: 250
easing.type: Easing.InOutQuad
}
}
}
}
@endif
}

View File

@@ -1,9 +0,0 @@
<!DOCTYPE RCC>
<RCC version="1.0">
<qresource prefix="/">
<file>main.qml</file>
@if %{IsUiFileInUse}
<file>MainForm.ui.qml</file>
@endif
</qresource>
</RCC>

View File

@@ -8,17 +8,17 @@
"trDisplayCategory": "Other Project",
"icon": "qtquickuiprototype.png",
"enabled": "%{JS: [ %{Plugins} ].indexOf('QmlProjectManager') >= 0}",
"featuresRequired": [ "QtSupport.Wizards.FeatureQtQuick.Controls.1.3", "QtSupport.Wizards.FeatureQtQuickProject", "QtSupport.Wizards.FeatureQt" ],
"featuresRequired": [ "QtSupport.Wizards.FeatureQtQuickProject", "QtSupport.Wizards.FeatureQt" ],
"options":
[
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'qmlproject')}" },
{ "key": "MainQmlFileName", "value": "%{JS: Util.fileName('%{ProjectName}', 'qml')}" },
{ "key": "QtQuickVersion", "value": "%{JS: %{QtVersion}.qtQuickVersion}" },
{ "key": "QtQuickWindowVersion", "value": "%{JS: %{QtVersion}.qtQuickWindowVersion}" },
{ "key": "UiSupport", "value": "%{JS: '%{QtQuickVersion}' !== '2.3' }" },
{ "key": "IsUiFileInUse", "value": "%{JS: %{UiSupport} && %{QmlUiSplit} }" },
{ "key": "UseVirtualKeyboard", "value": "false" }
{ "key": "QtQuickVersion", "value": "%{JS: %{QtVersion}.QtQuickVersion}" },
{ "key": "QtQuickWindowVersion", "value": "%{JS: %{QtVersion}.QtQuickWindowVersion}" },
{ "key": "QtQuickVirtualKeyboardImport", "value": "%{JS: %{QtVersion}.QtQuickVirtualKeyboardImport}" },
{ "key": "QtQuickFeature", "value": "QtSupport.Wizards.FeatureQtQuick.%{QtQuickVersion}" },
{ "key": "UseVirtualKeyboardByDefault", "value": "%{JS: [ %{Plugins} ].indexOf('Boot2Qt') >= 0 || [ %{Plugins} ].indexOf('Boot2QtQdb') >= 0}" }
],
"pages":
@@ -42,65 +42,52 @@
{
"items":
[
{
"trKey": "Qt 5.9",
"value":
"{
'QtQuickVersion': '2.9',
'QtQuickWindowVersion': '2.3',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.8",
"value":
"{
'qtQuickVersion': '2.8',
'qtQuickWindowVersion': '2.2'
'QtQuickVersion': '2.8',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.7",
"value":
"{
'qtQuickVersion': '2.7',
'qtQuickWindowVersion': '2.2'
'QtQuickVersion': '2.7',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.VirtualKeyboard 2.1'
}"
},
{
"trKey": "Qt 5.6",
"value":
"{
'qtQuickVersion': '2.6',
'qtQuickWindowVersion': '2.2'
}"
},
{
"trKey": "Qt 5.5",
"value":
"{
'qtQuickVersion': '2.5',
'qtQuickWindowVersion': '2.2'
}"
},
{
"trKey": "Qt 5.4",
"value":
"{
'qtQuickVersion': '2.4',
'qtQuickWindowVersion': '2.2'
}"
},
{
"trKey": "Qt 5.3",
"value":
"{
'qtQuickVersion': '2.3',
'qtQuickWindowVersion': '2.2'
'QtQuickVersion': '2.6',
'QtQuickWindowVersion': '2.2',
'QtQuickVirtualKeyboardImport': 'QtQuick.Enterprise.VirtualKeyboard 2.0'
}"
}
]
}
},
{
"name": "QmlUiSplit",
"trDisplayName": "With ui.qml file",
"name": "UseVirtualKeyboard",
"trDisplayName": "Use Qt Virtual Keyboard.",
"type": "CheckBox",
"visible": "%{UiSupport}",
"data":
{
"checked": false
"checked": "%{JS: %{UseVirtualKeyboardByDefault}}"
}
}
]
@@ -123,15 +110,10 @@
"openAsProject": true
},
{
"source": "../qtquickapplication/main.qml.tpl",
"source": "../qtquickapplication/empty/main.qml.tpl",
"target": "%{ProjectDirectory}/%{MainQmlFileName}",
"openInEditor": true
},
{
"source": "../qtquickapplication/MainForm.ui.qml.tpl",
"target": "%{ProjectDirectory}/MainForm.ui.qml",
"condition": "%{IsUiFileInUse}"
},
{
"source": "../git.ignore",
"target": "%{ProjectDirectory}/.gitignore",

View File

@@ -2208,7 +2208,7 @@
inkscape:connector-curvature="0" />
</g>
<g
id="share/qtcreator/templates/wizards/projects/qtquickapplication/icon-empty"
id="share/qtcreator/templates/wizards/projects/qtquickapplication/empty/icon"
transform="translate(-23,-82)">
<use
style="display:inline"

Before

Width:  |  Height:  |  Size: 306 KiB

After

Width:  |  Height:  |  Size: 306 KiB