aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiguel Costa <miguel.costa@qt.io>2020-04-21 12:54:31 +0200
committerMiguel Costa <miguel.costa@qt.io>2020-04-23 10:51:09 +0000
commit025192725c9a6c6906740c426ab56bd5d0797c6a (patch)
tree9897a13fbee24789f6f18c94c3854d74e0de8eb9
parent3615760aaa0a12e99d33e29a384c4383d8caf8d4 (diff)
Add template for Qt Quick Application projects
Added a new template and new-project wizard for Qt Quick Application projects. The project contents match those of the Qt Creator's "Qt Quick Application - Empty" template. Task-number: QTVSADDINBUG-589 Change-Id: I5572f94e8cb4376e499d1e02698491457a301d4a Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
-rw-r--r--.gitignore2
-rw-r--r--src/QtVsTools.sln15
-rw-r--r--src/config/14.0/source.extension.vsixmanifest_TT4
-rw-r--r--src/config/15.0/source.extension.vsixmanifest_TT4
-rw-r--r--src/config/16.0/source.extension.vsixmanifest_TT4
-rw-r--r--src/qttemplates/quick/Properties/AssemblyInfo.cs67
-rw-r--r--src/qttemplates/quick/Quick.csproj98
-rw-r--r--src/qttemplates/quick/main.cpp18
-rw-r--r--src/qttemplates/quick/main.qml9
-rw-r--r--src/qttemplates/quick/qml.qrc5
-rw-r--r--src/qttemplates/quick/quick.icobin0 -> 370070 bytes
-rw-r--r--src/qttemplates/quick/quick.vcxproj46
-rw-r--r--src/qttemplates/quick/quick.vcxproj.filters34
-rw-r--r--src/qttemplates/quick/quick.vstemplate_TT70
-rw-r--r--src/qtvstools/QtVsTools.csproj8
-rw-r--r--src/qtwizard/QtVsTools.Wizards.csproj1
-rw-r--r--src/qtwizard/Wizards/ProjectWizard/Quick/QuickWizard.cs73
17 files changed, 458 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 35174fb5..a636b3e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -281,6 +281,7 @@ src/qttemplates/designer/Properties/AssemblyInfo.tt.cs
src/qttemplates/dialogbuttonbottom/Properties/AssemblyInfo.tt.cs
src/qttemplates/dialogbuttonright/Properties/AssemblyInfo.tt.cs
src/qttemplates/empty/Properties/AssemblyInfo.tt.cs
+src/qttemplates/quick/Properties/AssemblyInfo.tt.cs
src/qttemplates/gui/Properties/AssemblyInfo.tt.cs
src/qttemplates/lib/Properties/AssemblyInfo.tt.cs
src/qttemplates/mainwindow/Properties/AssemblyInfo.tt.cs
@@ -293,6 +294,7 @@ src/qtwizard/Properties/AssemblyInfo.tt.cs
src/qttemplates/console/console.vstemplate
src/qttemplates/designer/designer.vstemplate
src/qttemplates/empty/empty.vstemplate
+src/qttemplates/quick/quick.vstemplate
src/qttemplates/gui/gui.vstemplate
src/qttemplates/lib/lib.vstemplate
src/qttemplates/server/server.vstemplate
diff --git a/src/QtVsTools.sln b/src/QtVsTools.sln
index db6548dc..d9315322 100644
--- a/src/QtVsTools.sln
+++ b/src/QtVsTools.sln
@@ -115,6 +115,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Project", "Project", "{E5CE
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Item", "Item", "{35B29B0F-0B9C-45EB-A8EF-2A8D3BF64B6F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quick", "qttemplates\quick\Quick.csproj", "{4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -371,6 +373,18 @@ Global
{12857847-9877-466C-B056-DD286A219093}.Release|x64.ActiveCfg = Release|x64
{12857847-9877-466C-B056-DD286A219093}.Release|x64.Build.0 = Release|x64
{12857847-9877-466C-B056-DD286A219093}.Release|x86.ActiveCfg = Release|x64
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|x64.Build.0 = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Debug|x86.Build.0 = Debug|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|x64.ActiveCfg = Release|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|x64.Build.0 = Release|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|x86.ActiveCfg = Release|Any CPU
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -394,6 +408,7 @@ Global
{12857847-9877-466C-B056-DD286A219093} = {3956AF5F-164C-4D38-B5B3-298D9250C193}
{E5CE38AA-4083-438E-B1F7-DD2F0BDEBE47} = {D73514C8-019E-44FB-8D42-F1FD52C1FD72}
{35B29B0F-0B9C-45EB-A8EF-2A8D3BF64B6F} = {D73514C8-019E-44FB-8D42-F1FD52C1FD72}
+ {4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16} = {E5CE38AA-4083-438E-B1F7-DD2F0BDEBE47}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {EDED4DBD-13ED-475C-B6CE-30AB88EDA03D}
diff --git a/src/config/14.0/source.extension.vsixmanifest_TT b/src/config/14.0/source.extension.vsixmanifest_TT
index 0e0f70b3..b4e95e43 100644
--- a/src/config/14.0/source.extension.vsixmanifest_TT
+++ b/src/config/14.0/source.extension.vsixmanifest_TT
@@ -88,6 +88,10 @@
d:TargetPath="|Empty;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
<Asset
+ Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Quick"
+ d:TargetPath="|Quick;TemplateProjectOutputGroup|" Path="ProjectTemplates"
+ d:VsixSubPath="ProjectTemplates" />
+ <Asset
Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Lib"
d:TargetPath="|Lib;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
diff --git a/src/config/15.0/source.extension.vsixmanifest_TT b/src/config/15.0/source.extension.vsixmanifest_TT
index 55b540af..e7261df1 100644
--- a/src/config/15.0/source.extension.vsixmanifest_TT
+++ b/src/config/15.0/source.extension.vsixmanifest_TT
@@ -88,6 +88,10 @@
d:TargetPath="|Empty;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
<Asset
+ Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Quick"
+ d:TargetPath="|Quick;TemplateProjectOutputGroup|" Path="ProjectTemplates"
+ d:VsixSubPath="ProjectTemplates" />
+ <Asset
Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Lib"
d:TargetPath="|Lib;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
diff --git a/src/config/16.0/source.extension.vsixmanifest_TT b/src/config/16.0/source.extension.vsixmanifest_TT
index bde48ef9..79d8ccda 100644
--- a/src/config/16.0/source.extension.vsixmanifest_TT
+++ b/src/config/16.0/source.extension.vsixmanifest_TT
@@ -89,6 +89,10 @@
d:TargetPath="|Empty;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
<Asset
+ Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Quick"
+ d:TargetPath="|Quick;TemplateProjectOutputGroup|" Path="ProjectTemplates"
+ d:VsixSubPath="ProjectTemplates" />
+ <Asset
Type="Microsoft.VisualStudio.ProjectTemplate" d:Source="Project" d:ProjectName="Lib"
d:TargetPath="|Lib;TemplateProjectOutputGroup|" Path="ProjectTemplates"
d:VsixSubPath="ProjectTemplates" />
diff --git a/src/qttemplates/quick/Properties/AssemblyInfo.cs b/src/qttemplates/quick/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..f0acee34
--- /dev/null
+++ b/src/qttemplates/quick/Properties/AssemblyInfo.cs
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt VS Tools.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** 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.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************
+<#@output extension="tt.cs" #>
+<#@include file="$(SolutionDir)\version.tt" #>
+** <#=WARNING_GENERATED_FILE#>
+****************************************************************************/
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("Quick")]
+[assembly: AssemblyDescription("The Qt Visual Studio Tools allow developers to use the standard development environment without having to worry about any Qt-related build steps or tools.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("The Qt Company Ltd.")]
+[assembly: AssemblyProduct("Qt Visual Studio Tools")]
+[assembly: AssemblyCopyright("Copyright (C) 2016-2017 The Qt Company Ltd.")]
+[assembly: AssemblyTrademark("The Qt Company Ltd. Qt and their respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("863A59E4-25DB-4C28-9D50-1111A2DAD989")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("<#=QT_VS_TOOLS_VERSION_ASSEMBLY#>")]
+[assembly: AssemblyFileVersion("<#=QT_VS_TOOLS_VERSION_ASSEMBLY_FILE#>")]
diff --git a/src/qttemplates/quick/Quick.csproj b/src/qttemplates/quick/Quick.csproj
new file mode 100644
index 00000000..7be72b4d
--- /dev/null
+++ b/src/qttemplates/quick/Quick.csproj
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="$(VisualStudioVersion)" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <MinimumVisualStudioVersion>$(VisualStudioVersion)</MinimumVisualStudioVersion>
+ <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
+ </PropertyGroup>
+ <PropertyGroup>
+ <ApplicationIcon>quick.ico</ApplicationIcon>
+ </PropertyGroup>
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectTypeGuids>{82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <ProjectGuid>{4833E4C7-FFFF-4DA5-A7A5-36C6C3840F16}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Quick</RootNamespace>
+ <AssemblyName>Quick</AssemblyName>
+ <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <GeneratePkgDefFile>false</GeneratePkgDefFile>
+ <IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
+ <IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
+ <IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
+ <CreateVsixContainer>false</CreateVsixContainer>
+ <DeployExtension>false</DeployExtension>
+ <DeployVSTemplates>false</DeployVSTemplates>
+ <CopyVsixManifestToOutput>false</CopyVsixManifestToOutput>
+ <CopyBuildOutputToOutputDirectory>false</CopyBuildOutputToOutputDirectory>
+ <CopyOutputSymbolsToOutputDirectory>false</CopyOutputSymbolsToOutputDirectory>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ </PropertyGroup>
+ <ItemGroup>
+ <T4Template Include="Properties\AssemblyInfo.cs">
+ <Generator>TextTemplatingFileGenerator</Generator>
+ <OutputFile>Properties\AssemblyInfo.tt.cs</OutputFile>
+ <DependsOn>$(SolutionDir)\version.tt;$(SolutionDir)\common.tt</DependsOn>
+ <LastGenOutput>AssemblyInfo.tt.cs</LastGenOutput>
+ </T4Template>
+ <Compile Include="Properties\AssemblyInfo.tt.cs">
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>AssemblyInfo.cs</DependentUpon>
+ </Compile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="qml.qrc" />
+ <None Include="quick.ico" />
+ <None Include="quick.vcxproj">
+ <SubType>Designer</SubType>
+ </None>
+ <None Include="quick.vcxproj.filters">
+ <SubType>Designer</SubType>
+ </None>
+ <T4Template Include="quick.vstemplate_TT">
+ <Generator>TextTemplatingFileGenerator</Generator>
+ <OutputFile>quick.vstemplate</OutputFile>
+ <DependsOn>$(SolutionDir)\version.tt;$(SolutionDir)\common.tt</DependsOn>
+ <LastGenOutput>quick.vstemplate</LastGenOutput>
+ <SubType>Designer</SubType>
+ </T4Template>
+ <VSTemplate Include="quick.vstemplate">
+ <SubType>Designer</SubType>
+ <OutputSubPath>Qt</OutputSubPath>
+ <AutoGen>True</AutoGen>
+ <DesignTime>True</DesignTime>
+ <DependentUpon>quick.vstemplate_TT</DependentUpon>
+ </VSTemplate>
+ </ItemGroup>
+ <ItemGroup>
+ <Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
+ </ItemGroup>
+ <ItemGroup>
+ <Content Include="main.cpp" />
+ <Content Include="main.qml" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
+</Project> \ No newline at end of file
diff --git a/src/qttemplates/quick/main.cpp b/src/qttemplates/quick/main.cpp
new file mode 100644
index 00000000..da0aa663
--- /dev/null
+++ b/src/qttemplates/quick/main.cpp
@@ -0,0 +1,18 @@
+#include <QGuiApplication>
+#include <QQmlApplicationEngine>
+
+int main(int argc, char *argv[])
+{
+#if defined(Q_OS_WIN)
+ QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
+#endif
+
+ QGuiApplication app(argc, argv);
+
+ QQmlApplicationEngine engine;
+ engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
+ if (engine.rootObjects().isEmpty())
+ return -1;
+
+ return app.exec();
+}
diff --git a/src/qttemplates/quick/main.qml b/src/qttemplates/quick/main.qml
new file mode 100644
index 00000000..188049da
--- /dev/null
+++ b/src/qttemplates/quick/main.qml
@@ -0,0 +1,9 @@
+import QtQuick 2.9
+import QtQuick.Window 2.2
+
+Window {
+ visible: true
+ width: 640
+ height: 480
+ title: qsTr("Hello World")
+}
diff --git a/src/qttemplates/quick/qml.qrc b/src/qttemplates/quick/qml.qrc
new file mode 100644
index 00000000..5f6483ac
--- /dev/null
+++ b/src/qttemplates/quick/qml.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>main.qml</file>
+ </qresource>
+</RCC>
diff --git a/src/qttemplates/quick/quick.ico b/src/qttemplates/quick/quick.ico
new file mode 100644
index 00000000..1c4fb80d
--- /dev/null
+++ b/src/qttemplates/quick/quick.ico
Binary files differ
diff --git a/src/qttemplates/quick/quick.vcxproj b/src/qttemplates/quick/quick.vcxproj
new file mode 100644
index 00000000..76d37257
--- /dev/null
+++ b/src/qttemplates/quick/quick.vcxproj
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="$ToolsVersion$" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ $ProjectConfigurations$
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>$ProjectGuid$</ProjectGuid>
+ <Keyword>$Keyword$</Keyword>
+$Globals$
+ <QtMsBuild Condition="'$(QtMsBuild)'=='' OR !Exists('$(QtMsBuild)\qt.targets')"
+ >$(MSBuildProjectDirectory)\QtMsBuild</QtMsBuild>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+$Configurations$
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <Target Name="QtMsBuildNotFound"
+ BeforeTargets="CustomBuild;ClCompile"
+ Condition="!Exists('$(QtMsBuild)\qt.targets') or !Exists('$(QtMsBuild)\qt.props')">
+ <Message Importance="High"
+ Text="QtMsBuild: could not locate qt.targets, qt.props; project may not build correctly." />
+ </Target>
+ <ImportGroup Label="ExtensionSettings" />
+ <ImportGroup Label="Shared" />
+$PropertySheets$
+ <PropertyGroup Label="UserMacros" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt_defaults.props')">
+ <Import Project="$(QtMsBuild)\qt_defaults.props" />
+ </ImportGroup>
+$QtSettings$
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt.props')">
+ <Import Project="$(QtMsBuild)\qt.props" />
+ </ImportGroup>
+$BuildSettings$
+ <ItemGroup>
+ <ClCompile Include="main.cpp"/>
+ <QtRcc Include="qml.qrc"/>
+ <None Include="main.qml"/>
+$ProjectItems$
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Condition="Exists('$(QtMsBuild)\qt.targets')">
+ <Import Project="$(QtMsBuild)\qt.targets" />
+ </ImportGroup>
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
diff --git a/src/qttemplates/quick/quick.vcxproj.filters b/src/qttemplates/quick/quick.vcxproj.filters
new file mode 100644
index 00000000..350a3699
--- /dev/null
+++ b/src/qttemplates/quick/quick.vcxproj.filters
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
+ <Extensions>qrc;qml;*</Extensions>
+ <ParseFiles>false</ParseFiles>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="main.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <QtRcc Include="qml.qrc">
+ <Filter>Resource Files</Filter>
+ </QtRcc>
+ <None Include="main.qml">
+ <Filter>Resource Files</Filter>
+ </None>
+$FilterItems$
+ </ItemGroup>
+</Project>
diff --git a/src/qttemplates/quick/quick.vstemplate_TT b/src/qttemplates/quick/quick.vstemplate_TT
new file mode 100644
index 00000000..84581a80
--- /dev/null
+++ b/src/qttemplates/quick/quick.vstemplate_TT
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ *****************************************************************************
+ **
+ ** Copyright (C) 2020 The Qt Company Ltd.
+ ** Contact: https://www.qt.io/licensing/
+ **
+ ** This file is part of the Qt VS Tools.
+ **
+ ** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+ ** 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.
+ **
+ ** $QT_END_LICENSE$
+ **
+ *****************************************************************************
+<#@output extension="vstemplate" #>
+<#@include file="$(SolutionDir)\version.tt" #>
+ ** <#=WARNING_GENERATED_FILE#>
+ *****************************************************************************
+-->
+
+<VSTemplate Version="3.0.0"
+ xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"
+ xmlns:sdk="http://schemas.microsoft.com/developer/vstemplate-sdkextension/2010"
+ Type="Project" >
+ <TemplateData>
+ <Name>Qt Quick Application</Name>
+ <Description>This wizard generates a Qt Quick application project.</Description>
+ <ProjectType>VC</ProjectType>
+ <SortOrder>1000</SortOrder>
+ <CreateNewFolder>true</CreateNewFolder>
+ <DefaultName>QtQuickApplication</DefaultName>
+ <ProvideDefaultName>true</ProvideDefaultName>
+ <LocationField>Enabled</LocationField>
+ <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
+ <Icon>quick.ico</Icon>
+ </TemplateData>
+ <TemplateContent>
+ <Project TargetFileName="$safeprojectname$.vcxproj"
+ File="quick.vcxproj"
+ ReplaceParameters="true">
+ <ProjectItem ReplaceParameters="true"
+ TargetFileName="$safeprojectname$.vcxproj.filters">quick.vcxproj.filters</ProjectItem>
+ <ProjectItem ReplaceParameters="false">quick.ico</ProjectItem>
+ <ProjectItem ReplaceParameters="true">main.cpp</ProjectItem>
+ <ProjectItem ReplaceParameters="true">main.qml</ProjectItem>
+ <ProjectItem ReplaceParameters="true">qml.qrc</ProjectItem>
+ </Project>
+ </TemplateContent>
+ <WizardExtension>
+ <!-- BEGIN Generated Text <#=XML_COMMENT_END#>
+ <Assembly>QtVsTools.Wizards, Version=<#=QT_VS_TOOLS_VERSION_ASSEMBLY#>, Culture=neutral, PublicKeyToken=null</Assembly>
+ <#=XML_COMMENT_BEGIN#> END Generated Text -->
+ <FullClassName>QtVsTools.Wizards.ProjectWizard.QuickWizard</FullClassName>
+ </WizardExtension>
+</VSTemplate>
diff --git a/src/qtvstools/QtVsTools.csproj b/src/qtvstools/QtVsTools.csproj
index 9cab779a..ccb5d91e 100644
--- a/src/qtvstools/QtVsTools.csproj
+++ b/src/qtvstools/QtVsTools.csproj
@@ -438,6 +438,14 @@
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
</ProjectReference>
+ <ProjectReference Include="..\qttemplates\quick\Quick.csproj">
+ <Project>{4833e4c7-ffff-4da5-a7a5-36c6c3840f16}</Project>
+ <Name>Quick</Name>
+ <VSIXSubPath>ProjectTemplates</VSIXSubPath>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ <IncludeOutputGroupsInVSIX>TemplateProjectOutputGroup%3b</IncludeOutputGroupsInVSIX>
+ <Private>False</Private>
+ </ProjectReference>
<ProjectReference Include="..\qttemplates\resource\Resource.csproj">
<Project>{BDA1CD69-624B-4D9D-9B88-ACBEB14AC471}</Project>
<Name>Resource</Name>
diff --git a/src/qtwizard/QtVsTools.Wizards.csproj b/src/qtwizard/QtVsTools.Wizards.csproj
index e4768788..fceb5b0c 100644
--- a/src/qtwizard/QtVsTools.Wizards.csproj
+++ b/src/qtwizard/QtVsTools.Wizards.csproj
@@ -61,6 +61,7 @@
<DependentUpon>ConfigPage.xaml</DependentUpon>
</Compile>
<Compile Include="Wizards\ProjectWizard\ProjectTemplateWizard.cs" />
+ <Compile Include="Wizards\ProjectWizard\Quick\QuickWizard.cs" />
<Compile Include="Wizards\Util\ClassNameValidationRule.cs" />
<Compile Include="Wizards\ProjectWizard\Console\ConsoleWizard.cs" />
<Compile Include="Wizards\ClassWizard\Core\CoreClassPage.xaml.cs">
diff --git a/src/qtwizard/Wizards/ProjectWizard/Quick/QuickWizard.cs b/src/qtwizard/Wizards/ProjectWizard/Quick/QuickWizard.cs
new file mode 100644
index 00000000..71d24518
--- /dev/null
+++ b/src/qtwizard/Wizards/ProjectWizard/Quick/QuickWizard.cs
@@ -0,0 +1,73 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the Qt VS Tools.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** 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.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+using System;
+using System.Collections.Generic;
+
+namespace QtVsTools.Wizards.ProjectWizard
+{
+ public class QuickWizard : ProjectTemplateWizard
+ {
+ protected override Options TemplateType => Options.Application | Options.GUISystem;
+
+ WizardData _WizardData;
+ protected override WizardData WizardData => _WizardData
+ ?? (_WizardData = new WizardData
+ {
+ DefaultModules = new List<string> { "QtQuick" }
+ });
+
+ WizardWindow _WizardWindow;
+ protected override WizardWindow WizardWindow => _WizardWindow
+ ?? (_WizardWindow = new WizardWindow(title: "Qt Quick Application Wizard")
+ {
+ new WizardIntroPage {
+ Data = WizardData,
+ Header = @"Welcome to the Qt Quick Application Wizard",
+ Message = @"This wizard generates a Qt Quick application project."
+ + System.Environment.NewLine
+ + "Click Finish to create the project.",
+ PreviousButtonEnabled = false,
+ NextButtonEnabled = true,
+ FinishButtonEnabled = false,
+ CancelButtonEnabled = true
+ },
+ new ConfigPage {
+ Data = WizardData,
+ Header = @"Welcome to the Qt Quick Application Wizard",
+ Message =
+ @"Setup the configurations you want to include in your project. "
+ + @"The recommended settings for this project are selected by default.",
+ PreviousButtonEnabled = true,
+ NextButtonEnabled = false,
+ FinishButtonEnabled = true,
+ CancelButtonEnabled = true,
+ }
+ });
+ }
+}