Merge remote-tracking branch 'origin/4.13' into master

Change-Id: Ib60df85a85fc1c94d8cc0dc23ea9fcdb4822bcab
This commit is contained in:
Eike Ziller
2020-08-25 12:42:04 +02:00
32 changed files with 328 additions and 87 deletions

View File

@@ -128,13 +128,14 @@ function(add_qtc_library name)
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS} EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
) )
file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) get_filename_component(public_build_interface_dir "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE)
file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_include_directories(${name} target_include_directories(${name}
PRIVATE PRIVATE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>" "$<BUILD_INTERFACE:${public_build_interface_dir}>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>" "$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
) )
set(skip_translation OFF) set(skip_translation OFF)
@@ -378,15 +379,16 @@ function(add_qtc_plugin target_name)
EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS} EXTRA_TRANSLATIONS ${_arg_EXTRA_TRANSLATIONS}
) )
file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}) get_filename_component(public_build_interface_dir "${CMAKE_CURRENT_SOURCE_DIR}/.." ABSOLUTE)
file(RELATIVE_PATH include_dir_relative_path ${PROJECT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/..")
target_include_directories(${target_name} target_include_directories(${target_name}
PRIVATE PRIVATE
"${CMAKE_CURRENT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_BINARY_DIR}/src" "${CMAKE_BINARY_DIR}/src"
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>"
PUBLIC PUBLIC
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>" "$<BUILD_INTERFACE:${public_build_interface_dir}>"
"$<INSTALL_INTERFACE:include/${include_dir_relative_path}/..>" "$<INSTALL_INTERFACE:include/${include_dir_relative_path}>"
) )
set(plugin_dir "${IDE_PLUGIN_PATH}") set(plugin_dir "${IDE_PLUGIN_PATH}")

View File

@@ -53,6 +53,8 @@ Editing
* Fixed that find usages was finding function arguments when searching functions (QTCREATORBUG-2176) * Fixed that find usages was finding function arguments when searching functions (QTCREATORBUG-2176)
* Fixed crash in lexer (QTCREATORBUG-19525) * Fixed crash in lexer (QTCREATORBUG-19525)
* Fixed handling of incomplete macro invocations (QTCREATORBUG-23881) * Fixed handling of incomplete macro invocations (QTCREATORBUG-23881)
* Fixed update of function signature tooltip (QTCREATORBUG-24449)
* Fixed that built-in macros were ignored for custom toolchains (QTCREATORBUG-24367)
### Language Client ### Language Client
@@ -60,6 +62,7 @@ Editing
* Added highlighting of code range for diagnostics * Added highlighting of code range for diagnostics
* Added tooltips for diagnostics * Added tooltips for diagnostics
* Fixed various issues with completion, outline, files with spaces, and synchronization * Fixed various issues with completion, outline, files with spaces, and synchronization
* Fixed handling of workspace folders (QTCREATORBUG-24452)
### QML ### QML
@@ -90,6 +93,10 @@ Editing
* Added option to sort file list * Added option to sort file list
### Widget Designer
* Fixed that designed widgets were dark in dark theme (QTCREATORBUG-23981)
Projects Projects
-------- --------
@@ -222,6 +229,7 @@ Federico Guerinoni
Friedemann Kleint Friedemann Kleint
Henning Gruendl Henning Gruendl
Ivan Komissarov Ivan Komissarov
Jacek Nijaki
Jaroslaw Kobus Jaroslaw Kobus
Jochen Becher Jochen Becher
Jochen Seemann Jochen Seemann
@@ -229,8 +237,10 @@ Johanna Vanhatapio
Joni Poikelin Joni Poikelin
Junker, Gregory Junker, Gregory
Knud Dollereder Knud Dollereder
Kwanghyo Park
Lars Knoll Lars Knoll
Leena Miettinen Leena Miettinen
Lukasz Ornatek
Mahmoud Badri Mahmoud Badri
Marco Bubke Marco Bubke
Michael Brüning Michael Brüning

Binary file not shown.

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -30,26 +30,52 @@
\title Connecting Bare Metal Devices \title Connecting Bare Metal Devices
You can connect bare metal devices to a development host to run and debug You can configure build and run kits to use Bare Metal tool chains installed
on the development host to build applications for Bare Metal devices. You
can connect the devices to the development host to run and debug
applications on them from \QC using GDB or a hardware debugger. This enables applications on them from \QC using GDB or a hardware debugger. This enables
you to debug on small devices that are not supported by the generic remote you to debug on small devices that are not supported by the generic remote
Linux device plugin. However, if the device does not have Qt libraries, you Linux device plugin.
need a fake Qt installation.
\note If you use qmake to build the project and the device does not have
Qt libraries, you need a fake Qt installation.
The following tool chains are supported for building applications:
\list
\li GCC: Microchip Technology (AVR, AVR32, PIC16, PIC32),
NXP Semiconductors (ColdFire, M68K), Texas Instruments (MSP430),
National Semiconductor (CR16C), Renesas Electronics (M32R, M32C,
RL78, RX, SuperH, V850), Tensilica XTENSA (ESP8266, ESP32), RISC-V,
Arm
\li \l{https://www.iar.com/iar-embedded-workbench/}{IAR EW}:
Microchip Technology (AVR, AVR32), NXP Semiconductors
(ColdFire, M68K), Texas Instruments (MSP430),
National Semiconductor (CR16C), Renesas Electronics (78K,
M16/R8C, M32C, R32C, RH850, RL78, RX, SuperH, V850),
STMicroelectronics (STM8), 8051, RISC-V, Arm
\li \l{https://www.keil.com/product/}{Keil}: Arm, C51 (8051),
C251 (80251), C166 (C16x, XC16x)
\li \l{http://sdcc.sourceforge.net/}{SDCC}: STMicroelectronics (STM8),
8051
\endlist
The bare metal device type accepts custom GDB commands that you specify in The bare metal device type accepts custom GDB commands that you specify in
the device options. You can specify the commands to execute when connecting the device options. You can specify the commands to execute when connecting
using a particular debug server provider. using a particular debug server provider.
The following debug server providers are supported: The following debug server providers are supported when using GDB:
\list \list
\li \l EBlink \li \l EBlink
\li \l J-Link \li \l J-Link
\li \l OpenOCD \li \l OpenOCD
\li \l ST-LINK \li \l ST-Link
\li \l {uVision IDE}
\endlist \endlist
ST-Link and J-Link debug server providers can be used together with
the \l {uVision IDE}.
\section1 Enabling the Bare Metal Device Plugin \section1 Enabling the Bare Metal Device Plugin
To enable the Bare Metal Device plugin: To enable the Bare Metal Device plugin:
@@ -200,7 +226,11 @@
\l{http://www.keil.com/support/man/docs/uv4/uv4_overview.htm}{uVision} is \l{http://www.keil.com/support/man/docs/uv4/uv4_overview.htm}{uVision} is
an IDE for developing applications for embedded devices. Applications can an IDE for developing applications for embedded devices. Applications can
be debugged by using uVision Simulator or directly on hardware by using be debugged by using uVision Simulator or directly on hardware by using
St-Link. St-Link and J-Link.
You can view the current state of peripheral registers in the
\uicontrol {Peripheral Registers} view in Debug mode. The view
is hidden by default.
\section3 uVision Simulator \section3 uVision Simulator

View File

@@ -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.
@@ -61,7 +61,7 @@
Breakpoints come in two varieties: \c unclaimed and \c claimed. Breakpoints come in two varieties: \c unclaimed and \c claimed.
An unclaimed breakpoint represents a task to interrupt the debugged An unclaimed breakpoint represents a task to interrupt the debugged
program and passes the control to you later. I has two states: program and passes the control to you later. It has two states:
\c pending and \c implanted. \c pending and \c implanted.
Unclaimed breakpoints are stored as a part of a session and exist Unclaimed breakpoints are stored as a part of a session and exist
@@ -145,6 +145,35 @@
\endlist \endlist
\section2 Specifying Breakpoint Settings
You can specify settings for breakpoints in \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger. For more information,
see \l{Specifying Debugger Settings}.
To use a full absolute path in breakpoints, select the
\uicontrol {Set breakpoints using a full absolute path} check box.
GDB and CDB enable setting breakpoints on source lines for which no code
was generated. In such situations, the breakpoint is shifted to the next
source code line for which the code was actually generated. To reflect
such temporary changes by moving the breakpoint markers in the source code
editor, select \uicontrol GDB > \uicontrol {Adjust breakpoint locations}
or \uicontrol CDB > \uicontrol {Correct breakpoint location}.
When using CDB as backend, you can specify that the debugger should break on
specific events, such as C++ exceptions, thread creation or exit, loading or
unloading \l{Viewing Modules}{application modules}, or particular output.
Select the appropriate check boxes in the \uicontrol CDB >
\uicontrol {Break on} group. To disable first-chance break on access
violation exceptions, select the \uicontrol {Ignore first chance access
violations} check box. The second occurrence of an access violation will
break into the debugger.
You can automatically add breakpoints on some functions to catch error
and warning messages. For more information, see \l{Specifying CDB Settings}
and \l{Specifying Extended GDB Settings}.
For more information on breakpoints, see For more information on breakpoints, see
\l{http://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints} \l{http://sourceware.org/gdb/onlinedocs/gdb/Breakpoints.html#Breakpoints}
{Breakpoints, Watchpoints, and Catchpoints} in GDB documentation. {Breakpoints, Watchpoints, and Catchpoints} in GDB documentation.

View File

@@ -325,6 +325,53 @@
To keep debugging all children after a fork, select the To keep debugging all children after a fork, select the
\uicontrol {Debug all child processes} check box. \uicontrol {Debug all child processes} check box.
\section2 Specifying CDB Settings
To specify settings for managing the CDB process, select \uicontrol Tools >
\uicontrol Options > \uicontrol Debugger > \uicontrol CDB.
\image qtcreator-cdb-options.png "CDB options"
You can specify additional arguments for starting CDB in the
\uicontrol {Additional arguments} field.
If a console application does not start up properly in the configured
console and the subsequent attach fails, you can diagnose the issue by
using CDB's native console. Select the \uicontrol {Use CDB console}
check box to override the console set in the Windows system
environment variables. Note that the native console does not
prompt on application exit.
To automatically add a breakpoint on the \c CrtCbgReport() function,
select the \uicontrol {Stop when CrtCbgReport() is called} check box.
This catches runtime error messages caused by \c assert(), for example.
In the \uicontrol {Break on} group, specify whether the debugger should
break on C++ exceptions, on thread creation or exit, on loading or
unloading the specified \l{Viewing Modules}{application modules}, or on
the specified output.
To disable first-chance break on access violation exceptions, select the
\uicontrol {Ignore first chance access violations} check box.
The second occurrence of an access violation will break into the debugger.
CDB enables setting breakpoints in comments or on source lines for which
no code was generated. In such situations, the breakpoint is shifted to
the next source code line for which the code was actually generated. To
reflect such temporary changes by moving the breakpoint markers in the
source code editor, select the \uicontrol {Correct breakpoint location}
check box. For more information, see \l{Setting Breakpoints}.
To use the abstraction layer provided by Python Dumper
classes to create a description of data items displayed
in the \uicontrol Locals and \uicontrol Expressions
views, select the \uicontrol {Use Python dumper} check box.
For more information, see \l{Debugging Helper Implementation}.
To add information about first-chance and second-chance exceptions
to the \uicontrol Issues output pane, select the check boxes
in the \uicontrol {Add Exceptions to the Issues View} group.
\section1 Mapping Source Paths \section1 Mapping Source Paths
To enable the debugger to step into the code and display the source code To enable the debugger to step into the code and display the source code

View File

@@ -118,10 +118,15 @@
The debugger then takes over and starts the program with suitable The debugger then takes over and starts the program with suitable
parameters. parameters.
When using GDB or CDB as debug backend, you can specify additional commands
to execute before and after the backend and debugged program are started or
attached in \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol GDB and \uicontrol CDB. For more information, see
\l{Specifying Debugger Settings}.
\note Starting a C++ program in the debugger can take a long time, typically \note Starting a C++ program in the debugger can take a long time, typically
in the range of several seconds to minutes if complex features are used. in the range of several seconds to minutes if complex features are used.
\section1 Launching the Debugger in Different Modes \section1 Launching the Debugger in Different Modes
The debugger plugin can run the native debuggers in various operating modes The debugger plugin can run the native debuggers in various operating modes
@@ -171,6 +176,13 @@
\uicontrol {Run Settings} and select the \uicontrol {Run in terminal} check \uicontrol {Run Settings} and select the \uicontrol {Run in terminal} check
box. box.
If a console application does not start up properly in the configured
console and the subsequent attach fails, you can diagnose the issue by
using CDB's native console. Select \uicontrol Tools > \uicontrol Options >
\uicontrol Debugger > \uicontrol CDB > \uicontrol {Use CDB console} to
override the console set in the Windows system environment variables.
Note that the native console does not prompt on application exit.
To launch the debugger in Start Internal mode, click the To launch the debugger in Start Internal mode, click the
\uicontrol {Start Debugging} button for the active project. \uicontrol {Start Debugging} button for the active project.
@@ -596,6 +608,23 @@
It is also possible to continue executing the program until the current It is also possible to continue executing the program until the current
function completes or jump to an arbitrary position in the current function. function completes or jump to an arbitrary position in the current function.
\section2 Customizing Debug Views
You can change the appearance and behavior of the debug views by specifying
settings in \uicontrol Options > \uicontrol Debugger. For example, you can:
\list
\li Use alternating row colors in debug views.
\li Adopt font size changes from the main editor.
\li Have tooltips displayed in the main editor while you are debugging.
\li Close temporary source and memory views and switch to the previously
used \QC mode when the debugger exits.
\li Bring \QC to the foreground when the debugged application is
interrupted.
\endlist
For more information, see \l{Specifying Debugger Settings}.
\include creator-debugger-common.qdocinc debugger-breakpoints \include creator-debugger-common.qdocinc debugger-breakpoints
\include creator-debugger-common.qdocinc debugger-call-stack-trace \include creator-debugger-common.qdocinc debugger-call-stack-trace
\include creator-debugger-common.qdocinc debugger-locals \include creator-debugger-common.qdocinc debugger-locals
@@ -691,6 +720,12 @@
By default, the \uicontrol Modules view is hidden. By default, the \uicontrol Modules view is hidden.
When using CDB as debug backend, you can specify that the debugger should
break when application modules are loaded or unloaded. To enable breaking
for the specified modules, select \uicontrol Tools > \uicontrol Options >
\uicontrol Debugger > \uicontrol CDB. For more information, see
\l{Specifying CDB Settings}.
\section2 Viewing Source Files \section2 Viewing Source Files
The \uicontrol {Source Files} view lists all the source files included in The \uicontrol {Source Files} view lists all the source files included in
@@ -991,12 +1026,15 @@
not to generate the wire format directly, but to use the abstraction not to generate the wire format directly, but to use the abstraction
layer provided by the Python Dumper classes, specifically the \c{Dumper} layer provided by the Python Dumper classes, specifically the \c{Dumper}
class itself, and the \c{Dumper:Value} and \c{Dumper:Type} abstractions. class itself, and the \c{Dumper:Value} and \c{Dumper:Type} abstractions.
These provide a complete framework to take care of the \c iname and \c addr These provide a complete framework to take care of the \c iname and \c addr
fields, to handle children of simple types, references, pointers, enums, and fields, to handle children of simple types, references, pointers, enums, and
known and unknown structs, as well as some convenience functions to handle known and unknown structs, as well as some convenience functions to handle
common situations. common situations.
When using CDB as debugger backend, you can enable the Python dumper by
selecting \uicontrol Tools > \uicontrol Options > \uicontrol Debugger >
\uicontrol CDB > \uicontrol {Use Python dumper}.
\section3 Dumper Class \section3 Dumper Class
The \c Dumper class contains generic bookkeeping, low-level, and convenience The \c Dumper class contains generic bookkeeping, low-level, and convenience

View File

@@ -301,7 +301,7 @@
\list \list
\li \uicontrol {\l{User Interface}{Welcome}} mode for opening projects, \li \uicontrol {\l{User Interface}{Welcome}} mode for opening projects,
tutorial, and examples. tutorials, and examples.
\li \uicontrol{\l{Coding}{Edit}} mode for editing project and source \li \uicontrol{\l{Coding}{Edit}} mode for editing project and source
files. files.

View File

@@ -62,7 +62,7 @@
\section1 Saving Workspaces \section1 Saving Workspaces
The changes you make to a workspace are saved when you exit \QC. The changes you make to a workspace are saved when you exit \QC.
In \QMLD, you can select \uicontrol View > \uicontrol Workspaces > Select \uicontrol View > \uicontrol Workspaces >
\uicontrol Manage > \uicontrol {Restore last workspace on startup} \uicontrol Manage > \uicontrol {Restore last workspace on startup}
to restore the current workspace the next time you start \QC. to restore the current workspace the next time you start \QC.
@@ -75,10 +75,12 @@
To switch between workspaces, select \uicontrol {Switch To}. To switch between workspaces, select \uicontrol {Switch To}.
To create a new workspace: To save a workspace after you've moved views around or opened and
closed them:
\list 1 \list 1
\li Select \uicontrol New. \li Select \uicontrol New.
\image qtcreator-workspace-new.png "New Workspace Name dialog"
\li In the \uicontrol {Enter the name of the workspace} field, \li In the \uicontrol {Enter the name of the workspace} field,
enter a name for the workspace. enter a name for the workspace.
\li Select \uicontrol Create to create a new empty workspace or \li Select \uicontrol Create to create a new empty workspace or
@@ -86,5 +88,10 @@
switch to it. switch to it.
\endlist \endlist
To delete the selected workspace, select \uicontrol Delete. To delete the selected workspace, select \uicontrol Delete in
\uicontrol {Workspace Manager}.
To export workspace settings into \e {.wrk} files select \uicontrol Export.
To import them to another computer, select \uicontrol Import, and then
locate the workspace settings file.
*/ */

View File

@@ -70,7 +70,7 @@
If you have built the project before, \QC can use the existing build If you have built the project before, \QC can use the existing build
configuration to make the exact same build as found in the directory configuration to make the exact same build as found in the directory
available to \QC. To import a build, specify a directory in the available to \QC. To import a build, specify a directory in the
\uicontrol {Import Build from} section and select \uicontrol {Import}. \uicontrol {Import Build From} section and select \uicontrol {Import}.
You can edit the build configuration later. For more information, see You can edit the build configuration later. For more information, see
\l{Editing Build Configurations}. \l{Editing Build Configurations}.

View File

@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
** **
** Copyright (C) 2018 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.
@@ -36,25 +36,25 @@
\title Sharing Project Settings \title Sharing Project Settings
\QC stores user-specific project settings in a .pro.user file. You can \QC stores user-specific project settings in a \e {.user} file. You can
share these settings between several projects as a .pro.shared file. It share these settings between several projects as a \e {.shared} file. It
has the same XML structure as a .pro.user file, but only contains the has the same XML structure as a \e {.user} file, but only contains the
settings to share. settings to share.
\section1 Creating Shared Settings File \section1 Creating Shared Settings File
The easiest way to create a .pro.shared file is to copy settings from the The easiest way to create a \e {.shared} file is to copy settings from the
.pro.user file. Typically, you would share some of the values in the \e {.user} file. Typically, you would share some of the values in the
\c ProjectExplorer.Project.EditorSettings section. \c ProjectExplorer.Project.EditorSettings section.
\note You must always specify the \note You must always specify the
\c ProjectExplorer.Project.Updater.FileVersion variable and use the same \c ProjectExplorer.Project.Updater.FileVersion variable and use the same
value for it as in the .pro.user file. value for it as in the \e {.user} file.
You can then deliver the .pro.shared file to other developers or copy it to You can then deliver the \e {.shared} file to other developers or copy it to
other development PCs. other development PCs.
The following is an example of a pro.shared file: The following is an example of a \e {.shared} file:
\code \code
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
@@ -78,16 +78,16 @@
\section1 Updating Shared Settings \section1 Updating Shared Settings
The first time \QC loads the project after you added pro.shared settings, The first time \QC loads the project after you add shared settings,
it overwrites the pro.user settings with them. If you open the project for it overwrites the user settings with them. If you open the project for
the first time and \QC has not created a .pro.user file, the settings in the the first time and \QC has not created a \e {.user} file, the settings
.pro.shared file take effect immediately. in the \e {.shared} file take effect immediately.
If you receive a .pro.shared file and do not want to use a particular If you receive a \e {.shared} file and do not want to use a particular
setting in it, you can change it. \QC marks it a \e sticky setting. The next setting in it, you can change it. \QC marks it a \e sticky setting. The next
time you open a project, the setting is not updated. \QC tracks sticky time you open a project, the setting is not updated. \QC tracks sticky
settings in the .pro.user file and removes the mark if the values in the settings in the \e {.user} file and removes the mark if the values in the
pro.user and pro.shared files eventually become identical. This is to avoid user and shared files eventually become identical. This is to avoid
a permanent sticky setting that was created just because you wanted to try a permanent sticky setting that was created just because you wanted to try
something out. something out.

View File

@@ -68,7 +68,7 @@
Typically, only a subset of the kit settings is relevant for a particular Typically, only a subset of the kit settings is relevant for a particular
setup. Therefore, \QC plugins register sets of relevant settings that you setup. Therefore, \QC plugins register sets of relevant settings that you
can view and modify in \uicontrol Tools > \uicontrol Options > can view and modify in \uicontrol Tools > \uicontrol Options >
\uicontrol Kits >. For example, if you use CMake to build all your projects, \uicontrol Kits. For example, if you use CMake to build all your projects,
you can hide Qbs and qmake settings by default. you can hide Qbs and qmake settings by default.
To hide and show settings in the \uicontrol Kits tab for the To hide and show settings in the \uicontrol Kits tab for the

View File

@@ -37,10 +37,9 @@
\QC provides a cross-platform, complete integrated development environment \QC provides a cross-platform, complete integrated development environment
(IDE) for application developers to create applications for multiple (IDE) for application developers to create applications for multiple
desktop, \l {http://doc.qt.io/QtForDeviceCreation/index.html}{embedded}, \l{Desktop Platforms}{desktop}, \l {Embedded Platforms}{embedded}, and
and mobile device platforms, such as \l{Connecting Android Devices}{Android} \l{Mobile Platforms}{mobile device} platforms, such as \l Android and
and \l{Connecting iOS Devices}{iOS}. It is available for Linux, \macos and \l iOS. It is available for \l Linux, \l \macos and \l Windows
Windows
operating systems. For more information, see \l{Supported Platforms}. operating systems. For more information, see \l{Supported Platforms}.
In addition, you can use the experimental In addition, you can use the experimental

View File

@@ -30,8 +30,8 @@
\title Specifying Dynamic Properties \title Specifying Dynamic Properties
In addition to the properties predefined for QML types, you can specify Each predefined QML type has a set of predefined properties that you can
\e {dynamic properties} to add properties that would not otherwise specify values for. You can add custom properties that would not otherwise
exist for a particular type. You bind the properties to dynamic expressions exist for a particular type. You bind the properties to dynamic expressions
to define global properties for an object that can be read by other objects. to define global properties for an object that can be read by other objects.
For example, you can specify global properties for the root object that you For example, you can specify global properties for the root object that you
@@ -42,18 +42,19 @@
and then use bindings to refer to the value of the margin property from and then use bindings to refer to the value of the margin property from
other objects. other objects.
Similarly, you can add dynamic properties at component level. Similarly, you can add custom properties for your own QML types that are
based on the predefined types.
You can specify dynamic properties for objects in the You can add properties for objects in the \uicontrol Connections view,
\uicontrol Connections view. \uicontrol Properties tab.
\image qmldesigner-dynamicprops.png \image qmldesigner-dynamicprops.png "Custom properties in Connection View Custom Properties tab"
To specify dynamic properties for an object: To add properties for an object:
\list 1 \list 1
\li In the \uicontrol {Connections} view, select the \li Select \uicontrol View > \uicontrol Views >
\uicontrol {Properties} tab. \uicontrol {Connections View} > \uicontrol {Properties}.
\li Select the \inlineimage plus.png \li Select the \inlineimage plus.png
(\uicontrol Add) button to add a dynamic property for the currently (\uicontrol Add) button to add a dynamic property for the currently
selected item. The item ID is displayed in the \uicontrol Item selected item. The item ID is displayed in the \uicontrol Item
@@ -61,9 +62,67 @@
\li Double-click the value in the \uicontrol Property column to give a \li Double-click the value in the \uicontrol Property column to give a
name to the property. name to the property.
\li Double-click the value in the \uicontrol {Property Type} column to \li Double-click the value in the \uicontrol {Property Type} column to
specify the type of the property. specify the \l{Supported Property Types}{type of the property}.
\li Double-click the value in the \uicontrol {Property Value} column \li Double-click the value in the \uicontrol {Property Value} column
to specify a dynamic expression as the value of the property. to specify the value of the property.
\endlist \endlist
The properties you add for a QML type are displayed in the
\uicontrol Properties view when you select a component of
that type in \uicontrol Navigator or \uicontrol {Form Editor}.
\image qtquick-custom-properties.png "Custom properties in Properties view"
For more information about setting property values in the
\uicontrol Properties view, see \l{Specifying Item Properties}.
For an example of using custom properties in an application, see
\l{Creating a Mobile Application}.
\section1 Supported Property Types
The following table describes the supported property types:
\table
\header
\li Type
\li Description
\row
\li alias
\li \l{Property Aliases}{Property alias} that holds a reference to
another property
\row
\li bool
\li Binary \c true or \c false value
\row
\li color
\li Color value that can be specified by using an SVG color name, such
as "red", "green", or "lightsteelblue", or a hexadecimal triplet or
quad in the form "#RRGGBB" and "#AARRGGBB", respectively. For
example, the color red corresponds to a triplet of "#FF0000" and
a slightly transparent blue to a quad of "#800000FF".
In addition, you can use the following Qt functions: \l{Qt::rgba()}
{Qt.rgba()}, \l{Qt::hsva()}{Qt.hsva()}, \l{Qt::hsla()}{Qt.hsla()},
\l{Qt::darker()}{Qt.darker()}, \l{Qt::lighter()}{Qt.lighter()}, and
\l{Qt::tint()}{Qt.tint()}.
\row
\li int
\li Whole integer number, such as 0, 10, or -20
\row
\li real
\li Number with a decimal point
\row
\li string
\li Free form text string
\row
\li url
\li Resource locator, such as a file name. It can be either absolute,
(\c http://qt-project.org), or relative (\c pics/logo.png). A
relative URL is resolved relative to the URL of the parent
component.
\row
\li variant
\li Generic property type. For example, variant properties can store
numbers, strings, objects, arrays, and functions.
\endtable
*/ */

View File

@@ -52,8 +52,10 @@
following views, select \uicontrol View > \uicontrol Views: following views, select \uicontrol View > \uicontrol Views:
\list \list
\li \uicontrol {Form Editor} (1) provides a canvas for designing 2D UIs. \li \uicontrol {Form Editor} (1) provides a canvas for designing
For more information, see \l {Editing 2D Content}. 2D UIs. For more information, see \l {Editing 2D Content}.
When you are editing 3D scenes, the \uicontrol {Form Editor} is
used as a canvas for the 3D scene projected by the camera.
\li \uicontrol {3D Editor} provides an editor for files you created \li \uicontrol {3D Editor} provides an editor for files you created
using 3D graphics applications and stored in one of the supported using 3D graphics applications and stored in one of the supported
@@ -88,11 +90,11 @@
\li \uicontrol {Open Documents} shows currently open files. \li \uicontrol {Open Documents} shows currently open files.
\li \uicontrol {Projects} shows a list of projects open in the \li \uicontrol {Projects} (6) shows a list of projects open in the
current session. For more information, see current session. For more information, see
\l{Viewing Project Files}. \l{Viewing Project Files}.
\li \uicontrol {States} (6) displays the different states of the item. \li \uicontrol {States} displays the different states of the item.
QML states typically describe user interface configurations, such as QML states typically describe user interface configurations, such as
the UI controls, their properties and behavior and the available the UI controls, their properties and behavior and the available
actions. For more information, see \l{Adding States}. actions. For more information, see \l{Adding States}.

View File

@@ -32,25 +32,30 @@
The \uicontrol Properties view displays all the properties of the selected The \uicontrol Properties view displays all the properties of the selected
item. The properties are grouped by type. The top part of the view displays item. The properties are grouped by type. The top part of the view displays
properties that are common to all QML types, such as position, size, and properties that are common to all QML types, such as type, id, position,
visibility. size, and visibility.
The bottom part of the view displays properties that are specific to each The bottom part of the view displays properties that have been defined for
QML type. For example, the following image displays the properties you can the QML type. For example, the following image displays the predefined
set for \uicontrol Rectangle and \uicontrol Text items. properties you can set for \uicontrol Rectangle and \uicontrol Text items.
\image qmldesigner-element-properties.png \image qmldesigner-element-properties.png
To change the item type, double-click the \uicontrol Type field in the When you create a component using a QML type, the component has all the
\uicontrol Properties view, and enter the name of another QML type in the properties of the type you used. If you realize later that another
field. If you have specified properties for the item that are not supported QML type with another set of predefined properties would be more suitable
for the new type, the type cannot be changed and an error message is for your purposes, you can change the component type by double-clicking the
displayed. Select the \inlineimage icons/action-icon.png \uicontrol Type field in the \uicontrol Properties view. Enter the name of
another QML type in the field.
If you have specified values for properties that are not supported by
the new type, \QC offers to remove them for you. If you'd rather do
this yourself, you can select the \inlineimage icons/action-icon.png
(\uicontrol Actions) menu next to the property name, and then select (\uicontrol Actions) menu next to the property name, and then select
\uicontrol Reset to remove the property values before trying again. \uicontrol Reset to remove the property values before trying again.
To modify the common properties of multiple items simultaneously, select To modify the values of common properties of multiple items simultaneously,
them in the \uicontrol Navigator or on the canvas: select the items in the \uicontrol Navigator or on the canvas:
\list \list
\li On Windows, press and hold \key Ctrl and \key Shift, and then click \li On Windows, press and hold \key Ctrl and \key Shift, and then click
@@ -71,6 +76,18 @@
For more information on the properties available for an item, press For more information on the properties available for an item, press
\key {F1}. \key {F1}.
\section1 Specifying Custom Properties
Each predefined QML type has a set of properties that you can extend by
defining additional properties for your own QML components. For more
information, see \l{Specifying Dynamic Properties}.
The properties you add for a QML type are displayed in the
\uicontrol Properties view when you select a component
of that type in \uicontrol Navigator or \uicontrol {Form Editor}.
\image qtquick-custom-properties.png "Custom properties in Properties view"
\section1 Viewing Changes in Properties \section1 Viewing Changes in Properties
The default values of properties are displayed in white color, while the The default values of properties are displayed in white color, while the

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

@@ -98,6 +98,7 @@ public:
{ {
out << data.image; out << data.image;
out << data.nodeData; out << data.nodeData;
out << data.nodeId;
return out; return out;
} }
@@ -106,6 +107,7 @@ public:
{ {
in >> data.image; in >> data.image;
in >> data.nodeData; in >> data.nodeData;
in >> data.nodeId;
return in; return in;
} }

View File

@@ -28,8 +28,6 @@
#include "cppmodelmanager.h" #include "cppmodelmanager.h"
#include "headerpathfilter.h" #include "headerpathfilter.h"
#include <baremetal/baremetalconstants.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <projectexplorer/headerpath.h> #include <projectexplorer/headerpath.h>
@@ -385,8 +383,11 @@ void CompilerOptionsBuilder::addProjectMacros()
{ {
static const int useMacros = qEnvironmentVariableIntValue("QTC_CLANG_USE_TOOLCHAIN_MACROS"); static const int useMacros = qEnvironmentVariableIntValue("QTC_CLANG_USE_TOOLCHAIN_MACROS");
if (m_projectPart.toolchainType == BareMetal::Constants::IAREW_TOOLCHAIN_TYPEID || useMacros) if (m_projectPart.toolchainType == ProjectExplorer::Constants::CUSTOM_TOOLCHAIN_TYPEID
|| m_projectPart.toolchainType.name().contains("BareMetal")
|| useMacros) {
addMacros(m_projectPart.toolChainMacros); addMacros(m_projectPart.toolChainMacros);
}
addMacros(m_projectPart.projectMacros); addMacros(m_projectPart.projectMacros);
} }

View File

@@ -51,7 +51,7 @@ BuildDirectoryAspect::BuildDirectoryAspect() : d(new Private)
setSettingsKey("ProjectExplorer.BuildConfiguration.BuildDirectory"); setSettingsKey("ProjectExplorer.BuildConfiguration.BuildDirectory");
setLabelText(tr("Build directory:")); setLabelText(tr("Build directory:"));
setDisplayStyle(PathChooserDisplay); setDisplayStyle(PathChooserDisplay);
setExpectedKind(Utils::PathChooser::ExistingDirectory); setExpectedKind(Utils::PathChooser::Directory);
} }
BuildDirectoryAspect::~BuildDirectoryAspect() BuildDirectoryAspect::~BuildDirectoryAspect()

View File

@@ -422,10 +422,7 @@ void DebugView::instancesChildrenChanged(const QVector<ModelNode> & nodeList)
void DebugView::customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data) void DebugView::customNotification(const AbstractView *view, const QString &identifier, const QList<ModelNode> &nodeList, const QList<QVariant> &data)
{ {
if (identifier == "PuppetStatus" && data.count() == 1) { if (isDebugViewEnabled()) {
m_debugViewWidget->setPuppetStatus(data.constFirst().toString());
} else if (isDebugViewEnabled()) {
QTextStream message; QTextStream message;
QString string; QString string;
message.setString(&string); message.setString(&string);

View File

@@ -131,7 +131,7 @@ protected:
QRectF m_boundingRect; QRectF m_boundingRect;
QRectF m_paintedBoundingRect; QRectF m_paintedBoundingRect;
QRectF m_selectionBoundingRect; QRectF m_selectionBoundingRect;
QColor m_frameColor{0xaa, 0xaa, 0xaa}; QColor m_frameColor;
private: // functions private: // functions
void setup(); void setup();

View File

@@ -495,9 +495,6 @@ QProcessEnvironment PuppetCreator::processEnvironment() const
} }
#ifndef QMLDESIGNER_TEST #ifndef QMLDESIGNER_TEST
auto view = QmlDesignerPlugin::instance()->viewManager().nodeInstanceView();
view->emitCustomNotification("PuppetStatus", {}, {QVariant(m_qrcMapping)});
// set env var if QtQuick3D import exists // set env var if QtQuick3D import exists
QmlDesigner::Import import = QmlDesigner::Import::createLibraryImport("QtQuick3D", "1.0"); QmlDesigner::Import import = QmlDesigner::Import::createLibraryImport("QtQuick3D", "1.0");
if (m_model->hasImport(import, true, true)) if (m_model->hasImport(import, true, true))

View File

@@ -216,7 +216,9 @@ static bool isIdToAvoid(const QString& id)
"layer", "layer",
"scale", "scale",
"enabled", "enabled",
"anchors" "anchors",
"texture",
"shaderInfo"
}; };
return ids.contains(id); return ids.contains(id);

View File

@@ -158,13 +158,15 @@ void QmlPreviewPlugin::setLanguageLocale(const QString &locale)
QObject *QmlPreviewPlugin::getPreviewPlugin() QObject *QmlPreviewPlugin::getPreviewPlugin()
{ {
auto pluginIt = std::find_if(ExtensionSystem::PluginManager::plugins().begin(), const QVector<ExtensionSystem::PluginSpec *> specs = ExtensionSystem::PluginManager::plugins();
ExtensionSystem::PluginManager::plugins().end(),
auto pluginIt = std::find_if(specs.begin(),
specs.end(),
[](const ExtensionSystem::PluginSpec *p) { [](const ExtensionSystem::PluginSpec *p) {
return p->name() == "QmlPreview"; return p->name() == "QmlPreview";
}); });
if (pluginIt != ExtensionSystem::PluginManager::plugins().constEnd()) if (pluginIt != specs.end())
return (*pluginIt)->plugin(); return (*pluginIt)->plugin();
return nullptr; return nullptr;