diff options
author | Miguel Costa <miguel.costa@qt.io> | 2020-04-21 12:54:31 +0200 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2020-04-23 10:51:09 +0000 |
commit | 025192725c9a6c6906740c426ab56bd5d0797c6a (patch) | |
tree | 9897a13fbee24789f6f18c94c3854d74e0de8eb9 | |
parent | 3615760aaa0a12e99d33e29a384c4383d8caf8d4 (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-- | .gitignore | 2 | ||||
-rw-r--r-- | src/QtVsTools.sln | 15 | ||||
-rw-r--r-- | src/config/14.0/source.extension.vsixmanifest_TT | 4 | ||||
-rw-r--r-- | src/config/15.0/source.extension.vsixmanifest_TT | 4 | ||||
-rw-r--r-- | src/config/16.0/source.extension.vsixmanifest_TT | 4 | ||||
-rw-r--r-- | src/qttemplates/quick/Properties/AssemblyInfo.cs | 67 | ||||
-rw-r--r-- | src/qttemplates/quick/Quick.csproj | 98 | ||||
-rw-r--r-- | src/qttemplates/quick/main.cpp | 18 | ||||
-rw-r--r-- | src/qttemplates/quick/main.qml | 9 | ||||
-rw-r--r-- | src/qttemplates/quick/qml.qrc | 5 | ||||
-rw-r--r-- | src/qttemplates/quick/quick.ico | bin | 0 -> 370070 bytes | |||
-rw-r--r-- | src/qttemplates/quick/quick.vcxproj | 46 | ||||
-rw-r--r-- | src/qttemplates/quick/quick.vcxproj.filters | 34 | ||||
-rw-r--r-- | src/qttemplates/quick/quick.vstemplate_TT | 70 | ||||
-rw-r--r-- | src/qtvstools/QtVsTools.csproj | 8 | ||||
-rw-r--r-- | src/qtwizard/QtVsTools.Wizards.csproj | 1 | ||||
-rw-r--r-- | src/qtwizard/Wizards/ProjectWizard/Quick/QuickWizard.cs | 73 |
17 files changed, 458 insertions, 0 deletions
@@ -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 Binary files differnew file mode 100644 index 00000000..1c4fb80d --- /dev/null +++ b/src/qttemplates/quick/quick.ico 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, + } + }); + } +} |