Merge remote-tracking branch 'origin/6.0' into qds-2.3
Change-Id: I92481f36fb28a801ae3bbbf68733e8410d212ee5
97
.github/workflows/build_cmake.yml
vendored
@@ -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
@@ -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
|
||||
|
||||
|
BIN
doc/qtcreator/images/icons/create-tracepoint.png
Normal file
After Width: | Height: | Size: 183 B |
BIN
doc/qtcreator/images/icons/output-pane-menu.png
Normal file
After Width: | Height: | Size: 110 B |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 7.8 KiB |
BIN
doc/qtcreator/images/qtcreator-output-panes-taskbar.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 158 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 19 KiB |
BIN
doc/qtcreator/images/qtcreator-performance-analyzer-toolbar.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
@@ -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
|
||||
|
||||
|
@@ -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++
|
||||
|
@@ -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:
|
||||
|
@@ -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
|
||||
|
@@ -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}.
|
||||
|
@@ -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.
|
||||
|
||||
|
@@ -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}.
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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}
|
||||
|
@@ -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.
|
||||
|
@@ -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
|
||||
|
@@ -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.
|
||||
|
@@ -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:
|
||||
|
||||
|
@@ -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)
|
||||
|
@@ -115,7 +115,7 @@ DStitleBarIcon=ffffffff
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ff1f1f1f
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff1f1f1f
|
||||
|
@@ -105,7 +105,7 @@ DStitleBarIcon=ff4f5052
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ff999999
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff999999
|
||||
|
@@ -120,7 +120,7 @@ DStitleBarIcon=ff4f5052
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ffdadada
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff999999
|
||||
|
@@ -117,7 +117,7 @@ DStitleBarIcon=ffffffff
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ff1f1f1f
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff1f1f1f
|
||||
|
@@ -114,7 +114,7 @@ DStitleBarIcon=ffffffff
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ff1f1f1f
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff1f1f1f
|
||||
|
@@ -110,7 +110,7 @@ DStitleBarIcon=ff4f5052
|
||||
DStitleBarButtonHover=40ffffff
|
||||
DStitleBarButtonPress=60ffffff
|
||||
|
||||
DStabContainerBackground=ff0000ff
|
||||
DStabContainerBackground=ffdadada
|
||||
DStabSplitter=ff595959
|
||||
|
||||
DStabInactiveBackground=ff999999
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
@@ -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"},
|
||||
|
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -9,6 +9,8 @@ UTILS_DIR = $$PWD/../../libs/utils
|
||||
|
||||
DEFINES *= QTCREATOR_UTILS_STATIC_LIB
|
||||
|
||||
win32: LIBS*= -luser32
|
||||
|
||||
INCLUDEPATH += $$UTILS_DIR
|
||||
|
||||
HEADERS += \
|
||||
|
@@ -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",
|
||||
|