Merge remote-tracking branch 'origin/14.0'

Change-Id: I5e5ffe1b986fd8b4e5d60c9a5864541747ef890c
This commit is contained in:
Eike Ziller
2024-06-19 11:30:02 +02:00
107 changed files with 631 additions and 326 deletions

View File

@@ -5,6 +5,18 @@ add_feature_info("Build documentation" WITH_DOCS "")
option(WITH_ONLINE_DOCS "Build online documentation" OFF)
add_feature_info("Build online documentation" WITH_ONLINE_DOCS "")
option(BUILD_DOCS_BY_DEFAULT "Build documentation by default" OFF)
add_feature_info("Build documentation by default" BUILD_DOCS_BY_DEFAULT "")
if (BUILD_DOCS_BY_DEFAULT)
set(EXCLUDE_DOCS_FROM_ALL "")
set(INCLUDE_DOCS_INTO_ALL "ALL")
else()
set(EXCLUDE_DOCS_FROM_ALL "EXCLUDE_FROM_ALL")
set(INCLUDE_DOCS_INTO_ALL "")
endif()
# Get information on directories from qmake
# as this is not yet exported by cmake.
# Used for QT_INSTALL_DOCS
@@ -46,13 +58,13 @@ endfunction()
function(_setup_doc_targets)
# Set up important targets:
if (NOT TARGET html_docs)
add_custom_target(html_docs COMMENT "Build HTML documentation")
add_custom_target(html_docs ${INCLUDE_DOCS_INTO_ALL} COMMENT "Build HTML documentation")
endif()
if (NOT TARGET qch_docs)
add_custom_target(qch_docs COMMENT "Build QCH documentation")
add_custom_target(qch_docs ${INCLUDE_DOCS_INTO_ALL} COMMENT "Build QCH documentation")
endif()
if (NOT TARGET docs)
add_custom_target(docs COMMENT "Build documentation")
add_custom_target(docs ${INCLUDE_DOCS_INTO_ALL} COMMENT "Build documentation")
add_dependencies(docs html_docs qch_docs)
endif()
endfunction()
@@ -114,6 +126,7 @@ function(_setup_qdoc_targets _qdocconf_file _retval)
set(_html_target "html_docs_${_target}")
add_custom_target("${_html_target}"
${INCLUDE_DOCS_INTO_ALL}
${_full_qdoc_command} -outputdir "${_html_outputdir}" "${_qdocconf_file}"
${_qdoc_index_args} ${_qdoc_include_args}
COMMENT "Build HTML documentation from ${_qdocconf_file}"
@@ -126,7 +139,7 @@ function(_setup_qdoc_targets _qdocconf_file _retval)
# Install HTML files as a special component
install(DIRECTORY "${_html_outputdir}" DESTINATION "${_arg_INSTALL_DIR}"
COMPONENT html_docs EXCLUDE_FROM_ALL)
COMPONENT html_docs ${EXCLUDE_DOCS_FROM_ALL})
set("${_retval}" "${_html_outputdir}" PARENT_SCOPE)
endfunction()
@@ -154,6 +167,7 @@ function(_setup_qhelpgenerator_targets _qdocconf_file _html_outputdir)
set(_qch_target "qch_docs_${_target}")
set(_html_target "html_docs_${_target}")
add_custom_target("${_qch_target}"
${INCLUDE_DOCS_INTO_ALL}
Qt::qhelpgenerator "${_html_outputdir}/${_target}.qhp" -o "${_qch_outputdir}/${_target}.qch"
COMMENT "Build QCH documentation from ${_qdocconf_file}"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
@@ -163,7 +177,7 @@ function(_setup_qhelpgenerator_targets _qdocconf_file _html_outputdir)
add_dependencies(qch_docs "${_qch_target}")
install(FILES "${_qch_outputdir}/${_target}.qch" DESTINATION "${_arg_INSTALL_DIR}"
COMPONENT qch_docs EXCLUDE_FROM_ALL)
COMPONENT qch_docs ${EXCLUDE_DOCS_FROM_ALL})
endfunction()
# Helper functions:
@@ -283,6 +297,7 @@ function(add_qtc_doc_attribution target attribution_file output_file qdocconf_fi
file(MAKE_DIRECTORY ${output_dir})
# add target
add_custom_target(${target}
${INCLUDE_DOCS_INTO_ALL}
Qt6::qtattributionsscanner -o "${output_file}" --basedir "${PROJECT_SOURCE_DIR}" ${attribution_file}
COMMENT "Create attributions ${output_file} from ${attribution_file}"
DEPENDS "${attribution_file}"

View File

@@ -99,7 +99,7 @@ Editing
### Python
* Added options for updating Python Language Server
([Documentation] (https://doc-snapshots.qt.io/qtcreator-14.0/creator-language-servers.html))
([Documentation](https://doc-snapshots.qt.io/qtcreator-14.0/creator-language-servers.html))
### Language Server Protocol
@@ -110,18 +110,23 @@ Editing
### Compiler Explorer
* Added a wizard template for code that uses Qt
* Added a wizard template for code that uses Qt to `File`> `New File`>
`Compiler Explorer`
[Documentation](https://doc.qt.io/qtcreator/creator-how-to-create-compiler-explorer-sessions.html)
### Models
* Added more visual attributes for relations
* Added support for linked files
* Added support for custom images
* Added support for linked files in model element properties
* Added support for custom images in model element properties
([Documentation](https://doc-snapshots.qt.io/qtcreator-14.0/creator-how-to-create-models.html))
### SCXML
* Added visualization of conditions on transitions
* Added visualization of conditions on transitions by using square brackets: `[]`
([QTCREATORBUG-21946](https://bugreports.qt.io/browse/QTCREATORBUG-21946))
([Documentation](https://doc-snapshots.qt.io/qtcreator-14.0/creator-scxml.html))
Projects
--------

View File

@@ -67,8 +67,14 @@ if(WITH_ONLINE_DOCS)
_add_doc(${IDE_DOC_FILE_ONLINE} "qtcreatordev/qtcreator-dev-online.qdocconf")
endif()
if (BUILD_DOCS_BY_DEFAULT)
set(EXCLUDE_DOCS_FROM_ALL "")
else()
set(EXCLUDE_DOCS_FROM_ALL "EXCLUDE_FROM_ALL")
endif()
install(DIRECTORY config
DESTINATION ${IDE_HEADER_INSTALL_PATH}/doc
COMPONENT Devel
EXCLUDE_FROM_ALL
${EXCLUDE_DOCS_FROM_ALL}
)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(TextFinder VERSION 0.1 LANGUAGES CXX)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -519,5 +519,5 @@
The \l {Application Output} view shows some information even if the
Performance Analyzer displays error messages.
\sa {Analyze}{How To: Analyze}, {Analyzers}, {Analyzing Code}
\sa {Analyze}{How To: Analyze}, {Analyzers}, {Analyzing Code}, {Kits}
*/

View File

@@ -151,5 +151,5 @@
is especially useful when viewing large trace files that are difficult to
visualize using the built-in trace-viewer (\c{chrome://tracing}).
\sa {Analyze}{How To: Analyze}, {Analyzers}
\sa {Activate kits for a project}, {Analyze}{How To: Analyze}, {Analyzers}
*/

View File

@@ -392,7 +392,7 @@
\image qtcreator-valgrind-remote-settings.png {Start Remote Analysis dialog}
\li Select the application to run and analyze, as well as the
\l{glossary-buildandrun-kit}{kit} to use.
\l{Kits}{kit} to use.
\endlist

View File

@@ -149,8 +149,7 @@
building Qt from \c modules/Core.json and uses it instead of the version
in \c sdk_definitions.json.
\sa {Android}{How To: Develop for Android},
{Developing for Android}
\sa {Android}{How To: Develop for Android}, {Developing for Android}, {Kits}
*/
/*!

View File

@@ -11,7 +11,7 @@
\brief Settings for running applications on Android devices.
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.
@@ -66,5 +66,5 @@
\endcode
\sa {Activate kits for a project}, {Configure projects for running},
{Android}{How To: Develop for Android}
{Android}{How To: Develop for Android}, {Kits}
*/

View File

@@ -499,6 +499,6 @@
To add a permission, select it from the list, and then click \uicontrol Add.
\sa {Build and Run}{How To: Build and Run},
{Android}{How To: Develop for Android}, {Android Run Settings}
{Android}{How To: Develop for Android}, {Android Run Settings}, {Kits}
*/

View File

@@ -153,5 +153,5 @@
{Remote Linux}{How To: Develop for remote Linux},
{Run on many platforms}, {Debugging}, {Debuggers}, {Debugger},
{Developing for \B2Q Devices}, {Developing for Remote Linux Devices},
{Profiling QML Applications}
{Profiling QML Applications}, {Kits}
*/

View File

@@ -71,7 +71,8 @@
The available settings depend on the debug server provider.
\sa {Enable and disable plugins}, {Bare Metal}{How To: Develop for Bare Metal}
\sa {Add kits}, {Enable and disable plugins},
{Bare Metal}{How To: Develop for Bare Metal}
*/
/*!
@@ -296,6 +297,7 @@
\previouspage creator-how-tos.html
\ingroup creator-how-to-bare-metal
\ingroup creator-how-to-manage-kits
\title Add Bare Metal devices

View File

@@ -11,15 +11,15 @@
\brief Settings for building applications with CMake.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.
Configuring medium-sized to large CMake projects in \QC can be a
challenge due to the number of variables that you need to pass to
CMake to configure the project correctly. To make this easier,
\QC creates an initial configuration for you based on the kit
settings and displays it in \uicontrol {Initial Configuration} in
\QC creates an initial configuration for you based on the \l{Kits}
{kit preferences} and displays it in \uicontrol {Initial Configuration} in
the \uicontrol {Build Settings} of the project.
Or, you can use CMake presets to configure CMake.

View File

@@ -133,12 +133,13 @@
\previouspage creator-how-tos.html
\ingroup creator-how-to-build-with-cmake
\ingroup creator-how-to-manage-kits
\title Add CMake tools
\QC automatically detects the CMake executable that you specify in the
\c PATH. You can add paths to other CMake executables and use them in
different build and run \l{glossary-buildandrun-kit}{kits}.
different build and run \l{Kits}{kits}.
To see the CMake installations that \QC automatically detects:
@@ -183,8 +184,8 @@
\image qtcreator-kits-cmake.png {Kits preferences}
\sa {Build with CMake}{How To: Build with CMake}, {CMake}, {Add kits},
{kits-tab}{Kits}
\sa {Build with CMake}{How To: Build with CMake},
{Manage Kits}{How To: Manage Kits}, {CMake}, {Kits}
*/
/*!

View File

@@ -11,7 +11,7 @@
\brief Settings for building applications with the Conan package manager.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.
@@ -30,5 +30,5 @@
Select \uicontrol {Build missing} to build packages from source if binary
packages are not found.
\sa {Conan Package Manager}
\sa {Activate kits for a project}, {Conan Package Manager}
*/

View File

@@ -58,7 +58,7 @@
\endtable
The debugger plugin automatically selects a suitable native debugger for
each \l{kits-tab}{kit} from the ones found on the computer. The automatic
each \l{Kits}{kit} from the ones found on the computer. The automatic
setup fails if the native debugger is not installed on the computer or
if \QC does not support the installed version.
@@ -148,5 +148,5 @@
\image qtcreator-run-settings-python.webp {Run settings for a Python project}
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}, {Kits}
*/

View File

@@ -29,7 +29,7 @@
\section1 Setting Up the Debugger
The debugger plugin automatically selects a suitable native debugger for
each \l{kits-tab}{kit} from the ones found on your system. You can select
each \l{Kits}{kit} from the ones found on your system. You can select
another kit. To specify the debugger and compiler to use for each kit, go to
\preferences > \uicontrol Kits.
@@ -212,7 +212,7 @@
\l{Debugging a Qt Quick Application}.
\sa {Debugging a C++ Application}, {Debug}{How To: Debug}, {Debuggers},
{Debugger}
{Debugger}, {Kits}
*/
/*!
@@ -301,7 +301,7 @@
\title Start and debug an external application
To debug any executable on your local or on a remote
machine without using a project, specify a build and run kit that
machine without using a project, specify a build and run \l{Kits}{kit} that
identifies the device to debug the application on.
While the \e{start external} debugger mode does not strictly require a
@@ -342,7 +342,8 @@
configuration to use.
\endlist
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}
\sa {Activate kits for a project}, {Debug}{How To: Debug}, {Debugging},
{Debuggers}, {Debugger}
*/
/*!
@@ -406,7 +407,8 @@
process to start.
\endlist
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}
\sa {Activate kits for a project}, {Debug}{How To: Debug}, {Debugging},
{Debuggers}, {Debugger}
*/
/*!

View File

@@ -281,6 +281,6 @@
updated in the running application, but not in the source code.
\if defined(qtcreator)
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}
\sa {Debug}{How To: Debug}, {Debugging}, {Debuggers}, {Debugger}, {Kits}
\endif
*/

View File

@@ -250,8 +250,8 @@
To disable the embedded code model and use \QMLLS for everything,
select \uicontrol {Use \QMLLS advanced features}.
Also, \QC tries to use \QMLLS shipped with
the Qt version in your current kit. To override that behavior and always use
Also, \QC tries to use \QMLLS shipped with the Qt version in your current
\l{Kits}{kit}. To override that behavior and always use
\QMLLS of the highest registered Qt version, select
\uicontrol {Use \QMLLS from latest Qt version}.
@@ -262,7 +262,7 @@
> \uicontrol {Initial Configuration}.
\sa {Manage Language Servers}{How To: Manage Language Servers},
{Enabling and Disabling Messages}, {CMake Build Configuration},
{Enabling and Disabling Messages}, {CMake Build Configuration}, {Kits}
{Language Servers}
*/

View File

@@ -30,15 +30,15 @@
You can create the following types of structural diagrams:
\list
\li Package diagrams, which consist of packages and their relationships,
\li Package diagrams, which consist of packages and their relationships
and visualize how the system is packaged.
\li Class diagrams, which consists of classes, dependencies,
inheritance, associations, aggregation, and composition, and
show a system in an object-oriented way.
\li Component diagrams, which represent a set of components and their
relationships, and show the implementation of a system.
relationships and show the implementation of a system.
\li Deployment diagrams, which represent a set of software and hardware
components and their relationships, and visualize the deployment
components and their relationships and visualize the deployment
of a system.
\endlist
@@ -55,19 +55,17 @@
\section1 Editing Models
You can create models that have several different structural or
behavioral diagrams.
You can add elements to the diagrams and specify properties for them. You
can either use standard model elements or add your own elements with custom
icons.
You can create models that have several different structural or behavioral
diagrams. Add elements to the diagrams and specify properties for them. Use
standard model elements or add your own elements with custom icons.
\image qtcreator-modeleditor.png {Class diagram in the model editor}
\image qtcreator-modeleditor.webp {Class diagram in the model editor}
\caption A class diagram in the model editor.
You can add model elements to diagrams in the following ways:
Add elements to diagrams in the following ways:
\list
\li Drag model elements from the element tool bar (1) to the
\li Drag elements from the element tool bar (1) to the
editor (2).
\li Select tool bar buttons (3) to add elements to the element tree (4).
\li Drag elements from the element tree to the editor to add them and
@@ -79,22 +77,26 @@
\section2 Grouping Elements
You can group elements by surrounding them with a boundary. When you move
the boundary, all elements within it are moved together. Similarly, drag
a swimlane to the diagram. When you move the swimlane, all elements right
to the swimlane (for vertical swimlanes) or below it (for horizontal swimlanes)
will be moved together. A vertical swimlane is created when you drop the
swimlane icon on the top border of the diagram and a horizontal swimlane
is created when you drop the icon near the left border.
To group elements, surround them with a \e boundary. When you move
the boundary, all elements within it move together.
Classes or other objects that you lay on packages are moved with the packages.
You can move individual elements and modify their properties (5) by selecting
them. You can also use \e multiselection to group elements temporarily.
Similarly, drag a \e swimlane to the diagram. When you move the swimlane, all
elements right to the swimlane (for vertical swimlanes) or below it (for
horizontal swimlanes) move together.
To create a vertical swimlane, drop the swimlane icon on the top border of
the diagram. To create a horizontal swimlane, drop the icon near the left
border.
Classes or other objects that you lay on packages move with the packages.
To move individual elements and modify their properties (5), select them.
Use \e multiselection to group elements temporarily.
\section2 Aligning Elements
To align elements in the editor, select several elements and right-click to
open a context menu. Select actions in the \uicontrol {Align Objects} menu
open a context menu. Select actions in \uicontrol {Align Objects} menu
to align elements horizontally or vertically or to adjust their width and
height.
@@ -111,20 +113,42 @@
then select \uicontrol {Add Related Elements} in the context menu.
By default, when you select an element in a diagram, it is highlighted also
in the \uicontrol Structure view. To change this behavior so that selecting
an element in the \uicontrol Structure makes it highlighted also in the
diagram, click and hold the \inlineimage icons/linkicon.png
button, and then select \uicontrol {Synchronize Diagram with Structure}.
To keep the selections in the diagram and the \uicontrol Structure view
in \uicontrol Structure view. To change this behavior so that selecting
an element in \uicontrol Structure makes it highlighted also in the
diagram, select \inlineimage icons/linkicon.png and then select
\uicontrol {Synchronize Diagram with Structure}.
To keep the selections in the diagram and \uicontrol Structure view
synchronized, select \uicontrol {Keep Synchronized}.
\section2 Linking from Element Names to Files
To link to a file from the name of an element, select the file in
\uicontrol {Linked file}.
\section2 Zooming into Diagrams
To zoom into diagrams, select the \uicontrol {Zoom In} toolbar button,
press \key Ctrl++, or press \key Ctrl and roll the mouse wheel up. To zoom
out of diagrams, select \uicontrol {Zoom Out}, press \key Ctrl+-, or press
\key Ctrl and roll the mouse wheel down. To reset the diagram size to 100%,
select \uicontrol {Reset Zoom} or press \key Ctrl+0.
To zoom into diagrams:
\list
\li Select \uicontrol {Zoom In} toolbar button.
\li Press \key Ctrl++.
\li Press \key Ctrl and roll the mouse wheel up.
\endlist
To zoom out of diagrams:
\list
\li Select \uicontrol {Zoom Out}.
\li Press \key Ctrl+-.
\li Press \key Ctrl and roll the mouse wheel down.
\endlist
To reset the diagram size to 100%:
\list
\li Select \uicontrol {Reset Zoom}.
\li Press \key Ctrl+0.
\endlist
\section2 Printing Diagrams
@@ -137,15 +161,27 @@
\section2 Exporting Diagrams as Images
To save diagrams as images, select \uicontrol File >
To save diagrams as images, go to \uicontrol File, and then select
\uicontrol {Export Diagram}. To save only the selected parts of a diagram,
select \uicontrol {Export Selected Elements}.
\section1 Adding Custom Elements
The model editor has the following built-in element types: package,
component, class, and item. For package, component, and class elements, you
can specify custom icons. The color, size, and form of the icon are
component, class, and item.
To use custom icons for the built-in elements, select an image file in
\uicontrol {Image} in element properties.
\image qtcreator-model-editor-component-diagram.webp {Component properties}
\caption The Image field in Component properties.
\section2 Using Definition Files
For package, component, and class elements, you can use definition files to
specify custom icons.
The color, size, and form of the icon are
determined by a stereotype. If you attach the stereotype to an element, the
element icon is replaced by the custom icon. For example, you can attach the
entity and interface stereotypes to classes and the database stereotype to
@@ -185,7 +221,7 @@
and templates for existing types (such as a composition relation that
can be drawn between classes).
You can add your own definition file and save it with the file extension
Add your own definition file and save it with the file extension
\e .def to add custom colors and icons for stereotypes, elements, or tool
bars. Either store this file in the same directory as the
\e standard.def file or select the root element of a model and apply your
@@ -203,47 +239,52 @@
\title Create UML-style models
You can use wizards to create UML-style models and \e {scratch models}.
Use wizards to create UML-style models and \e {scratch models}.
To create models and edit them in the model editor:
\list 1
\li Select \uicontrol File > \uicontrol {New File} > \uicontrol Modeling
> \uicontrol Model > \uicontrol Choose.
\li Go to \uicontrol File > \uicontrol {New File} > \uicontrol Modeling
> \uicontrol Model, and then select \uicontrol Choose.
The model file opens in the model editor.
\li Drag model elements to the editor and select them to
specify properties for them:
\image qtcreator-modeleditor-packages.png {Package diagram in the model editor}
\image qtcreator-modeleditor-packages.webp {Package diagram in the model editor}
\caption A package diagram in the model editor.
\list 1
\li In the \uicontrol Stereotypes field, enter the stereotype to
apply to the model element or select a predefined stereotype
\li In \uicontrol Stereotypes, enter the stereotype to
apply to the element or select a predefined stereotype
from the list.
\li In the \uicontrol Name field, give a name to the model element.
\li In \uicontrol Name, give a name to the element.
\li Select the \uicontrol {Auto sized} check box to reset the
element to its default size after you have changed the element
\li In \uicontrol {Linked file}, select a file to create a link to
it from the element name.
\li In \uicontrol Image, select an image to use as a custom icon for
the element.
\li Select \uicontrol {Auto sized} to reset the
element to its default size after you changed the element
size by dragging its borders.
\li In the \uicontrol Color field, select the color of the model
element.
\li In \uicontrol Color, select the color of the element.
\li In the \uicontrol Role field, select a \e role to make the model
\li In \uicontrol Role, select a \e role to make the model
element color lighter, darker, or softer. You can also remove
color and draw the element outline or flatten the element by
removing gradients.
\li Select the \uicontrol Emphasized check box to draw the model
\li Select \uicontrol Emphasized to draw the model
element with a thicker line.
\li In the \uicontrol {Stereotype display} field, select:
\li In \uicontrol {Stereotype display}, select:
\list
@@ -283,12 +324,12 @@
\list 1
\li In the \uicontrol Stereotypes field, select the
\li In \uicontrol Stereotypes, select the
\e stereotype to apply to the relation.
\li In the \uicontrol Name field, give a name to the relation.
\li In \uicontrol Name, give a name to the relation.
\li In the \uicontrol Direction field, you can change the direction
\li In \uicontrol Direction, change the direction
of the connection or make it bidirectional.
\endlist
@@ -321,11 +362,12 @@
Therefore, you can assign a \l{Keyboard Shortcuts}{keyboard shortcut} to the
wizard and use it to create and open models with empty diagrams.
To create a scratch model, select \uicontrol File > \uicontrol {New File} >
\uicontrol Modeling > \uicontrol {Scratch Model} > \uicontrol Choose.
To create a scratch model, go to \uicontrol File > \uicontrol {New File} >
\uicontrol Modeling > \uicontrol {Scratch Model}, and then select
\uicontrol Choose.
\sa {Create class diagrams}, {Create component diagrams},
{Create package diagrams}, {Model Editor}
\sa {Create Models and Diagrams}{How To: Create Models and Diagrams},
{Model Editor}
*/
/*!
@@ -336,27 +378,27 @@
\title Create package diagrams
You can create UML-style models that contain \e {package diagrams}.
Create UML-style models that contain \e {package diagrams}.
They show packages and their relationships to visualize how the
system is packaged.
You can add nested package elements to a package diagram. The depth of the
Add nested package elements to a package diagram. The depth of the
elements in the diagram corresponds to the depth of the structured model.
Elements stacked on other elements of the same type are automatically drawn
in a darker shade of the selected color.
\image qtcreator-modeleditor-packages.png {Package diagram in the model editor}
\image qtcreator-modeleditor-packages.webp {Package diagram in the model editor}
\caption A package diagram in the model editor.
Right-click a package to open a context menu, where you can select
Right-click a package to open a context menu, and select
\uicontrol {Create Diagram} to create a new package diagram within the
model. You can drag items from the element tree to the diagram.
model. Drag items from the element tree to the diagram.
To update the include dependencies of the package, select
\uicontrol {Update Include Dependencies}.
\sa {Create class diagrams},{Create component diagrams},
{Create UML-style models}, {Model Editor}
\sa {Create Models and Diagrams}{How To: Create Models and Diagrams},
{Model Editor}
*/
/*!
@@ -367,11 +409,11 @@
\title Create class diagrams
You can create UML-style models that contain \e {class diagrams}. They show
Create UML-style models that contain \e {class diagrams}. They show
classes, dependencies, inheritance, associations, aggregation, and
composition to visualize a system in an object-oriented way.
\image qtcreator-modeleditor-classes.png {Class diagram in the model editor}
\image qtcreator-modeleditor-classes.webp {Class diagram in the model editor}
\caption A class diagram in the model editor.
To create class diagrams:
@@ -387,10 +429,10 @@
\list
\li In the \uicontrol Template field, specify the template to
\li In \uicontrol Template, specify the template to
use.
\li In the \uicontrol {Template display} field, select the
\li In \uicontrol {Template display}, select the
display format for the template:
\list
@@ -409,15 +451,15 @@
\endlist
\li In the \uicontrol Members field, specify members for the
\li In \uicontrol Members, specify members for the
class, as described in \l {Specify members}.
\li Select \uicontrol {Clean Up} to format the contents of
the \uicontrol Members field depending on their visibility
\uicontrol Members depending on their visibility
(private, protected, public) and following the rules set for
whitespace, line breaks, and so on.
\li Select the \uicontrol {Show members} check box to show
\li Select \uicontrol {Show members} to show
the members in the diagram.
\endlist
@@ -431,17 +473,36 @@
\section1 Add relations
Elements in class diagrams can have the following types of relations:
inheritance, association, and dependency. The end points of association
relations can have the following properties: role, cardinality, navigable,
and relationship.
\list
\li Aggregation
\li Association
\li Composition
\li Dependency
\li Inheritance
\endlist
The end points of association relations can have the following properties:
\list
\li Cardinality
\li Navigable
\li Role
\li Relationship
\endlist
\section2 Create self-relations
To create self-relations, start creating a new association and press
\key Shift to create a new \e {sampling point} while dragging the
association. Create another sampling point and drag the association
to the same class.
To add more points, press \key Shift and click a relation. To delete a
point, press \key Ctrl and click a point.
\section2 Add and delete points
To add more points, press \key Shift and click a relation.
To delete a point, press \key Ctrl and click a point.
\section2 Specify members
@@ -490,8 +551,8 @@
\endlist
\sa {Create component diagrams}, {Create package diagrams},
{Create UML-style models}, {Model Editor}
\sa {Create Models and Diagrams}{How To: Create Models and Diagrams},
{Model Editor}
*/
/*!
@@ -502,14 +563,19 @@
\title Create component diagrams
You can create UML-style models that contain \e {component diagrams}.
They epresent a set of components and their relationships, and show the
Create UML-style models that contain \e {component diagrams}.
They represent a set of components and their relationships, and show the
implementation of a system.
You can add source code components, such as libraries, databases, programs,
and architectural layers to a component diagram. To add components to
component diagrams, drag source code from \uicontrol Projects to
the editor, and select \uicontrol {Add Component}.
Add source code components, such as libraries, databases, programs,
and architectural layers to a component diagram.
To add components to component diagrams:
\list 1
\li Drag source code from \uicontrol Projects to the editor.
\li Select \uicontrol {Add Component}.
\endlist
\image qtcreator-model-editor-component-diagram.webp {Component diagram in the model editor}
\caption A component diagram in the model editor.
@@ -518,6 +584,6 @@
the component in the editor or select \uicontrol {Show Definition} in the
context menu.
\sa {Create class diagrams}, {Create package diagrams},
{Create UML-style models}, {Model Editor}
\sa {Create Models and Diagrams}{How To: Create Models and Diagrams},
{Model Editor}
*/

View File

@@ -233,6 +233,9 @@
The editor center-aligns transition labels, but you can drag them to
other positions.
Conditions on transitions appear below the transition lines within square
brackets ([]).
To add edge points to transitions, select a transition line. You can add
only two edge points for each line. The editor automatically removes
unnecessary edge points. To remove the selected edge point, select

View File

@@ -41,7 +41,7 @@
instructions to install \QC.
To develop with Qt, you also need a Qt version. You can register Qt versions
in the stand-alone \QC to use them in \l{kits-tab}{kits}.
in the stand-alone \QC to use them in \l{Kits}{kits}.
\section2 Use package managers
@@ -89,5 +89,5 @@
{Compiling \QC} and \l{https://wiki.qt.io/Building_Qt_Creator_from_Git}
{Building Qt Creator from Git}.
\sa {Register installed Qt versions}
\sa {Manage Kits}{How To: Manage Kits}, {Register installed Qt versions}
*/

View File

@@ -53,8 +53,8 @@
This also enables code completion of QML code and removes error messages.
The following example illustrates how to specify the import path for qmake
projects so that it works when switching between build and run kits for
different target platforms:
projects so that it works when switching between build and run \l{Kits}{kits}
for different target platforms:
\code
TEMPNAME = $${QMAKE_QMAKE}

View File

@@ -10,7 +10,7 @@
\brief Build and clean steps for Incredibuild.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.

View File

@@ -147,7 +147,8 @@
If the current device state is \uicontrol Connected, (the traffic light icon is
orange), you need to configure the device using Xcode.
\sa {iOS}{How To: Develop for iOS}, {Developing for iOS}
\sa {Activate kits for a project}, {iOS}{How To: Develop for iOS},
{Developing for iOS}
*/
/*!

View File

@@ -34,6 +34,6 @@
Debugging works transparently if GDB server is installed on the device and
it is compatible with the GDB on the host.
\sa {Remote Linux}{How To: Develop for remote Linux}, {Run on many platforms}, {Compilers},
{Embedded Platforms}, {kit-preferences}{Kits}
\sa {Remote Linux}{How To: Develop for remote Linux},
{Run on many platforms}, {Compilers}, {Embedded Platforms}, {Kits}
*/

View File

@@ -11,7 +11,7 @@
\brief Settings for running applications on \B2Q devices.
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.
@@ -25,6 +25,6 @@
host and on the device.
\sa {\B2Q}{How To: Develop for \B2Q}, {Manage Kits}{How To: Manage Kits},
{Configure projects for running}, {kits-tab}{Kits},
{Configure projects for running}, {Kits},
{\B2Q Deploy Configuration}
*/

View File

@@ -11,7 +11,7 @@
\brief Settings for running applications on Linux-based devices.
Specify run settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify run settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Run >
\uicontrol {Run Settings}.
@@ -37,6 +37,6 @@
Select the \uicontrol {Forward to local display} check box to show a remotely
running X11 client on a local display.
\sa {Activate kits for a project}, {Configure projects for running}, {kits-tab}{Kits},
\sa {Activate kits for a project}, {Configure projects for running}, {Kits},
{Remote Linux}{How To: Develop for remote Linux}
*/

View File

@@ -181,6 +181,7 @@
\previouspage creator-how-tos.html
\ingroup creator-how-to-mcu
\ingroup creator-how-to-manage-kits
\title Manage MCU Kits
@@ -209,7 +210,7 @@
software required for MCU development with the current kit.
\sa {Enable and disable plugins}, {MCUs}{How To: Develop for MCUs},
{Developing for MCUs}
{Manage Kits}{How To: Manage Kits}, {Developing for MCUs}
*/
/*!

View File

@@ -10,7 +10,7 @@
\brief Settings for building applications with Meson.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.

View File

@@ -21,7 +21,7 @@
\QC automatically detects the Meson and Ninja executables specified in the
\c PATH. You can add paths to other Meson or Ninja executables and use them
in different build and run \l{glossary-buildandrun-kit}{kits}.
in different build and run \l{Kits}{kits}.
\note Enable the Meson plugin to use it.
@@ -54,7 +54,7 @@
\image qtcreator-kits-meson.png "Setting Meson executable in Kit preferences"
For more information, see \l {kits-tab}{Kits}.
For more information, see \l {Kits}.
\section1 Editing Meson Build Descriptions

View File

@@ -20,7 +20,7 @@
However, if you install the stand-alone \QC package, build \QC from sources,
or install several Qt versions, you may need to tell \QC where to find the
Qt versions and compilers by adding the paths to them and by creating
\l{glossary-buildandrun-kit}{kits} that use them.
\l{Kits}{kits} that use them.
To make \QC behave more like your favorite code editor or IDE,
change the preferences for keyboard shortcuts, color schemes, generic

View File

@@ -50,7 +50,7 @@
\li \b {\l{Building and Running an Example}}
To check that \l{https://www.qt.io/download-qt-installer}
{\QOI} created \l{glossary-buildandrun-kit}
{\QOI} created \l{Kits}
{build and run kits}, open an example application and run it.
If you have not done so before, go to
\l{Building and Running an Example}.

View File

@@ -570,7 +570,7 @@
\li Open project
\li Ctrl+Shift+O
\row
\li Select the \l{glossary-buildandrun-kit}{kit} to build and run your project with
\li Select the \l{Kits}{kit} to build and run your project with
\li Ctrl+T
\row
\li Run

View File

@@ -181,7 +181,7 @@
Run and deploy Qt applications that you build for different target
platforms or with different compilers, debuggers, or Qt versions.
\l{glossary-buildandrun-kit}{Kits} define the tools, \l{glossary-device}
\l{Kits} define the tools, \l{glossary-device}
{device} type and other settings to use when building and running your
project.

View File

@@ -11,7 +11,7 @@
\brief Settings for building applications with qmake.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit}
Specify build settings for the selected \l{Kits}{kit}
in \uicontrol Projects > \uicontrol {Build & Run}
> \uicontrol Build > \uicontrol {Build Settings}.

View File

@@ -9,19 +9,27 @@
\title Create compiler explorer sessions
To create a compiler explorer session for a C++ or Python project:
\note Enable the Compiler Explorer plugin to use it.
To create a compiler explorer session for a Qt and C++, C++, or Python
project:
\list 1
\li Go to \uicontrol File > \uicontrol {New File}.
\li Select \uicontrol {Compiler Explorer} > \uicontrol C++ or
\uicontrol Python > \uicontrol Choose.
\li Select \uicontrol {Compiler Explorer}, and then select one of the
following:
\list
\li \uicontrol {Compiler Explorer C++ Source}
\li \uicontrol {Compiler Explorer Python Source}
\li \uicontrol {Compiler Explorer Qt & C++ Source}
\endlist
\image qtcreator-new-project-compiler-explorer.webp {New File dialog}
\li Select \uicontrol Choose.
\li Follow the instructions of the wizard to create an example
compiler explorer session as a JSON-based \c .qtce file and to open
it.
\endlist
\note Enable the Compiler Explorer plugin to use it.
\sa {Create files}, {Enable and disable plugins}, {Explore compiler code}
*/

View File

@@ -39,5 +39,5 @@
To remove the selected property, select \uicontrol Remove.
\sa {Activate kits for a project}, {Add kits}, {kits-tab}{Kits}
\sa {Activate kits for a project}, {Add kits}, {Kits}
*/

View File

@@ -51,7 +51,7 @@
(4) to list examples that you can run on \B2Q devices.
\li In \uicontrol {Configure Project}, select
\l{glossary-buildandrun-kit}{kits} for building the example for the
\l{Kits}{kits} for building the example for the
target platforms.
\image qtcreator-configure-project.webp {Configure Project view}

View File

@@ -16,7 +16,7 @@
\title Build for many platforms
You can build applications for many target platforms, or using different
compilers, debuggers or Qt versions. \l{glossary-buildandrun-kit}{Kits}
compilers, debuggers or Qt versions. \l{Kits}
define the tools, \l{glossary-device}{device} type, and other settings to use.
By default, when you run the application, you
@@ -34,9 +34,8 @@
\list 1
\li Select the \uicontrol {Build and Run Kit Selector} icon or go to
\uicontrol Build > \uicontrol {Open Build and Run Kit Selector} to select the
build and run \l{glossary-buildandrun-kit}{kit} or an
\l{Manage AVDs}{Android device}.
\uicontrol Build > \uicontrol {Open Build and Run Kit Selector} to
select the build and run kit or an \l{Manage AVDs}{Android device}.
\image qtcreator-kit-selector.webp {Kit selector}

View File

@@ -18,7 +18,7 @@
You can develop Qt applications on several 32-bit and 64-bit platforms.
Usually, you can build Qt applications on each platform with GCC, a
vendor-supplied compiler, or a third party compiler. In \QC, a
\l{glossary-buildandrun-kit}{kit} specifies the compiler and other
\l{Kits}{kit} specifies the compiler and other
necessary tools for building an application for and running it on a
particular platform.

View File

@@ -63,7 +63,7 @@
To test applications on \l{glossary-device}{devices}, you can install
toolchains for mobile and embedded development as part of Qt distributions.
The installers create \l{glossary-buildandrun-kit}{kits} and specify build
The installers create \l{Kits}{kits} and specify build
and run settings for the installed device types. However, you might need to
install and configure some additional software on the devices to be able to
\l{Develop for Devices}{connect} to them from the computer.
@@ -81,7 +81,7 @@
To create a new project, select \uicontrol File > \uicontrol{New Project} and
select the type of your project. The contents of the wizard dialogs depend
on the project type and the \l{glossary-buildandrun-kit}{kits} that you
on the project type and the \l{Kits}{kits} that you
select in the \uicontrol {Kit Selection} dialog. Follow the instructions of
the wizard.

View File

@@ -21,7 +21,7 @@
debugger of the low level virtual machine (LLVM) project, LLDB.
The debugger plugin automatically selects a suitable native debugger for
each \l{glossary-buildandrun-kit}{kit} from the ones found on your system.
each \l{Kits}{kit} from the ones found on your system.
To override this choice, select \preferences > \uicontrol Kits.
To add debuggers:

View File

@@ -45,7 +45,7 @@
\li Select \uicontrol Add to start from an empty kit or \uicontrol Clone
to clone the selected kit and edit its preferences.
\image qtcreator-kits.png
\li Set \l{kits-tab}{kit preferences} according to the build system and
\li Set \l{Kits}{kit preferences} according to the build system and
device type.
\li Select \uicontrol OK to create the kit.
@@ -58,8 +58,7 @@
choose the kit to use. To set the selected kit as the default kit,
select \uicontrol {Make Default}.
\sa {Activate kits for a project}, {Add debuggers}, {Add Qt versions},
{Open projects}, {Compilers}, {kits-tab}{Kits}
\sa {Manage Kits}{How To: Manage Kits}, {Compilers}, {Kits}
*/
/*!
@@ -214,7 +213,6 @@
\uicontrol Manage to add installed Ninja tools to the list.
\endtable
\sa {Activate kits for a project}, {Open projects}, {Add CMake Tools},
{Add compilers}, {Add debuggers}, {Add kits}, {Add Qt versions},
\sa {Manage Kits}{How To: Manage Kits}, {Add CMake Tools},
{Edit Qbs profiles}
*/

View File

@@ -20,7 +20,7 @@
\note Enable the Nim plugin to use Nimble and Nim.
In addition, you have to download and install Nim and set up a
\l {glossary-buildandrun-kit}{kit} that contains the Nim compiler.
\l {Kits}{kit} that contains the Nim compiler.
You can use wizards to create Nim and Nimble projects.

View File

@@ -13,6 +13,7 @@
\previouspage creator-how-tos.html
\ingroup creator-how-to-projects-configure
\ingroup creator-how-to-manage-kits
\title Open projects
@@ -64,7 +65,7 @@
\list 1
\li In \uicontrol {Configure Project}, select
\l{glossary-buildandrun-kit}{kits} for building
\l{Kits}{kits} for building
and running your project.
\image qtcreator-configure-project.webp {Configure Project view}
\li Select \uicontrol {Configure Project}.
@@ -112,5 +113,5 @@
later. Select the \inlineimage icons/pin.png
(\uicontrol Pin) button to pin the progress bar back to the toggle button.
\sa {Activate kits for a project}, {Add kits}, {kits-tab}{Kits},
\sa {Manage Kits}{How To: Manage Kits}, {Kits},
*/

View File

@@ -11,7 +11,7 @@
\brief Settings for building applications with Qbs.
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.

View File

@@ -16,7 +16,7 @@
\title Configure projects for building
Specify build settings for the selected \l{glossary-buildandrun-kit}{kit} in
Specify build settings for the selected \l{Kits}{kit} in
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
\uicontrol {Build Settings}.

View File

@@ -16,7 +16,7 @@
When you install Qt for a development or target platform, such as Linux,
\macos, Windows, Android or QNX, \l{https://www.qt.io/download-qt-installer}
{\QOI} creates \l{glossary-buildandrun-kit}{kits} for the development targets.
{\QOI} creates \l{Kits}{kits} for the development targets.
Select the kits to use for a project in the \uicontrol {Configure Projects}
view when you open the project for the first time. At least one kit must be
@@ -65,7 +65,7 @@
\section1 Specifying Run Settings
The run settings to specify depend on the type of the project and on the
\l{kits-tab}{Run device} that you select for the kit.
\l{Kits}{Run device} that you select for the kit.
\QC automatically creates deploy and run configurations for your project.
@@ -112,6 +112,7 @@
\previouspage creator-how-tos.html
\ingroup creator-how-to-projects-configure
\ingroup creator-how-to-manage-kits
\title Activate kits for a project
@@ -175,5 +176,5 @@
might still see them listed for existing projects. You can copy the build,
deploy, and run steps from them to other kits.
\sa {Add kits}, {Configuring Projects}, {kits-tab}{Kits}
\sa {Manage Kits}{How To: Manage Kits}, {Configuring Projects}, {Kits}
*/

View File

@@ -9,7 +9,7 @@
\title Specify Valgrind settings for a project
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -10,7 +10,7 @@
\title Enable debugging
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -11,7 +11,7 @@
\brief Settings for running applications on desktop device types.
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -16,7 +16,7 @@
\title Configure projects for running
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -28,7 +28,7 @@
\li Select the \uicontrol {Build and Run Kit Selector} icon or go to
\uicontrol Build > \uicontrol {Open Build and Run Kit Selector} to select the
build and run \l{glossary-buildandrun-kit}{kit}.
build and run \l{Kits}{kit}.
\image qtcreator-kit-selector.webp {Kit selector}

View File

@@ -74,7 +74,7 @@
\section1 Select the Python version
The \l{kits-tab}{kits} you select for the project in \uicontrol Projects >
The \l{Kits}{kits} you select for the project in \uicontrol Projects >
\uicontrol {Build & Run} set the Python version to use.
The \l {Edit Mode}{Edit mode} toolbar shows the current Python version.

View File

@@ -31,7 +31,7 @@
\brief Settings for running Qt for Python applications.
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -11,7 +11,7 @@
\brief Settings for running applications on Linux-based devices.
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.

View File

@@ -11,11 +11,11 @@
\brief Settings for running Qt Quick UI Prototype projects (.qmlproject).
Specify settings for running applications on the \l {kits-tab}{Run device} that
Specify settings for running applications on the \l {Kits}{Run device} that
you select for a kit in \uicontrol Projects > \uicontrol {Build & Run} >
\uicontrol Run > \uicontrol {Run Settings}.
\note Select the \uicontrol Desktop device type for the \l{kits-tab}{Run device}
\note Select the \uicontrol Desktop device type for the \l{Kits}{Run device}
in the kit.
\image qtquick-ui-prototype-run-settings.webp {Run Settings for a Qt Quick UI Prototype project}
@@ -42,5 +42,5 @@
\endtable
\sa {Create Qt Quick UI Prototypes}, {Activate kits for a project},
{Configure projects for running}, {kits-tab}{Kits}
{Configure projects for running}, {Kits}
*/

View File

@@ -76,12 +76,12 @@
\li Select \uicontrol Next to open the \uicontrol {Kit Selection}
dialog.
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
\li Select \l{Kits}{kits} for the platforms that
you want to build the application for.
\note Kits are listed if they have been specified in \preferences >
\uicontrol Kits.
For more information, see \l {Add kits} and \l {kits-tab}{Kits}.
For more information, see \l {Add kits} and \l {Kits}.
\li Select \uicontrol Next to open the \uicontrol {Project Management}
dialog.
@@ -161,12 +161,11 @@
\li Select \uicontrol Next to open the \uicontrol {Kit Selection}
dialog.
\li Select \l{glossary-buildandrun-kit}{kits} for the platforms that
\li Select \l{Kits}{kits} for the platforms that
you want to build the application for.
\note Kits are listed if they have been specified in \preferences >
\uicontrol Kits.
For more information, see \l {Add kits} and \l {kits-tab}{Kits}.
\li Select \uicontrol Next to open the \uicontrol {Project Management}
dialog.
@@ -197,5 +196,6 @@
To use JavaScript and image files in the application, copy them to the
project folder.
\sa {Create Qt Quick Applications}, {Creating Projects}
\sa {Create Qt Quick Applications}, {Manage Kits}{How To: Manage Kits},
{Creating Projects}
*/

View File

@@ -37,14 +37,14 @@
\li Select \uicontrol Next to open the \uicontrol {Kit Selection} dialog.
\li Select Qt 6.4 or later \l{glossary-buildandrun-kit}{kits} for the
\li Select Qt 6.4 or later \l{Kits}{kits} for the
platforms that you want to build the application for. To build
applications for mobile devices, select kits also for Android and
iOS.
\note The list shows kits that you specify in \preferences >
\uicontrol Kits.
For more information, see \l {Add kits} and \l {kits-tab}{Kits}.
For more information, see \l {Add kits} and \l {Kits}.
\li Select \uicontrol Next to open the \uicontrol {Project Management}
dialog.

View File

@@ -37,7 +37,7 @@
\li Set up QML debugging for the project. For more information, see
\l{Setting Up QML Debugging}.
\if defined(qtcreator)
\li In the \uicontrol Projects mode, select a \l{glossary-buildandrun-kit}
\li In the \uicontrol Projects mode, select a \l{Kits}
{kit} with Qt version 4.7.4 or later.
\endif
\note To profile applications on \l{glossary-device}{devices}, you

View File

@@ -294,6 +294,6 @@
\sa {View output}
\if defined(qtcreator)
\sa {Add custom output parsers}
\sa {Add custom output parsers}, {Kits}
\endif
*/

View File

@@ -33,7 +33,7 @@
\row
\li \inlineimage numbers/02.png
\li Kit selector
\li Select the appropriate \l{glossary-buildandrun-kit}{kit} for building
\li Select the appropriate \l{Kits}{kit} for building
the project and running it on particular hardware.
\li \l{Activate kits for a project}
\row

View File

@@ -76,7 +76,7 @@
\image qtcreator-new-project-qt-versions-qt-gui.png {Kit Selection dialog}
\li Select build and run \l{glossary-buildandrun-kit}{kits} for your
\li Select build and run \l{Kits}{kits} for your
project.
\li Select \uicontrol Next or \uicontrol Continue to open the

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
#! [1]
# Remove when sharing with others.

View File

@@ -3,7 +3,10 @@
<component type="desktop">
<id>org.qt-project.qtcreator.desktop</id>
<name>Qt Creator</name>
<summary>Provides a cross-platform, complete integrated development environment (IDE) for application developers to create applications for multiple platforms and devices</summary>
<developer id="org.qt-project">
<name>Qt Project</name>
</developer>
<summary>Cross-platform integrated development environment (IDE)</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0</project_license>
<description>
@@ -23,16 +26,27 @@
newcomers to Qt.
</p>
</description>
<launchable type="desktop-id">org.qt-project.qtcreator.desktop</launchable>
<url type="homepage">https://www.qt.io/ide/</url>
<project_group>Qt</project_group>
<content_rating type="oars-1.1" />
<screenshots>
<screenshot type="default">
<caption>Application development life-cycle</caption>
<image>https://doc.qt.io/qtcreator/images/qt-app-dev-flow.webp</image>
</screenshot>
<screenshot>
<caption>Overview</caption>
<image>https://doc.qt.io/qtcreator/images/qtcreator-breakdown.png</image>
</screenshot>
<screenshot>
<image>https://doc.qt.io/qtcreator/images/qtcreator-gs-build-example-open.png</image>
<caption>Examples</caption>
<image>https://doc.qt.io/qtcreator/images/qtcreator-examples-open.webp</image>
</screenshot>
<screenshot>
<caption>Code editor</caption>
<image>https://doc.qt.io/qtcreator/images/qtcreator-spliteditorview.png</image>
</screenshot>
</screenshots>
<releases>
@@ -40,6 +54,7 @@
<description>
<p>Qt Creator v${IDE_VERSION_DISPLAY}</p>
</description>
<url>https://github.com/qt-creator/qt-creator/releases/tag/v${IDE_VERSION_DISPLAY}</url>
</release>
</releases>
</component>

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(examples LANGUAGES CXX)

View File

@@ -124,7 +124,7 @@ class Dumper(DumperBase):
pass
if nativeValue.type().code() == TypeCode.Enum:
val.ldisplay = self.enumValue(nativeValue)
elif not nativeValue.type().resolved and nativeValue.type().code() == TypeCode.Struct and not nativeValue.hasChildren():
elif not nativeValue.type().resolved() and nativeValue.type().code() == TypeCode.Struct and not nativeValue.hasChildren():
val.ldisplay = self.enumValue(nativeValue)
val.isBaseClass = val.name == nativeValue.type().name()
val.typeid = self.from_native_type(nativeValue.type())
@@ -172,15 +172,17 @@ class Dumper(DumperBase):
self.type_name_cache[typeid] = nativeType.name()
self.type_code_cache[typeid] = code
self.type_target_cache[typeid] = self.typeid_for_string(targetName)
if nativeType.resolved():
self.type_size_cache[typeid] = nativeType.bitsize() // 8
return typeid
code = TypeCode.Struct
self.type_name_cache[typeid] = nativeType.name()
if nativeType.resolved():
self.type_size_cache[typeid] = nativeType.bitsize() // 8
self.type_code_cache[typeid] = code
self.type_modulename_cache[typeid] = nativeType.module()
self.type_code_cache[typeid] = code
self.type_enum_display_cache[typeid] = lambda intval, addr, form: \
self.nativeTypeEnumDisplay(nativeType, intval, form)
return typeid
@@ -312,25 +314,6 @@ class Dumper(DumperBase):
self.qtDeclarativeHookDataSymbolName = lambda: hookSymbolName
return hookSymbolName
def qtNamespace(self):
namespace = ''
qstrdupSymbolName = '*qstrdup'
coreModuleName = self.qtCoreModuleName()
if coreModuleName is not None:
qstrdupSymbolName = '%s!%s' % (coreModuleName, qstrdupSymbolName)
resolved = cdbext.resolveSymbol(qstrdupSymbolName)
if resolved:
name = resolved[0].split('!')[1]
namespaceIndex = name.find('::')
if namespaceIndex > 0:
namespace = name[:namespaceIndex + 2]
self.qtNamespace = lambda: namespace
self.qtCustomEventFunc = self.parseAndEvaluate(
'%s!%sQObject::customEvent' %
(self.qtCoreModuleName(), namespace)).address()
self.qtNamespace = lambda: namespace
return namespace
def extractQtVersion(self):
try:
qtVersion = self.parseAndEvaluate(
@@ -549,7 +532,6 @@ class Dumper(DumperBase):
return
self.putAddress(value.address())
self.putField('size', self.type_size(value.typeid))
if typeobj.code == TypeCode.Function:
#DumperBase.warn('FUNCTION VALUE: %s' % value)
@@ -923,3 +905,12 @@ class Dumper(DumperBase):
if self.useDynamicType:
val.typeid = self.dynamic_typeid_at_address(val.typeid, address)
return val
def fetchInternalFunctions(self):
coreModuleName = self.qtCoreModuleName()
ns = self.qtNamespace()
if coreModuleName is not None:
self.qtCustomEventFunc = self.parseAndEvaluate(
'%s!%sQObject::customEvent' %
(self.qtCoreModuleName(), ns)).address()
self.fetchInternalFunctions = lambda: None

View File

@@ -717,7 +717,7 @@ class DumperBase():
c = ord(item[0])
if c in (45, 46) or (c >= 48 and c < 58): # '-', '.' or digit.
if '.' in item:
res.append(float(item))
self.type_template_arguments_cache[(typeid, idx)] = float(item)
else:
if item.endswith('l'):
item = item[:-1]
@@ -2446,7 +2446,7 @@ typename))
self.checkIntType(base)
self.checkIntType(n)
inner_typeid = self.typeid_for_typish(inner_typish)
inner_size = self.type_size_cache.get(inner_typeid, None)
inner_size = self.type_size(inner_typeid)
self.putNumChild(n)
#self.warn('ADDRESS: 0x%x INNERSIZE: %s INNERTYPE: %s' % (base, inner_size, inner_typeid))
enc = self.type_encoding_cache.get(inner_typeid, None)
@@ -3565,7 +3565,9 @@ typename))
return target_typeid
self.type_code_cache[typeid] = TypeCode.Typedef
self.type_target_cache[typeid] = target_typeid
self.type_size_cache[typeid] = self.type_size_cache.get(target_typeid, None)
size = self.type_size_cache.get(target_typeid, None)
if size is not None:
self.type_size_cache[typeid] = size
return typeid
def createType(self, typish, size=None):
@@ -3711,7 +3713,7 @@ typename))
typeid = self.cheap_typeid_from_name_nons(typename)
if typeid:
size = self.type_size_cache.get(typeid, None)
size = self.type_size(typeid)
if size is not None:
return size, typeid
@@ -3719,7 +3721,7 @@ typename))
self.warn("LOOKUP FIELD TYPE: %s TYPEOBJ: %s" % (typename, typeobj))
if typeobj is not None:
typeid = typeobj.typeid
size = self.type_size_cache.get(typeid, None)
size = self.type_size(typeid)
if size is not None:
return size, typeid
@@ -3950,8 +3952,10 @@ typename))
if size is not None:
return size
if size is None:
nativeType = self.type_nativetype(typeid)
if self.isCdb:
size = nativeType.bitsize() // 8
else:
if not self.type_size_cache.get(typeid):
self.from_native_type(nativeType)
size = self.type_size_cache.get(typeid, None)
@@ -4202,7 +4206,7 @@ typename))
res = self.readRawMemory(address, size)
if len(res) > 0:
return res
raise RuntimeError('CANNOT READ %d BYTES FROM ADDRESS: %s %s' % (size, address))
raise RuntimeError('CANNOT READ %d BYTES FROM ADDRESS: %s' % (size, address))
def value_display(self, value):
type_code = self.type_code(value.typeid)

View File

@@ -235,6 +235,21 @@ def qdump__QStandardItem(d, value):
vtable, dptr = value.split('pp')
if d.qtVersionAtLeast(0x060000):
if d.isCdb:
if d.isDebugBuild is None:
try:
value["d_ptr"]
d.isDebugBuild = True
except Exception:
d.isDebugBuild = False
if d.isDebugBuild:
model = value["d_ptr"]["d"]["model"]
values = value["d_ptr"]["d"]["values"]
children = value["d_ptr"]["d"]["children"]
else:
model, parent, values, children, rows, cols, item = \
d.split('pp{@QList<@QStandardItemData>}{@QList<@QStandardItem *>}IIp', dptr)
else:
model, parent, values, children, rows, cols, item = \
d.split('pp{@QList<@QStandardItemData>}{@QList<@QStandardItem *>}IIp', dptr)
else:
@@ -249,7 +264,9 @@ def qdump__QStandardItem(d, value):
d.putExpandable()
if d.isExpanded():
with Children(d):
d.putSubItem('[model]', d.createValue(model, '@QStandardItemModel'))
if isinstance(model, int): # Used as address.
model = d.createValue(model, '@QStandardItemModel')
d.putSubItem('[model]', model)
d.putSubItem('[values]', values)
d.putSubItem('[children]', children)
@@ -385,9 +402,9 @@ def qdump__QDateTime(d, value):
# - [QTime time;]
# - - uint mds;
# - Spec spec;
dateSize = 8 if qtVersionAtLeast(0x050000) else 4 # Qt5: qint64, Qt4 uint
dateSize = 8 if d.qtVersionAtLeast(0x050000) else 4 # Qt5: qint64, Qt4 uint
# 4 byte padding after 4 byte QAtomicInt if we are on 64 bit and QDate is 64 bit
refPlusPadding = 8 if qtVersionAtLeast(0x050000) and d.ptrSize() == 8 else 4
refPlusPadding = 8 if d.qtVersionAtLeast(0x050000) and d.ptrSize() == 8 else 4
dateBase = base + refPlusPadding
timeBase = dateBase + dateSize
mds = d.extractInt(timeBase)
@@ -1031,14 +1048,14 @@ def qdump__QHostAddress(d, value):
else:
(ipString, scopeId, a4, pad, a6, protocol, isParsed) \
= d.split('{@QString}{@QString}{@quint32}I16sI{bool}', dd)
elif qtVersionAtLeast(0x050600): # 5.6.0 at f3aabb42
elif d.qtVersionAtLeast(0x050600): # 5.6.0 at f3aabb42
if d.ptrSize() == 8 or d.isWindowsTarget():
(ipString, scopeId, a4, pad, a6, protocol, isParsed) \
= d.split('{@QString}{@QString}{@quint32}I16sI{bool}', dd)
else:
(ipString, scopeId, a4, a6, protocol, isParsed) \
= d.split('{@QString}{@QString}{@quint32}16sI{bool}', dd)
elif qtVersionAtLeast(0x050000): # 5.2.0 at 62feb088
elif d.qtVersionAtLeast(0x050000): # 5.2.0 at 62feb088
(ipString, scopeId, a4, a6, protocol, isParsed) \
= d.split('{@QString}{@QString}{@quint32}16sI{bool}', dd)
else: # 4.8.7 at b05d05f

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(%{TestCaseName} LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} LANGUAGES C)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.14)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(%{ProjectName} VERSION 0.1 LANGUAGES CXX)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
# Remove when sharing with others.
@if %{JS: Util.isDirectory('%{QtCreatorBuild}/Qt Creator.app/Contents/Resources')}

View File

@@ -677,7 +677,7 @@ private:
/*!
\typealias CustomTask::TaskDoneHandler
Type alias for \c std::function<DoneResult(const Task &, DoneWith)>.
Type alias for \c std::function<DoneResult(const Task &, DoneWith)> or DoneResult.
The \c TaskDoneHandler is an optional argument of a custom task element's constructor.
Any function with the above signature, when passed as a task done handler,
@@ -702,6 +702,9 @@ private:
the DoneWith argument. When the handler returns the DoneResult value,
the task's final result may be tweaked inside the done handler's body by the returned value.
For a \c TaskDoneHandler of the DoneResult type, no additional handling is executed,
and the task finishes unconditionally with the passed value of DoneResult.
\sa CustomTask(), TaskSetupHandler, GroupDoneHandler
*/
@@ -1056,7 +1059,7 @@ private:
/*!
\typealias GroupItem::GroupDoneHandler
Type alias for \c std::function<DoneResult(DoneWith)>.
Type alias for \c std::function<DoneResult(DoneWith)> or DoneResult.
The \c GroupDoneHandler is an argument of the onGroupDone() element.
Any function with the above signature, when passed as a group done handler,
@@ -1071,6 +1074,10 @@ private:
the DoneWith argument. When the handler returns the DoneResult value,
the group's final result may be tweaked inside the done handler's body by the returned value.
For a \c GroupDoneHandler of the DoneResult type, no additional handling is executed,
and the group finishes unconditionally with the passed value of DoneResult,
ignoring the group's workflow policy.
\sa onGroupDone(), GroupSetupHandler, CustomTask::TaskDoneHandler
*/
@@ -1987,7 +1994,9 @@ SetupResult TaskTreePrivate::continueStart(RuntimeContainer *container, SetupRes
{
const SetupResult groupAction = startAction == SetupResult::Continue ? startChildren(container)
: startAction;
if (groupAction != SetupResult::Continue) {
if (groupAction == SetupResult::Continue)
return groupAction;
const bool bit = container->updateSuccessBit(groupAction == SetupResult::StopWithSuccess);
RuntimeIteration *parentIteration = container->parentIteration();
RuntimeTask *parentTask = container->m_parentTask;
@@ -2002,8 +2011,7 @@ SetupResult TaskTreePrivate::continueStart(RuntimeContainer *container, SetupRes
m_runtimeRoot.reset();
emitDone(result ? DoneWith::Success : DoneWith::Error);
}
}
return groupAction;
return toSetupResult(result);
}
SetupResult TaskTreePrivate::startChildren(RuntimeContainer *container)
@@ -2435,7 +2443,7 @@ bool TaskTreePrivate::invokeDoneHandler(RuntimeTask *node, DoneWith doneWith)
\section2 Task's Done Handler
When a running task finishes, the task tree invokes an optionally provided done handler.
The handler should always take a \c const \e reference to the associated task class object:
The handler should take a \c const \e reference to the associated task class object:
\code
const auto onSetup = [](QProcess &process) {

View File

@@ -350,15 +350,19 @@ private:
template <typename Handler>
static GroupDoneHandler wrapGroupDone(Handler &&handler)
{
static constexpr bool isDoneResultType = std::is_same_v<Handler, DoneResult>;
// R, V, D stands for: Done[R]esult, [V]oid, [D]oneWith
static constexpr bool isRD = isInvocable<DoneResult, Handler, DoneWith>();
static constexpr bool isR = isInvocable<DoneResult, Handler>();
static constexpr bool isVD = isInvocable<void, Handler, DoneWith>();
static constexpr bool isV = isInvocable<void, Handler>();
static_assert(isRD || isR || isVD || isV,
static_assert(isDoneResultType || isRD || isR || isVD || isV,
"Group done handler needs to take (DoneWith) or (void) as an argument and has to "
"return void or DoneResult. The passed handler doesn't fulfill these requirements.");
"return void or DoneResult. Alternatively, it may be of DoneResult type. "
"The passed handler doesn't fulfill these requirements.");
return [handler](DoneWith result) {
if constexpr (isDoneResultType)
return handler;
if constexpr (isRD)
return std::invoke(handler, result);
if constexpr (isR)
@@ -496,7 +500,8 @@ private:
template <typename Handler>
static InterfaceDoneHandler wrapDone(Handler &&handler) {
if constexpr (std::is_same_v<Handler, TaskDoneHandler>)
return {}; // When user passed {} for the done handler.
return {}; // User passed {} for the done handler.
static constexpr bool isDoneResultType = std::is_same_v<Handler, DoneResult>;
// R, V, T, D stands for: Done[R]esult, [V]oid, [T]ask, [D]oneWith
static constexpr bool isRTD = isInvocable<DoneResult, Handler, const Task &, DoneWith>();
static constexpr bool isRT = isInvocable<DoneResult, Handler, const Task &>();
@@ -506,11 +511,14 @@ private:
static constexpr bool isVT = isInvocable<void, Handler, const Task &>();
static constexpr bool isVD = isInvocable<void, Handler, DoneWith>();
static constexpr bool isV = isInvocable<void, Handler>();
static_assert(isRTD || isRT || isRD || isR || isVTD || isVT || isVD || isV,
static_assert(isDoneResultType || isRTD || isRT || isRD || isR || isVTD || isVT || isVD || isV,
"Task done handler needs to take (const Task &, DoneWith), (const Task &), "
"(DoneWith) or (void) as arguments and has to return void or DoneResult. "
"Alternatively, it may be of DoneResult type. "
"The passed handler doesn't fulfill these requirements.");
return [handler](const TaskInterface &taskInterface, DoneWith result) {
if constexpr (isDoneResultType)
return handler;
const Adapter &adapter = static_cast<const Adapter &>(taskInterface);
if constexpr (isRTD)
return std::invoke(handler, *adapter.task(), result);

View File

@@ -80,5 +80,7 @@ extend_qtc_library(Sqlite
extend_qtc_library(Sqlite
CONDITION QTC_STATIC_BUILD
PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
PROPERTIES
COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
INTERFACE_COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FI../3rdparty/sqlite/sqlite_static_config.h,-include../3rdparty/sqlite/sqlite_static_config.h>
)

View File

@@ -2142,6 +2142,7 @@ void ProcessPrivate::setupDebugLog()
qCDebug(processLog).nospace().noquote()
<< "Process " << currentNumber << " starting ("
<< qPrintable(blockingMessage(property(QTC_PROCESS_BLOCKING_TYPE)))
<< (isMainThread() ? ", main thread" : "")
<< "): " << m_setup.m_commandLine.toUserOutput();
setProperty(QTC_PROCESS_NUMBER, currentNumber);
});

View File

@@ -676,7 +676,7 @@ void AndroidRunnerWorker::asyncStart()
stopOnSuccess,
ProcessTask(onPidSetup, onPidDone, CallDoneIf::Success),
TimeoutTask([](std::chrono::milliseconds &timeout) { timeout = 200ms; },
[] { return DoneResult::Error; })
DoneResult::Error)
}.withTimeout(45s),
ProcessTask(onUserSetup, onUserDone, CallDoneIf::Success),
onGroupDone([pidStorage, this] { onProcessIdChanged(*pidStorage); })

View File

@@ -330,7 +330,7 @@ void CMakeEditorWidget::findLinkAt(const QTextCursor &cursor,
if (auto project = ProjectTree::currentProject()) {
buffer.replace("${CMAKE_SOURCE_DIR}", project->projectDirectory().path());
if (auto bs = ProjectTree::currentBuildSystem(); bs->buildConfiguration()) {
if (auto bs = ProjectTree::currentBuildSystem(); bs && bs->buildConfiguration()) {
buffer.replace("${CMAKE_BINARY_DIR}", bs->buildConfiguration()->buildDirectory().path());
// Get the path suffix from current source dir to project source dir and apply it

View File

@@ -211,15 +211,46 @@ FilePaths CMakeProjectImporter::presetCandidates()
return candidates;
}
class DebuggerCMakeExpander
{
const PresetsDetails::ConfigurePreset &preset;
const Environment &env;
const FilePath &projectDirectory;
public:
DebuggerCMakeExpander(
const PresetsDetails::ConfigurePreset &p, const Environment &e, const FilePath &projectDir)
: preset(p)
, env(e)
, projectDirectory(projectDir)
{}
QString expand(const QString &value) const
{
QString result{value};
CMakePresets::Macros::expand(preset, env, projectDirectory, result);
return result;
}
QVariantMap expand(const QVariantMap &map) const
{
QVariantMap result{map};
for (auto it = result.begin(); it != result.end(); ++it)
if (it->canConvert<QString>())
it->setValue(expand(it->toString()));
return result;
}
};
static QVariant findOrRegisterDebugger(
Environment &env, const std::optional<QVariantMap> &vendor, const QString &presetName)
Environment &env, const PresetsDetails::ConfigurePreset &preset, const DebuggerCMakeExpander& expander)
{
const QString debuggerKey("debugger");
if (!vendor || !vendor.value().contains(debuggerKey))
if (!preset.vendor || !preset.vendor.value().contains(debuggerKey))
return {};
const QVariant debuggerVariant = vendor.value().value(debuggerKey);
FilePath debuggerPath = FilePath::fromUserInput(debuggerVariant.toString());
const QVariant debuggerVariant = preset.vendor.value().value(debuggerKey);
FilePath debuggerPath = FilePath::fromUserInput(expander.expand(debuggerVariant.toString()));
if (!debuggerPath.isEmpty()) {
if (debuggerPath.isRelativePath())
debuggerPath = env.searchInPath(debuggerPath.fileName());
@@ -228,7 +259,7 @@ static QVariant findOrRegisterDebugger(
DebuggerItem debugger;
debugger.setCommand(debuggerPath);
debugger.setUnexpandedDisplayName(
mainName.arg(presetName).arg(debuggerPath.completeBaseName()));
mainName.arg(preset.name).arg(debuggerPath.completeBaseName()));
debugger.setAutoDetected(false);
QString errorMessage;
debugger.reinitializeFromFile(&errorMessage, &env);
@@ -246,7 +277,7 @@ static QVariant findOrRegisterDebugger(
if (!debuggerMap.contains("Id"))
debuggerMap.insert("Id", QUuid::createUuid().toString());
auto store = storeFromMap(debuggerMap);
auto store = storeFromMap(expander.expand(debuggerMap));
DebuggerItem debugger(store);
return DebuggerItemManager::registerDebugger(debugger);
@@ -883,7 +914,8 @@ QList<void *> CMakeProjectImporter::examineDirectory(const FilePath &importPath,
data->hasQmlDebugging = CMakeBuildConfiguration::hasQmlDebugging(config);
data->debugger = findOrRegisterDebugger(env, configurePreset.vendor, configurePreset.name);
data->debugger = findOrRegisterDebugger(
env, configurePreset, DebuggerCMakeExpander(configurePreset, env, projectDirectory()));
QByteArrayList buildConfigurationTypes = {cache.valueOf("CMAKE_BUILD_TYPE")};
if (buildConfigurationTypes.front().isEmpty()) {

View File

@@ -118,6 +118,10 @@ static const TextFormat &buttonTF(Button::Role role, WidgetState state)
static const TextFormat smallLinkHoveredTF
{Theme::Token_Text_Accent, smallLinkDefaultTF.uiElement,
smallLinkDefaultTF.drawTextFlags};
static const TextFormat tagDefaultTF
{Theme::Token_Text_Muted, StyleHelper::UiElement::UiElementLabelMedium};
static const TextFormat tagHoverTF
{Theme::Token_Text_Default, tagDefaultTF.uiElement};
switch (role) {
case Button::MediumPrimary: return mediumPrimaryTF;
@@ -128,6 +132,8 @@ static const TextFormat &buttonTF(Button::Role role, WidgetState state)
: smallListCheckedTF;
case Button::SmallLink: return (state == WidgetStateDefault) ? smallLinkDefaultTF
: smallLinkHoveredTF;
case Button::Tag: return (state == WidgetStateDefault) ? tagDefaultTF
: tagHoverTF;
}
return mediumPrimaryTF;
}
@@ -218,6 +224,13 @@ void Button::paintEvent(QPaintEvent *event)
}
case SmallLink:
break;
case Tag: {
const QBrush fill(hovered ? creatorColor(Theme::Token_Foreground_Subtle)
: QBrush(Qt::NoBrush));
const QPen outline(hovered ? QPen(Qt::NoPen) : creatorColor(Theme::Token_Stroke_Subtle));
drawCardBackground(&p, bgR, fill, outline, brRectRounding);
break;
}
}
if (!m_pixmap.isNull()) {
@@ -244,6 +257,10 @@ void Button::setPixmap(const QPixmap &pixmap)
void Button::updateMargins()
{
if (m_role == Tag) {
setContentsMargins(HPaddingXs, VPaddingXxs, HPaddingXs, VPaddingXxs);
return;
}
const bool tokenSizeS = m_role == MediumPrimary || m_role == MediumSecondary
|| m_role == SmallList || m_role == SmallLink;
const int gap = tokenSizeS ? HGapS : HGapXs;

View File

@@ -80,6 +80,7 @@ public:
SmallSecondary,
SmallList,
SmallLink,
Tag,
};
explicit Button(const QString &text, Role role, QWidget *parent = nullptr);

View File

@@ -222,11 +222,7 @@ GroupItem DeviceCtlRunner::killProcess(Storage<AppInfo> &appInfo)
QString::number(appInfo->processIdentifier)}});
return SetupResult::Continue;
};
const auto onDone = [] {
// we tried our best and don't care at this point
return DoneResult::Success;
};
return ProcessTask(onSetup, onDone);
return ProcessTask(onSetup, DoneResult::Success); // we tried our best and don't care at this point
}
GroupItem DeviceCtlRunner::launchTask(const QString &bundleIdentifier)

View File

@@ -735,7 +735,7 @@ void Client::openDocument(TextEditor::TextDocument *document)
void Client::sendMessage(const JsonRpcMessage &message, SendDocUpdates sendUpdates,
Schedule semanticTokensSchedule)
{
QScopeGuard guard([responseHandler = message.responseHandler()](){
QScopeGuard guard([this, responseHandler = message.responseHandler()](){
if (responseHandler) {
static ResponseError<std::nullptr_t> error;
if (!error.isValid()) {
@@ -745,7 +745,9 @@ void Client::sendMessage(const JsonRpcMessage &message, SendDocUpdates sendUpdat
QJsonObject response;
response[idKey] = responseHandler->id;
response[errorKey] = QJsonObject(error);
responseHandler->callback(JsonRpcMessage(response));
QMetaObject::invokeMethod(this, [callback = responseHandler->callback, response](){
callback(JsonRpcMessage(response));
}, Qt::QueuedConnection);
}
});

View File

@@ -1,7 +1,7 @@
{
"version": 1,
"supportedProjectTypes": [
"Qt4ProjectManager.Qt4Project"
"ProjectExplorer.WorkspaceProject"
],
"id": "R.QtCreatorLuaPlugin",
"category": "G.Library",
@@ -9,11 +9,7 @@
"trDisplayName": "Qt Creator Lua Plugin",
"trDisplayCategory": "Library",
"iconText": "LuaP",
"featuresRequired": [
"QtSupport.Wizards.FeatureQt",
"QtSupport.Wizards.FeatureDesktop"
],
"enabled": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}",
"featuresRequired": [],
"options": [
{
"key": "ProjectFile",
@@ -26,14 +22,6 @@
{
"key": "SrcFileName",
"value": "init.lua"
},
{
"key": "CN",
"value": "%{JS: Cpp.className(value('PluginName') + 'Plugin')}"
},
{
"key": "HasTranslation",
"value": "%{JS: value('TsFileName') !== ''}"
}
],
"pages": [

View File

@@ -287,7 +287,7 @@ void PerfDataReader::collectArguments(CommandLine *cmd, const QString &exe, cons
.arg(qt->pluginPath().nativePath())
.arg(qt->hostBinPath().nativePath())
.arg(qt->qmlPath().nativePath())
.arg(cmd->executable().osType() == OsTypeWindows ? u';' : u':'));
.arg(cmd->executable().pathListSeparator()));
}
if (auto toolChain = ToolchainKitAspect::cxxToolchain(kit)) {

Some files were not shown because too many files have changed in this diff Show More