diff --git a/share/qtcreator/templates/wizards/global/consoleapplication.png b/share/qtcreator/templates/wizards/global/consoleapplication.png new file mode 100644 index 00000000000..7569a988f4a Binary files /dev/null and b/share/qtcreator/templates/wizards/global/consoleapplication.png differ diff --git a/share/qtcreator/templates/wizards/projects/qmake/consoleapp/file.pro b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/file.pro new file mode 100644 index 00000000000..0aaed6adbdb --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/file.pro @@ -0,0 +1,10 @@ +QT += core +QT -= gui + +TARGET = %{ProjectName} +CONFIG += console +CONFIG -= app_bundle + +TEMPLATE = app + +SOURCES += %{MainCppName} diff --git a/share/qtcreator/templates/wizards/projects/qmake/consoleapp/main.cpp b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/main.cpp new file mode 100644 index 00000000000..e45deafe127 --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/main.cpp @@ -0,0 +1,10 @@ +%{Cpp:LicenseTemplate}\ +%{JS: QtSupport.qtIncludes([ 'QtCore/QCoreApplication' ], + [ 'QtCore/QCoreApplication' ]) }\ + +int main(int argc, char *argv[]) +{ + QCoreApplication a(argc, argv); + + return a.exec(); +} diff --git a/share/qtcreator/templates/wizards/projects/qmake/consoleapp/wizard.json b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/wizard.json new file mode 100644 index 00000000000..87307f634d0 --- /dev/null +++ b/share/qtcreator/templates/wizards/projects/qmake/consoleapp/wizard.json @@ -0,0 +1,64 @@ +{ + "version": 1, + "kind": "project", + "id": "E.QtCore", + "category": "F.Application", + "trDescription": "Creates a project containing a single main.cpp file with a stub implementation.\n\nPreselects a desktop Qt for building the application if available.", + "trDisplayName": "Qt Console Application", + "trDisplayCategory": "Application", + "icon": "../../../global/consoleapplication.png", + "featuresRequired": [ "Plugin.QmakeProjectManager", "QtSupport.Wizards.FeatureQt" ], + + "options": + [ + { "key": "ProFileName", "value": "%{JS: Util.fileName('%{ProjectDirectory}/%{ProjectName}', 'pro')}" }, + { "key": "IsTopLevelProject", "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }" }, + { "key": "MainCppName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src') }" } + ], + + "pages": + [ + { + "trDisplayName": "Project Location", + "trShortTitle": "Location", + "typeId": "Project", + "data": { "trDescription": "This wizard creates a simple Qt-based console application." } + }, + { + "trDisplayName": "Kit Selection", + "trShortTitle": "Kits", + "typeId": "Kits", + "enabled": "%{IsTopLevelProject}", + "data": { "projectFilePath": "%{ProFileName}" } + }, + { + "trDisplayName": "Project Management", + "trShortTitle": "Summary", + "typeId": "Summary" + } + ], + "generators": + [ + { + "typeId": "File", + "data": + [ + { + "source": "file.pro", + "target": "%{ProFileName}", + "openAsProject": true + }, + { + "source": "main.cpp", + "target": "%{MainCppName}", + "openInEditor": true + }, + { + "source": "../git.ignore", + "target": ".gitignore", + "condition": "%{JS: ( %{IsTopLevelProject} && '%{VersionControl}' === 'G.Git' )}" + } + ] + } + ] +} diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.pro b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.pro index d8199278657..e32cdbd9517 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.pro +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.pro @@ -19,8 +19,6 @@ HEADERS += \ profilehoverhandler.h \ wizards/qtprojectparameters.h \ wizards/guiappwizard.h \ - wizards/consoleappwizard.h \ - wizards/consoleappwizarddialog.h \ wizards/libraryparameters.h \ wizards/librarywizard.h \ wizards/librarywizarddialog.h \ @@ -63,8 +61,6 @@ SOURCES += \ profilehoverhandler.cpp \ wizards/qtprojectparameters.cpp \ wizards/guiappwizard.cpp \ - wizards/consoleappwizard.cpp \ - wizards/consoleappwizarddialog.cpp \ wizards/libraryparameters.cpp \ wizards/librarywizard.cpp \ wizards/librarywizarddialog.cpp \ diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs index 7a7b0fe8ab5..43d82e38d17 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs @@ -85,8 +85,6 @@ QtcPlugin { name: "Wizards" prefix: "wizards/" files: [ - "consoleappwizard.cpp", "consoleappwizard.h", - "consoleappwizarddialog.cpp", "consoleappwizarddialog.h", "filespage.cpp", "filespage.h", "guiappwizard.cpp", "guiappwizard.h", "guiappwizarddialog.cpp", "guiappwizarddialog.h", diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp index 4bed7d8df48..f23ffa55207 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanagerplugin.cpp @@ -37,7 +37,6 @@ #include "makestep.h" #include "qmakebuildconfiguration.h" #include "desktopqmakerunconfiguration.h" -#include "wizards/consoleappwizard.h" #include "wizards/guiappwizard.h" #include "wizards/librarywizard.h" #include "wizards/testwizard.h" @@ -108,7 +107,6 @@ bool QmakeProjectManagerPlugin::initialize(const QStringList &arguments, QString addAutoReleasedObject(new SubdirsProjectWizard); addAutoReleasedObject(new GuiAppWizard); - addAutoReleasedObject(new ConsoleAppWizard); addAutoReleasedObject(new LibraryWizard); addAutoReleasedObject(new TestWizard); addAutoReleasedObject(new CustomWidgetWizard); diff --git a/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.cpp b/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.cpp deleted file mode 100644 index e4d87e304c0..00000000000 --- a/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.cpp +++ /dev/null @@ -1,109 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://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 http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "consoleappwizard.h" - -#include "consoleappwizarddialog.h" - -#include -#include -#include - -#include - -#include -#include - -static const char mainCppC[] = -"#include \n\n" -"int main(int argc, char *argv[])\n" -"{\n" -" QCoreApplication a(argc, argv);\n\n" -" return a.exec();\n" -"}\n"; - -static const char mainSourceFileC[] = "main"; - -namespace QmakeProjectManager { -namespace Internal { - -ConsoleAppWizard::ConsoleAppWizard() -{ - setId(QLatin1String("E.Qt4Core")); - setCategory(QLatin1String(ProjectExplorer::Constants::QT_APPLICATION_WIZARD_CATEGORY)); - setDisplayCategory(QCoreApplication::translate("ProjectExplorer", - ProjectExplorer::Constants::QT_APPLICATION_WIZARD_CATEGORY_DISPLAY)); - setDisplayName(tr("Qt Console Application")); - setDescription(tr("Creates a project containing a single main.cpp file with a stub implementation.\n\n" - "Preselects a desktop Qt for building the application if available.")); - setIcon(QIcon(QLatin1String(":/wizards/images/console.png"))); - setRequiredFeatures(Core::Feature(QtSupport::Constants::FEATURE_QT_CONSOLE)); -} - -Core::BaseFileWizard *ConsoleAppWizard::create(QWidget *parent, const Core::WizardDialogParameters ¶meters) const -{ - ConsoleAppWizardDialog *dialog = new ConsoleAppWizardDialog(displayName(), icon(), - showModulesPageForApplications(), parent, parameters); - dialog->setProjectName(ConsoleAppWizardDialog::uniqueProjectName(parameters.defaultPath())); - return dialog; -} - -Core::GeneratedFiles - ConsoleAppWizard::generateFiles(const QWizard *w, - QString * /*errorMessage*/) const -{ - const ConsoleAppWizardDialog *wizard = qobject_cast< const ConsoleAppWizardDialog *>(w); - const QtProjectParameters params = wizard->parameters(); - const QString projectPath = params.projectPath(); - - // Create files: Source - - const QString sourceFileName = Core::BaseFileWizardFactory::buildFileName(projectPath, QLatin1String(mainSourceFileC), sourceSuffix()); - Core::GeneratedFile source(sourceFileName); - source.setContents(CppTools::AbstractEditorSupport::licenseTemplate(sourceFileName) + QLatin1String(mainCppC)); - source.setAttributes(Core::GeneratedFile::OpenEditorAttribute); - // Create files: Profile - const QString profileName = Core::BaseFileWizardFactory::buildFileName(projectPath, params.fileName, profileSuffix()); - - Core::GeneratedFile profile(profileName); - profile.setAttributes(Core::GeneratedFile::OpenProjectAttribute); - QString contents; - { - QTextStream proStr(&contents); - QtProjectParameters::writeProFileHeader(proStr); - params.writeProFile(proStr); - proStr << "\n\nSOURCES += " << Utils::FileName::fromString(sourceFileName).fileName() << '\n'; - } - profile.setContents(contents); - return Core::GeneratedFiles() << source << profile; -} - -} // namespace Internal -} // namespace QmakeProjectManager diff --git a/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.h b/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.h deleted file mode 100644 index 33dcd4cc304..00000000000 --- a/src/plugins/qmakeprojectmanager/wizards/consoleappwizard.h +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://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 http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef CONSOLEAPPWIZARD_H -#define CONSOLEAPPWIZARD_H - -#include "qtwizard.h" - -namespace QmakeProjectManager { -namespace Internal { - -class ModulesPage; - -class ConsoleAppWizard : public QtWizard -{ - Q_OBJECT - -public: - ConsoleAppWizard(); - -protected: - Core::BaseFileWizard *create(QWidget *parent, const Core::WizardDialogParameters ¶meters) const; - - Core::GeneratedFiles generateFiles(const QWizard *w, QString *errorMessage) const; -}; - -} // namespace Internal -} // namespace QmakeProjectManager - -#endif // CONSOLEAPPWIZARD_H diff --git a/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.cpp b/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.cpp deleted file mode 100644 index b3ccf1bb89e..00000000000 --- a/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://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 http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#include "consoleappwizarddialog.h" -#include - -#include - -namespace QmakeProjectManager { -namespace Internal { - -ConsoleAppWizardDialog::ConsoleAppWizardDialog(const QString &templateName, - const QIcon &icon, - bool showModulesPage, - QWidget *parent, const Core::WizardDialogParameters ¶meters) : - BaseQmakeProjectWizardDialog(showModulesPage, parent, parameters) -{ - setWindowIcon(icon); - setWindowTitle(templateName); - setSelectedModules(QLatin1String("core")); - setDeselectedModules(QLatin1String("gui")); - - setIntroDescription(tr("This wizard generates a Qt Console Application " - "project. The application derives from QCoreApplication and does not " - "provide a GUI.")); - - addModulesPage(); - if (!parameters.extraValues().contains(QLatin1String(ProjectExplorer::Constants::PROJECT_KIT_IDS))) - addTargetSetupPage(); - - addExtensionPages(parameters.extensionPages()); -} - -QtProjectParameters ConsoleAppWizardDialog::parameters() const -{ - QtProjectParameters rc; - rc.type = QtProjectParameters::ConsoleApp; - rc.fileName = projectName(); - rc.path = path(); - - rc.selectedModules = selectedModulesList(); - rc.deselectedModules = deselectedModulesList(); - return rc; -} - -} // namespace Internal -} // namespace QmakeProjectManager diff --git a/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.h b/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.h deleted file mode 100644 index 38657cc9564..00000000000 --- a/src/plugins/qmakeprojectmanager/wizards/consoleappwizarddialog.h +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://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 http://www.qt.io/terms-conditions. For further information -** use the contact form at http://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -****************************************************************************/ - -#ifndef CONSOLEAPPWIZARDDIALOG_H -#define CONSOLEAPPWIZARDDIALOG_H - -#include "qtwizard.h" - -namespace QmakeProjectManager { -namespace Internal { - -struct QtProjectParameters; - -class ConsoleAppWizardDialog : public BaseQmakeProjectWizardDialog -{ - Q_OBJECT -public: - explicit ConsoleAppWizardDialog(const QString &templateName, - const QIcon &icon, - bool showModulesPage, - QWidget *parent, const Core::WizardDialogParameters ¶meters); - - QtProjectParameters parameters() const; -}; - -} // namespace Internal -} // namespace QmakeProjectManager - -#endif // CONSOLEAPPWIZARDDIALOG_H