diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml
index e1be45d67c6..d695061f95d 100644
--- a/.github/workflows/build_cmake.yml
+++ b/.github/workflows/build_cmake.yml
@@ -7,7 +7,7 @@ on:
- 'doc/**'
env:
- QT_VERSION: 6.4.1
+ QT_VERSION: 6.4.0
CLANG_VERSION: 15.0.0
ELFUTILS_VERSION: 0.175
CMAKE_VERSION: 3.21.1
diff --git a/cmake/CreatePythonXY.cmake b/cmake/CreatePythonXY.cmake
index 8aeeb156cb2..0475b259f68 100644
--- a/cmake/CreatePythonXY.cmake
+++ b/cmake/CreatePythonXY.cmake
@@ -64,6 +64,7 @@ function(create_python_xy PythonExe PythonZipFilePath)
set(ENV{PYTHONOPTIMIZE} "2")
execute_process(
COMMAND "${PythonExe}" -OO -m compileall "${CMAKE_CURRENT_BINARY_DIR}/python-lib" -b
+ ${QTC_COMMAND_ERROR_IS_FATAL}
)
file(GLOB_RECURSE python_lib_files "${CMAKE_CURRENT_BINARY_DIR}/python-lib/*.py")
@@ -75,5 +76,6 @@ function(create_python_xy PythonExe PythonZipFilePath)
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar cf "${PythonZipFilePath}" . --format=zip
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/python-lib/"
+ ${QTC_COMMAND_ERROR_IS_FATAL}
)
endfunction()
diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake
index 52ba2f44026..68461f8bcd6 100644
--- a/cmake/QtCreatorAPI.cmake
+++ b/cmake/QtCreatorAPI.cmake
@@ -778,14 +778,14 @@ function(add_qtc_executable name)
set(_code "${_code}
execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\"
-delete_rpath \"${_rpath}\"
- \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")"
+ \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})"
)
endforeach()
foreach(_rpath ${install_rpath})
set(_code "${_code}
execute_process(COMMAND \"${CMAKE_INSTALL_NAME_TOOL}\"
-add_rpath \"${_rpath}\"
- \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\")"
+ \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${_EXECUTABLE_FILE_PATH}\" ${QTC_COMMAND_ERROR_IS_FATAL})"
)
endforeach()
install(CODE "${_code}")
diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake
index 4efb59c988d..ace1f3c8d1c 100644
--- a/cmake/QtCreatorAPIInternal.cmake
+++ b/cmake/QtCreatorAPIInternal.cmake
@@ -1,3 +1,7 @@
+if (CMAKE_VERSION GREATER_EQUAL 3.19)
+ set(QTC_COMMAND_ERROR_IS_FATAL COMMAND_ERROR_IS_FATAL ANY)
+endif()
+
if (CMAKE_VERSION VERSION_LESS 3.18)
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
set(BUILD_WITH_PCH OFF CACHE BOOL "" FORCE)
diff --git a/cmake/QtCreatorDocumentation.cmake b/cmake/QtCreatorDocumentation.cmake
index 49bf3d2d02d..a652d625176 100644
--- a/cmake/QtCreatorDocumentation.cmake
+++ b/cmake/QtCreatorDocumentation.cmake
@@ -22,7 +22,8 @@ function(qt5_query_qmake)
TIMEOUT 10
RESULT_VARIABLE _qmake_result
OUTPUT_VARIABLE _qmake_stdout
- OUTPUT_STRIP_TRAILING_WHITESPACE)
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ ${QTC_COMMAND_ERROR_IS_FATAL})
if (NOT "${_qmake_result}" STREQUAL "0")
message(FATAL_ERROR "Qmake did not execute successfully: ${_qmake_result}.")
diff --git a/cmake/Utils.cmake b/cmake/Utils.cmake
index e43674e4a35..602781ca391 100644
--- a/cmake/Utils.cmake
+++ b/cmake/Utils.cmake
@@ -47,6 +47,7 @@ function(setup_dependencies_component)
\"\${_ide_app_target}\"
\"${_qmake_binary}\"
COMMAND_ECHO STDOUT
+ \${QTC_COMMAND_ERROR_IS_FATAL}
)
"
COMPONENT Dependencies
diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml
index 7c6bcfe14c0..5843ca790b0 100644
--- a/coin/instructions/common_environment.yaml
+++ b/coin/instructions/common_environment.yaml
@@ -10,7 +10,7 @@ instructions:
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_15.0.0-based
- type: EnvironmentVariable
variableName: QTC_QT_BASE_URL
- variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.1-released/Qt"
+ variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.0-released/Qt"
- type: EnvironmentVariable
variableName: QTC_QT_MODULES
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
diff --git a/doc/qtcreator/src/editors/creator-code-indentation.qdoc b/doc/qtcreator/src/editors/creator-code-indentation.qdoc
index 11cae3c5b3f..f00ecdc4f15 100644
--- a/doc/qtcreator/src/editors/creator-code-indentation.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-indentation.qdoc
@@ -65,7 +65,9 @@
To visualize whitespace in the editor, select \uicontrol Edit >
\uicontrol Preferences > \uicontrol {Text Editor} > \uicontrol Display >
\uicontrol {Visualize whitespace}. To visualize indentation, select
- \uicontrol {Visualize Indent}.
+ \uicontrol {Visualize Indent}. To adjust the color of the visualization,
+ change the value of the Visual Whitespace setting of the editor color scheme
+ in \uicontrol {Font & Colors}.
\image qtcreator-options-text-editor-display.png "Text Editor Display preferences"
diff --git a/doc/qtcreator/src/editors/creator-code-syntax.qdoc b/doc/qtcreator/src/editors/creator-code-syntax.qdoc
index ae86067e9f8..f4f57e6488e 100644
--- a/doc/qtcreator/src/editors/creator-code-syntax.qdoc
+++ b/doc/qtcreator/src/editors/creator-code-syntax.qdoc
@@ -682,6 +682,20 @@
\li An import statement has been added twice. For more information,
see \l{Import Statements}.
+ \row
+ \li M401
+ \li Error
+ \li Do not reference the root item as alias
+ \li The alias property cannot reference the root component directly.
+ Create an instance of the component instead.
+
+ \row
+ \li M402
+ \li Warning
+ \li Avoid referencing the root item in a hierarchy
+ \li The alias property cannot reference the root component in a
+ hierarchy. Create an instance of the component instead.
+
\endtable
\section1 Resetting the Code Model
diff --git a/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc b/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc
index d6aafd4469e..a9a94cd3df8 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-squish.qdoc
@@ -8,8 +8,8 @@
\title Using Squish
- \l{https://doc.froglogic.com/squish/latest/}{Squish} is an automated GUI
- testing framework for testing Android, iOS, Java, Qt, Tk, Windows, and
+ \l{https://www.qt.io/product/quality-assurance/squish}{Squish} is an automated GUI
+ testing framework for testing Android, iOS, Java, \macos, Qt, Tk, Windows, and
XView applications, as well as HTML-based web applications running in
browsers, such as Apple Safari, Mozilla Firefox, Google Chrome, and
Microsoft Internet Explorer and Edge.
diff --git a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
index efa148bfe25..2719aa3e4c8 100644
--- a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
+++ b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc
@@ -175,19 +175,24 @@
\section1 Supported Qt for MCUs SDKs
- Since version 7.0.0, \QC supports version 2.0 and later of the Qt for MCUs SDK.
- For older versions, refer to the following table.
+ \note The Qt for MCUs SDK 2.3 requires \QC 9.0.0, or later.
+
+ The following table lists the \QC versions you can use to develop
+ applications with particular Qt for MCUs SDK versions.
\table
\header
\li \QC version
\li Qt for MCUs SDK version
\row
- \li 7.0.0 or later
+ \li 9.0.0 or later
\li 2.0 or later
+ \row
+ \li 7.0.0 up to 8.0.2
+ \li 2.0 up to 2.2
\row
\li 6.0.x
- \li 1.3 or later, including 2.0 or later
+ \li 1.3 up to 2.2
\row
\li 4.12.4 up to 5.0.3
\li 1.3 up to 1.9
diff --git a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc
index 6dfdf06c8e3..e7da4b12c7e 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-supported-platforms.qdoc
@@ -21,7 +21,7 @@
\li {3,1} Development Platform
\header
\li \l Linux
- \li \l macOS
+ \li \l \macos
\li \l Windows
\row
\li \l Android
@@ -50,7 +50,7 @@
\li
\row
\li \l{Microcontroller Units (MCU)}{MCUs}
- \li
+ \li \image ok.png
\li
\li \image ok.png
\row
diff --git a/doc/qtdesignstudio/examples/doc/webinardemo.qdoc b/doc/qtdesignstudio/examples/doc/webinardemo.qdoc
index a5fa528b3da..56aedef21be 100644
--- a/doc/qtdesignstudio/examples/doc/webinardemo.qdoc
+++ b/doc/qtdesignstudio/examples/doc/webinardemo.qdoc
@@ -90,7 +90,8 @@
\image webinardemo-qb-fastblur.png "Settings for exporting blurEffect layer"
- We want to apply the \l {FastBlur} effect to the \e smallPopup UI control.
+ We want to apply the \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-fastblur.html}
+ {Fast Blur} effect to the \e smallPopup UI control.
In the artboard, we have a \e blurEffect layer that we want to export as a
\e FastBlurItem component. In the \uicontrol Component field, we enter
\e FastBlurItem.
diff --git a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
index e8a4d65d518..9cff12750c0 100644
--- a/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
+++ b/doc/qtdesignstudio/src/qtquickdesigner-components/qtdesignstudio-visual-effects.qdoc
@@ -78,7 +78,7 @@
\li Description
\row
\li \inlineimage icons/blend-mode-16px.png
- \li \l [QML] {Blend}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-blend.html}{Blend}
\li
\li Merges two source components by using a blend mode.
@@ -88,28 +88,34 @@
is subtracted from the source and written over it.
For a list of possible \uicontrol Mode values and examples of their
- use, see \l{Blend::mode}{Blend.mode}.
+ use, see
+ \l{https://doc.qt.io/qt-5/qml-qtgraphicaleffects-blend.html#mode-prop}
+ {Blend.mode}.
\row
\li \inlineimage icons/brightness-contrast-16px.png
- \li \l {BrightnessContrast}{Brightness Contrast}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-brightnesscontrast.html}
+ {Brightness Contrast}
\li \inlineimage ok.png
\li Adjusts \uicontrol Brightness and \uicontrol Contrast.
\row
\li \inlineimage icons/colourize-16px.png
- \li \l {ColorOverlay}{Color Overlay}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-coloroverlay.html}
+ {Color Overlay}
\li \inlineimage ok.png
\li Alters the colors of the source component by applying an
\uicontrol {Overlay color}. You can use the color picker
to \l{Picking Colors}{select the color}.
\row
\li \inlineimage icons/colourize-16px.png
- \li \l Colorize
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-colorize.html}
+ {Colorize}
\li \inlineimage ok.png
\li Sets the color in the HSL color space by specifying \uicontrol Hue,
\uicontrol Lightness, and \uicontrol Saturation values.
\row
\li \inlineimage icons/desaturation-16px.png
- \li \l {Desaturate}{Desaturation}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-desaturate.html}
+ {Desaturation}
\li \inlineimage ok.png
\li Reduces the saturation of the colors by the value set in the
\uicontrol Desaturation field. The value ranges from \c 0.0
@@ -118,7 +124,8 @@
of the source component.
\row
\li \inlineimage icons/directional-blur-16px.png
- \li \l {DirectionalBlur}{Directional Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-directionalblur.html}
+ {Directional Blur}
\li \inlineimage ok.png
\li Applies a blur effect to the specified direction. The value of the
\uicontrol Angle field defines the direction of the blur. This
@@ -135,7 +142,8 @@
more samples are needed to preserve high visual quality.
\row
\li \inlineimage icons/displace-16px.png
- \li \l Displace
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-displace.html}
+ {Displace}
\li \inlineimage ok.png
\li Moves the pixels of the source component according to the displacement
map specified in the \uicontrol {Displacement source} field.
@@ -148,7 +156,8 @@
maximum shift.
\row
\li \inlineimage icons/drop-shadow-16px.png
- \li \l {DropShadow}{Drop Shadow}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-dropshadow.html}
+ {Drop Shadow}
\li \inlineimage ok.png
\li Generates a soft shadow behind the source component using a
gaussian blur. This effect blurs the alpha channel of the input and
@@ -170,7 +179,8 @@
FPS on high-end graphics hardware.
\row
\li \inlineimage icons/fast-blur-16px.png
- \li \l {FastBlur}{Fast Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-fastblur.html}
+ {Fast Blur}
\li \inlineimage ok.png
\li Applies a fast blur effect to one or more source components.
\uicontrol {Fast Blur} offers lower blur quality than
@@ -188,7 +198,8 @@
to provide good rendering performance.
\row
\li \inlineimage icons/gamma-adjust-16px.png
- \li \l [QML] {GammaAdjust}{Gamma Adjust}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-gammaadjust.html}
+ {Gamma Adjust}
\li \inlineimage ok.png
\li Alters the luminance of the source component. This effect is applied
to each pixel according to the curve that is pre-defined as a
@@ -196,7 +207,8 @@
field is used as the reciprocal scaling exponent.
\row
\li \inlineimage icons/gaussian-blur-16px.png
- \li \l [QML] {GaussianBlur}{Gaussian Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-gaussianblur.html}
+ {Gaussian Blur}
\li
\li Applies a gaussian blur effect to one or more source components.
The effect softens the image by blurring it with an algorithm that
@@ -218,7 +230,7 @@
the radius.
\row
\li \inlineimage icons/glow-16px.png
- \li \l [QML] {Glow}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-glow.html}{Glow}
\li \inlineimage ok.png
\li Generates a halo-like glow around the source component. This effect
blurs the alpha channel of the source and colorizes it with
@@ -229,7 +241,8 @@
glow can be changed using the value of the \uicontrol Spread field.
\row
\li \inlineimage icons/hue-saturation-16px.png
- \li \l {HueSaturation}{Hue Saturation}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-huesaturation.html}
+ {Hue Saturation}
\li \inlineimage ok.png
\li Alters the source component colors in the HSL color space.
This effect is similar to the \uicontrol Colorize effect, but
@@ -239,7 +252,8 @@
setting them.
\row
\li \inlineimage icons/inner-shadow-16px.png
- \li \l {InnerShadow}{Inner Shadow}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-innershadow.html}
+ {Inner Shadow}
\li
\li Generates a colorized and blurred shadow inside the source using
the color that you specify in the \uicontrol {Inner shadow color}
@@ -261,7 +275,8 @@
check box.
\row
\li \inlineimage icons/levels-16px.png
- \li \l {LevelAdjust}{Level Adjust}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-leveladjust.html}
+ {Level Adjust}
\li \inlineimage ok.png
\li Adjusts color levels in the RGBA color space. This effect adjusts
the source component colors separately for each color channel. Source
@@ -291,7 +306,8 @@
value of the \uicontrol Minimum output field.
\row
\li \inlineimage icons/mask-blur-16px.png
- \li \l {MaskedBlur}{Masked Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-maskedblur.html}
+ {Masked Blur}
\li
\li Softens the image by blurring it. The intensity of the blur can be
controlled for each pixel by specifying a \uicontrol {Mask source},
@@ -306,7 +322,8 @@
samples produce better quality, but are slower to render.
\row
\li \inlineimage icons/opacity-mask-16px.png
- \li \l {OpacityMask}{Opacity Mask}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-opacitymask.html}
+ {Opacity Mask}
\li \inlineimage ok.png
\li Masks the source component with another component specified in the
\uicontrol {Mask source} field. The mask component gets rendered into an
@@ -321,7 +338,8 @@
with the mask alpha: \c {As * Am}.
\row
\li \inlineimage icons/radial-blur-16px.png
- \li \l {RadialBlur}{Radial Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-radialblur.html}
+ {Radial Blur}
\li
\li Applies a directional blur effect in a circular direction around the
component's center point. This effect makes the source component appear
@@ -336,7 +354,8 @@
samples are needed to preserve high visual quality.
\row
\li \inlineimage icons/recursive-blur-16px.png
- \li \l {RecursiveBlur}{Recursive Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-recursiveblur.html}
+ {Recursive Blur}
\li
\li Blurs repeatedly, providing a strong blur effect. This effect
softens the image by blurring it with an algorithm that uses a
@@ -352,7 +371,8 @@
but the result is produced asynchronously and takes more time.
\row
\li \inlineimage icons/threshold-16px.png
- \li \l {ThresholdMask}{Threshold Mask}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-thresholdmask.html}
+ {Threshold Mask}
\li \inlineimage ok.png
\li Masks the source component with another component specified by
\uicontrol {Mask source}. The value of the \uicontrol Spread
@@ -363,7 +383,8 @@
opaque mask pixels by adding interpolated values between them.
\row
\li \inlineimage icons/zoom-blur-16px.png
- \li \l {ZoomBlur}{Zoom Blur}
+ \li \l {https://doc.qt.io/qt-5/qml-qtgraphicaleffects-zoomblur.html}
+ {Zoom Blur}
\li
\li Applies a directional blur effect towards source component's
center point. This effect makes the source component appear to be
diff --git a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
index 0f7547c1195..8f8a1da66b8 100644
--- a/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
+++ b/doc/qtdesignstudio/src/views/qtquick-properties.qdoc
@@ -392,7 +392,8 @@
Typically, this component should be a shader effect with a source texture
specified. You can use the effects in \uicontrol Components >
\uicontrol {Qt Quick Studio Effects} that are based on the components in the
- \l {Qt Graphical Effects} module.
+ \l {https://doc.qt.io/qt-5/qtgraphicaleffects-index.html}
+ {Qt Graphical Effects} module.
To enable the component to pass the layer's offscreen surface to the effect
correctly, the \uicontrol {Sampler name} field is set to the source
diff --git a/share/qtcreator/debugger/mac_stdtypes.py b/share/qtcreator/debugger/mac_stdtypes.py
index 9484e3d14bf..3f6fcbdb93c 100644
--- a/share/qtcreator/debugger/mac_stdtypes.py
+++ b/share/qtcreator/debugger/mac_stdtypes.py
@@ -165,8 +165,15 @@ def qdump__std____1__stack(d, value):
def std_1_string_dumper(d, value):
charType = value['__l']['__data_'].dereference().type
+ D = None
- D = value[0][0][0][0]
+ try: # LLDB
+ D = value[0][0][0][0]
+ except: # GDB
+ try: # std::string
+ D = value[0].members(True)[0][0][0]
+ except: # std::u16string, std::u32string
+ D = value[2].members(True)[0][0][0]
layoutDecider = D[0][0]
if not layoutDecider:
@@ -218,13 +225,14 @@ def std_1_string_dumper(d, value):
if short_mode and location_sp:
d.putCharArrayHelper(d.extractPointer(location_sp), size,
- charType, d.currentItemFormat())
+ charType, d.currentItemFormat())
else:
d.putCharArrayHelper(location_sp.integer(),
- size, charType, d.currentItemFormat())
+ size, charType, d.currentItemFormat())
return
+
def qdump__std____1__string(d, value):
std_1_string_dumper(d, value)
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 8c4a5e934e5..790c66800c7 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -124,19 +124,19 @@
CMakeProjectManagerInitial Configuration
-
+ Initiale KonfigurationCurrent Configuration
-
+ Aktuelle KonfigurationKit Configuration
-
+ Kit-KonfigurationEdit the current kit's CMake configuration.
-
+ Die CMake-Konfiguration des aktuellen Kits bearbeiten.Filter
@@ -176,11 +176,11 @@
&Set
-
+ &SetzenSet a value in the CMake configuration.
-
+ Einen Wert in der CMake-Konfiguration setzen.&Unset
@@ -200,11 +200,11 @@
Batch Edit...
-
+ Als Text bearbeiten...Set or reset multiple values in the CMake configuration.
-
+ Mehrere Variablen in der CMake-Konfiguration setzen oder zurücksetzen.Advanced
@@ -212,63 +212,63 @@
Clear system environment
- Systemumgebung löschen
+ Systemumgebung löschenHelp
- Hilfe
+ HilfeApply Kit Value
-
+ Wert des Kits anwendenApply Initial Configuration Value
-
+ Wert der initialen Konfiguration anwendenCopy
- Kopieren
+ KopierenChange the build directory to "%1" and start with a basic CMake configuration?
-
+ Wollen Sie das Build-Verzeichnis auf "%1" ändern und mit einer grundlegenden CMake-Konfiguration beginnen?The CMake flag for the development team
-
+ Das CMake-Flag für das EntwicklerteamThe CMake flag for the provisioning profile
-
+ Das CMake-Flag für das Provisioning-ProfilThe CMake flag for the architecture on macOS
-
+ Das CMake-Flag für die macOS-ArchitekturThe CMake flag for QML debugging, if enabled
-
+ Das CMake-Flag für QML-Debuggen, falls aktiviertProfile
- Profile
+ ProfileClean Environment
- Saubere Umgebung
+ Saubere UmgebungSystem Environment
- Systemumgebung
+ SystemumgebungAdditional CMake <a href="options">options</a>:
-
+ Weitere CMake-<a href="options">Optionen</a>:Build type:
-
+ Build-Typ:<UNSET>
@@ -276,31 +276,31 @@
Enter one CMake <a href="variable">variable</a> per line.<br/>To set or change a variable, use -D<variable>:<type>=<value>.<br/><type> can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.<br/>To unset a variable, use -U<variable>.<br/>
-
+ Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen oder zu ändern, benutzen Sie -D<Variable>:<Typ>=<Wert>.<br/><Typ> kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.<br/>Um eine Variable zurückzusetzen, benutzen Sie -U<Variable>.<br/>Re-configure with Initial Parameters
-
+ Mit initialen Parametern neu konfigurierenClear CMake configuration and configure with initial parameters?
-
+ Die CMake-Konfiguration löschen und mit initialen Parametern konfigurieren?Do not ask again
- Nicht noch einmal nachfragen
+ Nicht noch einmal nachfragenKit CMake Configuration
-
+ CMake-Konfiguration des KitsConfigure
- Konfigurieren
+ KonfigurierenStop CMake
-
+ CMake abbrechenbool
@@ -336,7 +336,7 @@
Clear CMake Configuration
- CMake-Konfiguration bereinigen
+ CMake-Konfiguration löschenRescan Project
@@ -372,15 +372,15 @@
CMakeUserPresets.json cannot re-define the %1 preset: %2
-
+ CMakeUserPresets.json kann das Preset %1 nicht erneut definieren: %2Build preset %1 is missing a corresponding configure preset.
-
+ Im Build-Preset %1 fehlt ein entsprechendes Configure-Preset.Failed to load %1: %2
-
+ %1 konnte nicht geladen werden: %2yes
@@ -416,35 +416,35 @@
Version: %1
- Version: %1
+ Version: %1Supports fileApi: %1
-
+ Unterstützt fileApi: %1Detection source: "%1"
-
+ Quelle: "%1"CMake executable path does not exist.
-
+ Pfad für das CMake-Werkzeug existiert nicht.CMake executable path is not a file.
-
+ Pfad für das CMake-Werkzeug ist keine Datei.CMake executable path is not executable.
-
+ Pfad für das CMake-Werkzeug ist nicht ausführbar.CMake executable does not provide required IDE integration features.
-
+ Ausführbare CMake-Datei unterstützt die benötigten Funktionen für die IDE-Integration nicht.Path
- Pfad
+ PfadName:
@@ -456,7 +456,7 @@
Version:
- Version:
+ Version:Help file:
@@ -496,27 +496,27 @@
Current executable
-
+ Aktuelle ausführbare DateiBuild the executable used in the active run configuration. Currently: %1
-
+ Die ausführbare Datei der aktiven Ausführungskonfiguration erstellen. Aktuell: %1Target: %1
-
+ Ziel: %1Enable automatic provisioning updates:
-
+ Automatische Provisionierungsaktualisierungen aktivieren:Tells xcodebuild to create and download a provisioning profile if a valid one does not exist.
-
+ Veranlasst xcodebuild, ein Provisionierungsprofil zu erstellen und herunterzuladen, wenn kein gültiges vorhanden ist.Target
- Ziel
+ ZielThe build configuration is currently disabled.
@@ -524,7 +524,7 @@
A CMake tool must be set up for building. Configure a CMake tool in the kit options.
- Zum Erstellen muss ein CMake Tool eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen.
+ Zum Erstellen muss ein CMake-Werkzeug eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen.There is a CMakeCache.txt file in "%1", which suggest an in-source build was done before. You are now building in "%2", and the CMakeCache.txt file might confuse CMake.
@@ -545,7 +545,7 @@
CMake BuildDisplay name for CMakeProjectManager::CMakeBuildStep id.
- Erstellen mit CMake
+ Erstellen mit CMakeCMake arguments:
@@ -558,7 +558,7 @@
BuildConfigWidget display name.
-
+ ErstellenTargets:
@@ -570,19 +570,19 @@
Kit:
- Kit:
+ Kit:Initial Configuration:
-
+ Initiale Konfiguration:Current Configuration:
-
+ Aktuelle Konfiguration:Type:
- Typ:
+ Typ:Value
@@ -631,23 +631,23 @@
Package manager auto setup
-
+ Automatisches Aufsetzen von PaketmanagernAdd the CMAKE_PROJECT_INCLUDE_BEFORE variable pointing to a CMake script that will install dependencies from the conanfile.txt, conanfile.py, or vcpkg.json file from the project source directory.
-
+ Setzt die Variable CMAKE_PROJECT_INCLUDE_BEFORE auf ein CMake-Script, das Abhängigkeiten von einer conanfile.txt, conanfile.py oder vcpkg.json-Datei im Quellverzeichnis des Projekts installiert.Ask before re-configuring with initial parameters
-
+ Vor dem Neukonfigurieren mit initialen Parametern nachfragenShow subfolders inside source group folders
-
+ Unterverzeichnisse in Sourcegruppen anzeigenGeneral
- Allgemein
+ AllgemeinAdding Files
@@ -675,12 +675,12 @@
Copy to Clipboard?
- In die Zwischenablage kopieren?
+ In die Zwischenablage kopieren?Files are not automatically added to the CMakeLists.txt file of the CMake project.
Copy the path to the source files to the clipboard?
- Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt.
+ Dateien werden nicht automatisch zur Datei CMakeLists.txt des CMake-Projekts hinzugefügt.
Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
@@ -689,15 +689,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Run CMake with configuration changes?
-
+ CMake mit Änderungen der Konfiguration ausführen?<b>CMake configuration failed<b><p>The backup of the previous configuration has been restored.</p><p>Issues and "Projects > Build" settings show more information about the failure.</p
-
+ <b>CMake-Konfiguration ist fehlgeschlagen<b/><p>Das Backup der vorherigen Konfiguration wurde wiederhergestellt.</p><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p><b>Failed to load project<b><p>Issues and "Projects > Build" settings show more information about the failure.</p
-
+ <b>Laden des Projekts fehlgeschlagen</b><p>Details zu dem Problem finden Sie in "Probleme" und den Einstellungen in "Projekte > Erstellen".</p>Failed to create build directory "%1".
@@ -705,11 +705,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
No CMake tool set up in kit.
-
+ Im Kit ist kein CMake-Werkzeug eingerichtet.The remote CMake executable cannot write to the local build directory.
-
+ Das entfernte CMake-Werkzeug kann nicht in das lokale Build-Verzeichnis schreiben.<No CMake Tool available>
@@ -729,11 +729,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Path to the cmake executable
- Pfad zur ausführbaren Datei von cmake
+ Pfad zum CMake-WerkzeugCMake version %1 is unsupported. Update to version 3.14 (with file-api) or later.
-
+ Die CMake-Version %1 wird nicht unterstützt. Aktualisieren Sie auf Version 3.14 (mit file-api) oder neuer.Change...
@@ -749,11 +749,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Platform
- Plattform
+ PlattformToolset
-
+ ToolsetGenerator:
@@ -777,11 +777,11 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
CMake Tool is unconfigured, CMake generator will be ignored.
- Das CMake-Tool ist nicht konfiguriert. Der CMake-Generator wird ignoriert.
+ Das CMake-Werkzeug ist nicht konfiguriert. Der CMake-Generator wird ignoriert.CMake Tool does not support the configured generator.
- Das CMake-Tool unterstützt den konfigurierten Generator nicht.
+ Das CMake-Werkzeug unterstützt den konfigurierten Generator nicht.Platform is not supported by the selected CMake generator.
@@ -813,15 +813,15 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
CMake <a href="generator">generator</a>
-
+ CMake-<a href="generator">Generator</a>The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects.
-
+ Das gewählte CMake-Werkzeug unterstützt file-api nicht. %1 wird nicht in der Lage sein, CMake-Projekte auszuwerten.Enter one CMake <a href="variable">variable</a> per line.<br/>To set a variable, use -D<variable>:<type>=<value>.<br/><type> can have one of the following values: FILEPATH, PATH, BOOL, INTERNAL, or STRING.
-
+ Geben Sie eine CMake-<a href="variable">Variable</a> pro Zeile ein.<br/>Um eine Variable zu setzen, benutzen Sie -D<Variable>:<Typ>=<Wert>.<br/><Typ> kann einer der folgenden Werte sein: FILEPATH, PATH, BOOL, INTERNAL oder STRING.CMake Configuration
@@ -877,7 +877,7 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Builds a target of any open CMake project.
-
+ Erstellt ein Ziel eines geöffneten CMake-Projekts.Open CMake target
@@ -885,23 +885,23 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Jumps to the definition of a target of any open CMake project.
-
+ Springt zur Definition eines Ziels eines geöffneten CMake-Projekts.The source directory %1 is not reachable by the CMake executable %2.
-
+ Das Quellverzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden.The build directory %1 is not reachable by the CMake executable %2.
-
+ Das Build-Verzeichnis %1 kann vom CMake-Werkzeug %2 nicht erreicht werden.The build directory "%1" does not exist
-
+ Das Build-Verzeichnis "%1" existiert nichtCMake executable "%1" and build directory "%2" must be on the same device.
-
+ Das CMake-Werkzeug "%1" und das Build-Verzeichnis "%2" müssen auf demselben Gerät liegen.Running %1 in %2.
@@ -913,19 +913,19 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
CMake process failed to start.
-
+ Der CMake-Prozess konnte nicht gestartet werden.CMake process was canceled by the user.
-
+ Der CMake-Prozess wurde vom Benutzer abgebrochen.CMake process crashed.
-
+ Der CMake-Prozess ist abgestürzt.CMake process exited with exit code %1.
-
+ Der CMake-Prozess wurde mit dem Rückgabewert %1 beendet.<Build Directory>
@@ -937,165 +937,167 @@ Möchten Sie den Pfad zu den Quelldateien in die Zwischenablage kopieren?
Unexpected source directory "%1", expected "%2". This can be correct in some situations, for example when importing a standalone Qt test, but usually this is an error. Import the build anyway?
-
+ Unerwartetes Quellverzeichnis "%1", erwartet wurde "%2". Dies kann in einigen Situationen korrekt sein, zum Beispiel beim Importieren eines eigenständigen Qt-Tests, aber normalerweise ist es ein Fehler. Soll der Build trotzdem importiert werden?CMake Modules
- CMake-Module
+ CMake-ModuleTarget type:
- Zieltyp:
+ Zieltyp: No build artifacts
- Keine Build-Artefakte
+ Keine Build-ArtefakteBuild artifacts:
- Build-Artefakte:
+ Build-Artefakte:Version not parseable
-
+ Version kann nicht ausgewertet werdenSearching CMake binaries...
-
+ Suche CMake-Werkzeuge...Found "%1"
-
+ "%1" gefundenRemoving CMake entries...
-
+ Entferne CMake-Einträge...Removed "%1"
-
+ "%1" entferntCMake:
-
+ CMake:Failed to set up CMake file API support. %1 cannot extract project information.
-
+ CMake file-api-Unterstützung konnte nicht aufgesetzt werden. %1 kann keine Projektinformationen auswerten.Invalid reply file created by CMake.
-
+ CMake hat eine ungültige Antwortdatei erstellt.Invalid cache file generated by CMake.
-
+ CMake hat eine ungültige Cache-Datei erstellt.Invalid cmakeFiles file generated by CMake.
-
+ CMake hat ungültige "cmakeFiles" erstellt.Invalid codemodel file generated by CMake: No directories.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Keine Verzeichnisse.Invalid codemodel file generated by CMake: Empty directory object.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Verzeichnisobjekt.Invalid codemodel file generated by CMake: No projects.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Keine Projekte.Invalid codemodel file generated by CMake: Empty project object.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Projektobjekt.Invalid codemodel file generated by CMake: Broken project data.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Projektdaten.Invalid codemodel file generated by CMake: Empty target object.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Zielobjekt.Invalid codemodel file generated by CMake: Broken target data.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Zieldaten.Invalid codemodel file generated by CMake: No configurations.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Keine Konfigurationen.Invalid codemodel file generated by CMake: Empty configuration object.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Leeres Konfigurationsobjekt.Invalid codemodel file generated by CMake: Broken indexes in directories, projects, or targets.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt: Fehlerhafte Indizes in Verzeichnissen, Projekten oder Zielen.Invalid codemodel file generated by CMake.
-
+ CMake hat eine ungültige Codemodell-Datei erstellt.Invalid target file: Information is missing.
-
+ Ungültige Zieldatei: Information fehlt.Invalid target file generated by CMake: Broken indexes in target details.
-
+ CMake hat eine ungültige Zieldatei erstellt: Fehlerhafte Indizes in den Zieldetails.CMake parsing was canceled.
-
+ CMake-Auswertung wurde abgebrochen.No "%1" CMake configuration found. Available configurations: "%2".
Make sure that CMAKE_CONFIGURATION_TYPES variable contains the "Build type" field.
-
+ CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2".
+Stellen Sie sicher, dass der Wert des "Build-Typ"-Felds in der CMAKE_CONFIGURATION_TYPES-Variable enthalten ist.No "%1" CMake configuration found. Available configuration: "%2".
Make sure that CMAKE_BUILD_TYPE variable matches the "Build type" field.
-
+ CMake-Konfiguration "%1 wurde nicht gefunden. Verfügbare Konfigurationen: "%2".
+Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der des "Build-Typ"-Felds ist.CMake returned error code: %1
-
+ CMake hat einen Fehlerwert zurückgegeben: %1Failed to rename %1 to %2.
-
+ Umbenennen von %1 nach %2 ist fehlgeschlagen.Failed to copy %1 to %2.
-
+ Kopieren von %1 nach %2 ist fehlgeschlagen.Failed to read %1 file
-
+ Die Datei %1 konnte nicht gelesen werdenInvalid %1 file
-
+ Ungültige Datei %1Invalid "version" in %1 file
-
+ Ungültige "version" in Datei %1Invalid "configurePresets" section in %1 file
-
+ Ungültiger Abschnitt "configurePresets" in Datei %1Invalid "buildPresets" section in %1 file
-
+ Ungültiger Abschnitt "buildPresets" in Datei %1<File System>
-
+ <Dateisystem>
@@ -42519,22 +42521,22 @@ Are you sure?
[Source: %1]
-
+ [Quelle: %1]ClangCodeModelComponent
- Komponente
+ KomponenteTotal Memory
-
+ GesamtspeicherUpdate
- Aktualisieren
+ Aktualisieren
@@ -42590,7 +42592,7 @@ Ausgabe:
Documentation:
-
+ Dokumentation:
@@ -42616,11 +42618,11 @@ Ausgabe:
Filter for This Diagnostic Kind
- Nach dieser Art von Einträgen filtern
+ Nach dieser Art von Meldungen filternFilter out This Diagnostic Kind
- Diese Art von Einträgen herausfiltern
+ Diese Art von Meldungen herausfilternWeb Page
@@ -42628,19 +42630,19 @@ Ausgabe:
Suppress Selected Diagnostics
-
+ Ausgewählte Meldungen unterdrückenSuppress This Diagnostic
- Diese Art von Einträgen nicht anzeigen
+ Diese Art von Meldungen nicht anzeigenDisable These Checks
-
+ Diese Checks deaktivierenDisable This Check
-
+ Diesen Check deaktivieren
@@ -43132,7 +43134,7 @@ Was soll %1 tun?
ClangFormat::ClangFormatConfigWidgetClang-Format Style
-
+ Clang-Format-Stil
@@ -43150,7 +43152,7 @@ Was soll %1 tun?
The ClangFormat plugin has been built against an unmodified Clang. You might experience formatting glitches in certain circumstances. See https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/README.md for more information.
-
+ Das ClangFormat-Plugin wurde gegen ein unmodifiziertes Clang gebaut. Unter Umständen werden Sie Mängel beim Formatieren feststellen. Unter https://code.qt.io/cgit/qt-creator/qt-creator.git/tree/README.md können Sie mehr erfahren.
@@ -44729,11 +44731,11 @@ You might find further explanations in the Application Output view.
Filters
- Filter
+ FilterReset Topic Filter
-
+ Themenfilter zurücksetzenChecks
@@ -44746,7 +44748,8 @@ You might find further explanations in the Application Output view.
Could not query the supported checks from the clazy-standalone executable.
Set a valid executable first.
-
+ Konnte die von clazy-standalone unterstützten Überprüfungen nicht abfragen.
+Setzen Sie erst eine gültige ausführbare Datei.Enable lower levels automatically
@@ -44761,19 +44764,19 @@ Set a valid executable first.
Select All
-
+ Alle auswählenSelect All with Fixits
-
+ Alle mit Korrekturen auswählenClear Selection
-
+ Auswahl löschenSelect the diagnostics to display.
-
+ Wählen Sie die anzuzeigenden Meldungen.
@@ -44784,11 +44787,11 @@ Set a valid executable first.
Analyze open files
-
+ Offene Dateien analysierenRun Options
-
+ AusführungseinstellungenParallel jobs:
@@ -44812,7 +44815,8 @@ Set a valid executable first.
Could not query the supported checks from the clang-tidy executable.
Set a valid executable first.
-
+ Konnte die von clang-tidy unterstützten Überprüfungen nicht abfragen.
+Setzen Sie erst eine gültige ausführbare Datei.
@@ -45701,11 +45705,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
ClangTools::Internal::ClangToolAnalyze Project...
-
+ Projekt analysieren...Analyze Current File
-
+ Aktuelle Datei analysierenGo to previous diagnostic.
@@ -45717,7 +45721,7 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Load diagnostics from YAML files exported with "-export-fixes".
-
+ Meldungen, die mit "-export-fixes" exportiert wurden, aus YAML-Datei laden.Clear
@@ -45725,11 +45729,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Expand All
-
+ Alle aufklappenCollapse All
-
+ Alle einklappenFilter Diagnostics
@@ -45773,119 +45777,119 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Cannot analyze current file: No files open.
-
+ Kann aktuelle Datei nicht analysieren: Keine Dateien geöffnet.Cannot analyze current file: "%1" is not a known source file.
-
+ Kann aktuelle Datei nicht analysieren: "%1" ist keine bekannte Quelldatei.Select YAML Files with Diagnostics
-
+ Wählen Sie YAML-Datei mit MeldungenYAML Files (*.yml *.yaml);;All Files (*)
-
+ YAML-Dateien (*.yml *.yaml);;Alle Dateien (*)Error Loading Diagnostics
-
+ Fehler beim Laden der MeldungenSet a valid Clang-Tidy executable.
-
+ Wählen Sie eine gültige ausführbare Datei für Clang-Tidy.Set a valid Clazy-Standalone executable.
-
+ Wählen Sie eine gültige ausführbare Datei für Clazy-Standalone.Project "%1" is not a C/C++ project.
-
+ Das Projekt "%1" ist kein C/C++-Projekt.Open a C/C++ project to start analyzing.
-
+ Öffnen Sie ein C/C++-Projekt, um mit der Analyse zu beginnen.Failed to build the project.
-
+ Das Projekt konnte nicht erstellt werden.Failed to start the analyzer.
-
+ Das Analyse-Werkzeug konnte nicht gestartet werden.All Files
-
+ Alle DateienOpened Files
-
+ Geöffnete DateienEdited Files
-
+ Bearbeitete DateienFailed to analyze %n file(s).
-
-
-
+
+ Eine Datei konnte nicht analysiert werden.
+ %n Dateien konnten nicht analysiert werden.Analyzing...
-
+ Analysiere...Analyzing... %1 of %n file(s) processed.
-
-
-
+
+ Analysiere... %1 von einer Datei verarbeitet.
+ Analysiere... %1 von %n Dateien verarbeitet.Analysis stopped by user.
-
+ Analyse durch den Benutzer gestoppt.Finished processing %n file(s).
-
-
-
+
+ Verarbeitung einer Datei abgeschlossen.
+ Verarbeitung von %n Dateien abgeschlossen.Diagnostics imported.
-
+ Meldungen importiert.%1 diagnostics. %2 fixits, %3 selected.
-
+ %1 Meldung(en). %2 Korrektur(en), %3 ausgewählt.No diagnostics.
-
+ Keine Meldungen.In general, the project should be built before starting the analysis to ensure that the code to analyze is valid.<br/><br/>Building the project might also run code generators that update the source files as necessary.
-
+ Im Allgemeinen sollte das Projekt vor der Analyse gebaut werden, um sicherzustellen, dass der zu analysierende Code gültig ist.<br/><br/>Beim Erstellen des Projekts werden möglicherweise auch Code-Generatoren ausgeführt, die Quelldateien nach Bedarf aktualisieren.Info About Build the Project Before Analysis
-
+ Information über das Erstellen des Projekts vor der AnalyseClangTools::Internal::ClangToolRunWorkerFailed to build the project.
-
+ Das Projekt konnte nicht erstellt werden.No code model data available for project.
-
+ Für das Projekt sind keine Codemodell-Daten vorhanden.The project configuration changed since the start of the %1. Please re-run with current configuration.
@@ -45893,11 +45897,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Failed to create temporary directory: %1.
-
+ Das temporäre Verzeichnis konnte nicht erstellt werden: %1.Running %1 on %2 with configuration "%3".
-
+ Führe %1 auf %2 mit der Konfiguration "%3" aus.Analyzing
@@ -45905,11 +45909,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Analyzing "%1" [%2].
-
+ Analysiere "%1" [%2].Failed to start runner "%1".
-
+ Das Werkzeug "%1" konnte nicht gestartet werden.Failed to analyze "%1": %2
@@ -45917,14 +45921,14 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Error: Failed to analyze %n files.
-
-
-
+
+ Fehler: Eine Datei konnte nicht analysiert werden.
+ Fehler: %n Dateien konnten nicht analysiert werden.Note: You might need to build the project to generate or update source files. To build automatically, enable "Build the project before analysis".
-
+ Hinweis: Möglicherweise müssen Sie das Projekt erstellen, um Quelldateien zu generieren oder aktualisieren. Aktivieren Sie "Projekt vor der Analyse erstellen", um das Projekt automatisch zu erstellen.%1 finished: Processed %2 files successfully, %3 failed.
@@ -45973,11 +45977,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Clang-Tidy Checks
-
+ Clang-Tidy ChecksClazy Checks
-
+ Clazy ChecksEdit Checks as String...
@@ -52413,43 +52417,43 @@ in "%2" aus.
ClangCodeModel::Internal::ClangdClientclangd
-
+ clangdIndexing %1 with clangd
-
+ Indiziere %1 mit clangdIndexing session with clangd
-
+ Indiziere Sitzung mit clangdMemory Usage
- Speicherverbrauch
+ SpeicherverbrauchLocation: %1Parent folder for proposed #include completion
- Pfad: %1
+ Pfad: %1collecting overrides ...
-
+ Suche überschriebene Methoden ...<base declaration>
-
+ <Basisdeklaration>ClangCodeModel::Internal::ClangdFindReferencesC++ Usages:
-
+ C++ Referenzen:Re&name %n files
-
+ Eine Datei umbe&nennen%n Dateien umbe&nennen
@@ -52457,7 +52461,7 @@ in "%2" aus.
Files:
%1
- Dateien:
+ Dateien:
%1
@@ -52465,233 +52469,234 @@ in "%2" aus.
ClangCodeModel::Internal::ClangModelManagerSupportThe use of clangd for the C/C++ code model was disabled, because it is likely that its memory requirements would be higher than what your system can handle.
-
+ Clangd wurde für das C/C++-Codemodell deaktiviert, da dessen Speicheranforderung wahrscheinlich die Leistungsfähigkeit Ihres Systems übersteigt.With clangd enabled, Qt Creator fully supports modern C++ when highlighting code, completing symbols and so on.<br>This comes at a higher cost in terms of CPU load and memory usage compared to the built-in code model, which therefore might be the better choice on older machines and/or with legacy code.<br>You can enable/disable and fine-tune clangd <a href="dummy">here</a>.
-
+ Wenn Clangd aktiviert ist, unterstützt Qt Creator semantische Hervorhebung, Symbolvervollständigung und so weiter für Code, der modernes C++ nutzt.<br/>Das wirkt sich nachteilig auf CPU-Last und Speicherverbrauch im Vergleich zum eingebauten Codemodell aus, das deshalb eine bessere Wahl für ältere Maschinen und/oder für Legacy Code sein kann.<br/>Sie können Clangd <a href="dummy">hier</a> aktivieren/deaktivieren und anpassen.Enable Anyway
-
+ Trotzdem aktivierenCannot use clangd: Failed to generate compilation database:
%1
-
+ Kann Clangd nicht nutzen: Erstellen der Kompilierungsdatenbank fehlgeschlagen:
+%1ClangdTextMarkCode Model Error
- Codemodell-Fehler
+ Codemodell-FehlerCode Model Warning
- Codemodell-Warnung
+ Codemodell-WarnungCopy to ClipboardClang Code Model Marks
- In die Zwischenablage kopieren
+ In die Zwischenablage kopierenDisable Diagnostic in Current Project
-
+ Meldung für aktuelles Projekt deaktivierenClangUtilsCould not retrieve build directory.
-
+ Build-Verzeichnis konnte nicht abgefragt werden.Could not create "%1": %2
-
+ Konnte "%1" nicht erzeugen: %2ClangFormat::ClangFormatGlobalConfigWidgetFormatting mode:
-
+ Formatierungsart:Format while typing
- Bei der Eingabe formatieren
+ Bei der Eingabe formatierenFormat edited code on file save
- Bearbeiteten Quelltext beim Speichern der Datei formatieren
+ Bearbeiteten Quelltext beim Speichern der Datei formatierenOverride Clang Format configuration file
- Clang-Format-Konfigurationsdatei überschreiben
+ Clang-Format-Konfigurationsdatei überschreibenClangFormat global setting:
-
+ Globale Einstellungen für ClangFormat:Indenting only
-
+ Nur EinrückungFull formatting
-
+ Komplette FormatierungDisable
- Deaktivieren
+ DeaktivierenThe current project has its own .clang-format file which can be overridden by the settings below.
-
+ Das aktuelle Projekt hat ihre eigene .clang-format-Datei, die in den untenstehenden Einstellungen überschrieben werden kann.Override Clang Format configuration file with the chosen configuration.
-
+ Die Clang-Format-Konfigurationsdatei mit der gewählten Konfiguration überschreiben.ClangFormatStyleFactoryClangFormat
- ClangFormat
+ ClangFormatClangTools::Internal::ClangToolsProjectSettingsWidgetRestore Global Settings
- Globale Einstellungen wiederherstellen
+ Globale Einstellungen wiederherstellenGo to Analyzer
-
+ Zum Analyzer wechselnRemove Selected
- Ausgewählte entfernen
+ Ausgewählte entfernenRemove All
- Alle entfernen
+ Alle entfernenSuppressed diagnostics
- Unterdrückte Diagnosemeldungen
+ Unterdrückte MeldungenClangToolsDiagnosticModelNo Fixits
- Keine Korrekturen
+ Keine KorrekturenNot Scheduled
- nicht eingeplant
+ Nicht eingeplantInvalidated
- Ungültig
+ UngültigScheduled
- eingeplant
+ EingeplantFailed to Apply
- Konnte nicht angewendet werden
+ Konnte nicht angewendet werdenApplied
- Angewendet
+ AngewendetClangTools::Internal::TidyOptionsDialogOptions for %1
-
+ Einstellungen für %1Option
-
+ EinstellungValue
- Wert
+ WertAdd Option
-
+ Einstellung hinzufügenRemove Option
-
+ Einstellung entfernen<new option>
-
+ <Neue Einstellung>ClangTools::Internal::TidyChecksTreeModelOptions
- Einstellungen
+ EinstellungenClang ToolsCustom Configuration
-
+ Benutzerdefinierte KonfigurationClangTools::Internal::DiagnosticMarkCopy to Clipboard
- In die Zwischenablage kopieren
+ In die Zwischenablage kopierenDisable Diagnostic
-
+ Meldung deaktivierenClangTools::Internal::FilterChecksModelCheck
-
+ CheckClangTools::Internal::SettingsWidgetClang-Tidy Executable
-
+ Ausführbare Datei für Clang-TidyClazy Executable
-
+ Ausführbare Datei für ClazyExecutables
-
+ Ausführbare DateienClang-Tidy:
-
+ Clang-Tidy:Clazy-Standalone:
-
+ Clazy-Standalone:
@@ -52705,7 +52710,7 @@ in "%2" aus.
CMakeProjectManager::Tr::TrTools
- Werkzeuge
+ Werkzeuge
diff --git a/src/app/main.cpp b/src/app/main.cpp
index e197f17393a..bdd80ed34e2 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -494,6 +494,11 @@ int main(int argc, char **argv)
qputenv("QT_ENABLE_REGEXP_JIT", "0");
}
+ if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("GTK_THEME"))
+ // Work around QTCREATORBUG-28497:
+ // Prevent Qt's GTK3 platform theme plugin from enforcing a dark palette
+ qputenv("GTK_THEME", ":light");
+
#if defined(QTC_FORCE_XCB)
if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
// Enforce XCB on Linux/Gnome, if the user didn't override via QT_QPA_PLATFORM
diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp
index 75fba81867c..a5b3381acc6 100644
--- a/src/libs/utils/filepath.cpp
+++ b/src/libs/utils/filepath.cpp
@@ -1529,7 +1529,7 @@ static QString normalizePathSegmentHelper(const QString &name)
{
const int len = name.length();
- if (len == 0)
+ if (len == 0 || name.contains("%{"))
return name;
int i = len - 1;
diff --git a/src/libs/utils/infobar.cpp b/src/libs/utils/infobar.cpp
index 13fca918f53..59bca4de703 100644
--- a/src/libs/utils/infobar.cpp
+++ b/src/libs/utils/infobar.cpp
@@ -374,8 +374,10 @@ void InfoBarDisplay::update()
if (infoWidgetCloseButton)
hbox->addWidget(infoWidgetCloseButton);
} else {
- infoWidgetCloseButton->setText(info.m_cancelButtonText);
- hbox->addWidget(infoWidgetCloseButton);
+ if (infoWidgetCloseButton) {
+ infoWidgetCloseButton->setText(info.m_cancelButtonText);
+ hbox->addWidget(infoWidgetCloseButton);
+ }
if (infoWidgetSuppressButton)
hbox->addWidget(infoWidgetSuppressButton);
}
diff --git a/src/plugins/autotest/gtest/gtestconfiguration.cpp b/src/plugins/autotest/gtest/gtestconfiguration.cpp
index 2ff3b5c6b1e..231dea01ff2 100644
--- a/src/plugins/autotest/gtest/gtestconfiguration.cpp
+++ b/src/plugins/autotest/gtest/gtestconfiguration.cpp
@@ -60,8 +60,12 @@ QStringList GTestConfiguration::argumentsForTestRunner(QStringList *omitted) con
}
const QStringList &testSets = testCases();
- if (!testSets.isEmpty())
- arguments << "--gtest_filter=\"" + testSets.join(':') + '"';
+ if (!testSets.isEmpty()) {
+ if (isDebugRunMode()) // debugger does its own special quoting
+ arguments << "--gtest_filter=" + testSets.join(':');
+ else
+ arguments << "--gtest_filter=\"" + testSets.join(':') + '"';
+ }
auto gSettings = static_cast(framework()->testSettings());
if (!gSettings)
diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
index 679e41004bf..0e76423e69f 100644
--- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
+++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
@@ -127,7 +127,7 @@ static void checkSystemForClangdSuitability()
if (ClangdSettings::hardwareFulfillsRequirements())
return;
- ClangdSettings::setUseClangd(false);
+ ClangdSettings::setUseClangdAndSave(false);
const QString warnStr = ClangModelManagerSupport::tr("The use of clangd for the C/C++ "
"code model was disabled, because it is likely that its memory requirements "
"would be higher than what your system can handle.");
@@ -148,7 +148,7 @@ static void checkSystemForClangdSuitability()
return label;
});
info.addCustomButton(ClangModelManagerSupport::tr("Enable Anyway"), [clangdWarningSetting] {
- ClangdSettings::setUseClangd(true);
+ ClangdSettings::setUseClangdAndSave(true);
Core::ICore::infoBar()->removeInfo(clangdWarningSetting);
});
Core::ICore::infoBar()->addInfo(info);
@@ -517,12 +517,14 @@ void ClangModelManagerSupport::updateLanguageClient(ProjectExplorer::Project *pr
&& currentClient->project() == docProject) {
continue;
}
- if (!docProject || docProject == project) {
- if (currentClient)
- currentClient->closeDocument(doc);
- LanguageClientManager::openDocumentWithClient(doc, client);
- hasDocuments = true;
+ if (docProject != project
+ && (docProject || !ProjectFile::isHeader(doc->filePath()))) {
+ continue;
}
+ if (currentClient)
+ currentClient->closeDocument(doc);
+ LanguageClientManager::openDocumentWithClient(doc, client);
+ hasDocuments = true;
}
for (auto it = m_queuedShadowDocuments.begin(); it != m_queuedShadowDocuments.end();) {
@@ -625,11 +627,13 @@ void ClangModelManagerSupport::claimNonProjectSources(ClangdClient *client)
}
if (!ClangdSettings::instance().sizeIsOkay(doc->filePath()))
continue;
- if (!ProjectExplorer::SessionManager::projectForFile(doc->filePath())) {
- if (currentClient)
- currentClient->closeDocument(doc);
- LanguageClientManager::openDocumentWithClient(doc, client);
- }
+ if (ProjectExplorer::SessionManager::projectForFile(doc->filePath()))
+ continue;
+ if (client->project() && !ProjectFile::isHeader(doc->filePath()))
+ continue;
+ if (currentClient)
+ currentClient->closeDocument(doc);
+ LanguageClientManager::openDocumentWithClient(doc, client);
}
}
@@ -717,7 +721,7 @@ void ClangModelManagerSupport::onEditorOpened(Core::IEditor *editor)
return;
if (sessionModeEnabled())
project = nullptr;
- else if (!project)
+ else if (!project && ProjectFile::isHeader(document->filePath()))
project = fallbackProject();
if (ClangdClient * const client = clientForProject(project))
LanguageClientManager::openDocumentWithClient(textDocument, client);
diff --git a/src/plugins/clangtools/filterdialog.cpp b/src/plugins/clangtools/filterdialog.cpp
index b1225270d8e..cd54add6b88 100644
--- a/src/plugins/clangtools/filterdialog.cpp
+++ b/src/plugins/clangtools/filterdialog.cpp
@@ -93,7 +93,7 @@ FilterDialog::FilterDialog(const Checks &checks, QWidget *parent)
buttonBox,
}.attachTo(this);
- connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [&] {
+ connect(m_view->selectionModel(), &QItemSelectionModel::selectionChanged, this, [=] {
const bool hasSelection = !m_view->selectionModel()->selectedRows().isEmpty();
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(hasSelection);
});
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
index b5adf4bc09d..4b6ab55d4df 100644
--- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp
@@ -1621,10 +1621,24 @@ bool CMakeBuildConfiguration::fromMap(const QVariantMap &map)
m_buildSystem->setInitialCMakeArguments(cmd.splitArguments());
}
- d->m_clearSystemConfigureEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY))
- .toBool();
+ // Upgrading from Qt Creator version <9 to 9, if the build environment is set
+ // apply the specific values to the configure environment
+ auto settingsKey = [map](const QLatin1String &configureKey, const QLatin1String &buildKey) {
+ if (!map.contains(configureKey) && map.contains(buildKey))
+ return buildKey;
+ return configureKey;
+ };
+
+ const QLatin1String clearSystemEnvironmentKey
+ = settingsKey(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY),
+ QLatin1String(ProjectExplorer::Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY));
+ const QLatin1String userEnvironmentChangesKey
+ = settingsKey(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY),
+ QLatin1String(ProjectExplorer::Constants::USER_ENVIRONMENT_CHANGES_KEY));
+
+ d->m_clearSystemConfigureEnvironment = map.value(clearSystemEnvironmentKey).toBool();
d->m_userConfigureEnvironmentChanges = EnvironmentItem::fromStringList(
- map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
+ map.value(userEnvironmentChangesKey).toStringList());
updateAndEmitConfigureEnvironmentChanged();
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index ad4c685d3f5..ce490d17714 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -96,14 +96,24 @@ Internal::PresetsData CMakeProject::combinePresets(Internal::PresetsData &cmakeP
for (const auto &p : presets)
presetsHash.insert(p.name, p);
- auto resolveInherits = [](const auto &presetsHash, auto &presetsList) {
+ auto resolveInherits = [](auto &presetsHash, auto &presetsList) {
+ Utils::sort(presetsList, [](const auto &left, const auto &right) {
+ if (left.inherits) {
+ if (left.inherits.value().contains(right.name))
+ return false;
+ }
+ return true;
+ });
for (auto &p : presetsList) {
if (!p.inherits)
continue;
- for (const QString &inheritFromName : p.inherits.value())
- if (presetsHash.contains(inheritFromName))
+ for (const QString &inheritFromName : p.inherits.value()) {
+ if (presetsHash.contains(inheritFromName)) {
p.inheritFrom(presetsHash[inheritFromName]);
+ presetsHash[p.name] = p;
+ }
+ }
}
};
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp
index fccdeb9af2f..1ed68ab5139 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabasetests.cpp
@@ -164,8 +164,8 @@ void CompilationDatabaseTests::testFilterArguments()
{"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""},
{"QT_CREATOR", "1"}}));
QCOMPARE(testData.fileKind, CppEditor::ProjectFile::Kind::CXXSource);
- QCOMPARE(testData.sysRoot.toString(), HostOsInfo::isWindowsHost() ? QString("C:\\sysroot\\embedded")
- : QString("/opt/sysroot/embedded"));
+ QCOMPARE(testData.sysRoot.toUserOutput(), HostOsInfo::isWindowsHost()
+ ? QString("C:\\sysroot\\embedded") : QString("/opt/sysroot/embedded"));
}
static QString kCmakeCommand
diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
index d9d03501d0f..f04fd3a4a53 100644
--- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
+++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
@@ -752,7 +752,7 @@ void ExternalToolConfig::showInfoForItem(const QModelIndex &index)
static FilePath getUserFilePath(const QString &proposalFileName)
{
const FilePath resourceDir(ICore::userResourcePath());
- const FilePath externalToolsDir = resourceDir / "externalTools";
+ const FilePath externalToolsDir = resourceDir / "externaltools";
if (!externalToolsDir.isDir())
externalToolsDir.createDir();
diff --git a/src/plugins/coreplugin/editormanager/documentmodel.cpp b/src/plugins/coreplugin/editormanager/documentmodel.cpp
index c154ebb551e..8198a2a4762 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel.cpp
+++ b/src/plugins/coreplugin/editormanager/documentmodel.cpp
@@ -79,7 +79,7 @@ int DocumentModelPrivate::rowCount(const QModelIndex &parent) const
return 0;
}
-void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
+DocumentModel::Entry *DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
{
const Utils::FilePath filePath = entry->fileName();
@@ -95,9 +95,8 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
this, [this, document = previousEntry->document] { itemChanged(document); });
}
delete entry;
- entry = nullptr;
disambiguateDisplayNames(previousEntry);
- return;
+ return nullptr;
}
auto positions = positionEntry(m_entries, entry);
@@ -115,6 +114,7 @@ void DocumentModelPrivate::addEntry(DocumentModel::Entry *entry)
itemChanged(document);
});
endInsertRows();
+ return entry;
}
bool DocumentModelPrivate::disambiguateDisplayNames(DocumentModel::Entry *entry)
@@ -411,8 +411,7 @@ DocumentModel::Entry *DocumentModelPrivate::addSuspendedDocument(const FilePath
entry->document->setPreferredDisplayName(displayName);
entry->document->setId(id);
entry->isSuspended = true;
- d->addEntry(entry);
- return entry;
+ return d->addEntry(entry);
}
DocumentModel::Entry *DocumentModelPrivate::firstSuspendedEntry()
diff --git a/src/plugins/coreplugin/editormanager/documentmodel_p.h b/src/plugins/coreplugin/editormanager/documentmodel_p.h
index 560dd0d0bd0..7d44172688c 100644
--- a/src/plugins/coreplugin/editormanager/documentmodel_p.h
+++ b/src/plugins/coreplugin/editormanager/documentmodel_p.h
@@ -33,7 +33,7 @@ public:
Qt::DropActions supportedDragActions() const override;
QStringList mimeTypes() const override;
- void addEntry(DocumentModel::Entry *entry);
+ DocumentModel::Entry *addEntry(DocumentModel::Entry *entry);
void removeDocument(int idx);
std::optional indexOfFilePath(const Utils::FilePath &filePath) const;
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index 0ed4d4cc8a5..6d8a35b62c6 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -720,7 +720,9 @@ void ICore::raiseWindow(QWidget *widget)
if (!widget)
return;
QWidget *window = widget->window();
- if (window && window == m_mainwindow) {
+ if (!window)
+ return;
+ if (window == m_mainwindow) {
m_mainwindow->raiseWindow();
} else {
window->raise();
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.cpp b/src/plugins/cppeditor/cppcodemodelsettings.cpp
index 4bb98af0c3b..3103a655a59 100644
--- a/src/plugins/cppeditor/cppcodemodelsettings.cpp
+++ b/src/plugins/cppeditor/cppcodemodelsettings.cpp
@@ -253,6 +253,12 @@ bool ClangdSettings::useClangd() const
void ClangdSettings::setUseClangd(bool use) { instance().m_data.useClangd = use; }
+void ClangdSettings::setUseClangdAndSave(bool use)
+{
+ setUseClangd(use);
+ instance().saveSettings();
+}
+
bool ClangdSettings::hardwareFulfillsRequirements()
{
instance().m_data.haveCheckedHardwareReqirements = true;
diff --git a/src/plugins/cppeditor/cppcodemodelsettings.h b/src/plugins/cppeditor/cppcodemodelsettings.h
index 02d480d68e3..58b8f3005f3 100644
--- a/src/plugins/cppeditor/cppcodemodelsettings.h
+++ b/src/plugins/cppeditor/cppcodemodelsettings.h
@@ -133,6 +133,7 @@ public:
static ClangdSettings &instance();
bool useClangd() const;
static void setUseClangd(bool use);
+ static void setUseClangdAndSave(bool use);
static bool hardwareFulfillsRequirements();
static bool haveCheckedHardwareRequirements();
diff --git a/src/plugins/cppeditor/cppcodestylesettingspage.cpp b/src/plugins/cppeditor/cppcodestylesettingspage.cpp
index 225f8fcfdb3..6493c13589f 100644
--- a/src/plugins/cppeditor/cppcodestylesettingspage.cpp
+++ b/src/plugins/cppeditor/cppcodestylesettingspage.cpp
@@ -161,8 +161,8 @@ void CppCodeStylePreferencesWidget::setCodeStyle(CppCodeStylePreferences *codeSt
slotCurrentPreferencesChanged(currentPreferences);
});
- setTabSettings(m_preferences->tabSettings());
- setCodeStyleSettings(m_preferences->codeStyleSettings(), false);
+ setTabSettings(m_preferences->currentTabSettings());
+ setCodeStyleSettings(m_preferences->currentCodeStyleSettings(), false);
slotCurrentPreferencesChanged(m_preferences->currentPreferences(), false);
updatePreview();
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index 867223e15c1..15ad03d1d28 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -12,7 +12,6 @@
#include "cppeditordocument.h"
#include "cppeditorwidget.h"
#include "cppfilesettingspage.h"
-#include "cpphighlighter.h"
#include "cppincludehierarchy.h"
#include "cppmodelmanager.h"
#include "cppoutline.h"
@@ -261,21 +260,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
connect(openInNextSplitAction, &QAction::triggered,
this, [] { CppModelManager::switchHeaderSource(true); });
- QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this);
- command = ActionManager::registerAction(showPreprocessedAction,
- Constants::SHOW_PREPROCESSED_FILE, context);
- mcpptools->addAction(command);
- connect(showPreprocessedAction, &QAction::triggered,
- this, [] { CppModelManager::showPreprocessedFile(false); });
-
- QAction * const showPreprocessedInSplitAction = new QAction
- (tr("Show Preprocessed Source in Next Split"), this);
- command = ActionManager::registerAction(showPreprocessedInSplitAction,
- Constants::SHOW_PREPROCESSED_FILE_SPLIT, context);
- mcpptools->addAction(command);
- connect(showPreprocessedInSplitAction, &QAction::triggered,
- this, [] { CppModelManager::showPreprocessedFile(true); });
-
MacroExpander *expander = globalMacroExpander();
expander->registerVariable("Cpp:LicenseTemplate",
tr("The license template."),
@@ -316,9 +300,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
touchBar->addAction(cmd, Core::Constants::G_TOUCHBAR_NAVIGATION);
- cmd = ActionManager::command(Constants::SHOW_PREPROCESSED_FILE);
- contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
-
cmd = ActionManager::command(TextEditor::Constants::FOLLOW_SYMBOL_UNDER_CURSOR);
cmd->setTouchBarText(tr("Follow", "text on macOS touch bar"));
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
@@ -398,6 +379,22 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
contextMenu->addAction(cmd, Constants::G_CONTEXT_FIRST);
cppToolsMenu->addAction(cmd);
+ QAction * const showPreprocessedAction = new QAction(tr("Show Preprocessed Source"), this);
+ command = ActionManager::registerAction(showPreprocessedAction,
+ Constants::SHOW_PREPROCESSED_FILE, context);
+ mcpptools->addAction(command);
+ contextMenu->addAction(command, Constants::G_CONTEXT_FIRST);
+ connect(showPreprocessedAction, &QAction::triggered,
+ this, [] { CppModelManager::showPreprocessedFile(false); });
+
+ QAction * const showPreprocessedInSplitAction = new QAction
+ (tr("Show Preprocessed Source in Next Split"), this);
+ command = ActionManager::registerAction(showPreprocessedInSplitAction,
+ Constants::SHOW_PREPROCESSED_FILE_SPLIT, context);
+ mcpptools->addAction(command);
+ connect(showPreprocessedInSplitAction, &QAction::triggered,
+ this, [] { CppModelManager::showPreprocessedFile(true); });
+
d->m_openTypeHierarchyAction = new QAction(tr("Open Type Hierarchy"), this);
cmd = ActionManager::registerAction(d->m_openTypeHierarchyAction, Constants::OPEN_TYPE_HIERARCHY, context);
cmd->setDefaultKeySequence(QKeySequence(useMacShortcuts ? tr("Meta+Shift+T") : tr("Ctrl+Shift+T")));
diff --git a/src/plugins/cppeditor/cppprojectfile.cpp b/src/plugins/cppeditor/cppprojectfile.cpp
index c28f41a2291..c5a5d57d5b8 100644
--- a/src/plugins/cppeditor/cppprojectfile.cpp
+++ b/src/plugins/cppeditor/cppprojectfile.cpp
@@ -6,6 +6,7 @@
#include "cppeditorconstants.h"
#include
+#include
#include
#include
@@ -125,6 +126,11 @@ bool ProjectFile::isHeader(ProjectFile::Kind kind)
}
}
+bool ProjectFile::isHeader(const Utils::FilePath &fp)
+{
+ return isHeader(classify(fp.toString()));
+}
+
bool ProjectFile::isSource(ProjectFile::Kind kind)
{
switch (kind) {
diff --git a/src/plugins/cppeditor/cppprojectfile.h b/src/plugins/cppeditor/cppprojectfile.h
index 71310fec8a2..16894555cf5 100644
--- a/src/plugins/cppeditor/cppprojectfile.h
+++ b/src/plugins/cppeditor/cppprojectfile.h
@@ -7,6 +7,8 @@
#include
+namespace Utils { class FilePath; }
+
namespace CppEditor {
class CPPEDITOR_EXPORT ProjectFile
@@ -39,6 +41,7 @@ public:
static bool isSource(Kind kind);
static bool isHeader(Kind kind);
+ static bool isHeader(const Utils::FilePath &fp);
static bool isC(Kind kind);
static bool isCxx(Kind kind);
static bool isAmbiguousHeader(const QString &filePath);
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index 97e4ed1c77f..f2167c80c27 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -2871,6 +2871,56 @@ static void formatCdbBreakPointResponse(int modelId, const QString &responseId,
str << '\n';
}
+
+// Helper to retrieve an int child from GDBMI
+static inline std::optional gdbmiChildToInt(const GdbMi &parent, const char *childName)
+{
+ const GdbMi childBA = parent[childName];
+ if (childBA.isValid()) {
+ bool ok;
+ const int v = childBA.data().toInt(&ok);
+ if (ok)
+ return v;
+ }
+ return std::nullopt;
+}
+
+// Helper to retrieve an bool child from GDBMI
+static inline std::optional gdbmiChildToBool(const GdbMi &parent, const char *childName)
+{
+ const GdbMi childBA = parent[childName];
+ return childBA.isValid() ? std::make_optional(childBA.data() == "true") : std::nullopt;
+}
+
+// Parse extension command listing breakpoints.
+// Note that not all fields are returned, since file, line, function are encoded
+// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
+BreakpointParameters CdbEngine::parseBreakPoint(const GdbMi &gdbmi)
+{
+ BreakpointParameters result;
+ result.enabled = gdbmiChildToBool(gdbmi, "enabled").value_or(result.enabled);
+ result.pending = gdbmiChildToBool(gdbmi, "deferred").value_or(result.pending);
+ const GdbMi moduleG = gdbmi["module"];
+ if (moduleG.isValid())
+ result.module = moduleG.data();
+ const GdbMi sourceFileName = gdbmi["srcfile"];
+ if (sourceFileName.isValid()) {
+ NormalizedSourceFileName mappedFile = sourceMapNormalizeFileNameFromDebugger(
+ sourceFileName.data());
+ result.fileName = Utils::FilePath::fromUserInput(mappedFile.fileName);
+ const GdbMi lineNumber = gdbmi["srcline"];
+ if (lineNumber.isValid())
+ result.lineNumber = lineNumber.data().toULongLong(nullptr, 0);
+ }
+ const GdbMi addressG = gdbmi["address"];
+ if (addressG.isValid())
+ result.address = addressG.data().toULongLong(nullptr, 0);
+ if (const std::optional ignoreCount = gdbmiChildToInt(gdbmi, "passcount"))
+ result.ignoreCount = *ignoreCount - 1;
+ result.threadSpec = gdbmiChildToInt(gdbmi, "thread").value_or(result.threadSpec);
+ return result;
+}
+
void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
{
if (debugBreakpoints) {
@@ -2896,8 +2946,7 @@ void CdbEngine::handleBreakPoints(const DebuggerResponse &response)
for (const GdbMi &breakPointG : response.data) {
// Might not be valid if there is not id
const QString responseId = breakPointG["id"].data();
- BreakpointParameters reportedResponse;
- parseBreakPoint(breakPointG, &reportedResponse);
+ BreakpointParameters reportedResponse = parseBreakPoint(breakPointG);
if (debugBreakpoints)
qDebug(" Parsed %s: pending=%d %s\n", qPrintable(responseId),
reportedResponse.pending,
diff --git a/src/plugins/debugger/cdb/cdbengine.h b/src/plugins/debugger/cdb/cdbengine.h
index 108cc64d160..89c2fd63ec9 100644
--- a/src/plugins/debugger/cdb/cdbengine.h
+++ b/src/plugins/debugger/cdb/cdbengine.h
@@ -168,6 +168,7 @@ private:
unsigned parseStackTrace(const GdbMi &data, bool sourceStepInto);
void mergeStartParametersSourcePathMap();
void checkQtSdkPdbFiles(const QString &module);
+ BreakpointParameters parseBreakPoint(const GdbMi &gdbmi);
const QString m_tokenPrefix;
void handleSetupFailure(const QString &errorMessage);
diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.cpp b/src/plugins/debugger/cdb/cdbparsehelpers.cpp
index d8bf3996d8d..f9e2d371cba 100644
--- a/src/plugins/debugger/cdb/cdbparsehelpers.cpp
+++ b/src/plugins/debugger/cdb/cdbparsehelpers.cpp
@@ -189,64 +189,6 @@ QString cdbClearBreakpointCommand(const Breakpoint &bp)
return "bc " + QString::number(firstBreakPoint) + '-' + QString::number(lastBreakPoint);
}
-// Helper to retrieve an int child from GDBMI
-static inline bool gdbmiChildToInt(const GdbMi &parent, const char *childName, int *target)
-{
- const GdbMi childBA = parent[childName];
- if (childBA.isValid()) {
- bool ok;
- const int v = childBA.data().toInt(&ok);
- if (ok) {
- *target = v;
- return true;
- }
- }
- return false;
-}
-
-// Helper to retrieve an bool child from GDBMI
-static inline bool gdbmiChildToBool(const GdbMi &parent, const char *childName, bool *target)
-{
- const GdbMi childBA = parent[childName];
- if (childBA.isValid()) {
- *target = childBA.data() == "true";
- return true;
- }
- return false;
-}
-
-// Parse extension command listing breakpoints.
-// Note that not all fields are returned, since file, line, function are encoded
-// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
-void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r,
- QString *expression /* = 0 */)
-{
- gdbmiChildToBool(gdbmi, "enabled", &(r->enabled));
- gdbmiChildToBool(gdbmi, "deferred", &(r->pending));
- const GdbMi moduleG = gdbmi["module"];
- if (moduleG.isValid())
- r->module = moduleG.data();
- const GdbMi sourceFileName = gdbmi["srcfile"];
- if (sourceFileName.isValid()) {
- r->fileName = Utils::FilePath::fromUserInput(
- Utils::FileUtils::normalizedPathName(sourceFileName.data()));
- const GdbMi lineNumber = gdbmi["srcline"];
- if (lineNumber.isValid())
- r->lineNumber = lineNumber.data().toULongLong(nullptr, 0);
- }
- if (expression) {
- const GdbMi expressionG = gdbmi["expression"];
- if (expressionG.isValid())
- *expression = expressionG.data();
- }
- const GdbMi addressG = gdbmi["address"];
- if (addressG.isValid())
- r->address = addressG.data().toULongLong(nullptr, 0);
- if (gdbmiChildToInt(gdbmi, "passcount", &(r->ignoreCount)))
- r->ignoreCount--;
- gdbmiChildToInt(gdbmi, "thread", &(r->threadSpec));
-}
-
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data)
{
QString cmd;
diff --git a/src/plugins/debugger/cdb/cdbparsehelpers.h b/src/plugins/debugger/cdb/cdbparsehelpers.h
index 75018b08714..4c6a8170c9b 100644
--- a/src/plugins/debugger/cdb/cdbparsehelpers.h
+++ b/src/plugins/debugger/cdb/cdbparsehelpers.h
@@ -38,10 +38,6 @@ QString cdbAddBreakpointCommand(const BreakpointParameters &d,
const QList > &sourcePathMapping,
const QString &responseId = QString());
QString cdbClearBreakpointCommand(const Breakpoint &bp);
-// Parse extension command listing breakpoints.
-// Note that not all fields are returned, since file, line, function are encoded
-// in the expression (that is in addition deleted on resolving for a bp-type breakpoint).
-void parseBreakPoint(const GdbMi &gdbmi, BreakpointParameters *r, QString *expression = nullptr);
// Write memory (f ...).
QString cdbWriteMemoryCommand(quint64 addr, const QByteArray &data);
diff --git a/src/plugins/debugger/debuggerkitinformation.cpp b/src/plugins/debugger/debuggerkitinformation.cpp
index c05d96b1db2..a0f46fa86a5 100644
--- a/src/plugins/debugger/debuggerkitinformation.cpp
+++ b/src/plugins/debugger/debuggerkitinformation.cpp
@@ -249,8 +249,18 @@ void DebuggerKitAspect::fix(Kit *k)
setup(k);
return;
}
- const Abi tcAbi = ToolChainKitAspect::targetAbi(k);
- if (item->matchTarget(tcAbi) != DebuggerItem::DoesNotMatch)
+
+ Abi kitAbi;
+ if (ToolChainKitAspect::toolChains(k).isEmpty()) {
+ if (DeviceTypeKitAspect::deviceTypeId(k)
+ != ProjectExplorer::Constants::DESKTOP_DEVICE_TYPE) {
+ return;
+ }
+ kitAbi = Abi(Abi::UnknownArchitecture, Abi::hostAbi().os());
+ } else {
+ kitAbi = ToolChainKitAspect::targetAbi(k);
+ }
+ if (item->matchTarget(kitAbi) != DebuggerItem::DoesNotMatch)
return;
k->setValue(DebuggerKitAspect::id(), QVariant());
setup(k);
diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp
index cc0920fb121..286b58258f1 100644
--- a/src/plugins/debugger/threadshandler.cpp
+++ b/src/plugins/debugger/threadshandler.cpp
@@ -268,6 +268,7 @@ void ThreadsHandler::setCurrentThread(const Thread &thread)
m_currentThread = thread;
thread->update();
+ threadSwitcher()->setCurrentIndex(thread->index().row());
}
void ThreadsHandler::notifyGroupCreated(const QString &groupId, const QString &pid)
diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp
index 0850abf30eb..71b246b92d3 100644
--- a/src/plugins/docker/dockerdevice.cpp
+++ b/src/plugins/docker/dockerdevice.cpp
@@ -221,8 +221,14 @@ CommandLine DockerProcessImpl::fullLocalCommandLine(bool interactive)
QStringList args;
if (!m_setup.m_workingDirectory.isEmpty()) {
- QTC_CHECK(DeviceManager::deviceForPath(m_setup.m_workingDirectory) == m_device);
- args.append({"cd", m_setup.m_workingDirectory.path()});
+ FilePath workingDir = m_setup.m_workingDirectory;
+
+ if (DeviceManager::deviceForPath(workingDir) != m_device) {
+ QTC_CHECK(m_device->ensureReachable(workingDir));
+ workingDir = workingDir.onDevice(m_device->rootPath());
+ }
+
+ args.append({"cd", workingDir.path()});
args.append("&&");
}
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index d4f5c442642..60468ff12de 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -419,7 +419,7 @@ void LanguageClientManager::openDocumentWithClient(TextEditor::TextDocument *doc
client->openDocument(document);
else
client->activateDocument(document);
- } else if (Core::EditorManager::currentEditor()->document() == document) {
+ } else if (Core::EditorManager::currentDocument() == document) {
TextEditor::IOutlineWidgetFactory::updateOutline();
}
}
diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h
index 4a7da4ccf93..8992d3f258d 100644
--- a/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h
+++ b/src/plugins/mcusupport/test/armgcc_mimxrt1050_evk_freertos_json.h
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1050_evk_freertos_json = R"(
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
- "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
+ "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h
index 592a84228d1..b4ad4c81cd9 100644
--- a/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h
+++ b/src/plugins/mcusupport/test/armgcc_mimxrt1064_evk_freertos_json.h
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1064_evk_freertos_json = R"(
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
- "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
+ "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
diff --git a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h
index b7eb801cd60..6afb8df076f 100644
--- a/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h
+++ b/src/plugins/mcusupport/test/armgcc_mimxrt1170_evk_freertos_json.h
@@ -63,7 +63,7 @@ constexpr auto armgcc_mimxrt1170_evk_freertos_json = R"(
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
- "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
+ "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
diff --git a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h
index d6e28c6c429..e4bb862440f 100644
--- a/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h
+++ b/src/plugins/mcusupport/test/armgcc_stm32f769i_discovery_freertos_json.h
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32f769i_discovery_freertos_json = R"(
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
- "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
+ "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
diff --git a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h
index a2819c8cf8a..4ef64b2a200 100644
--- a/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h
+++ b/src/plugins/mcusupport/test/armgcc_stm32h750b_discovery_baremetal_json.h
@@ -62,7 +62,7 @@ constexpr auto armgcc_stm32h750b_discovery_baremetal_json = R"(
"id": "ARMGCC_CMAKE_TOOLCHAIN_FILE",
"cmakeVar": "CMAKE_TOOLCHAIN_FILE",
"type": "file",
- "defaultValue": "%{Qul_ROOT}//lib/cmake/Qul/toolchain/armgcc.cmake",
+ "defaultValue": "%{Qul_ROOT}/lib/cmake/Qul/toolchain/armgcc.cmake",
"visible": false,
"optional": false
}
diff --git a/src/plugins/perfprofiler/perfrunconfigurationaspect.h b/src/plugins/perfprofiler/perfrunconfigurationaspect.h
index b0c06fa88d2..eaa4c4b7251 100644
--- a/src/plugins/perfprofiler/perfrunconfigurationaspect.h
+++ b/src/plugins/perfprofiler/perfrunconfigurationaspect.h
@@ -14,6 +14,7 @@ namespace PerfProfiler {
class PERFPROFILER_EXPORT PerfRunConfigurationAspect :
public ProjectExplorer::GlobalOrProjectAspect
{
+ Q_OBJECT
public:
PerfRunConfigurationAspect(ProjectExplorer::Target *target);
};
diff --git a/src/plugins/projectexplorer/buildconfiguration.cpp b/src/plugins/projectexplorer/buildconfiguration.cpp
index b858fdb4d46..a812eb13b2d 100644
--- a/src/plugins/projectexplorer/buildconfiguration.cpp
+++ b/src/plugins/projectexplorer/buildconfiguration.cpp
@@ -46,8 +46,6 @@ using namespace Utils;
const char BUILD_STEP_LIST_COUNT[] = "ProjectExplorer.BuildConfiguration.BuildStepListCount";
const char BUILD_STEP_LIST_PREFIX[] = "ProjectExplorer.BuildConfiguration.BuildStepList.";
-const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment";
-const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges";
const char CUSTOM_PARSERS_KEY[] = "ProjectExplorer.BuildConfiguration.CustomParsers";
const char PARSE_STD_OUT_KEY[] = "ProjectExplorer.BuildConfiguration.ParseStandardOutput";
@@ -378,8 +376,9 @@ QVariantMap BuildConfiguration::toMap() const
{
QVariantMap map = ProjectConfiguration::toMap();
- map.insert(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
- map.insert(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY), EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
+ map.insert(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY), d->m_clearSystemEnvironment);
+ map.insert(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY),
+ EnvironmentItem::toStringList(d->m_userEnvironmentChanges));
map.insert(QLatin1String(BUILD_STEP_LIST_COUNT), 2);
map.insert(QLatin1String(BUILD_STEP_LIST_PREFIX) + QString::number(0), d->m_buildSteps.toMap());
@@ -393,8 +392,10 @@ QVariantMap BuildConfiguration::toMap() const
bool BuildConfiguration::fromMap(const QVariantMap &map)
{
- d->m_clearSystemEnvironment = map.value(QLatin1String(CLEAR_SYSTEM_ENVIRONMENT_KEY)).toBool();
- d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(map.value(QLatin1String(USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
+ d->m_clearSystemEnvironment = map.value(QLatin1String(Constants::CLEAR_SYSTEM_ENVIRONMENT_KEY))
+ .toBool();
+ d->m_userEnvironmentChanges = EnvironmentItem::fromStringList(
+ map.value(QLatin1String(Constants::USER_ENVIRONMENT_CHANGES_KEY)).toStringList());
updateCacheAndEmitEnvironmentChanged();
diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp
index dfcc80d6c59..2a471734906 100644
--- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp
+++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp
@@ -480,7 +480,8 @@ JsonWizardFactory *JsonWizardFactory::createWizardFactory(const QVariantMap &dat
if (!factory->initialize(data, baseDir, errorMessage)) {
delete factory;
factory = nullptr;
- Core::MessageManager::writeDisrupting(*errorMessage);
+ if (verbose())
+ Core::MessageManager::writeDisrupting(*errorMessage);
}
return factory;
}
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 9efea4ebb0e..b3988f300ff 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -4175,6 +4175,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu()
auto *ag = new QActionGroup(m_sessionMenu);
connect(ag, &QActionGroup::triggered, this, &ProjectExplorerPluginPrivate::setSession);
const QString activeSession = SessionManager::activeSession();
+ const bool isDefaultVirgin = SessionManager::isDefaultVirgin();
QStringList sessions = SessionManager::sessions();
std::sort(std::next(sessions.begin()), sessions.end(), [](const QString &s1, const QString &s2) {
@@ -4189,7 +4190,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu()
QAction *act = ag->addAction(actionText);
act->setData(session);
act->setCheckable(true);
- if (session == activeSession)
+ if (session == activeSession && !isDefaultVirgin)
act->setChecked(true);
}
m_sessionMenu->addActions(ag->actions());
@@ -4198,9 +4199,7 @@ void ProjectExplorerPluginPrivate::updateSessionMenu()
void ProjectExplorerPluginPrivate::setSession(QAction *action)
{
- QString session = action->data().toString();
- if (session != SessionManager::activeSession())
- SessionManager::loadSession(session);
+ SessionManager::loadSession(action->data().toString());
}
void ProjectExplorerPlugin::setProjectExplorerSettings(const ProjectExplorerSettings &pes)
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index ccdb0d44d3a..2ff240b4a3f 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -219,6 +219,8 @@ const char SETTINGS_MENU_HIDE_BUILD[] = "Menu/HideBuild";
const char SETTINGS_MENU_HIDE_DEBUG[] = "Menu/HideDebug";
const char SETTINGS_MENU_HIDE_ANALYZE[] = "Menu/HideAnalyze";
const char SESSION_TASKFILE_KEY[] = "TaskList.File";
+const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "ProjectExplorer.BuildConfiguration.ClearSystemEnvironment";
+const char USER_ENVIRONMENT_CHANGES_KEY[] = "ProjectExplorer.BuildConfiguration.UserEnvironmentChanges";
// UI texts
PROJECTEXPLORER_EXPORT QString msgAutoDetected();
diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt
index e3e1122abc1..5daf2e72f80 100644
--- a/src/plugins/qmldesigner/CMakeLists.txt
+++ b/src/plugins/qmldesigner/CMakeLists.txt
@@ -479,10 +479,10 @@ function(get_and_add_as_subdirectory name repository git_tag build_dir source_di
)
execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" "${build_dir}/${name}"
WORKING_DIRECTORY "${build_dir}/${name}"
- COMMAND_ERROR_IS_FATAL ANY
+ ${QTC_COMMAND_ERROR_IS_FATAL}
)
execute_process(COMMAND "${CMAKE_COMMAND}" --build "${build_dir}/${name}"
- COMMAND_ERROR_IS_FATAL ANY
+ ${QTC_COMMAND_ERROR_IS_FATAL}
)
add_subdirectory(${source_dir}/${name}/${source_subdir} ${name})
endfunction()
diff --git a/src/plugins/squish/squishxmloutputhandler.cpp b/src/plugins/squish/squishxmloutputhandler.cpp
index 4c70f6e8761..c2e06babe6e 100644
--- a/src/plugins/squish/squishxmloutputhandler.cpp
+++ b/src/plugins/squish/squishxmloutputhandler.cpp
@@ -92,7 +92,7 @@ void SquishXmlOutputHandler::mergeResultFiles(const Utils::FilePaths &reportFile
// and finally write test tag (case name) - the prolog tag (for test case)
// will be written outside the if
const QXmlStreamAttributes testAttributes = reader.attributes();
- QXmlStreamReader::TokenType token;
+ QXmlStreamReader::TokenType token = QXmlStreamReader::NoToken;
while (!reader.atEnd()) {
token = reader.readNext();
if (token != QXmlStreamReader::Characters)
diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp
index 346dc62bb0b..074c35a26c8 100644
--- a/src/plugins/texteditor/texteditor.cpp
+++ b/src/plugins/texteditor/texteditor.cpp
@@ -5887,7 +5887,7 @@ void TextEditorWidget::extraAreaMouseEvent(QMouseEvent *e)
{
QTextCursor cursor = cursorForPosition(QPoint(0, e->pos().y()));
- int markWidth;
+ int markWidth = 0;
extraAreaWidth(&markWidth);
const bool inMarkArea = e->pos().x() <= markWidth && e->pos().x() >= 0;
diff --git a/src/plugins/updateinfo/updateinfoplugin.cpp b/src/plugins/updateinfo/updateinfoplugin.cpp
index df8069db77a..1be1e21827d 100644
--- a/src/plugins/updateinfo/updateinfoplugin.cpp
+++ b/src/plugins/updateinfo/updateinfoplugin.cpp
@@ -124,14 +124,13 @@ void UpdateInfoPlugin::startCheckForUpdates()
return; // do not trigger while update task is already running
QFutureInterface futureIf;
- FutureProgress *futureProgress
- = ProgressManager::addTimedTask(futureIf,
- tr("Checking for Updates"),
- Id("UpdateInfo.CheckingForUpdates"),
- 60);
- futureProgress->setKeepOnFinish(FutureProgress::KeepOnFinishTillUserInteraction);
- futureProgress->setSubtitleVisibleInStatusBar(true);
- connect(futureProgress, &FutureProgress::canceled, this, [this, futureIf]() mutable {
+ d->m_progress = ProgressManager::addTimedTask(futureIf,
+ tr("Checking for Updates"),
+ Id("UpdateInfo.CheckingForUpdates"),
+ 60);
+ d->m_progress->setKeepOnFinish(FutureProgress::KeepOnFinishTillUserInteraction);
+ d->m_progress->setSubtitleVisibleInStatusBar(true);
+ connect(d->m_progress, &FutureProgress::canceled, this, [this, futureIf]() mutable {
futureIf.reportCanceled();
futureIf.reportFinished();
stopCheckForUpdates();
diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp
index 39ec743104c..752b22c2aa6 100644
--- a/tests/auto/debugger/tst_dumpers.cpp
+++ b/tests/auto/debugger/tst_dumpers.cpp
@@ -4061,15 +4061,15 @@ void tst_Dumpers::dumper_data()
+ Check("list.0", "[0]", "1", "int")
+ Check("list.1", "[1]", "2", "int")
+ Check("list.2", "[2]", "3", "int")
- + Check("v3", "", "@QVariant (@QList)") % Qt5
+ + Check("v3", "", "@QVariant (@QList)") % NeedsInferiorCall % Qt5
+ Check("v3.data", "<3 items>", TypePattern(".*QList")) % NeedsInferiorCall % Qt5
+ Check("v3.data.0", "[0]", "1", "int") % NeedsInferiorCall % Qt5
+ Check("v3.data.1", "[1]", "2", "int") % NeedsInferiorCall % Qt5
+ Check("v3.data.2", "[2]", "3", "int") % NeedsInferiorCall % Qt5
+ Check("v3", "<3 items>", "@QVariant (@QList)") % Qt6
- + Check("v3.0", "[0]", "1", "int") % NeedsInferiorCall % Qt6
- + Check("v3.1", "[1]", "2", "int") % NeedsInferiorCall % Qt6
- + Check("v3.2", "[2]", "3", "int") % NeedsInferiorCall % Qt6;
+ + Check("v3.0", "[0]", "1", "int") % Qt6
+ + Check("v3.1", "[1]", "2", "int") % Qt6
+ + Check("v3.2", "[2]", "3", "int") % Qt6;
QTest::newRow("QVariant2")
diff --git a/tests/auto/debugger/tst_gdb.cpp b/tests/auto/debugger/tst_gdb.cpp
index 804c7d63394..f4d5ffa6925 100644
--- a/tests/auto/debugger/tst_gdb.cpp
+++ b/tests/auto/debugger/tst_gdb.cpp
@@ -115,6 +115,14 @@ void tst_gdb::version_data()
QTest::newRow("Debian 7.12 git")
<< "GNU gdb (Debian 7.12-6) 7.12.0.20161007-git"
<< 71200 << 6 << false << false;
+
+ QTest::newRow("Debian 10.1 git")
+ << "GNU gdb (Debian 10.1-1.7) 10.1.90.20210103-git"
+ << 100100 << 1 << false << false;
+
+ QTest::newRow("Ubuntu 22.04")
+ << "GNU gdb (Ubuntu 12.1-0ubuntu1~22.04) 12.1"
+ << 120100 << 0 << false << false;
}
static QString chopConst(QString type)
diff --git a/tests/manual/android/setup/setup_android.cmake b/tests/manual/android/setup/setup_android.cmake
index c6a4f8ae298..c4dfb275b35 100644
--- a/tests/manual/android/setup/setup_android.cmake
+++ b/tests/manual/android/setup/setup_android.cmake
@@ -43,7 +43,7 @@ function(download_jdk)
message("Downloading: ${jdk_url}")
file(DOWNLOAD ${jdk_url} ./jdk.zip SHOW_PROGRESS)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ./jdk.zip COMMAND_ERROR_IS_FATAL ANY)
endfunction()
function(download_android_commandline)
@@ -61,7 +61,7 @@ function(download_android_commandline)
file(DOWNLOAD ${android_cmdtools_url} ./android_commandline_tools.zip SHOW_PROGRESS)
file(MAKE_DIRECTORY android-sdk)
file(MAKE_DIRECTORY android-cmdlinetools)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools)
+ execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf ../android_commandline_tools.zip WORKING_DIRECTORY android-cmdlinetools COMMAND_ERROR_IS_FATAL ANY)
endfunction()
function(setup_android)
@@ -78,9 +78,11 @@ function(setup_android)
file(WRITE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt "y\ny\ny\ny\ny\ny\ny\ny\ny\ny\n")
execute_process(
INPUT_FILE ${CMAKE_CURRENT_LIST_DIR}/accept_license.txt
- COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
+ COMMAND ${sdkmanager} --licenses --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
+ COMMAND_ERROR_IS_FATAL ANY)
execute_process(
- COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
+ COMMAND ${sdkmanager} --update --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
+ COMMAND_ERROR_IS_FATAL ANY)
execute_process(
COMMAND ${sdkmanager}
"platforms;${ANDROID_PLATFORM}"
@@ -90,13 +92,15 @@ function(setup_android)
"cmdline-tools;latest"
"tools"
"emulator"
- "ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
+ "ndk-bundle" --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
+ COMMAND_ERROR_IS_FATAL ANY)
if (WIN32)
execute_process(
COMMAND ${sdkmanager}
"extras;google;usb_driver"
- --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk)
+ --sdk_root=${CMAKE_CURRENT_LIST_DIR}/android-sdk
+ COMMAND_ERROR_IS_FATAL ANY)
endif()
endfunction()