Merge remote-tracking branch 'origin/4.12' into qds-1.50
Change-Id: I8e4155aa2a0a8c7f7405dd79e856380011e23a33
@@ -1,9 +1,9 @@
|
|||||||
#BINARY_ARTIFACTS_BRANCH = master
|
#BINARY_ARTIFACTS_BRANCH = master
|
||||||
#PROJECT_USER_FILE_EXTENSION = .user
|
#PROJECT_USER_FILE_EXTENSION = .user
|
||||||
|
|
||||||
set(IDE_VERSION "4.12.1") # The IDE version.
|
set(IDE_VERSION "4.12.2") # The IDE version.
|
||||||
set(IDE_VERSION_COMPAT "4.12.0") # The IDE Compatibility version.
|
set(IDE_VERSION_COMPAT "4.12.0") # The IDE Compatibility version.
|
||||||
set(IDE_VERSION_DISPLAY "4.12.1") # The IDE display version.
|
set(IDE_VERSION_DISPLAY "4.12.2") # The IDE display version.
|
||||||
set(IDE_COPYRIGHT_YEAR "2020") # The IDE current copyright year.
|
set(IDE_COPYRIGHT_YEAR "2020") # The IDE current copyright year.
|
||||||
|
|
||||||
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
|
set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation.
|
||||||
|
39
dist/changes-4.12.1.md
vendored
@@ -14,6 +14,7 @@ General
|
|||||||
-------
|
-------
|
||||||
|
|
||||||
* Fixed crash when changing font settings (QTCREATORBUG-14385)
|
* Fixed crash when changing font settings (QTCREATORBUG-14385)
|
||||||
|
* Fixed availability of `Link with Qt` information on startup (QTCREATORBUG-23900)
|
||||||
|
|
||||||
Editing
|
Editing
|
||||||
-------
|
-------
|
||||||
@@ -39,6 +40,10 @@ Projects
|
|||||||
|
|
||||||
* Fixed issue with JOM (QTCREATORBUG-22645)
|
* Fixed issue with JOM (QTCREATORBUG-22645)
|
||||||
|
|
||||||
|
### Qbs
|
||||||
|
|
||||||
|
* Fixed crash when updating project (QTCREATORBUG-23924)
|
||||||
|
|
||||||
### Compilation Database
|
### Compilation Database
|
||||||
|
|
||||||
* Fixed issues with symbolic links (QTCREATORBUG-23511)
|
* Fixed issues with symbolic links (QTCREATORBUG-23511)
|
||||||
@@ -46,8 +51,13 @@ Projects
|
|||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
* Fixed startup when Python's JSON module is missing (QTCREATORBUG-24004)
|
||||||
* Fixed pretty printing of `std::unique_ptr` with custom deleter (QTCREATORBUG-23885)
|
* Fixed pretty printing of `std::unique_ptr` with custom deleter (QTCREATORBUG-23885)
|
||||||
|
|
||||||
|
### GDB
|
||||||
|
|
||||||
|
* Fixed handling of register addresses with lowercase characters
|
||||||
|
* Fixed issue with GDB reporting zero array size in some cases (QTCREATORBUG-23998)
|
||||||
|
|
||||||
Qt Quick Designer
|
Qt Quick Designer
|
||||||
-----------------
|
-----------------
|
||||||
@@ -67,10 +77,39 @@ Platforms
|
|||||||
|
|
||||||
* Fixed crash at startup when Qt is missing in Kit (QTCREATORBUG-23963)
|
* Fixed crash at startup when Qt is missing in Kit (QTCREATORBUG-23963)
|
||||||
* Fixed `Always use this device for this project` (QTCREATORBUG-23918)
|
* Fixed `Always use this device for this project` (QTCREATORBUG-23918)
|
||||||
|
* Fixed issue with "side by side" NDK installation (QTCREATORBUG-23903)
|
||||||
|
|
||||||
### OpenBSD
|
### OpenBSD
|
||||||
|
|
||||||
* Fixed Qt ABI detection (QTCREATORBUG-23818)
|
* Fixed Qt ABI detection (QTCREATORBUG-23818)
|
||||||
|
|
||||||
|
### MCU
|
||||||
|
|
||||||
|
* Fixed various issues with Kit creation and cleanup
|
||||||
|
|
||||||
Credits for these changes go to:
|
Credits for these changes go to:
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
Alessandro Portale
|
||||||
|
André Pönitz
|
||||||
|
Assam Boudjelthia
|
||||||
|
Brook Cronin
|
||||||
|
Christian Kandeler
|
||||||
|
Christian Stenger
|
||||||
|
Cristian Adam
|
||||||
|
David Schulz
|
||||||
|
Eike Ziller
|
||||||
|
Friedemann Kleint
|
||||||
|
Henning Gruendl
|
||||||
|
Jeremy Ephron
|
||||||
|
Johanna Vanhatapio
|
||||||
|
Leander Schulten
|
||||||
|
Leena Miettinen
|
||||||
|
Nikolai Kosjar
|
||||||
|
Robert Löhning
|
||||||
|
Sebastian Verling
|
||||||
|
Sergey Belyashov
|
||||||
|
Thiago Macieira
|
||||||
|
Thomas Hartmann
|
||||||
|
Tim Jenssen
|
||||||
|
Venugopal Shivashankar
|
||||||
|
Vikas Pachdha
|
||||||
|
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.2 KiB |
BIN
doc/qtcreator/images/front-advanced.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
doc/qtcreator/images/front-coding.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
doc/qtcreator/images/front-gs.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
doc/qtcreator/images/front-help.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
doc/qtcreator/images/front-preview.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
doc/qtcreator/images/front-projects.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
doc/qtcreator/images/front-publishing.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
doc/qtcreator/images/front-testing.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
doc/qtcreator/images/front-ui.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
@@ -460,7 +460,7 @@
|
|||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
\li Perf events may be globally disabled on your system. The
|
\li Perf events may be globally disabled on your system. The
|
||||||
preconfigured Boot to Qt images come with perf events enabled. For
|
preconfigured Boot2Qt images come with perf events enabled. For
|
||||||
a custom configuration you need to make sure that the file
|
a custom configuration you need to make sure that the file
|
||||||
\c {/proc/sys/kernel/perf_event_paranoid} contains a value smaller
|
\c {/proc/sys/kernel/perf_event_paranoid} contains a value smaller
|
||||||
than \c {2}. For maximum flexibility in recording traces you can
|
than \c {2}. For maximum flexibility in recording traces you can
|
||||||
|
@@ -32,7 +32,7 @@
|
|||||||
/*!
|
/*!
|
||||||
//! [cmake deploying embedded]
|
//! [cmake deploying embedded]
|
||||||
|
|
||||||
\section1 Deploying CMake Projects to Embedded Linux Devices
|
\section1 Deploying CMake Projects to Generic Remote Linux Devices
|
||||||
|
|
||||||
\QC cannot directly extract files to be installed from a CMake project.
|
\QC cannot directly extract files to be installed from a CMake project.
|
||||||
Therefore, a special deploy step is created that installs the project into
|
Therefore, a special deploy step is created that installs the project into
|
||||||
|
@@ -158,6 +158,6 @@
|
|||||||
\li \l {Opening Projects}
|
\li \l {Opening Projects}
|
||||||
\li \l {Specifying Build Settings}
|
\li \l {Specifying Build Settings}
|
||||||
\li \l {Specifying Run Settings}
|
\li \l {Specifying Run Settings}
|
||||||
\li \l {Deploying CMake Projects to Embedded Linux Devices}
|
\li \l {Deploying CMake Projects to Generic Remote Linux Devices}
|
||||||
\endlist
|
\endlist
|
||||||
*/
|
*/
|
||||||
|
@@ -41,7 +41,7 @@
|
|||||||
\title Coding
|
\title Coding
|
||||||
|
|
||||||
\if defined(qtcreator)
|
\if defined(qtcreator)
|
||||||
\image creator_coding.png
|
\image front-coding.png
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
@@ -38,11 +38,11 @@
|
|||||||
\nextpage creator-deployment-qnx.html
|
\nextpage creator-deployment-qnx.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Deploying Applications to Embedded Linux Devices
|
\title Deploying Applications to Generic Remote Linux Devices
|
||||||
|
|
||||||
You can specify settings for deploying applications to generic Linux devices
|
You can specify settings for deploying applications to generic remote
|
||||||
in the project .pro file. You can view the settings in the
|
Linux devices in the project .pro file. You can view the settings in
|
||||||
\uicontrol Projects mode, in \uicontrol {Run Settings}.
|
the \uicontrol Projects mode, in \uicontrol {Run Settings}.
|
||||||
|
|
||||||
\image qtcreator-embedded-linux-deployment-overview.png "Deploy to device"
|
\image qtcreator-embedded-linux-deployment-overview.png "Deploy to device"
|
||||||
|
|
||||||
|
@@ -26,14 +26,14 @@
|
|||||||
/*!
|
/*!
|
||||||
//! [running on embedded linux]
|
//! [running on embedded linux]
|
||||||
|
|
||||||
\section1 Running on Embedded Linux Devices
|
\section1 Running on Generic Remote Linux Devices
|
||||||
|
|
||||||
To build the application and run it on a device:
|
To build the application and run it on a device:
|
||||||
|
|
||||||
\list 1
|
\list 1
|
||||||
|
|
||||||
\li Specify a connection to the device. For more information, see
|
\li Specify a connection to the device. For more information, see
|
||||||
\l{Connecting Embedded Linux Devices}.
|
\l{Connecting Generic Remote Linux Devices}.
|
||||||
|
|
||||||
\li Click the \uicontrol Run button.
|
\li Click the \uicontrol Run button.
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2017 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -24,11 +24,11 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
//! [run settings embedded]
|
//! [run settings boot2qt]
|
||||||
|
|
||||||
\section1 Specifying Run Settings for Embedded Devices
|
\section1 Specifying Run Settings for Boot2Qt Devices
|
||||||
|
|
||||||
To run and debug an application on an embedded device (commercial only), you
|
To run and debug an application on a Boot2Qt device (commercial only), you
|
||||||
must create connections from the development host to the device and add the
|
must create connections from the development host to the device and add the
|
||||||
device configurations to \l{glossary-buildandrun-kit}{kits}. Select
|
device configurations to \l{glossary-buildandrun-kit}{kits}. Select
|
||||||
\uicontrol {Manage Kits} to add devices to kits. For more information, see
|
\uicontrol {Manage Kits} to add devices to kits. For more information, see
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
host and on the device.
|
host and on the device.
|
||||||
|
|
||||||
For more information on the deployment steps, see
|
For more information on the deployment steps, see
|
||||||
\l{Deploying Applications to Embedded Linux Devices}.
|
\l{Deploying Applications to Generic Remote Linux Devices}.
|
||||||
|
|
||||||
//! [run settings embedded]
|
//! [run settings boot2qt]
|
||||||
*/
|
*/
|
||||||
|
@@ -33,7 +33,7 @@
|
|||||||
host to the device and add the device configurations to
|
host to the device and add the device configurations to
|
||||||
\l{glossary-buildandrun-kit}{kits}. Click \uicontrol {Manage Kits} to add devices
|
\l{glossary-buildandrun-kit}{kits}. Click \uicontrol {Manage Kits} to add devices
|
||||||
to kits. For more information, see
|
to kits. For more information, see
|
||||||
\l {Connecting Embedded Linux Devices}.
|
\l {Connecting Generic Remote Linux Devices}.
|
||||||
|
|
||||||
When you run the application, \QC copies the files to the connected device.
|
When you run the application, \QC copies the files to the connected device.
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -33,19 +33,20 @@
|
|||||||
\nextpage creator-developing-ios.html
|
\nextpage creator-developing-ios.html
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\title Connecting Embedded Linux Devices
|
\title Connecting Generic Remote Linux Devices
|
||||||
|
|
||||||
You can connect embedded Linux devices to the development PC to run,
|
You can connect generic Linux devices to the development PC to run,
|
||||||
debug, and analyze applications built for them from \QC.
|
debug, and analyze applications built for them from \QC.
|
||||||
|
|
||||||
If you have a tool chain for building applications for embedded Linux
|
If you have a tool chain for building applications for embedded Linux
|
||||||
devices installed on the development PC, you can add
|
devices installed on the development PC, you can add
|
||||||
it to \QC. You can then select a \l{glossary-buildandrun-kit}{kit}
|
it to \QC. You can then select a \l{glossary-buildandrun-kit}{kit}
|
||||||
with \uicontrol {Embedded Linux} device type to
|
with \uicontrol {Embedded Linux} device type to
|
||||||
build applications for and run them on embedded Linux devices.
|
build applications for and run them on the devices.
|
||||||
|
|
||||||
To be able to run and debug applications on embedded Linux devices, you must
|
To be able to run and debug applications on generic remote Linux devices,
|
||||||
add devices and select them in the \QC \l{glossary-buildandrun-kit}{kit}.
|
you must add devices and select them in the \QC \l{glossary-buildandrun-kit}
|
||||||
|
{kit}.
|
||||||
|
|
||||||
You use a wizard to create the connections. You can edit the settings later
|
You use a wizard to create the connections. You can edit the settings later
|
||||||
in \uicontrol Tools > \uicontrol Options > \uicontrol Devices >
|
in \uicontrol Tools > \uicontrol Options > \uicontrol Devices >
|
||||||
@@ -145,7 +146,7 @@
|
|||||||
|
|
||||||
When you run the project, \QC deploys the application as specified by the
|
When you run the project, \QC deploys the application as specified by the
|
||||||
deploy steps. By default, \QC copies the application files to the device.
|
deploy steps. By default, \QC copies the application files to the device.
|
||||||
For more information, see \l{Deploying Applications to Embedded Linux Devices}.
|
For more information, see \l{Deploying Applications to Generic Remote Linux Devices}.
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Advanced Use
|
\title Advanced Use
|
||||||
|
|
||||||
\image creator_advanceduse.png
|
\image front-advanced.png
|
||||||
|
|
||||||
\QC attempts to meet your development needs, whether you are an
|
\QC attempts to meet your development needs, whether you are an
|
||||||
experienced Qt developer or a newcomer to Qt. When you install \QC
|
experienced Qt developer or a newcomer to Qt. When you install \QC
|
||||||
|
@@ -49,7 +49,7 @@
|
|||||||
When you deploy the application to an Android device, \QC copies
|
When you deploy the application to an Android device, \QC copies
|
||||||
the application files to the device. In addition, you can determine
|
the application files to the device. In addition, you can determine
|
||||||
the Qt libraries to use.
|
the Qt libraries to use.
|
||||||
\li \l{Deploying Applications to Embedded Linux Devices}
|
\li \l{Deploying Applications to Generic Remote Linux Devices}
|
||||||
|
|
||||||
When you deploy the application to a generic Linux-based device, \QC
|
When you deploy the application to a generic Linux-based device, \QC
|
||||||
copies the application files to the connected device. You can test
|
copies the application files to the connected device. You can test
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Designing User Interfaces
|
\title Designing User Interfaces
|
||||||
|
|
||||||
\image creator_designinguserinterface.png
|
\image front-ui.png
|
||||||
|
|
||||||
\QC provides integrated visual editors for designing Qt Quick and
|
\QC provides integrated visual editors for designing Qt Quick and
|
||||||
widget-based applications in the Design mode. The integration
|
widget-based applications in the Design mode. The integration
|
||||||
|
@@ -38,9 +38,9 @@
|
|||||||
|
|
||||||
\table
|
\table
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_gettingstarted.png
|
\li \inlineimage front-gs.png
|
||||||
\li \inlineimage creator_designinguserinterface.png
|
\li \inlineimage front-ui.png
|
||||||
\li \inlineimage creator_advanceduse.png
|
\li \inlineimage front-advanced.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{IDE Overview}}
|
\li \b {\l{IDE Overview}}
|
||||||
|
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
control systems. For an overview of the options you have, go to
|
control systems. For an overview of the options you have, go to
|
||||||
\l{Configuring Qt Creator}.
|
\l{Configuring Qt Creator}.
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_buildingrunning.png
|
\li \inlineimage front-preview.png
|
||||||
\li \inlineimage creator_gettinghelp.png
|
\li \inlineimage front-help.png
|
||||||
\li
|
\li
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Building and Running an Example}}
|
\li \b {\l{Building and Running an Example}}
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Getting Help
|
\title Getting Help
|
||||||
|
|
||||||
\image creator_gettinghelp.png
|
\image front-help.png
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
|
@@ -69,7 +69,7 @@
|
|||||||
to debug applications on them with GDB or a hardware debugger.
|
to debug applications on them with GDB or a hardware debugger.
|
||||||
\endif
|
\endif
|
||||||
|
|
||||||
\li \l{Connecting Embedded Linux Devices}
|
\li \l{Connecting Generic Remote Linux Devices}
|
||||||
|
|
||||||
If you have a tool chain for building applications for embedded
|
If you have a tool chain for building applications for embedded
|
||||||
Linux devices installed on the development
|
Linux devices installed on the development
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
You can use the experimental Qt Application Manager plugin
|
You can use the experimental Qt Application Manager plugin
|
||||||
(commercial only) to deploy, run, and debug applications on the
|
(commercial only) to deploy, run, and debug applications on the
|
||||||
local Linux PC, remote generic SSH Linux targets, or
|
local Linux PC, remote generic SSH Linux targets, or
|
||||||
\l{Embedded Devices}{embedded devices}.
|
\l{Boot2Qt Devices}{Boot2Qt devices}.
|
||||||
\endlist
|
\endlist
|
||||||
\endif
|
\endif
|
||||||
*/
|
*/
|
||||||
|
@@ -47,9 +47,9 @@
|
|||||||
|
|
||||||
\table
|
\table
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_managingprojects.png
|
\li \inlineimage front-projects.png
|
||||||
\li \inlineimage creator_designinguserinterface.png
|
\li \inlineimage front-ui.png
|
||||||
\li \inlineimage creator_coding.png
|
\li \inlineimage front-coding.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Managing Projects}}
|
\li \b {\l{Managing Projects}}
|
||||||
|
|
||||||
@@ -84,9 +84,9 @@
|
|||||||
available that provides information about the code to IDEs.
|
available that provides information about the code to IDEs.
|
||||||
For more information, see \l{Coding}.
|
For more information, see \l{Coding}.
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_buildingrunning.png
|
\li \inlineimage front-preview.png
|
||||||
\li \inlineimage creator_testing.png
|
\li \inlineimage front-testing.png
|
||||||
\li \inlineimage creator_publishing.png
|
\li \inlineimage front-publishing.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Building and Running}}
|
\li \b {\l{Building and Running}}
|
||||||
|
|
||||||
|
@@ -112,7 +112,7 @@
|
|||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section2 Developing for Embedded Devices
|
\section2 Developing for Boot2Qt Devices
|
||||||
|
|
||||||
Either Windows 7 or later or Ubuntu Linux 64-bit 12.04 LTS or later is
|
Either Windows 7 or later or Ubuntu Linux 64-bit 12.04 LTS or later is
|
||||||
required to install and use Qt for Device Creation. For more information
|
required to install and use Qt for Device Creation. For more information
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -31,30 +31,21 @@
|
|||||||
You can develop applications for the following platforms:
|
You can develop applications for the following platforms:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
\li Desktop
|
\li Desktop
|
||||||
|
\li \l{Connecting Android Devices}{Android}
|
||||||
\li Android
|
\li \l{Connecting Bare Metal Devices}{Bare Metal}
|
||||||
|
\li Boot2Qt
|
||||||
\li Embedded
|
\li \l{Connecting Generic Remote Linux Devices}{Generic Remote Linux}
|
||||||
|
\li \l{Connecting iOS Devices}{iOS}
|
||||||
\li Generic remote Linux
|
\li \l{Connecting MCUs}{Microcontroller Units (MCU)} (commercial only)
|
||||||
|
\li \l{Connecting QNX Devices}{QNX}
|
||||||
\li iOS
|
\li \l{Qt for UWP}{Universal Windows Platform (UWP)}
|
||||||
|
\li \l{Building Applications for the Web}{WebAssembly}
|
||||||
\li Microcontroller Units (MCU)
|
|
||||||
|
|
||||||
\li QNX
|
|
||||||
|
|
||||||
\li Universal Windows Platform (UWP)
|
|
||||||
|
|
||||||
\li WebAssembly
|
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section2 Embedded Devices
|
\section2 Boot2Qt Devices
|
||||||
|
|
||||||
The Boot to Qt stack can be made to run on a variety of hardware. For
|
The Boot2Qt stack can be made to run on a variety of hardware. For
|
||||||
Qt for Device Creation license holders, tooling is provided to customize the
|
Qt for Device Creation license holders, tooling is provided to customize the
|
||||||
contents of the stack as well as to take it into desired production
|
contents of the stack as well as to take it into desired production
|
||||||
hardware.
|
hardware.
|
||||||
@@ -65,8 +56,8 @@
|
|||||||
\l{https://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation}
|
\l{https://doc.qt.io/QtForDeviceCreation/index.html}{Qt for Device Creation}
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
\note Since \QC 4.9, only Boot to Qt version 5.9 and later are supported.
|
\note Since \QC 4.9, only Boot2Qt version 5.9 and later are supported.
|
||||||
To develop for earlier Boot to Qt versions, use \QC 4.8.
|
To develop for earlier Boot2Qt versions, use \QC 4.8.
|
||||||
|
|
||||||
\section2 Mobile Devices
|
\section2 Mobile Devices
|
||||||
|
|
||||||
@@ -99,8 +90,8 @@
|
|||||||
\li
|
\li
|
||||||
\row
|
\row
|
||||||
\li MCUs
|
\li MCUs
|
||||||
\li \image ok
|
\li
|
||||||
\li \image ok
|
\li
|
||||||
\li \image ok
|
\li \image ok
|
||||||
\row
|
\row
|
||||||
\li QNX
|
\li QNX
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Testing
|
\title Testing
|
||||||
|
|
||||||
\image creator_testing.png
|
\image front-testing.png
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Tutorials
|
\title Tutorials
|
||||||
|
|
||||||
\image creator_gettinghelp.png
|
\image front-help.png
|
||||||
|
|
||||||
You can use \QC to create applications for several platforms by using
|
You can use \QC to create applications for several platforms by using
|
||||||
several technologies. The tutorials in this manual explain how to create
|
several technologies. The tutorials in this manual explain how to create
|
||||||
|
@@ -43,7 +43,7 @@
|
|||||||
the development environment for Android or iOS. For more information, see
|
the development environment for Android or iOS. For more information, see
|
||||||
\l{Connecting Android Devices} and \l{Connecting iOS Devices}.
|
\l{Connecting Android Devices} and \l{Connecting iOS Devices}.
|
||||||
|
|
||||||
To run an example application on an embedded device, you must set up
|
To run an example application on a Boot2Qt device, you must set up
|
||||||
Qt for Device Creation on the development host and create connections
|
Qt for Device Creation on the development host and create connections
|
||||||
between the host and devices. For more information, see the
|
between the host and devices. For more information, see the
|
||||||
\l{http://doc.qt.io/QtForDeviceCreation/qtee-installation-guide.html}
|
\l{http://doc.qt.io/QtForDeviceCreation/qtee-installation-guide.html}
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
|
|
||||||
You can also use tags (3) to filter examples. For instance, enter
|
You can also use tags (3) to filter examples. For instance, enter
|
||||||
the \uicontrol Boot2Qt tag (commercial only) in the search field
|
the \uicontrol Boot2Qt tag (commercial only) in the search field
|
||||||
(4) to list examples that you can run on embedded devices.
|
(4) to list examples that you can run on Boot2Qt devices.
|
||||||
|
|
||||||
\li To check that the application code can be compiled and linked for a
|
\li To check that the application code can be compiled and linked for a
|
||||||
device, click the \uicontrol {Kit Selector} and select a
|
device, click the \uicontrol {Kit Selector} and select a
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Building and Running
|
\title Building and Running
|
||||||
|
|
||||||
\image creator_buildingrunning.png
|
\image front-preview.png
|
||||||
|
|
||||||
\QC provides support for running and deploying Qt applications built
|
\QC provides support for running and deploying Qt applications built
|
||||||
for different target platforms, or using different compilers, debuggers, or
|
for different target platforms, or using different compilers, debuggers, or
|
||||||
|
@@ -141,10 +141,11 @@
|
|||||||
|
|
||||||
\section1 Providing Deployment Information
|
\section1 Providing Deployment Information
|
||||||
|
|
||||||
If you want to run your application on an embedded Linux device, you first need to
|
If you want to run your application on a generic remote Linux device,
|
||||||
deploy your executable and possibly other files. \QC does that for you
|
you first need to deploy your executable and possibly other files.
|
||||||
automatically if you provide the necessary information. This works the same
|
\QC does that for you automatically if you provide the necessary
|
||||||
way as explained for CMake \l {Deploying CMake Projects to Embedded Linux Devices}{here},
|
information. This works the same way as explained for CMake
|
||||||
|
\l {Deploying CMake Projects to Generic Remote Linux Devices}{here},
|
||||||
except that you also need to include your application binary in the list.
|
except that you also need to include your application binary in the list.
|
||||||
|
|
||||||
\section1 Creating a Run Configuration
|
\section1 Creating a Run Configuration
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
\title Managing Projects
|
\title Managing Projects
|
||||||
|
|
||||||
\image creator_managingprojects.png
|
\image front-projects.png
|
||||||
|
|
||||||
One of the major advantages of \QC is that it allows a team of designers and
|
One of the major advantages of \QC is that it allows a team of designers and
|
||||||
developers to share a project across different development platforms with a
|
developers to share a project across different development platforms with a
|
||||||
|
@@ -84,7 +84,7 @@
|
|||||||
\include creator-projects-settings-run-android.qdocinc run settings android
|
\include creator-projects-settings-run-android.qdocinc run settings android
|
||||||
\include creator-projects-settings-run-linux.qdocinc run settings linux
|
\include creator-projects-settings-run-linux.qdocinc run settings linux
|
||||||
\include creator-projects-settings-run-qnx.qdocinc run settings qnx
|
\include creator-projects-settings-run-qnx.qdocinc run settings qnx
|
||||||
\include linux-mobile/creator-projects-settings-run-b2qt.qdocinc run settings embedded
|
\include linux-mobile/creator-projects-settings-run-b2qt.qdocinc run settings boot2qt
|
||||||
|
|
||||||
\section1 Selecting the Run Environment
|
\section1 Selecting the Run Environment
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Creator documentation.
|
** This file is part of the Qt Creator documentation.
|
||||||
@@ -47,29 +47,20 @@
|
|||||||
devices:
|
devices:
|
||||||
|
|
||||||
\list
|
\list
|
||||||
|
\li \l{Connecting Android Devices}{Android Device}
|
||||||
\li Android Device
|
\li \l{Connecting Bare Metal Devices}{Bare Metal Device}
|
||||||
|
\li \l{https://doc.qt.io/QtForDeviceCreation/b2qt-installation-guides.html}
|
||||||
\li Bare Metal Device
|
{Boot2Qt Device} (commercial only)
|
||||||
|
\li \l{Emulator}{Boot2Qt Emulator Device} (commercial only)
|
||||||
\li Boot2Qt Device (commercial only)
|
\li \l{Connecting Generic Remote Linux Devices}{Generic Remote Linux Device}
|
||||||
|
\li \l{Connecting iOS Devices}{iOS Device}
|
||||||
\li \l {Emulator}{Boot2Qt Emulator Device} (commercial only)
|
|
||||||
|
|
||||||
\li Generic Linux Device
|
|
||||||
|
|
||||||
\li iOS Device
|
|
||||||
|
|
||||||
\li iOS Simulator
|
\li iOS Simulator
|
||||||
|
\li \l{Connecting MCUs}{MCU Device} (commercial only)
|
||||||
\li QNX Device
|
\li \l{Connecting QNX Devices}{QNX Device}
|
||||||
|
\li \l{Building Applications for the Web}{WebAssembly Runtime}
|
||||||
\li Windows Phone
|
\li \l{Qt for UWP}{Windows Phone}
|
||||||
|
|
||||||
\li Windows Phone Emulator
|
\li Windows Phone Emulator
|
||||||
|
|
||||||
\li Windows Runtime (local)
|
\li Windows Runtime (local)
|
||||||
|
|
||||||
\endlist
|
\endlist
|
||||||
|
|
||||||
\section1 Filtering Kit Settings
|
\section1 Filtering Kit Settings
|
||||||
|
@@ -41,7 +41,7 @@
|
|||||||
\title Deploying Applications to QNX Neutrino Devices
|
\title Deploying Applications to QNX Neutrino Devices
|
||||||
|
|
||||||
You can deploy applications to QNX Neutrino devices in the way that is
|
You can deploy applications to QNX Neutrino devices in the way that is
|
||||||
described in \l{Deploying Applications to Embedded Linux Devices}.
|
described in \l{Deploying Applications to Generic Remote Linux Devices}.
|
||||||
|
|
||||||
\image qtcreator-qnx-deployment.png "Deploy to device"
|
\image qtcreator-qnx-deployment.png "Deploy to device"
|
||||||
|
|
||||||
|
@@ -42,8 +42,9 @@
|
|||||||
|
|
||||||
\section1 Adding a QNX Neutrino Device in \QC
|
\section1 Adding a QNX Neutrino Device in \QC
|
||||||
|
|
||||||
Adding a QNX Neutrino device is very similar to \l{Connecting Embedded
|
Adding a QNX Neutrino device is very similar to
|
||||||
Linux Devices}, except you need to select \uicontrol {QNX Device} in the
|
\l{Connecting Generic Remote Linux Devices}, except that
|
||||||
|
you need to select \uicontrol {QNX Device} in the
|
||||||
\uicontrol {Device Configuration} wizard.
|
\uicontrol {Device Configuration} wizard.
|
||||||
|
|
||||||
\section1 Adding Kits for QNX Devices
|
\section1 Adding Kits for QNX Devices
|
||||||
|
@@ -196,14 +196,14 @@
|
|||||||
\li \l{Deploying to Devices}
|
\li \l{Deploying to Devices}
|
||||||
\list
|
\list
|
||||||
\li \l{Deploying Applications to Android Devices}
|
\li \l{Deploying Applications to Android Devices}
|
||||||
\li \l{Deploying Applications to Embedded Linux Devices}
|
\li \l{Deploying Applications to Generic Remote Linux Devices}
|
||||||
\li \l{Deploying Applications to QNX Neutrino Devices}
|
\li \l{Deploying Applications to QNX Neutrino Devices}
|
||||||
\endlist
|
\endlist
|
||||||
\li \l{Connecting Devices}
|
\li \l{Connecting Devices}
|
||||||
\list
|
\list
|
||||||
\li \l{Connecting Android Devices}
|
\li \l{Connecting Android Devices}
|
||||||
\li \l{Connecting Bare Metal Devices}
|
\li \l{Connecting Bare Metal Devices}
|
||||||
\li \l{Connecting Embedded Linux Devices}
|
\li \l{Connecting Generic Remote Linux Devices}
|
||||||
\li \l{Connecting iOS Devices}
|
\li \l{Connecting iOS Devices}
|
||||||
\li \l{Connecting MCUs}
|
\li \l{Connecting MCUs}
|
||||||
\li \l{Connecting QNX Devices}
|
\li \l{Connecting QNX Devices}
|
||||||
|
@@ -54,10 +54,10 @@
|
|||||||
|
|
||||||
\table
|
\table
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_gettingstarted.png
|
\li \inlineimage front-gs.png
|
||||||
\li \inlineimage creator_managingprojects.png
|
\li \inlineimage front-projects.png
|
||||||
\li \inlineimage creator_designinguserinterface.png
|
\li \inlineimage front-ui.png
|
||||||
\li \inlineimage creator_coding.png
|
\li \inlineimage front-coding.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Getting Started}}
|
\li \b {\l{Getting Started}}
|
||||||
\list
|
\list
|
||||||
@@ -90,10 +90,10 @@
|
|||||||
\li \l{Editing State Charts}
|
\li \l{Editing State Charts}
|
||||||
\endlist
|
\endlist
|
||||||
\row
|
\row
|
||||||
\li \inlineimage creator_buildingrunning.png
|
\li \inlineimage front-preview.png
|
||||||
\li \inlineimage creator_testing.png
|
\li \inlineimage front-testing.png
|
||||||
\li \inlineimage creator_advanceduse.png
|
\li \inlineimage front-advanced.png
|
||||||
\li \inlineimage creator_gettinghelp.png
|
\li \inlineimage front-help.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Building and Running}}
|
\li \b {\l{Building and Running}}
|
||||||
\list
|
\list
|
||||||
|
@@ -50,7 +50,7 @@
|
|||||||
until it is explicitly assigned a new value. However, to make the fullest
|
until it is explicitly assigned a new value. However, to make the fullest
|
||||||
use of QML and its built-in support for dynamic object behaviors, most QML
|
use of QML and its built-in support for dynamic object behaviors, most QML
|
||||||
types use property bindings. This means that you can specify relationships
|
types use property bindings. This means that you can specify relationships
|
||||||
between different object properties so that when a property's sependencies
|
between different object properties so that when a property's dependencies
|
||||||
change in value, the property's value is automatically updated accordingly.
|
change in value, the property's value is automatically updated accordingly.
|
||||||
|
|
||||||
Behind the scenes, the QML engine monitors the property's dependencies (that
|
Behind the scenes, the QML engine monitors the property's dependencies (that
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2019 The Qt Company Ltd.
|
** Copyright (C) 2020 The Qt Company Ltd.
|
||||||
** Contact: https://www.qt.io/licensing/
|
** Contact: https://www.qt.io/licensing/
|
||||||
**
|
**
|
||||||
** This file is part of the Qt Design Studio documentation.
|
** This file is part of the Qt Design Studio documentation.
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
To preview UIs on Android devices, you need to enable USB debugging on them
|
To preview UIs on Android devices, you need to enable USB debugging on them
|
||||||
and connect them to your system with a USB cable.
|
and connect them to your system with a USB cable.
|
||||||
\endomit
|
\endomit
|
||||||
To preview UIs on embedded devices, you need to connect the devices to your
|
To preview UIs on Boot2Qt devices, you need to connect the devices to your
|
||||||
system with a USB cable, or a wired or wireless connection, depending on
|
system with a USB cable, or a wired or wireless connection, depending on
|
||||||
the device, and configure connections to them. The necessary kits have been
|
the device, and configure connections to them. The necessary kits have been
|
||||||
predefined and you only need to enable them for your current project.
|
predefined and you only need to enable them for your current project.
|
||||||
@@ -79,9 +79,9 @@
|
|||||||
device.
|
device.
|
||||||
\endomit
|
\endomit
|
||||||
|
|
||||||
\section2 Previewing on Embedded Devices
|
\section2 Previewing on Boot2Qt Devices
|
||||||
|
|
||||||
You can preview UIs on embedded devices that are supported by
|
You can preview UIs on Boot2Qt devices that are supported by
|
||||||
\l{Qt for Device Creation}. For a list of supported devices, see
|
\l{Qt for Device Creation}. For a list of supported devices, see
|
||||||
\l{https://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#reference-target-devices}
|
\l{https://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#reference-target-devices}
|
||||||
{Reference Target Devices}.
|
{Reference Target Devices}.
|
||||||
|
@@ -24,7 +24,7 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\example ProgressBar
|
\example progressbar
|
||||||
\ingroup studioexamples
|
\ingroup studioexamples
|
||||||
|
|
||||||
\title Progress Bar
|
\title Progress Bar
|
||||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 4.6 KiB |
57
doc/qtdesignstudio/images/studio-animation.svg
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 24.1.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
x="0px" y="0px" viewBox="0 0 450 270" overflow="visible" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
<path fill="#C9C7C7" d="M433.8,269.6H16.2c-7.8,0-14.2-6.4-14.2-14.2V14.2C2,6.4,8.4,0,16.2,0h417.6c7.8,0,14.2,6.4,14.2,14.2
|
||||||
|
v241.2C448,263.2,441.6,269.6,433.8,269.6z"/>
|
||||||
|
<path fill="#878686" d="M2.4,19.5L2,14.1C2,6.3,8.3,0,16.1,0h417.9c7.8,0,14.1,6.3,14.1,14.1v6.8"/>
|
||||||
|
<circle fill="#DD5858" cx="19.3" cy="10.6" r="5"/>
|
||||||
|
<circle fill="#DBC558" cx="36.1" cy="10.6" r="5"/>
|
||||||
|
<circle fill="#52B257" cx="52.9" cy="10.6" r="5"/>
|
||||||
|
</g>
|
||||||
|
<path fill="#FFFFFF" d="M437.1,262.2H13.4c-2.8,0-5-2.2-5-5V185c0-2.8,2.2-5,5-5h423.7c2.8,0,5,2.2,5,5v72.2
|
||||||
|
C442.1,260,439.9,262.2,437.1,262.2z"/>
|
||||||
|
<path fill="none" stroke="#FFFFFF" stroke-width="7.4167" stroke-linecap="round" stroke-miterlimit="10" d="M190.6,91.4
|
||||||
|
c0-24.3,19.7-44.1,44.1-44.1s44.1,19.7,44.1,44.1s-19.7,44.1-44.1,44.1"/>
|
||||||
|
<circle fill="#FFFFFF" cx="233.8" cy="91.1" r="19.7"/>
|
||||||
|
<polygon fill="#878686" points="258.9,158 256.2,193.9 267.4,180.3 284.4,183.1 "/>
|
||||||
|
<path fill="#878686" d="M228.2,195.9H19.4c-2.8,0-5-2.2-5-5V188c0-2.8,2.2-5,5-5h208.8c2.8,0,5,2.2,5,5v2.9
|
||||||
|
C233.2,193.6,231,195.9,228.2,195.9z"/>
|
||||||
|
<path fill="#878686" d="M348,223.6H206.5c-2.8,0-5-2.2-5-5v-2.9c0-2.8,2.2-5,5-5H348c2.8,0,5,2.2,5,5v2.9
|
||||||
|
C353,221.4,350.8,223.6,348,223.6z"/>
|
||||||
|
<path fill="#878686" d="M419.3,247.4h-86.1c-2.8,0-5-2.2-5-5v-2.9c0-2.8,2.2-5,5-5h86.1c2.8,0,5,2.2,5,5v2.9
|
||||||
|
C424.3,245.1,422.1,247.4,419.3,247.4z"/>
|
||||||
|
|
||||||
|
<rect x="222.4" y="199" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -77.0099 218.9356)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="18.4" y="199" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -136.7589 74.6888)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="117.4" y="199" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -107.7546 144.7115)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="210.5" y="226.7" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -100.0968 218.6541)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="307.5" y="226.7" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -71.6725 287.2764)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="338.2" y="251.5" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -80.1869 316.2345)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
|
||||||
|
<rect x="410.5" y="251.5" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -59.0137 367.3511)" fill="#878686" width="6.8" height="6.8"/>
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M175.7,73.5v14h-2.9V76.8l-3,1.9l-1.3-2.2l4.6-3.1H175.7z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M290.4,59.2h-9.1v-2.5l3-3c1.1-1.1,1.8-1.9,2.2-2.5s0.6-1.2,0.6-1.9c0-0.7-0.2-1.1-0.5-1.4
|
||||||
|
c-0.3-0.3-0.8-0.4-1.5-0.4c-0.9,0-2,0.1-3.1,0.3l-0.5,0.1l-0.1-2.3c1.4-0.4,2.8-0.6,4.3-0.6c3,0,4.4,1.3,4.4,4
|
||||||
|
c0,1-0.2,1.9-0.7,2.7s-1.3,1.7-2.5,2.8l-2.4,2.2h5.8V59.2z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#8389A8" d="M238.9,145.1c1.6-0.6,3.5-1,5.5-1c2,0,3.5,0.4,4.4,1.2s1.4,2,1.4,3.7c0,1.7-0.7,3-2.1,3.9
|
||||||
|
c0.9,0.5,1.5,0.9,1.8,1.4s0.5,1.3,0.5,2.4c0,1.9-0.5,3.3-1.4,4.3c-1,0.9-2.5,1.4-4.6,1.4c-1.6,0-3.2-0.2-4.9-0.7l-0.9-0.2l0.2-2.8
|
||||||
|
c2,0.3,3.7,0.5,5,0.5c1.8,0,2.8-0.8,2.8-2.4c0-0.7-0.2-1.2-0.7-1.6c-0.5-0.4-1.1-0.6-1.9-0.6h-3.6v-3h3.6c0.6,0,1.1-0.2,1.6-0.7
|
||||||
|
c0.5-0.5,0.7-1.1,0.7-1.7c0-1.3-0.9-1.9-2.6-1.9c-1.2,0-2.5,0.1-3.9,0.4l-0.7,0.1L238.9,145.1z"/>
|
||||||
|
</g>
|
||||||
|
<line fill="none" stroke="#F9D953" stroke-width="3" stroke-miterlimit="10" x1="103.5" y1="269.2" x2="103.5" y2="165.2"/>
|
||||||
|
<polygon fill="#F9D953" points="103.4,178.2 111.2,164.7 95.6,164.7 "/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.9 KiB |
@@ -36,9 +36,9 @@
|
|||||||
|
|
||||||
\table
|
\table
|
||||||
\row
|
\row
|
||||||
\li \inlineimage studio-gs.png
|
\li \inlineimage front-gs.png
|
||||||
\li \inlineimage studio-projects.png
|
\li \inlineimage front-projects.png
|
||||||
\li \inlineimage studio-components.png
|
\li \inlineimage front-ui.png
|
||||||
\li \inlineimage studio-animation.png
|
\li \inlineimage studio-animation.png
|
||||||
\row
|
\row
|
||||||
\li \l{Getting Started}
|
\li \l{Getting Started}
|
||||||
@@ -72,9 +72,9 @@
|
|||||||
\endlist
|
\endlist
|
||||||
\row
|
\row
|
||||||
\li \inlineimage studio-3d-scenes.png
|
\li \inlineimage studio-3d-scenes.png
|
||||||
\li \inlineimage studio-preview.png
|
\li \inlineimage front-preview.png
|
||||||
\li \inlineimage studio-settings.png
|
\li \inlineimage front-advanced.png
|
||||||
\li \inlineimage studio-help.png
|
\li \inlineimage front-help.png
|
||||||
\row
|
\row
|
||||||
\li \b {\l{Editing 3D Scenes}}
|
\li \b {\l{Editing 3D Scenes}}
|
||||||
\list
|
\list
|
||||||
|
@@ -37,7 +37,8 @@ function llvmConfig(hostOS, qtcFunctions)
|
|||||||
{
|
{
|
||||||
var llvmInstallDirFromEnv = Environment.getEnv("LLVM_INSTALL_DIR")
|
var llvmInstallDirFromEnv = Environment.getEnv("LLVM_INSTALL_DIR")
|
||||||
var llvmConfigVariants = [
|
var llvmConfigVariants = [
|
||||||
"llvm-config", "llvm-config-7", "llvm-config-8", "llvm-config-9"
|
// CLANG-UPGRADE-CHECK: Adapt once we require a new minimum version.
|
||||||
|
"llvm-config", "llvm-config-8", "llvm-config-9", "llvm-config-10", "llvm-config-11", "llvm-config-12"
|
||||||
];
|
];
|
||||||
|
|
||||||
// Prefer llvm-config* from LLVM_INSTALL_DIR
|
// Prefer llvm-config* from LLVM_INSTALL_DIR
|
||||||
|
@@ -4,10 +4,10 @@ import qbs.FileInfo
|
|||||||
import "qtc.js" as HelperFunctions
|
import "qtc.js" as HelperFunctions
|
||||||
|
|
||||||
Module {
|
Module {
|
||||||
property string qtcreator_display_version: '4.12.1'
|
property string qtcreator_display_version: '4.12.2'
|
||||||
property string ide_version_major: '4'
|
property string ide_version_major: '4'
|
||||||
property string ide_version_minor: '12'
|
property string ide_version_minor: '12'
|
||||||
property string ide_version_release: '1'
|
property string ide_version_release: '2'
|
||||||
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
|
property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.'
|
||||||
+ ide_version_release
|
+ ide_version_release
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
QTCREATOR_VERSION = 4.12.1
|
QTCREATOR_VERSION = 4.12.2
|
||||||
QTCREATOR_COMPAT_VERSION = 4.12.0
|
QTCREATOR_COMPAT_VERSION = 4.12.0
|
||||||
QTCREATOR_DISPLAY_VERSION = 4.12.1
|
QTCREATOR_DISPLAY_VERSION = 4.12.2
|
||||||
QTCREATOR_COPYRIGHT_YEAR = 2020
|
QTCREATOR_COPYRIGHT_YEAR = 2020
|
||||||
BINARY_ARTIFACTS_BRANCH = 4.12
|
BINARY_ARTIFACTS_BRANCH = 4.12
|
||||||
|
|
||||||
|
@@ -18,8 +18,8 @@
|
|||||||
"specific_qt_versions": [
|
"specific_qt_versions": [
|
||||||
{
|
{
|
||||||
"versions": ["default"],
|
"versions": ["default"],
|
||||||
"sdk_essential_packages": ["build-tools;29.0.2", "ndk-bundle"],
|
"sdk_essential_packages": ["build-tools;29.0.2", "ndk;21.1.6352462"],
|
||||||
"ndk_path": "ndk-bundle"
|
"ndk_path": "ndk/21.1.6352462"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
|
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
|
||||||
|
@@ -39,7 +39,7 @@ try:
|
|||||||
# we do not need to hard fail in cases of partial python installation
|
# we do not need to hard fail in cases of partial python installation
|
||||||
# that will never use this.
|
# that will never use this.
|
||||||
import json
|
import json
|
||||||
except ModuleNotFoundError:
|
except:
|
||||||
print("Python module json not found. "
|
print("Python module json not found. "
|
||||||
"Native combined debugging might not work.")
|
"Native combined debugging might not work.")
|
||||||
pass
|
pass
|
||||||
|
@@ -35,7 +35,7 @@
|
|||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QOperatingSystemVersion>
|
#include <QOperatingSystemVersion>
|
||||||
#include <QRegExp>
|
#include <QRegularExpression>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <qplatformdefs.h>
|
#include <qplatformdefs.h>
|
||||||
@@ -325,10 +325,10 @@ QString FilePath::shortNativePath() const
|
|||||||
QString FileUtils::fileSystemFriendlyName(const QString &name)
|
QString FileUtils::fileSystemFriendlyName(const QString &name)
|
||||||
{
|
{
|
||||||
QString result = name;
|
QString result = name;
|
||||||
result.replace(QRegExp(QLatin1String("\\W")), QLatin1String("_"));
|
result.replace(QRegularExpression(QLatin1String("\\W")), QLatin1String("_"));
|
||||||
result.replace(QRegExp(QLatin1String("_+")), QLatin1String("_")); // compact _
|
result.replace(QRegularExpression(QLatin1String("_+")), QLatin1String("_")); // compact _
|
||||||
result.remove(QRegExp(QLatin1String("^_*"))); // remove leading _
|
result.remove(QRegularExpression(QLatin1String("^_*"))); // remove leading _
|
||||||
result.remove(QRegExp(QLatin1String("_+$"))); // remove trailing _
|
result.remove(QRegularExpression(QLatin1String("_+$"))); // remove trailing _
|
||||||
if (result.isEmpty())
|
if (result.isEmpty())
|
||||||
result = QLatin1String("unknown");
|
result = QLatin1String("unknown");
|
||||||
return result;
|
return result;
|
||||||
@@ -336,8 +336,8 @@ QString FileUtils::fileSystemFriendlyName(const QString &name)
|
|||||||
|
|
||||||
int FileUtils::indexOfQmakeUnfriendly(const QString &name, int startpos)
|
int FileUtils::indexOfQmakeUnfriendly(const QString &name, int startpos)
|
||||||
{
|
{
|
||||||
static QRegExp checkRegExp(QLatin1String("[^a-zA-Z0-9_.-]"));
|
static const QRegularExpression checkRegExp(QLatin1String("[^a-zA-Z0-9_.-]"));
|
||||||
return checkRegExp.indexIn(name, startpos);
|
return checkRegExp.match(name, startpos).capturedStart();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FileUtils::qmakeFriendlyName(const QString &name)
|
QString FileUtils::qmakeFriendlyName(const QString &name)
|
||||||
|
@@ -31,6 +31,7 @@
|
|||||||
#include <QDialogButtonBox>
|
#include <QDialogButtonBox>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
|
#include <QSet>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
namespace Utils {
|
namespace Utils {
|
||||||
|
@@ -29,12 +29,12 @@
|
|||||||
#include <utils/pathchooser.h>
|
#include <utils/pathchooser.h>
|
||||||
#include <utils/pathlisteditor.h>
|
#include <utils/pathlisteditor.h>
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QActionGroup>
|
||||||
#include <QSettings>
|
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
|
#include <QDebug>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QLineEdit>
|
#include <QLineEdit>
|
||||||
|
#include <QSettings>
|
||||||
#include <QSpinBox>
|
#include <QSpinBox>
|
||||||
#include <QTextEdit>
|
#include <QTextEdit>
|
||||||
|
|
||||||
|
@@ -29,9 +29,7 @@
|
|||||||
See std(::experimental)::variant.
|
See std(::experimental)::variant.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TODO: replace by #include <(experimental/)variant> depending on compiler and C++ version
|
|
||||||
#if __cplusplus >= 201703L
|
#if __cplusplus >= 201703L
|
||||||
#error Please delete variant.hpp and the #else section below, then remove this error
|
|
||||||
#include <variant>
|
#include <variant>
|
||||||
|
|
||||||
namespace Utils {
|
namespace Utils {
|
||||||
|
@@ -617,8 +617,9 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(const FilePath &adbTo
|
|||||||
if (adbDevs.empty())
|
if (adbDevs.empty())
|
||||||
return devices;
|
return devices;
|
||||||
|
|
||||||
while (adbDevs.first().startsWith("* daemon"))
|
for (const QString line : adbDevs) // remove the daemon logs
|
||||||
adbDevs.removeFirst(); // remove the daemon logs
|
if (line.startsWith("* daemon"))
|
||||||
|
adbDevs.removeOne(line);
|
||||||
adbDevs.removeFirst(); // remove "List of devices attached" header line
|
adbDevs.removeFirst(); // remove "List of devices attached" header line
|
||||||
|
|
||||||
// workaround for '????????????' serial numbers:
|
// workaround for '????????????' serial numbers:
|
||||||
|
@@ -87,7 +87,8 @@ void AndroidExtraLibraryListModel::updateModel()
|
|||||||
QTC_ASSERT(rc, return);
|
QTC_ASSERT(rc, return);
|
||||||
|
|
||||||
const ProjectNode *node = m_target->project()->findNodeForBuildKey(rc->buildKey());
|
const ProjectNode *node = m_target->project()->findNodeForBuildKey(rc->buildKey());
|
||||||
QTC_ASSERT(node, return);
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
if (node->parseInProgress()) {
|
if (node->parseInProgress()) {
|
||||||
emit enabledChanged(false);
|
emit enabledChanged(false);
|
||||||
|
@@ -206,8 +206,10 @@ AndroidDeviceInfoList AndroidToolManager::androidVirtualDevices(const Utils::Fil
|
|||||||
if (avds.empty())
|
if (avds.empty())
|
||||||
return devices;
|
return devices;
|
||||||
|
|
||||||
while (avds.first().startsWith(QLatin1String("* daemon")))
|
for (const QString line : avds) // remove the daemon logs
|
||||||
avds.removeFirst(); // remove the daemon logs
|
if (line.startsWith("* daemon"))
|
||||||
|
avds.removeOne(line);
|
||||||
|
|
||||||
avds.removeFirst(); // remove "List of devices attached" header line
|
avds.removeFirst(); // remove "List of devices attached" header line
|
||||||
|
|
||||||
bool nextLineIsTargetLine = false;
|
bool nextLineIsTargetLine = false;
|
||||||
|
@@ -454,7 +454,7 @@ void ClangToolRunWorker::finalize()
|
|||||||
{
|
{
|
||||||
const QString toolName = tool()->name();
|
const QString toolName = tool()->name();
|
||||||
if (m_filesNotAnalyzed.size() != 0) {
|
if (m_filesNotAnalyzed.size() != 0) {
|
||||||
appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesAnalyzed.size()),
|
appendMessage(tr("Error: Failed to analyze %1 files.").arg(m_filesNotAnalyzed.size()),
|
||||||
ErrorMessageFormat);
|
ErrorMessageFormat);
|
||||||
Target *target = runControl()->target();
|
Target *target = runControl()->target();
|
||||||
if (target && target->activeBuildConfiguration() && !target->activeBuildConfiguration()->buildDirectory().exists()
|
if (target && target->activeBuildConfiguration() && !target->activeBuildConfiguration()->buildDirectory().exists()
|
||||||
|
@@ -202,7 +202,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
|
|||||||
kitInfo.cToolChain = toolchainFromFlags(kit,
|
kitInfo.cToolChain = toolchainFromFlags(kit,
|
||||||
originalFlags,
|
originalFlags,
|
||||||
ProjectExplorer::Constants::C_LANGUAGE_ID);
|
ProjectExplorer::Constants::C_LANGUAGE_ID);
|
||||||
ToolChainKitAspect::setToolChain(kit, kitInfo.cToolChain);
|
|
||||||
}
|
}
|
||||||
addDriverModeFlagIfNeeded(kitInfo.cToolChain, flags, originalFlags);
|
addDriverModeFlagIfNeeded(kitInfo.cToolChain, flags, originalFlags);
|
||||||
rpp.setFlagsForC({kitInfo.cToolChain, flags});
|
rpp.setFlagsForC({kitInfo.cToolChain, flags});
|
||||||
@@ -211,7 +210,6 @@ RawProjectPart makeRawProjectPart(const Utils::FilePath &projectFile,
|
|||||||
kitInfo.cxxToolChain = toolchainFromFlags(kit,
|
kitInfo.cxxToolChain = toolchainFromFlags(kit,
|
||||||
originalFlags,
|
originalFlags,
|
||||||
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
ProjectExplorer::Constants::CXX_LANGUAGE_ID);
|
||||||
ToolChainKitAspect::setToolChain(kit, kitInfo.cxxToolChain);
|
|
||||||
}
|
}
|
||||||
addDriverModeFlagIfNeeded(kitInfo.cxxToolChain, flags, originalFlags);
|
addDriverModeFlagIfNeeded(kitInfo.cxxToolChain, flags, originalFlags);
|
||||||
rpp.setFlagsForCxx({kitInfo.cxxToolChain, flags});
|
rpp.setFlagsForCxx({kitInfo.cxxToolChain, flags});
|
||||||
|
@@ -102,7 +102,7 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
|
|||||||
const QStringList files = dirInfo.entryList(fileFilter,
|
const QStringList files = dirInfo.entryList(fileFilter,
|
||||||
QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
|
QDir::Name|QDir::IgnoreCase|QDir::LocaleAware);
|
||||||
|
|
||||||
const QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_);
|
QRegularExpression regExp = createRegExp(entryFileName, caseSensitivity_);
|
||||||
if (!regExp.isValid())
|
if (!regExp.isValid())
|
||||||
return {};
|
return {};
|
||||||
|
|
||||||
@@ -122,7 +122,10 @@ QList<LocatorFilterEntry> FileSystemFilter::matchesFor(QFutureInterface<LocatorF
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// file names can match with +linenumber or :linenumber
|
// file names can match with +linenumber or :linenumber
|
||||||
const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entry);
|
const EditorManager::FilePathInfo fp = EditorManager::splitLineAndColumnNumber(entryFileName);
|
||||||
|
regExp = createRegExp(fp.filePath, caseSensitivity_);
|
||||||
|
if (!regExp.isValid())
|
||||||
|
return {};
|
||||||
const QString fileName = QFileInfo(fp.filePath).fileName();
|
const QString fileName = QFileInfo(fp.filePath).fileName();
|
||||||
for (const QString &file : files) {
|
for (const QString &file : files) {
|
||||||
if (future.isCanceled())
|
if (future.isCanceled())
|
||||||
|
@@ -324,6 +324,7 @@ void CppFileSettingsWidget::apply()
|
|||||||
rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText();
|
rc.sourceSuffix = m_ui.sourceSuffixComboBox->currentText();
|
||||||
rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text());
|
rc.headerSearchPaths = trimmedPaths(m_ui.headerSearchPathsEdit->text());
|
||||||
rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text());
|
rc.sourceSearchPaths = trimmedPaths(m_ui.sourceSearchPathsEdit->text());
|
||||||
|
rc.licenseTemplatePath = licenseTemplatePath();
|
||||||
|
|
||||||
if (rc == *m_settings)
|
if (rc == *m_settings)
|
||||||
return;
|
return;
|
||||||
|
@@ -150,6 +150,11 @@ public:
|
|||||||
return fn;
|
return fn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString fullRef(bool includePrefix = false) const
|
||||||
|
{
|
||||||
|
return fullName(includePrefix).join('/');
|
||||||
|
}
|
||||||
|
|
||||||
void insert(const QStringList &path, BranchNode *n)
|
void insert(const QStringList &path, BranchNode *n)
|
||||||
{
|
{
|
||||||
BranchNode *current = this;
|
BranchNode *current = this;
|
||||||
@@ -186,7 +191,7 @@ public:
|
|||||||
}
|
}
|
||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
return {fullName().join('/')};
|
return {fullRef()};
|
||||||
}
|
}
|
||||||
|
|
||||||
int rowOf(BranchNode *node)
|
int rowOf(BranchNode *node)
|
||||||
@@ -346,7 +351,7 @@ QVariant BranchModel::data(const QModelIndex &index, int role) const
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
case Qt::EditRole:
|
case Qt::EditRole:
|
||||||
return index.column() == 0 ? node->fullName().join('/') : QVariant();
|
return index.column() == 0 ? node->fullRef() : QVariant();
|
||||||
case Qt::ToolTipRole:
|
case Qt::ToolTipRole:
|
||||||
if (!node->isLeaf())
|
if (!node->isLeaf())
|
||||||
return QVariant();
|
return QVariant();
|
||||||
@@ -381,7 +386,7 @@ bool BranchModel::setData(const QModelIndex &index, const QVariant &value, int r
|
|||||||
if (newName.isEmpty())
|
if (newName.isEmpty())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
const QString oldName = node->fullName().join('/');
|
const QString oldName = node->fullRef();
|
||||||
if (oldName == newName)
|
if (oldName == newName)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@@ -525,7 +530,7 @@ QString BranchModel::fullName(const QModelIndex &idx, bool includePrefix) const
|
|||||||
return QString();
|
return QString();
|
||||||
if (node == d->headNode)
|
if (node == d->headNode)
|
||||||
return QString("HEAD");
|
return QString("HEAD");
|
||||||
return node->fullName(includePrefix).join('/');
|
return node->fullRef(includePrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList BranchModel::localBranchNames() const
|
QStringList BranchModel::localBranchNames() const
|
||||||
@@ -901,7 +906,8 @@ void BranchModel::updateUpstreamStatus(BranchNode *node)
|
|||||||
{
|
{
|
||||||
if (node->tracking.isEmpty())
|
if (node->tracking.isEmpty())
|
||||||
return;
|
return;
|
||||||
VcsCommand *command = d->client->asyncUpstreamStatus(d->workingDirectory, node->name, node->tracking);
|
VcsCommand *command = d->client->asyncUpstreamStatus(
|
||||||
|
d->workingDirectory, node->fullRef(), node->tracking);
|
||||||
QObject::connect(command, &VcsCommand::stdOutText, node, [this, node](const QString &text) {
|
QObject::connect(command, &VcsCommand::stdOutText, node, [this, node](const QString &text) {
|
||||||
const QStringList split = text.trimmed().split('\t');
|
const QStringList split = text.trimmed().split('\t');
|
||||||
QTC_ASSERT(split.size() == 2, return);
|
QTC_ASSERT(split.size() == 2, return);
|
||||||
|
@@ -8,6 +8,8 @@
|
|||||||
<file>wizards/icon@2x.png</file>
|
<file>wizards/icon@2x.png</file>
|
||||||
<file>wizards/application/CMakeLists.txt</file>
|
<file>wizards/application/CMakeLists.txt</file>
|
||||||
<file>wizards/application/project.qmlproject.tpl</file>
|
<file>wizards/application/project.qmlproject.tpl</file>
|
||||||
|
<file>wizards/application/BareMetal/main.cpp.tpl</file>
|
||||||
|
<file>wizards/application/FreeRTOS/main.cpp.tpl</file>
|
||||||
<file>wizards/application/main.qml.tpl</file>
|
<file>wizards/application/main.qml.tpl</file>
|
||||||
<file>wizards/application/wizard.json</file>
|
<file>wizards/application/wizard.json</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
|
@@ -61,7 +61,7 @@
|
|||||||
namespace McuSupport {
|
namespace McuSupport {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
static const int KIT_VERSION = 4; // Bumps up whenever details in Kit creation change
|
static const int KIT_VERSION = 5; // Bumps up whenever details in Kit creation change
|
||||||
|
|
||||||
static QString packagePathFromSettings(const QString &settingsKey, const QString &defaultPath = {})
|
static QString packagePathFromSettings(const QString &settingsKey, const QString &defaultPath = {})
|
||||||
{
|
{
|
||||||
@@ -441,7 +441,7 @@ void McuSupportOptions::deletePackagesAndTargets()
|
|||||||
|
|
||||||
const QVersionNumber &McuSupportOptions::supportedQulVersion()
|
const QVersionNumber &McuSupportOptions::supportedQulVersion()
|
||||||
{
|
{
|
||||||
static const QVersionNumber v({1, 1});
|
static const QVersionNumber v({1, 2});
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -99,8 +99,6 @@ static McuToolChainPackage *createArmGccPackage()
|
|||||||
Utils::HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++"),
|
Utils::HostOsInfo::withExecutableSuffix("bin/arm-none-eabi-g++"),
|
||||||
"GNUArmEmbeddedToolchain",
|
"GNUArmEmbeddedToolchain",
|
||||||
McuToolChainPackage::TypeArmGcc);
|
McuToolChainPackage::TypeArmGcc);
|
||||||
result->setDownloadUrl(
|
|
||||||
"https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads");
|
|
||||||
result->setEnvironmentVariableName(envVar);
|
result->setEnvironmentVariableName(envVar);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -149,19 +147,6 @@ static McuPackage *createRGLPackage()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static McuPackage *createStm32CubeFwF7SdkPackage()
|
|
||||||
{
|
|
||||||
auto result = new McuPackage(
|
|
||||||
McuPackage::tr("STM32Cube SDK"),
|
|
||||||
"%{Env:STM32Cube_FW_F7_SDK_PATH}",
|
|
||||||
"Drivers/STM32F7xx_HAL_Driver",
|
|
||||||
"Stm32CubeFwF7Sdk");
|
|
||||||
result->setDownloadUrl(
|
|
||||||
"https://www.st.com/content/st_com/en/products/embedded-software/mcus-embedded-software/stm32-embedded-software/stm32cube-mcu-packages/stm32cubef7.html");
|
|
||||||
result->setEnvironmentVariableName("STM32Cube_FW_F7_SDK_PATH");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static McuPackage *createStm32CubeProgrammerPackage()
|
static McuPackage *createStm32CubeProgrammerPackage()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -185,17 +170,6 @@ static McuPackage *createStm32CubeProgrammerPackage()
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static McuPackage *createEvkbImxrt1050SdkPackage()
|
|
||||||
{
|
|
||||||
auto result = new McuPackage(
|
|
||||||
McuPackage::tr("NXP i.MXRT SDK"),
|
|
||||||
"%{Env:EVKB_IMXRT1050_SDK_PATH}", // TODO: Try to not use 1050 specifics
|
|
||||||
"EVKB-IMXRT1050_manifest_v3_5.xml",
|
|
||||||
"EvkbImxrt1050Sdk");
|
|
||||||
result->setDownloadUrl("https://mcuxpresso.nxp.com/en/welcome");
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static McuPackage *createMcuXpressoIdePackage()
|
static McuPackage *createMcuXpressoIdePackage()
|
||||||
{
|
{
|
||||||
const char envVar[] = "MCUXpressoIDE_PATH";
|
const char envVar[] = "MCUXpressoIDE_PATH";
|
||||||
@@ -318,13 +292,8 @@ static QVector<McuTarget *> targetsFromDescriptions(const QList<McuTargetDescrip
|
|||||||
|
|
||||||
static QFileInfoList targetDescriptionFiles(const Utils::FilePath &dir)
|
static QFileInfoList targetDescriptionFiles(const Utils::FilePath &dir)
|
||||||
{
|
{
|
||||||
// Workaround for UL-2390: Instead of "./kits/", walk through "./lib/cmake/Qul/boards/"
|
const QDir kitsDir(dir.toString() + "/kits/", "*.json");
|
||||||
QFileInfoList result;
|
return kitsDir.entryInfoList();
|
||||||
QDirIterator it(dir.toString() + "/lib/cmake/Qul/boards/", {QLatin1String("*.json")},
|
|
||||||
QDir::Files, QDirIterator::Subdirectories);
|
|
||||||
while (it.hasNext())
|
|
||||||
result.append(it.next());
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static QString freeRTOSEnvVarForPlatform(const QString &platform)
|
static QString freeRTOSEnvVarForPlatform(const QString &platform)
|
||||||
|
@@ -0,0 +1,14 @@
|
|||||||
|
#include "%{ProjectName}.h"
|
||||||
|
|
||||||
|
#include <qul/application.h>
|
||||||
|
#include <qul/qul.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Qul::initPlatform();
|
||||||
|
Qul::Application app;
|
||||||
|
static %{ProjectName} item;
|
||||||
|
app.setRootItem(&item);
|
||||||
|
app.exec();
|
||||||
|
return 0;
|
||||||
|
}
|
@@ -4,7 +4,7 @@ project(%{ProjectName} VERSION 0.0.1 LANGUAGES C CXX ASM)
|
|||||||
|
|
||||||
find_package(Qul)
|
find_package(Qul)
|
||||||
|
|
||||||
add_executable(%{ProjectName})
|
add_executable(%{ProjectName} ${OS}/main.cpp)
|
||||||
qul_target_qml_sources(%{ProjectName} %{MainQmlFile})
|
qul_target_qml_sources(%{ProjectName} %{MainQmlFile})
|
||||||
|
|
||||||
target_link_libraries(%{ProjectName} Qul::QuickUltralite)
|
target_link_libraries(%{ProjectName} Qul::QuickUltralite)
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
#include "%{ProjectName}.h"
|
||||||
|
|
||||||
|
#include <qul/application.h>
|
||||||
|
#include <qul/qul.h>
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
#include <FreeRTOS.h>
|
||||||
|
#include <task.h>
|
||||||
|
|
||||||
|
#ifndef QUL_STACK_SIZE
|
||||||
|
#error QUL_STACK_SIZE must be defined.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static void Qul_Thread(void *argument);
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
Qul::initPlatform();
|
||||||
|
|
||||||
|
if (xTaskCreate(Qul_Thread, "QulExec", QUL_STACK_SIZE, 0, 4, 0) != pdPASS) {
|
||||||
|
std::printf("Task creation failed!.\\r\\n");
|
||||||
|
configASSERT(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
vTaskStartScheduler();
|
||||||
|
|
||||||
|
// Should not reach this point
|
||||||
|
configASSERT(false);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Qul_Thread(void *argument)
|
||||||
|
{
|
||||||
|
Qul::Application app;
|
||||||
|
static %{ProjectName} item;
|
||||||
|
app.setRootItem(&item);
|
||||||
|
app.exec();
|
||||||
|
}
|
@@ -1,4 +1,3 @@
|
|||||||
pragma main;
|
|
||||||
import QtQuick 2.0
|
import QtQuick 2.0
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
|
@@ -52,6 +52,16 @@
|
|||||||
"target": "%{ProjectDirectory}/%{ProjectName}.qmlproject",
|
"target": "%{ProjectDirectory}/%{ProjectName}.qmlproject",
|
||||||
"openInEditor": false
|
"openInEditor": false
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"source": "BareMetal/main.cpp.tpl",
|
||||||
|
"target": "%{ProjectDirectory}/BareMetal/main.cpp",
|
||||||
|
"openInEditor": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"source": "FreeRTOS/main.cpp.tpl",
|
||||||
|
"target": "%{ProjectDirectory}/FreeRTOS/main.cpp",
|
||||||
|
"openInEditor": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"source": "main.qml.tpl",
|
"source": "main.qml.tpl",
|
||||||
"target": "%{ProjectDirectory}/%{MainQmlFile}",
|
"target": "%{ProjectDirectory}/%{MainQmlFile}",
|
||||||
|
@@ -134,21 +134,22 @@ LocalQmlPreviewSupport::LocalQmlPreviewSupport(ProjectExplorer::RunControl *runC
|
|||||||
const auto currentTarget = runControl->target();
|
const auto currentTarget = runControl->target();
|
||||||
const auto *qmlBuildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(currentTarget->buildSystem());
|
const auto *qmlBuildSystem = qobject_cast<QmlProjectManager::QmlBuildSystem *>(currentTarget->buildSystem());
|
||||||
|
|
||||||
const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>();
|
if (const auto aspect = runControl->aspect<QmlProjectManager::QmlMainFileAspect>()) {
|
||||||
const QString mainScript = aspect->mainScript();
|
const QString mainScript = aspect->mainScript();
|
||||||
const QString currentFile = aspect->currentFile();
|
const QString currentFile = aspect->currentFile();
|
||||||
|
|
||||||
const QString mainScriptFromProject = qmlBuildSystem->targetFile(
|
const QString mainScriptFromProject = qmlBuildSystem->targetFile(
|
||||||
Utils::FilePath::fromString(mainScript)).toString();
|
Utils::FilePath::fromString(mainScript)).toString();
|
||||||
|
|
||||||
const QString currentFileFromProject = qmlBuildSystem->targetFile(
|
const QString currentFileFromProject = qmlBuildSystem->targetFile(
|
||||||
Utils::FilePath::fromString(currentFile)).toString();
|
Utils::FilePath::fromString(currentFile)).toString();
|
||||||
|
|
||||||
if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) {
|
if (!currentFile.isEmpty() && qmlProjectRunConfigurationArguments.last().contains(mainScriptFromProject)) {
|
||||||
qmlProjectRunConfigurationArguments.removeLast();
|
qmlProjectRunConfigurationArguments.removeLast();
|
||||||
auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments);
|
auto commandLine = Utils::CommandLine(runnable.commandLine().executable(), qmlProjectRunConfigurationArguments);
|
||||||
commandLine.addArg(currentFile);
|
commandLine.addArg(currentFile);
|
||||||
runnable.setCommandLine(commandLine);
|
runnable.setCommandLine(commandLine);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::QtcProcess::addArg(&runnable.commandLineArguments,
|
Utils::QtcProcess::addArg(&runnable.commandLineArguments,
|
||||||
|