Merge remote-tracking branch 'origin/6.0' into qds-2.3

Change-Id: I92481f36fb28a801ae3bbbf68733e8410d212ee5
This commit is contained in:
Tim Jenssen
2021-11-30 17:45:08 +01:00
41 changed files with 256 additions and 108 deletions

View File

@@ -1,6 +1,10 @@
name: CMake Build Matrix
on: [push, pull_request]
on:
push:
paths-ignore:
- 'dist/**'
- 'doc/**'
env:
QT_VERSION: 6.2.1
@@ -350,34 +354,58 @@ jobs:
message("::set-output name=elfutils_dir::${elfutils_dir}")
- name: Download ccache
id: ccache
shell: cmake -P {0}
run: |
set(ccache_url "https://github.com/cristianadam/ccache/releases/download/v$ENV{CCACHE_VERSION}/${{ runner.os }}.tar.xz")
file(DOWNLOAD "${ccache_url}" ./ccache.tar.xz SHOW_PROGRESS)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ccache.tar.xz)
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
- name: Prepare ccache archive name
id: ccache
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}" github_workspace)
include(${github_workspace}/cmake/QtCreatorIDEBranding.cmake)
string(REPLACE "." ";" IDE_VERSION_LIST ${IDE_VERSION_DISPLAY})
list(GET IDE_VERSION_LIST 0 IDE_VERSION_MAJOR)
message("::set-output name=ide_major_version::${IDE_VERSION_MAJOR}")
message("::set-output name=archive_name::ccache-${{ matrix.config.os }}-${{ matrix.config.cc }}-qtc${IDE_VERSION_MAJOR}")
- name: Download ccache archive
shell: cmake -P {0}
run: |
file(WRITE $ENV{GITHUB_WORKSPACE}/netrc.txt
"default login runneradmin password ${{ secrets.GITHUB_TOKEN }}")
- name: ccache cache files
uses: actions/cache@v1
with:
path: .ccache
key: ${{ matrix.config.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.ide_major_version }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
restore-keys: |
${{ matrix.config.name }}-ccache-${{ steps.ccache_cache_timestamp.outputs.ide_major_version }}
foreach(page_id RANGE 1 10)
file(
DOWNLOAD "https://api.github.com/repos/${{ github.repository }}/actions/artifacts?per_page=100&page=${page_id}"
HTTPHEADER "Accept: application/vnd.github.v3+json"
NETRC_FILE "$ENV{GITHUB_WORKSPACE}/netrc.txt"
NETRC REQUIRED
SHOW_PROGRESS
artifacts.json)
file(READ artifacts.json artifacts_json)
string(JSON artifacts_length LENGTH "${artifacts_json}" "artifacts")
math(EXPR artifacts_length "${artifacts_length} - 1")
foreach(idx RANGE 0 ${artifacts_length})
string(JSON artifact_js GET "${artifacts_json}" "artifacts" ${idx})
string(JSON name GET "${artifact_js}" "name")
if ("${name}" STREQUAL "${{ steps.ccache.outputs.archive_name }}")
string(JSON download_url GET "${artifact_js}" "archive_download_url")
file(DOWNLOAD "${download_url}"
"${{ steps.ccache.outputs.archive_name }}.zip"
NETRC_FILE "$ENV{GITHUB_WORKSPACE}/netrc.txt"
NETRC REQUIRED
SHOW_PROGRESS)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf "${{ steps.ccache.outputs.archive_name }}.zip")
file(MAKE_DIRECTORY .ccache)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "../${{ steps.ccache.outputs.archive_name }}.tar" WORKING_DIRECTORY .ccache)
return()
endif()
endforeach()
endforeach()
- name: Install system libs
shell: cmake -P {0}
@@ -455,8 +483,10 @@ jobs:
string(REPLACE "x86" "x64" Python3_EXECUTABLE "${Python3_EXECUTABLE}")
set(WITH_TESTS "--with-tests")
set(NO_DMG "--no-dmg")
if (${{github.ref}} MATCHES "tags/v")
unset(WITH_TESTS)
unset(NO_DMG)
endif()
execute_process(
@@ -472,6 +502,7 @@ jobs:
${WITH_TESTS}
${CDB_OPTION}
${ELFUTILS_OPTION}
${NO_DMG}
--add-config=-DCMAKE_C_COMPILER_LAUNCHER=ccache
--add-config=-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
--add-config=-DIDE_REVISION_URL=https://github.com/$ENV{GITHUB_REPOSITORY}/commits/$ENV{GITHUB_SHA}
@@ -534,38 +565,48 @@ jobs:
endif()
- name: Upload
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
path: build/qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
- name: Upload Devel
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
path: build/qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z
name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z
- name: Upload wininterrupt
if: runner.os == 'Windows'
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
path: build/wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
name: wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
- name: Upload qtcreatorcdbext
if: runner.os == 'Windows' && matrix.config.is_msvc
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
path: build/qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
name: qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
- name: Upload disk image
if: runner.os == 'macOS'
uses: actions/upload-artifact@v1
if: runner.os == 'macOS' && contains(github.ref, 'tags/v')
uses: actions/upload-artifact@v2
with:
path: build/qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg
name: qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg
- name: Create ccache archive
working-directory: .ccache
run: cmake -E tar cf ../${{ steps.ccache.outputs.archive_name }}.tar .
- name: Upload ccache archive
uses: actions/upload-artifact@v2
with:
path: ./${{ steps.ccache.outputs.archive_name }}.tar
name: ${{ steps.ccache.outputs.archive_name }}
release:
if: contains(github.ref, 'tags/v')
runs-on: ubuntu-latest
@@ -587,7 +628,7 @@ jobs:
run: |
echo "${{ steps.create_release.outputs.upload_url }}" > ./upload_url
- uses: actions/upload-artifact@v1
- uses: actions/upload-artifact@v2
with:
path: ./upload_url
name: upload_url
@@ -620,40 +661,40 @@ jobs:
steps:
- name: Download artifact
uses: actions/download-artifact@v1
uses: actions/download-artifact@v2
with:
name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
path: ./
- name: Download Devel artifact
uses: actions/download-artifact@v1
uses: actions/download-artifact@v2
with:
name: qtcreator-${{ matrix.config.artifact }}-${{ github.run_id }}_dev.7z
path: ./
- name: Download wininterrupt artifact
if: contains(matrix.config.artifact, 'Windows')
uses: actions/download-artifact@v1
uses: actions/download-artifact@v2
with:
name: wininterrupt-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
path: ./
- name: Download qtcreatorcdbext artifact
if: matrix.config.artifact == 'Windows-MSVC'
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
name: qtcreatorcdbext-${{ matrix.config.artifact }}-${{ github.run_id }}.7z
path: ./
- name: Download disk image artifact
if: matrix.config.artifact == 'macOS'
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v2
with:
name: qt-creator-${{ matrix.config.artifact }}-${{ github.run_id }}.dmg
path: ./
- name: Download URL
uses: actions/download-artifact@v1
uses: actions/download-artifact@v2
with:
name: upload_url
path: ./

19
dist/changes-6.0.0.md vendored
View File

@@ -47,6 +47,16 @@ Editing
* Added option for `Insert header files on completion`
* Improved location of generated `compile_commands.json` (QTCREATORBUG-26431)
* Fixed missing reparsing after refactorings (QTCREATORBUG-26523)
* Fixed that parameters were incorrectly highlighted as output parameters
* Fixed highlighting of string literals in macros (QTCREATORBUG-26553)
* Fixed icon of signals and slots in completion list (QTCREATORBUG-26555)
* Fixed header completion for Qt headers (QTCREATORBUG-26482)
* Fixed code model update after UI header change
* Fixed that `Find References` could show results for deleted files
(QTCREATORBUG-26574)
* Fixed that highlighting of current symbol could vanish (QTCREATORBUG-26339)
* Fixed that nested items were not synchronized with cursor position in
outline (QTCREATORBUG-26509)
### QML
@@ -75,6 +85,7 @@ Projects
* Fixed that re-detecting compilers removed compilers from kits
(QTCREATORBUG-25697)
* Fixed GitHub action created by Qt Creator plugin wizard for Qt 6
* Fixed crash when canceling device test dialog (QTCREATORBUG-26285)
### CMake
@@ -155,10 +166,16 @@ Platforms
* Added details to device settings (QTCREATORBUG-23991)
* Added filter field for Android SDK manager
* Fixed that NDK 22 and later could not be added
* Fixed creation of Android template files (QTCREATORBUG-26580)
### iOS
* Fixed that no tasks were created for build issues (QTCREATORBUG-26541)
### WebAssembly
* Fixed running applications (QTCREATORBUG-25905, QTCREATORBUG-26189)
* Fixed running applications (QTCREATORBUG-25905, QTCREATORBUG-26189,
QTCREATORBUG-26562)
### MCU

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -72,7 +72,9 @@
\li Select the
\inlineimage qtcreator-analyze-start-button.png
(\uicontrol Start) button to start the application from the
Performance Analyzer.
\uicontrol {Performance Analyzer}.
\inlineimage qtcreator-performance-analyzer-toolbar.png "Performance Analyzer toolbar"
\endlist
@@ -101,9 +103,21 @@
To create trace points for profiling memory usage on a target device, select
\uicontrol Analyze > \uicontrol {Performance Analyzer Options} >
\uicontrol {Create Memory Trace Points}.
\uicontrol {Create Memory Trace Points} or select
\inlineimage icons/create-tracepoint.png
on the \uicontrol {Performance Analyzer} toolbar.
To add events for the trace points, see \l{Choosing Event Types}
In the \uicontrol {Create Memory Trace Points} dialog, you can modify the
script to run.
\image qtcreator-performance-analyzer-create-memory-trace-points.png "Create Memory Trace Points dialog"
If you need root privileges to run scripts as root, select the privileges to
use in the \uicontrol {Elevate privileges using} field.
Select \uicontrol OK to run the script.
To add events for the trace points, see \l{Choosing Event Types}.
You can record a memory trace to view usage graphs in the samples rows of
the timeline and to view memory allocations, peaks, and releases in the
@@ -418,8 +432,8 @@
You can load any \c perf.data files generated by recent versions of the
Linux Perf tool and view them in \QC. Select \uicontrol Analyze >
\uicontrol {Performance Analyzer Options} > \uicontrol {Load perf.data} to
load a file.
\uicontrol {Performance Analyzer Options} > \uicontrol {Load perf.data File}
to load a file.
\image qtcreator-cpu-usage-analyzer-load-perf-trace.png

View File

@@ -1,6 +1,6 @@
/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
@@ -111,35 +111,30 @@
\section1 Find a specific setting
To find specific settings you require in \uicontrol{Tools} > \uicontrol{Options}
To find specific settings in \uicontrol Tools > \uicontrol Options,
use the filter located at the top left of the \uicontrol Options dialog box.
\section1 Open output panes
The output panes provide a list of errors and warnings encountered during
a build, detailed output from the compiler, status of a program when it is
executed and debug output, as well as search results.
The \l{Viewing Output}{output panes} provide a list of errors and warnings
encountered during a build, detailed output from the compiler, status of a
program when it is executed, debug output, and search results.
To open output panes, use the following shortcuts:
\list
\li \uicontrol{Issues} pane Alt+1 (Cmd+1 on \macos)
\li \uicontrol{Issues} - \key Alt+1 (\key Cmd+1 on \macos)
\li \uicontrol{Search Results} pane Alt+2 (Cmd+2 on \macos)
\li \uicontrol{Search Results} - \key Alt+2 (\key Cmd+2 on \macos)
\li \uicontrol{Application Output} pane Alt+3 (Cmd+3 on \macos)
\li \uicontrol{Application Output} - \key Alt+3 (\key Cmd+3 on \macos)
\li \uicontrol{Compile Output} pane Alt+4 (Cmd+4 on \macos)
\li \uicontrol{Compile Output} - \key Alt+4 (\key Cmd+4 on \macos)
\endlist
To open the other output panes, such as \uicontrol{General Messages} and
\uicontrol{Version Control}, select \uicontrol View >
\uicontrol {Output Panes}. The menu items also display
the keyboard shortcuts that you can use.
For more information about output panes, see \l{Viewing Output}.
For additional ways to open all output panes, see \l{Viewing Output}.
\section1 Find keyboard shortcuts
@@ -147,17 +142,17 @@
You can see the keyboard shortcut for a menu command in the menu
or the tooltip for a button.
To customize, import or export keyboard shortcuts, select \uicontrol Tools >
To customize, import, or export keyboard shortcuts, select \uicontrol Tools >
\uicontrol Options > \uicontrol Environment > \uicontrol Keyboard.
\section1 Run \QC from the command line
You can launch \QC from command line using the name of an
existing session or \c .pro file by giving the name as the command
argument.
You can launch \QC from the command line using the name of an
existing \l{Managing Sessions}{session} or project file by entering
the name as the command argument.
For example, running \tt{qtcreator somesession}, launches \QC and
loads session somesession.
For example, running \c {qtcreator somesession}, launches \QC and
loads the session called \e somesession.
For more information, see \l{Using Command Line Options}.
@@ -210,7 +205,7 @@
If special debugging of Qt objects fails due to data corruption within the
debugged objects, you can switch off the debugging helpers. When debugging
helpers are switched off low-level structures become visible.
helpers are switched off, low-level structures become visible.
To switch off the debugging helpers:
\list 1
@@ -250,7 +245,7 @@
\section1 Quickly locate files using the keyboard
The \uicontrol Locator provides one of the easiest ways in \QC to browse
through projects, files, classes, functions, documentation and file systems.
through projects, files, classes, functions, documentation, and file systems.
To quickly access files not directly mentioned in your project, you can
create your own locator filters. That way you can locate files in a
directory structure you have defined.
@@ -307,12 +302,14 @@
\section1 Enclose selected code in curly braces, parentheses, or double quotes
Press \key {Shift} and then the opening character.
When you have selected code and enter one of the following opening
characters, the appropriate closing character is added automatically
at the end of the selection:
\list
\li Curly braces: \key {Shift+\{}
\li Parentheses: \key {Shift+(}
\li Double quotes: \key {Shift+"}
\li {
\li (
\li "
\endlist
\section1 Select the enclosing block in C++

View File

@@ -35,7 +35,7 @@
The AutotoolsProjectManager is a plugin for autotools support. It is
disabled by default. To enable the plugin, select \uicontrol Help >
\uicontrol {About Plugins} > \uicontrol {Build Systems} >
\uicontrol AutotoolsProjectManager.Then select \uicontrol {Restart Now}
\uicontrol AutotoolsProjectManager. Then select \uicontrol {Restart Now}
to restart \QC and load the plugin.
To work with your Autotools project in \QC:

View File

@@ -384,9 +384,24 @@
\endlist
Output panes are available in all \l{Selecting Modes}{modes}. Click the name
of an output pane to open the pane. To maximize an open output pane, click
the \uicontrol {Maximize Output Pane} button or press \key {Alt+9}.
Output panes are available on the taskbar in all \l{Selecting Modes}{modes}.
\image qtcreator-output-panes-taskbar.png "Output panes on the taskbar"
You can open output panes in the following ways:
\list
\li Select the output pane on the taskbar.
\li Select \key Alt (\key Cmd on \macos) and the number of the pane on
the taskbar.
\li Select \inlineimage icons/output-pane-menu.png
, and then select the pane to open.
\li Select \uicontrol View > \uicontrol {Output Panes}.
The menu items also display the keyboard shortcuts that you can use.
\endlist
To maximize an open output pane, select the \inlineimage arrowup.png
(\uicontrol {Maximize Output Pane}) button or press \key {Alt+Shift+9}.
To increase or decrease the output text size, select \inlineimage plus.png

View File

@@ -55,7 +55,7 @@
To create a project:
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\li Select \uicontrol File > \uicontrol {New Project} >
\uicontrol General > \uicontrol {Qt Quick Application - Empty} >
\uicontrol Choose.
\li In the \uicontrol Name field, enter the project name: \e {loginui1}.
@@ -308,8 +308,8 @@
To create a push button by using the wizard template:
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {Qt Quick Controls} >
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Controls} >
\uicontrol {Custom Button} > \uicontrol Choose.
\li In the \uicontrol {Component name} field, enter a name for your
button component: \e {EntryField}.

View File

@@ -46,8 +46,8 @@
\section1 Creating Reusable Buttons
We select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {Qt Quick Controls} >
We select \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Controls} >
\uicontrol {Custom Button} to create a reusable menu bar button
that we call \e CustomButton.

View File

@@ -63,7 +63,7 @@
We use the \uicontrol {Qt for MCUs Application} project template to create
an application for MCUs, which support only a subset of the preset
\l{glossary-component}{components}. We select \uicontrol File >
\uicontrol {New File or Project} > \uicontrol {Qt for MCUs Application} >
\uicontrol {New Project} > \uicontrol {Qt for MCUs Application} >
\uicontrol Choose, and follow the instructions of the wizard to create our
project.
@@ -100,7 +100,7 @@
that we use to indicate that a button is pressed.
Alternatively, you could create the screens from scratch in \QDS
by selecting \uicontrol File > \uicontrol {New File or Project} >
by selecting \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Files}. While designing the screens, you can
move reusable components into separate files. For more information,
see \l{Components}.

View File

@@ -40,7 +40,7 @@
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\li Select \uicontrol File > \uicontrol {New File} >
\if defined(qtcreator)
\uicontrol Qt > \uicontrol {Qt Quick UI File} >
\else
@@ -124,7 +124,6 @@
information, see \l{Creating Scalable Buttons and Borders}.
*/
/*!
\previouspage quick-buttons.html
\page quick-scalable-image.html
@@ -158,7 +157,7 @@
\section1 Creating the Button Component
To create a button component, select \uicontrol File >
\uicontrol {New File or Project} >
\uicontrol {New File} >
\if defined(qtcreator)
\uicontrol Qt > \uicontrol {Qt Quick UI File} >
\else

View File

@@ -47,7 +47,7 @@
To use wizard templates to create custom components:
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\li Select \uicontrol File > \uicontrol {New File} >
\if defined(qtcreator)
\uicontrol Qt > \uicontrol {Qt Quick UI File} >
\else

View File

@@ -92,7 +92,7 @@
for it, as described in \l {Creating Projects}.
To create the flow view, select \uicontrol File >
\uicontrol {New File or Project} > \uicontrol {Files and Classes} >
\uicontrol {New File} >
\uicontrol {Qt Quick Files} > \uicontrol {Flow View}
and follow the instructions of the wizard.
@@ -197,8 +197,8 @@
To add flow items:
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} >
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Files} >
\uicontrol {Flow Item} and follow the instructions of the wizard
to create flow items for each screen in the UI.
\li Add content to the flow item in one of the following ways:
@@ -649,8 +649,8 @@
\uicontrol Components > \uicontrol {Flow View}.
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} >
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Files} >
\uicontrol {Flow Item} to create a flow item.
\li In \l States, add states to the flow item.
\li Open the .ui.qml file that contains the \l{Adding Flow Views}

View File

@@ -70,7 +70,7 @@
To import assets exported in \QB to \QDS projects:
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project} >
\li Select \uicontrol File > \uicontrol {New Project} >
\uicontrol General > \uicontrol {Qt Quick Application - Empty} >
\uicontrol Choose, and follow the instructions of the wizard to
create an empty project.

View File

@@ -66,8 +66,8 @@
\code
importPaths: [ "imports", "backend" ]
\endcode
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {Qt Quick Files} >
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {Qt Quick Files} >
\uicontrol {Qt Quick File} > \uicontrol Choose to add a Qt
Quick file that will specify the API of the UI.
\li Follow the instructions of the wizard to create the Qt Quick file
@@ -75,8 +75,8 @@
\e Values.qml.
\note Make sure to capitalize the filename, because it will become
a custom component.
\li Select \uicontrol File > \uicontrol {New File or Project} >
\uicontrol {Files and Classes} > \uicontrol {JavaScript} >
\li Select \uicontrol File > \uicontrol {New File} >
\uicontrol {JavaScript} >
\uicontrol {JavaScript File} > \uicontrol Choose to create a
JavaScript file that generates mock data for the UI.
\li Follow the instructions of the wizard to create the JavaScript file

View File

@@ -111,7 +111,7 @@
\section1 Using Project Wizards
\list 1
\li Select \uicontrol File > \uicontrol {New File or Project}.
\li Select \uicontrol File > \uicontrol {New Project}.
\li Select a wizard template, and then select \uicontrol Choose.
\li In the \uicontrol Name field, enter a name for the project.
Keep in mind that projects cannot be easily renamed later.

View File

@@ -193,7 +193,7 @@
example, if you create a 3D project, preset 3D components are added to it.
You can add more preset components in \uicontrol Library.
\image studio-project-wizards.png "New File or Project dialog"
\image studio-project-wizards.png "New Project dialog"
Read more about projects:

View File

@@ -148,7 +148,8 @@ def package(args, paths):
common.check_print_call(['7z', 'a', '-mmt2',
os.path.join(paths.result, args.name + '_dev.7z'), '*'],
paths.dev_install)
if args.with_debug_info:
# check for existence - the DebugInfo install target doesn't work for telemetry plugin
if args.with_debug_info and os.path.exists(paths.debug_install):
common.check_print_call(['7z', 'a', '-mmt2',
os.path.join(paths.result, args.name + '-debug.7z'), '*'],
paths.debug_install)

View File

@@ -115,7 +115,7 @@ DStitleBarIcon=ffffffff
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ff1f1f1f
DStabSplitter=ff595959
DStabInactiveBackground=ff1f1f1f

View File

@@ -105,7 +105,7 @@ DStitleBarIcon=ff4f5052
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ff999999
DStabSplitter=ff595959
DStabInactiveBackground=ff999999

View File

@@ -120,7 +120,7 @@ DStitleBarIcon=ff4f5052
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ffdadada
DStabSplitter=ff595959
DStabInactiveBackground=ff999999

View File

@@ -117,7 +117,7 @@ DStitleBarIcon=ffffffff
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ff1f1f1f
DStabSplitter=ff595959
DStabInactiveBackground=ff1f1f1f

View File

@@ -114,7 +114,7 @@ DStitleBarIcon=ffffffff
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ff1f1f1f
DStabSplitter=ff595959
DStabInactiveBackground=ff1f1f1f

View File

@@ -110,7 +110,7 @@ DStitleBarIcon=ff4f5052
DStitleBarButtonHover=40ffffff
DStitleBarButtonPress=60ffffff
DStabContainerBackground=ff0000ff
DStabContainerBackground=ffdadada
DStabSplitter=ff595959
DStabInactiveBackground=ff999999

View File

@@ -31,6 +31,7 @@ if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/qlitehtml/src/CMakeLists.txt)
set(QLITEHTML_DEVEL_EXCLUDE_FROM_ALL ON)
set(QLITEHTML_HEADER_PATH "${IDE_HEADER_INSTALL_PATH}/src/lib/qlitehtml")
set(QT_VERSION_MAJOR ${Qt5_VERSION_MAJOR})
set(BUILD_TESTING OFF) # otherwise litehtml downloads googletest
add_subdirectory(qlitehtml/src)
endif()
if(TARGET qlitehtml)

View File

@@ -31,6 +31,13 @@
#include <QThread>
#include <QTimer>
#ifdef Q_OS_WIN
#ifdef QTCREATOR_PCH_H
#define CALLBACK WINAPI
#endif
#include <qt_windows.h>
#endif
using namespace Utils;
namespace Utils {
@@ -83,6 +90,26 @@ bool Reaper::isFinished() const
return !m_process;
}
#ifdef Q_OS_WIN
static BOOL sendMessage(UINT message, HWND hwnd, LPARAM lParam)
{
DWORD dwProcessID;
GetWindowThreadProcessId(hwnd, &dwProcessID);
if ((DWORD)lParam == dwProcessID) {
SendNotifyMessage(hwnd, message, 0, 0);
return FALSE;
}
return TRUE;
}
BOOL CALLBACK sendShutDownMessageToAllWindowsOfProcess_enumWnd(HWND hwnd, LPARAM lParam)
{
static UINT uiShutDownMessage = RegisterWindowMessage(L"qtcctrlcstub_shutdown");
return sendMessage(uiShutDownMessage, hwnd, lParam);
}
#endif
void Reaper::nextIteration()
{
QProcess::ProcessState state = m_process ? m_process->state() : QProcess::NotRunning;
@@ -96,10 +123,15 @@ void Reaper::nextIteration()
if (m_lastState == QProcess::Starting)
m_process->kill();
} else if (state == QProcess::Running) {
if (m_lastState == QProcess::Running)
if (m_lastState == QProcess::Running) {
m_process->kill();
else
} else if (m_process->program().endsWith(QLatin1String("qtcreator_ctrlc_stub.exe"))) {
#ifdef Q_OS_WIN
EnumWindows(sendShutDownMessageToAllWindowsOfProcess_enumWnd, m_process->processId());
#endif
} else {
m_process->terminate();
}
}
m_lastState = state;
@@ -149,10 +181,7 @@ void ProcessReaper::reap(QProcess *process, int timeoutMs)
if (process->state() == QProcess::NotRunning) {
process->deleteLater();
return;
} else {
process->kill();
}
// Neither can move object with a parent into a different thread
// nor reaping the process with a parent makes any sense.
process->setParent(nullptr);

View File

@@ -191,6 +191,7 @@ SemanticTokenSupport::SemanticTokenSupport(Client *client)
void SemanticTokenSupport::refresh()
{
qCDebug(LOGLSPHIGHLIGHT) << "refresh all semantic highlights for" << m_client->name();
m_tokens.clear();
for (Core::IEditor *editor : Core::EditorManager::visibleEditors())
onCurrentEditorChanged(editor);
@@ -226,6 +227,8 @@ void SemanticTokenSupport::reloadSemanticTokens(TextDocument *textDocument)
params.setTextDocument(docId);
SemanticTokensFullRequest request(params);
request.setResponseCallback(responseCallback);
qCDebug(LOGLSPHIGHLIGHT) << "Requesting all tokens for" << filePath << "with version"
<< m_client->documentVersion(filePath);
m_client->sendContent(request);
}
}
@@ -238,19 +241,22 @@ void SemanticTokenSupport::updateSemanticTokens(TextDocument *textDocument)
const VersionedTokens versionedToken = m_tokens.value(filePath);
const QString &previousResultId = versionedToken.tokens.resultId().value_or(QString());
if (!previousResultId.isEmpty()) {
if (m_client->documentVersion(filePath) == versionedToken.version)
const int documentVersion = m_client->documentVersion(filePath);
if (documentVersion == versionedToken.version)
return;
SemanticTokensDeltaParams params;
params.setTextDocument(TextDocumentIdentifier(DocumentUri::fromFilePath(filePath)));
params.setPreviousResultId(previousResultId);
SemanticTokensFullDeltaRequest request(params);
request.setResponseCallback(
[this, filePath, documentVersion = m_client->documentVersion(filePath)](
[this, filePath, documentVersion](
const SemanticTokensFullDeltaRequest::Response &response) {
handleSemanticTokensDelta(filePath,
response.result().value_or(nullptr),
documentVersion);
});
qCDebug(LOGLSPHIGHLIGHT)
<< "Requesting delta for" << filePath << "with version" << documentVersion;
m_client->sendContent(request);
return;
}
@@ -411,8 +417,10 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
const LanguageServerProtocol::SemanticTokensDeltaResult &result,
int documentVersion)
{
qCDebug(LOGLSPHIGHLIGHT) << "Handle Tokens for " << filePath;
if (auto tokens = Utils::get_if<SemanticTokens>(&result)) {
m_tokens[filePath] = {*tokens, documentVersion};
qCDebug(LOGLSPHIGHLIGHT) << "New Data " << tokens->data();
} else if (auto tokensDelta = Utils::get_if<SemanticTokensDelta>(&result)) {
m_tokens[filePath].version = documentVersion;
QList<SemanticTokensEdit> edits = tokensDelta->edits();
@@ -434,7 +442,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
auto it = data.begin();
const auto end = data.end();
qCDebug(LOGLSPHIGHLIGHT) << "Edit Tokens for " << filePath;
qCDebug(LOGLSPHIGHLIGHT) << "Edit Tokens";
qCDebug(LOGLSPHIGHLIGHT) << "Data before edit " << data;
for (const SemanticTokensEdit &edit : qAsConst(edits)) {
if (edit.start() > data.size()) // prevent edits after the previously reported data
@@ -469,6 +477,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
tokens.setResultId(tokensDelta->resultId());
} else {
m_tokens.remove(filePath);
qCDebug(LOGLSPHIGHLIGHT) << "Data cleared";
return;
}
highlight(filePath);
@@ -476,6 +485,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
void SemanticTokenSupport::highlight(const Utils::FilePath &filePath, bool force)
{
qCDebug(LOGLSPHIGHLIGHT) << "highlight" << filePath;
TextDocument *doc = TextDocument::textDocumentForFilePath(filePath);
if (!doc || LanguageClientManager::clientForDocument(doc) != m_client)
return;
@@ -486,6 +496,7 @@ void SemanticTokenSupport::highlight(const Utils::FilePath &filePath, bool force
const QList<SemanticToken> tokens = versionedTokens.tokens
.toTokens(m_tokenTypes, m_tokenModifiers);
if (m_tokensHandler) {
qCDebug(LOGLSPHIGHLIGHT) << "use tokens handler" << filePath;
int line = 1;
int column = 1;
QList<ExpandedSemanticToken> expandedTokens;

View File

@@ -50,8 +50,8 @@ static const QHash<QString, QString> &envVarToCMakeVarMapping()
{"IMXRT595_FREERTOS_DIR","FREERTOS_DIR"},
{"STM32F7_FREERTOS_DIR", "FREERTOS_DIR"},
{"eFlashLoad_PATH","eFlashLoad_PATH"},
{"RenesasFlashProgrammer_PATH", "RenesasFlashProgrammer_PATH"},
{"MCUXpressoIDE_PATH", "MCUXpressoIDE_PATH"},
{"RenesasFlashProgrammer_PATH", "RENESAS_FLASH_PROGRAMMER_PATH"},
{"MCUXpressoIDE_PATH", "MCUXPRESSO_IDE_PATH"},
{"JLINK_PATH", "JLINK_PATH"},
{"TVII_GRAPHICS_DRIVER_DIR", "TVII_GRAPHICS_DRIVER_DIR"},
{"CYPRESS_AUTO_FLASH_UTILITY_DIR", "CYPRESS_AUTO_FLASH_UTILITY_DIR"},

View File

@@ -255,8 +255,10 @@ void DeviceSettingsWidget::testDevice()
{
const IDevice::ConstPtr &device = currentDevice();
QTC_ASSERT(device && device->hasDeviceTester(), return);
DeviceTestDialog dlg(m_deviceManager->mutableDevice(device->id()), this);
dlg.exec();
auto dlg = new DeviceTestDialog(m_deviceManager->mutableDevice(device->id()), this);
dlg->setAttribute(Qt::WA_DeleteOnClose);
dlg->setModal(true);
dlg->show();
}
void DeviceSettingsWidget::handleDeviceUpdated(Id id)

View File

@@ -521,6 +521,19 @@ void JsonWizardFactory::registerGeneratorFactory(JsonWizardGeneratorFactory *fac
s_generatorFactories.append(factory);
}
static QString qmlProjectName(const FilePath &folder)
{
FilePath currentFolder = folder;
while (!currentFolder.isEmpty()) {
const QList<FilePath> fileList = currentFolder.dirEntries({"*.qmlproject"});
if (!fileList.isEmpty())
return fileList.first().baseName();
currentFolder = currentFolder.parentDir();
}
return {};
}
Wizard *JsonWizardFactory::runWizardImpl(const FilePath &path, QWidget *parent,
Id platform,
const QVariantMap &variables, bool showWizard)
@@ -545,6 +558,7 @@ Wizard *JsonWizardFactory::runWizardImpl(const FilePath &path, QWidget *parent,
wizard->setValue(i.key(), i.value());
wizard->setValue(QStringLiteral("InitialPath"), path.toString());
wizard->setValue(QStringLiteral("QmlProjectName"), qmlProjectName(path));
wizard->setValue(QStringLiteral("Platform"), platform.toString());
QString kindStr = QLatin1String(Core::Constants::WIZARD_KIND_UNKNOWN);

View File

@@ -9,6 +9,8 @@ UTILS_DIR = $$PWD/../../libs/utils
DEFINES *= QTCREATOR_UTILS_STATIC_LIB
win32: LIBS*= -luser32
INCLUDEPATH += $$UTILS_DIR
HEADERS += \

View File

@@ -9,6 +9,11 @@ QtcTool {
cpp.defines: base.concat("QTCREATOR_UTILS_STATIC_LIB")
cpp.includePaths: base.concat(pathToUtils)
Properties {
condition: qbs.targetOS.contains("windows")
cpp.dynamicLibraries: "user32"
}
files: [
"launcherlogging.cpp",
"launcherlogging.h",