diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/MainForm.ui.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/MainForm.ui.qml.tpl deleted file mode 100644 index a41e66157c0..00000000000 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/MainForm.ui.qml.tpl +++ /dev/null @@ -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 - } - } -} diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/app.qbs b/share/qtcreator/templates/wizards/projects/qtquickapplication/app.qbs new file mode 100644 index 00000000000..679e14eaa7e --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/app.qbs @@ -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 + } + } +} diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/icon-empty.png b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/icon.png similarity index 100% rename from share/qtcreator/templates/wizards/projects/qtquickapplication/icon-empty.png rename to share/qtcreator/templates/wizards/projects/qtquickapplication/empty/icon.png diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/icon-empty@2x.png b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/icon@2x.png similarity index 100% rename from share/qtcreator/templates/wizards/projects/qtquickapplication/icon-empty@2x.png rename to share/qtcreator/templates/wizards/projects/qtquickapplication/empty/icon@2x.png diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl new file mode 100644 index 00000000000..6d8fab6a216 --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/main.qml.tpl @@ -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 +} diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/qml.qrc b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/qml.qrc new file mode 100644 index 00000000000..5f6483ac33f --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/qml.qrc @@ -0,0 +1,5 @@ + + + main.qml + + diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/wizard.json similarity index 61% rename from share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json rename to share/qtcreator/templates/wizards/projects/qtquickapplication/empty/wizard.json index 5f8be506997..521d046e933 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/empty/wizard.json @@ -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" }, diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp index 31af279601e..3b6ab97c69d 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.cpp @@ -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; diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/main.qml.tpl deleted file mode 100644 index bf7b08db71f..00000000000 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/main.qml.tpl +++ /dev/null @@ -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 -} diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/qml.qrc b/share/qtcreator/templates/wizards/projects/qtquickapplication/qml.qrc deleted file mode 100644 index 7f481016129..00000000000 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/qml.qrc +++ /dev/null @@ -1,9 +0,0 @@ - - - - main.qml -@if %{IsUiFileInUse} - MainForm.ui.qml -@endif - - diff --git a/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json index 259ebdc2bf2..ea3b5a136df 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json +++ b/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json @@ -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", diff --git a/src/tools/icons/qtcreatoricons.svg b/src/tools/icons/qtcreatoricons.svg index 4e1fbadcd25..c650b03cfd2 100644 --- a/src/tools/icons/qtcreatoricons.svg +++ b/src/tools/icons/qtcreatoricons.svg @@ -2208,7 +2208,7 @@ inkscape:connector-curvature="0" />