diff --git a/.github/workflows/build_cmake.yml b/.github/workflows/build_cmake.yml index 3d61517d7a7..6665ca55add 100644 --- a/.github/workflows/build_cmake.yml +++ b/.github/workflows/build_cmake.yml @@ -7,7 +7,7 @@ on: - 'doc/**' env: - QT_VERSION: 6.8.1 + QT_VERSION: 6.8.2 MACOS_DEPLOYMENT_TARGET: 11.0 CLANG_VERSION: 19.1.6 ELFUTILS_VERSION: 0.175 diff --git a/CMakeLists.txt b/CMakeLists.txt index 224ff3b6de3..c9fc6b5e458 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -80,6 +80,18 @@ find_package(Qt6 find_package(Qt6 OPTIONAL_COMPONENTS Quick QuickWidgets Designer DesignerComponentsPrivate Help SerialPort Svg Tools LinguistTools QUIET) +if (QT_VERSION VERSION_GREATER_EQUAL 6.9.0) + find_package(Qt6 OPTIONAL_COMPONENTS + CorePrivate + Core5CompatPrivate + GuiPrivate + DesignerComponentsPrivate + QmlPrivate + QuickPrivate + QUIET + ) +endif() + # depending on Qt version and compiler version enable or disable Qml Designer # can be overwritten by variable WITH_QMLDESIGNER / QTC_WITH_QMLDESIGNER (env) configure_qml_designer(${Qt6_VERSION}) diff --git a/TESTING.md b/TESTING.md new file mode 100644 index 00000000000..4da1cc03064 --- /dev/null +++ b/TESTING.md @@ -0,0 +1,70 @@ +# Testing Qt Creator + +There are four kinds of tests in Qt Creator, you can find some more documentation +[online here](https://doc-snapshots.qt.io/qtcreator-extending/plugin-tests.html). + +## Manual Tests + +Located in `tests/manual/...`, these need to be run manually as separate executables and require +user interaction for "playing around" with some piece of code. + +## Squish-Based Tests + +`tests/system/...` are run with [Squish](https://www.qt.io/product/quality-assurance/squish) +at irregular intervals and specifically checked for releases (RTA). + +## Auto/Unit Tests + +`tests/auto/...` are separate QTest-based executables (tst_...) that are run with tools like +cmake/ctest. They run automatically with the PRECHECK in Gerrit, etc. + +## Plugin/Integration Tests + +These tests are integrated into the plugins themselves and are executed within +the context of a fully running Qt Creator. They are run with the `-test ` +command line parameter of the qtcreator executable. +This starts Qt Creator with only that plugin and its dependencies loaded, executes any test +functions that the plugin registers, prints the QTest output, and then closes. + +For plugin tests, plugins register test functions if Qt Creator was compiled with WITH_TESTS, +like this: + +```c++ +void TextEditorPlugin::initialize() +{ +#ifdef WITH_TESTS + addTestCreator(createFormatTextTest); + addTestCreator(createTextDocumentTest); + addTestCreator(createTextEditorTest); + addTestCreator(createSnippetParserTest); +#endif + ... +} +``` + +The "test creator" is a factory function that returns a QObject, which functions the same as the +tstSomething QObjects used in standalone unit tests. + +```c++ +QObject *createFormatTextTest() +{ + return new FormatTextTest; +} +``` + +Slots are executed as QTest tests, and there can be init and cleanup functions, etc. + +```c++ +class FormatTextTest final : public QObject +{ + Q_OBJECT + +private slots: + void testFormatting_data(); + void testFormatting(); +}; +``` + +These tests are executed after Qt Creator plugins have fully initialized and can access the full +Qt Creator state, open files, load projects, etc. (depending on the declared dependencies of +the tested plugin). diff --git a/cmake/QtCreatorAPIInternal.cmake b/cmake/QtCreatorAPIInternal.cmake index ce7489b4c18..6e055397983 100644 --- a/cmake/QtCreatorAPIInternal.cmake +++ b/cmake/QtCreatorAPIInternal.cmake @@ -77,7 +77,7 @@ elseif(WIN32) set(_IDE_CMAKE_INSTALL_PATH "lib/cmake") else () # Small hack to silence a warning in the stable branch - but it means the value is incorrect - if (NOT CMAKE_LIBRARY_ARCHITECTURE) + if (NOT CMAKE_LIBRARY_ARCHITECTURE AND NOT CMAKE_INSTALL_LIBDIR) set(CMAKE_INSTALL_LIBDIR "lib") endif() include(GNUInstallDirs) diff --git a/cmake/QtCreatorIDEBranding.cmake b/cmake/QtCreatorIDEBranding.cmake index 1b83be85555..c0b47d60cca 100644 --- a/cmake/QtCreatorIDEBranding.cmake +++ b/cmake/QtCreatorIDEBranding.cmake @@ -1,6 +1,6 @@ -set(IDE_VERSION "15.0.84") # The IDE version. -set(IDE_VERSION_COMPAT "15.0.84") # The IDE Compatibility version. -set(IDE_VERSION_DISPLAY "16.0.0-rc1") # The IDE display version. +set(IDE_VERSION "16.0.0") # The IDE version. +set(IDE_VERSION_COMPAT "16.0.0") # The IDE Compatibility version. +set(IDE_VERSION_DISPLAY "16.0.0") # The IDE display version. set(IDE_SETTINGSVARIANT "QtProject") # The IDE settings variation. set(IDE_DISPLAY_NAME "Qt Creator") # The IDE display name. diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index 74f0ab2e1f9..deceddb7a4a 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -7,7 +7,7 @@ instructions: instructions: - type: EnvironmentVariable variableName: QTC_QT_BASE_URL - variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.8.0/release_content/" + variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/qt/6.8.2/release_content/" - type: EnvironmentVariable variableName: MACOSX_DEPLOYMENT_TARGET variableValue: 12.0 @@ -88,7 +88,7 @@ instructions: instructions: - type: EnvironmentVariable variableName: QTC_QT_POSTFIX - variableValue: "-Linux-RHEL_8_8-GCC-Linux-RHEL_8_8-X86_64.7z" + variableValue: "-Linux-RHEL_8_10-GCC-Linux-RHEL_8_10-X86_64.7z" - type: EnvironmentVariable variableName: QTC_ICU_URL variableValue: "https://ci-files02-hki.ci.qt.io/packages/jenkins/development_releases/prebuilt/icu/prebuilt/73.2/icu-linux-g++-Rhel8.6-x64.7z" @@ -141,7 +141,7 @@ instructions: instructions: - type: EnvironmentVariable variableName: QTC_QT_POSTFIX - variableValue: "-Linux-Debian_11_6-GCC-Linux-Debian_11_6-AARCH64.7z" + variableValue: "-Linux-Ubuntu_24_04-GCC-Linux-Ubuntu_24_04-AARCH64.7z" - type: EnvironmentVariable variableName: QTC_SDKTOOL_QT_EXT variableValue: ".tar.xz" diff --git a/dist/changelog/changes-16.0.0.md b/dist/changelog/changes-16.0.0.md index 339a34dade8..fd2c8db4ec6 100644 --- a/dist/changelog/changes-16.0.0.md +++ b/dist/changelog/changes-16.0.0.md @@ -36,6 +36,10 @@ Editing ([QTCREATORBUG-32193](https://bugreports.qt.io/browse/QTCREATORBUG-32193)) * Fixed a formatting issue when applying method signature changes ([QTCREATORBUG-31931](https://bugreports.qt.io/browse/QTCREATORBUG-31931)) +* Fixed the generation of getters for local enum types + ([QTCREATORBUG-32473](https://bugreports.qt.io/browse/QTCREATORBUG-32473)) +* Fixed the header guard creation for file names with special characters + ([QTCREATORBUG-32539](https://bugreports.qt.io/browse/QTCREATORBUG-32539)) * Built-in * Added support for init-statements in range-based `for` loops ([QTCREATORBUG-31961](https://bugreports.qt.io/browse/QTCREATORBUG-31961)) @@ -68,6 +72,16 @@ Editing ([QTCREATORBUG-31878](https://bugreports.qt.io/browse/QTCREATORBUG-31878), [QTCREATORBUG-32163](https://bugreports.qt.io/browse/QTCREATORBUG-32163)) +### Copilot + +* Fixed issues with newer versions of the language server + ([QTCREATORBUG-32536](https://bugreports.qt.io/browse/QTCREATORBUG-32536)) + +### SCXML + +* Fixed the colors of items + ([QTCREATORBUG-32477](https://bugreports.qt.io/browse/QTCREATORBUG-32477)) + Projects -------- @@ -101,6 +115,11 @@ Projects ([QTCREATORBUG-32350](https://bugreports.qt.io/browse/QTCREATORBUG-32350)) * Fixed a crash when an application outputs lots of lines ([QTCREATORBUG-32371](https://bugreports.qt.io/browse/QTCREATORBUG-32371)) +* Environment Editor + * Fixed the `Disable` button for the first item + ([QTCREATORBUG-32495](https://bugreports.qt.io/browse/QTCREATORBUG-32495)) + * Fixed the `Edit` button for disabled items + ([QTCREATORBUG-32495](https://bugreports.qt.io/browse/QTCREATORBUG-32495)) * Qt * Improved performance of Qt ABI detection when module `.json` files are available @@ -121,6 +140,7 @@ Projects * Added support for creating run configurations for custom CMake targets with the `qtc_runnable` `FOLDER` property ([QTCREATORBUG-32324](https://bugreports.qt.io/browse/QTCREATORBUG-32324)) +* Improved the performance when CMake reply files change on disk * Fixed that manually created run configurations could be removed if `Create suitable run configurations automatically` was turned off ([QTCREATORBUG-32289](https://bugreports.qt.io/browse/QTCREATORBUG-32289)) @@ -130,6 +150,8 @@ Projects * Fixed that Ninja was not detected even when `CMAKE_MAKE_PROGRAM` was set to the `ninja` executable ([QTCREATORBUG-32436](https://bugreports.qt.io/browse/QTCREATORBUG-32436)) +* Fixed the import of multi-config CMake presets + ([QTCREATORBUG-31554](https://bugreports.qt.io/browse/QTCREATORBUG-31554)) * Package Manager Auto Setup * Changed the default installation directory to `/tmp` to ensure that the directory is writable @@ -160,7 +182,9 @@ Debugging * Pretty printers * Added `QMultiHash` - ([QTCREATORBUG-32313](https://bugreports.qt.io/browse/QTCREATORBUG-32313)) + ([QTCREATORBUG-32313](https://bugreports.qt.io/browse/QTCREATORBUG-32313)) + * Fixed issues with debuggers that use an older Python version + ([QTCREATORBUG-32475](https://bugreports.qt.io/browse/QTCREATORBUG-32475)) * CDB * Disabled heap debugging by default and added the option `Enable heap debugging` @@ -180,11 +204,19 @@ Analyzer ([QTCREATORBUG-31372](https://bugreports.qt.io/browse/QTCREATORBUG-31372)) * Fixed that profiling could fail to start ([QTCREATORBUG-32062](https://bugreports.qt.io/browse/QTCREATORBUG-32062)) +* Fixed the sorting of statistics + ([QTCREATORBUG-32398](https://bugreports.qt.io/browse/QTCREATORBUG-32398)) ### Axivion * Added support for images in the issue details * Moved Axivion preferences to `Preferences > Analyzer > Axivion` +* Fixed that the display of data in the issues table did not adapt to the + column's data type + ([QTCREATORBUG-32023](https://bugreports.qt.io/browse/QTCREATORBUG-32023)) +* Fixed that filters were shown even for issue types that do not suppor them +* Fixed that the Filter menus opened at the wrong position + ([QTCREATORBUG-32506](https://bugreports.qt.io/browse/QTCREATORBUG-32506)) ### Coco @@ -192,6 +224,23 @@ Analyzer in `Projects > Project Settings > Coco Code Coverage` ([Documentation]https://doc-snapshots.qt.io/qtcreator-16.0/creator-coco.html) +Terminal +-------- + +* Fixed that the view didn't jump to the end on input + ([QTCREATORBUG-32407](https://bugreports.qt.io/browse/QTCREATORBUG-32407)) +* Fixed the title of tabs + ([QTCREATORBUG-32197](https://bugreports.qt.io/browse/QTCREATORBUG-32197)) +* Fixed killing the shell process + ([QTCREATORBUG-32509](https://bugreports.qt.io/browse/QTCREATORBUG-32509)) +* Fixed the scrolling behavior + ([QTCREATORBUG-32167](https://bugreports.qt.io/browse/QTCREATORBUG-32167), + [QTCREATORBUG-32546](https://bugreports.qt.io/browse/QTCREATORBUG-32546)) +* Fixed the title of tabs + ([QTCREATORBUG-32197](https://bugreports.qt.io/browse/QTCREATORBUG-32197)) +* Fixed the handling of `Home` and `End` keys + ([QTCREATORBUG-32545](https://bugreports.qt.io/browse/QTCREATORBUG-32545)) + Version Control Systems ----------------------- @@ -227,10 +276,17 @@ Platforms * Added support for the `terminator` terminal emulator ([QTCREATORBUG-32111](https://bugreports.qt.io/browse/QTCREATORBUG-32111)) +### macOS + +* Fixed a crash when MinGW toolchains are detected on macOS hosts + ([QTCREATORBUG-32127](https://bugreports.qt.io/browse/QTCREATORBUG-32127)) + ### Android * Fixed a performance problem when detecting the Android ABI ([QTCREATORBUG-31068](https://bugreports.qt.io/browse/QTCREATORBUG-31068)) +* Fixed that the wrong `lldb-server` could be used + ([QTCREATORBUG-32494](https://bugreports.qt.io/browse/QTCREATORBUG-32494)) ### iOS @@ -251,12 +307,20 @@ Platforms * Fixed an issue with running `pkg-config` in the container ([QTCREATORBUG-32325](https://bugreports.qt.io/browse/QTCREATORBUG-32325)) +* Fixed an issue with shutting down the device access +* Fixed soft asserts during container setup + +### QNX + +* Fixed issues with Clangd 19 + ([QTCREATORBUG-32529](https://bugreports.qt.io/browse/QTCREATORBUG-32529)) Credits for these changes go to: -------------------------------- Alessandro Portale Alexander Drozdov Alexander Pershin +Alexandre Laurent Alexis Jeandet Ali Kianian Andre Hartmann @@ -292,6 +356,7 @@ Mats Honkamaa Miikka Heikkinen Mitch Curtis Morteza Jamshidi +Nicholas Bennett Nikolaus Demmel Olivier De Cannière Orgad Shaneh @@ -311,4 +376,5 @@ Thiago Macieira Thomas Hartmann Tim Jenßen Vikas Pachdha +Ville Lavonius Xu Jin diff --git a/doc/qtcreator/images/qt-creator-android-build-aar.webp b/doc/qtcreator/images/qt-creator-android-build-aar.webp new file mode 100644 index 00000000000..4b8890c8ee0 Binary files /dev/null and b/doc/qtcreator/images/qt-creator-android-build-aar.webp differ diff --git a/doc/qtcreator/images/qtcreator-examples-kit-selector.webp b/doc/qtcreator/images/qtcreator-examples-kit-selector.webp index 0f712f9e29f..de1e2f83372 100644 Binary files a/doc/qtcreator/images/qtcreator-examples-kit-selector.webp and b/doc/qtcreator/images/qtcreator-examples-kit-selector.webp differ diff --git a/doc/qtcreator/images/qtcreator-examples-open.webp b/doc/qtcreator/images/qtcreator-examples-open.webp index da1d0c07e20..45e4aa737b8 100644 Binary files a/doc/qtcreator/images/qtcreator-examples-open.webp and b/doc/qtcreator/images/qtcreator-examples-open.webp differ diff --git a/doc/qtcreator/images/qtcreator-mcu-device.png b/doc/qtcreator/images/qtcreator-mcu-device.png deleted file mode 100644 index 2a2dd2beab5..00000000000 Binary files a/doc/qtcreator/images/qtcreator-mcu-device.png and /dev/null differ diff --git a/doc/qtcreator/images/qtcreator-mcu-device.webp b/doc/qtcreator/images/qtcreator-mcu-device.webp new file mode 100644 index 00000000000..599732f178b Binary files /dev/null and b/doc/qtcreator/images/qtcreator-mcu-device.webp differ diff --git a/doc/qtcreator/images/qtcreator-mcu-new-kit.webp b/doc/qtcreator/images/qtcreator-mcu-new-kit.webp new file mode 100644 index 00000000000..e248fa8899f Binary files /dev/null and b/doc/qtcreator/images/qtcreator-mcu-new-kit.webp differ diff --git a/doc/qtcreator/images/qtcreator-mcu-new-project.webp b/doc/qtcreator/images/qtcreator-mcu-new-project.webp index 270907c08b6..78c32c42857 100644 Binary files a/doc/qtcreator/images/qtcreator-mcu-new-project.webp and b/doc/qtcreator/images/qtcreator-mcu-new-project.webp differ diff --git a/doc/qtcreator/images/qtcreator-preferences-kits-mcu.webp b/doc/qtcreator/images/qtcreator-preferences-kits-mcu.webp index cf61f131ecc..68e52150b76 100644 Binary files a/doc/qtcreator/images/qtcreator-preferences-kits-mcu.webp and b/doc/qtcreator/images/qtcreator-preferences-kits-mcu.webp differ diff --git a/doc/qtcreator/images/qtcreator-preferences-mcu.webp b/doc/qtcreator/images/qtcreator-preferences-mcu.webp index 83d6fd17e01..62b8b9514ca 100644 Binary files a/doc/qtcreator/images/qtcreator-preferences-mcu.webp and b/doc/qtcreator/images/qtcreator-preferences-mcu.webp differ diff --git a/doc/qtcreator/images/qtcreator-welcome-open-projects.webp b/doc/qtcreator/images/qtcreator-welcome-open-projects.webp index 05af411f2dd..a9be2063661 100644 Binary files a/doc/qtcreator/images/qtcreator-welcome-open-projects.webp and b/doc/qtcreator/images/qtcreator-welcome-open-projects.webp differ diff --git a/doc/qtcreator/images/qtcreator-welcome.webp b/doc/qtcreator/images/qtcreator-welcome.webp index a9fe3a047d3..85dd9858009 100644 Binary files a/doc/qtcreator/images/qtcreator-welcome.webp and b/doc/qtcreator/images/qtcreator-welcome.webp differ diff --git a/doc/qtcreator/src/analyze/creator-coco.qdoc b/doc/qtcreator/src/analyze/creator-coco.qdoc index 6ed56a2029f..aee0060f6cf 100644 --- a/doc/qtcreator/src/analyze/creator-coco.qdoc +++ b/doc/qtcreator/src/analyze/creator-coco.qdoc @@ -3,16 +3,16 @@ /*! \page creator-coco.html - \previouspage creator-reference.html + \previouspage creator-how-tos.html - \ingroup creator-reference-analyzer + \ingroup creator-how-to-analyze - \title Coco + \title Set up code coverage from Coco - \brief Measure and analyze the code coverage of tests. - - With Coco, you can measure and analyze the code coverage of tests. You can - set up a project for code coverage and display the coverage in \QC. + With Coco, you can measure and analyze the code coverage of tests. The + following sections describe how to set up a project for code coverage. + For more information about viewing the results in \QC, see + \l{View code coverage reports from Coco}. To use the plugin, you must download and install Coco version 6.0 or later. @@ -143,6 +143,9 @@ loading an instrumentation database (a \c .csmes file), which was generated by Coco CoverageScanner. + For more information about how to set up a project for code coverage in \QC, + see \l{Set up code coverage from Coco}. + To measure and check code coverage: \list 1 @@ -182,5 +185,6 @@ \li Implicit Manual Coverage Validation \endlist - \sa {Enable and disable plugins}, {Font & Colors}, {Analyzing Code}, {Coco} + \sa {Enable and disable plugins}, {Set up code coverage from Coco}, + {Font & Colors}, {Analyzing Code}, */ diff --git a/doc/qtcreator/src/android/deploying-android.qdoc b/doc/qtcreator/src/android/deploying-android.qdoc index e463b20a214..4a808561a35 100644 --- a/doc/qtcreator/src/android/deploying-android.qdoc +++ b/doc/qtcreator/src/android/deploying-android.qdoc @@ -9,12 +9,13 @@ \title Android Deploy Configuration - \brief Create Application Packages (APK) or Android App Bundles (AAB) to - install and run on devices or to upload to the Google Play store. + \brief Create packages to deploy to devices or to submit to the Google Play + store, or create libraries for Android app modules. Android applications are packaged as ZIP files called Application Packages - (APK) or Android App Bundles (AAB). You can install and run APK files on a - device. You can upload AAB files to the Google Play store. + (APK), Android App Bundles (AAB), or Android Archives (AAR). You can + install and run APK files on a device. You can upload AAB files to the + Google Play store. \l{Qt for Android} has binaries for armv7a, arm64-v8a, x86, and x86-64. To support several different ABIs in your application, build an AAB that @@ -27,10 +28,14 @@ \list \li As a stand-alone, distributable application package (APK). \li As an app bundle (AAB) for distribution in the Google Play store. + \li As an AAR, which fundamentally differs from the APK and AAB formats + in that it is an Android library. You can use it as a dependency for + an Android app module, but you cannot run it alone. All Qt versions do not support AABs. Qt 6.3.0 and later support - multi-abi builds for applications that you build with CMake. For - more information, see \l{Deploying an Application on Android}. + multi-abi builds for applications when you build with CMake. AARs + are supported from Qt 6.8.0 onwards. For more information, see + \l{Deploying an Application on Android}. \endlist \note Since \QC 4.12, Ministro is not supported. @@ -123,6 +128,12 @@ \image qtcreator-android-build-steps.png {qmake settings for building AABs} + \section3 Building AARs + + Select the AAR target in the \uicontrol {Build Steps} section. + + \image qt-creator-android-build-aar.webp {Selecting the AAR target} + \section3 Signing Android Packages To publish your application, you must sign it by using a \e {public-private @@ -492,8 +503,7 @@ Select the \uicontrol {Include default permissions for Qt modules} and \uicontrol {Include default features for Qt modules} check boxes to add the - permissions needed by Qt libraries. This can be - \c {android.permission.WRITE_EXTERNAL_STORAGE} for \l{Qt Core} or + permissions needed by Qt libraries, such as \c {android.permission.ACCESS_BACKGROUND_LOCATION} for \l{Qt Positioning}. To add a permission, select it from the list, and then select \uicontrol Add. diff --git a/doc/qtcreator/src/editors/creator-code-indentation.qdoc b/doc/qtcreator/src/editors/creator-code-indentation.qdoc index 7438cffeb45..6e29cc1fb7f 100644 --- a/doc/qtcreator/src/editors/creator-code-indentation.qdoc +++ b/doc/qtcreator/src/editors/creator-code-indentation.qdoc @@ -20,6 +20,10 @@ \section1 Don't detect indentation settings + When you open a document, the editor tries to automatically detect if it uses tabs or + spaces for indentation and the indentation width, by inspecting its contents. + If the automatic detection fails, the default setting is used. + To turn off the automatic detection of indentation settings, go to \preferences > \uicontrol {Text Editor} > \uicontrol Behavior and clear \uicontrol {Auto detect}. @@ -28,10 +32,14 @@ \section1 Fix indentation in an open file + To fix the indentation settings for the file currently open in the editor, select a + different setting with \uicontrol {Spaces} > \uicontrol {Document Settings} or + \uicontrol {Tabs} > \uicontrol {Document Settings} on the editor toolbar. + To fix the indentation in the file currently open in the editor: \list - \li On the editor toolbar, select \uicontrol {Spaces}, and then select + \li On the editor toolbar, select \uicontrol {Spaces} or \uicontrol {Tabs}, and then select \uicontrol {Auto-indent Selection} to automatically indent the selected text using the current settings. \li Go to \uicontrol Edit > \uicontrol Advanced, and select an diff --git a/doc/qtcreator/src/editors/creator-code-syntax.qdoc b/doc/qtcreator/src/editors/creator-code-syntax.qdoc index 75d81c1e08c..b5b230720dd 100644 --- a/doc/qtcreator/src/editors/creator-code-syntax.qdoc +++ b/doc/qtcreator/src/editors/creator-code-syntax.qdoc @@ -137,7 +137,8 @@ Many of the error messages are similar to the ones in Douglas Crockford's \l{http://www.jslint.com}{JSLint} tool. For more information about JSLint - errors, see \l{http://linterrors.com/js}{JSLint Error Explanations}. + errors, see \l{https://github.com/jamesallardice/jslint-error-explanations} + {JSLint Error Explanations}. \table \header @@ -204,33 +205,30 @@ \li M10 \li Error \li Duplicate property binding - \li See also: \l{http://linterrors.com/js/duplicate-key-a} - {Duplicate key '{a}'}. + \li For more information, see \e {Duplicate key '{a}'} in + \e {JSLint Error Explanations}. \row \li M11 \li Error \li Id expected - \li See also: - \l{http://linterrors.com/js/expected-an-identifier-and-instead-saw-a-a-reserved-word} - {Expected an identifier and instead saw '{a}' (a reserved word)}. + \li For more information, see + \e {Expected an identifier and instead saw '{a}' (a reserved word)} + in \e {JSLint Error Explanations}. \row \li M14 \li Error \li Invalid id - \li See also: - \l{http://linterrors.com/js/expected-an-identifier-and-instead-saw-a-a-reserved-word} - {Expected an identifier and instead saw '{a}' (a reserved word)}. - + \li For more information, see + \e {Expected an identifier and instead saw '{a}' (a reserved word)}. \row \li M15 \li Error \li Duplicate id \li Ids in a file must be unique. - See also: \l{http://linterrors.com/js/duplicate-key-a} - {Duplicate key '{a}'}. + For more information, see \e {Duplicate key '{a}'}. \row \li M16 @@ -270,7 +268,8 @@ \li M23 \li Warning \li Do not use \c eval - \li See also: \l{http://linterrors.com/js/eval-is-evil}{eval is evil}. + \li For more information, see \e {eval is evil} in + \e {JSLint Error Explanations}. \row \li M28 @@ -282,8 +281,8 @@ \li M29 \li Warning \li Do not use \c with - \li See also: \l{http://linterrors.com/js/unexpected-with} - {Unexpected 'with'}. + \li For more information, see \e {Unexpected 'with'} in + \e {JSLint Error Explanations}. \row \li M30 @@ -333,51 +332,48 @@ \li M108 \li Warning \li Function \c name is used before its declaration - \li See also: \l{http://linterrors.com/js/a-was-used-before-it-was-defined} - {{a} was used before it was defined}. + \li For more information, see \e {{a} was used before it was defined} in + \e {JSLint Error Explanations}. \row \li M109 \li Warning \li Do not use \c Boolean as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor} in + \e {JSLint Error Explanations}. \row \li M110 \li Warning \li Do not use \c String as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor}. \row \li M111 \li Warning \li Do not use \c Object as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor}. \row \li M112 \li Warning \li Do not use \c Array as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor}. \row \li M113 \li Warning \li Do not use \c Function as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor}. \row \li M114 \li Hint \li The \c function keyword and the opening parenthesis should be separated by a single space - \li See also: \l{http://linterrors.com/js/expected-exactly-one-space-between-a-and-b} - {Expected exactly one space between {a} and {b}}. + \li For more information, see + \e {Expected exactly one space between {a} and {b}} in + \e {JSLint Error Explanations}. \row \li M115 @@ -397,15 +393,15 @@ \li M117 \li Warning \li Confusing pluses - \li See also: \l{http://linterrors.com/js/confusing-pluses} - {Confusing pluses}. + \li For more information, see \e {Confusing pluses} in + \e {JSLint Error Explanations}. \row \li M119 \li Warning \li Confusing minuses - \li See also: \l{http://linterrors.com/js/confusing-minuses} - {Confusing minuses}. + \li For more information, see \e {Confusing minuses} in + \e {JSLint Error Explanations}. \row \li M121 @@ -453,9 +449,9 @@ \li M201 \li Hint \li Place var declarations at the start of a function - \li See also: - \l{http://linterrors.com/js/move-var-declarations-to-the-top-of-the-function} - {Move 'var' declarations to the top of the function}. + \li For more information, see + \e {Move 'var' declarations to the top of the function} in + \e {JSLint Error Explanations}. \row \li M202 @@ -609,15 +605,14 @@ \li M307 \li Warning \li Use \c new only with functions that start with an uppercase letter - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor} in + \e {JSLint Error Explanations}. \row \li M308 \li Warning \li Do not use \c Number as a constructor - \li See also: \l{http://linterrors.com/js/do-not-use-a-as-a-constructor} - {Do not use {a} as a constructor}. + \li For more information, see \e {Do not use {a} as a constructor}. \row \li M309 @@ -707,9 +702,9 @@ \li M323 \li Error \li \c Number elements expected in array value - \li See also: - \l{http://linterrors.com/js/the-array-literal-notation-is-preferrable} - {The array literal notation [] is preferable}. + \li For more information, see + \e {The array literal notation [] is preferable} in + \e {JSLint Error Explanations}. \row \li M324 diff --git a/doc/qtcreator/src/editors/creator-only/creator-aiassistant.qdoc b/doc/qtcreator/src/editors/creator-only/creator-aiassistant.qdoc index 2c8406fba5e..dcc418f4d2e 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-aiassistant.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-aiassistant.qdoc @@ -42,6 +42,53 @@ then select \uicontrol Install. \endlist + \section1 Enable code syntax highlighting in the inline chat window + + To enable code syntax highlighting in the inline chat window, go to + \preferences > \uicontrol {Text Editor} > \uicontrol {Generic Highlighter}, + and then select \uicontrol {Download Definitions}. + \image qtcreator-syntax-highlighter.png {Generic Highlighter preferences} + For more information, see \l{Download highlight definitions}. + + \section1 Install and use Ollama + + To use LLMs running locally on your computer with the Qt AI Assistant extension, + install Ollama. You can run models available from the Ollama selection as well + as custom models added by you to Ollama. + + \section2 Run models on Ollama + + To run models, enter: + + \code + ollama run + \endcode + + For example: + + \code + ollama run codellama:7b-code + \endcode + + \section2 Supported models from Ollama + + You can use the following models directly from Ollama: + + \list + \li \c codellama:7b-code + \li \c deepseek-coder-v2:lite + \li \c starcoder2:7b + \endlist + + \section2 Custom models + + For custom models, follow the specific installation instructions for that mode. + You can use the following custom models: + + \list + \li \l {https://huggingface.co/QtGroup/CodeLlama-13B-QML}{codellama:13b-code-qml} + \endlist + \section1 Connect to an LLM You can connect to the following LLMs: diff --git a/doc/qtcreator/src/external-resources/external-resources.qdoc b/doc/qtcreator/src/external-resources/external-resources.qdoc index bfa51524ba0..90da870a42a 100644 --- a/doc/qtcreator/src/external-resources/external-resources.qdoc +++ b/doc/qtcreator/src/external-resources/external-resources.qdoc @@ -75,7 +75,15 @@ */ /*! \externalpage https://doc.qt.io/QtForMCUs/qtul-getting-started-on-nxp.html - \title Getting Started on NXP + \title Getting started on NXP (BareMetal and FreeRTOS) +*/ +/*! + \externalpage https://doc.qt.io/QtForMCUs/qtul-getting-started-on-nxp-linux.html + \title Getting started on NXP (Linux) +*/ +/*! + \externalpage https://doc.qt.io/QtForMCUs/qtul-getting-started-on-nxp-zephyr.html + \title Getting started on NXP (Zephyr) */ /*! \externalpage https://doc.qt.io/QtForMCUs/qtul-getting-started-on-infineon.html diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc index d643381c2b3..5a2235ed7e6 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-plugins.qdoc @@ -11,8 +11,7 @@ \l{https://marketplace.qt.io/}{Qt Marketplace} has links to \QC plugins that you can download and install either for free or for a price set by their - publisher. Browse the available plugins in the \uicontrol Marketplace tab - in the \uicontrol Welcome mode. + publisher. You can also install plugins from other sources, such as \l{https://github.com/}{GitHub}. diff --git a/doc/qtcreator/src/creator-how-to-set-up-winappsdk.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-to-set-up-winappsdk.qdoc similarity index 100% rename from doc/qtcreator/src/creator-how-to-set-up-winappsdk.qdoc rename to doc/qtcreator/src/howto/creator-only/creator-how-to-set-up-winappsdk.qdoc diff --git a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc index 84a865b5bed..89ae1aca379 100644 --- a/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc +++ b/doc/qtcreator/src/mcu/creator-mcu-dev.qdoc @@ -41,7 +41,12 @@ The hardware-specific requirements vary depending on the hardware platform you are developing for. For more information see: \list - \li \l{Getting Started on NXP} + \li Getting Started on NXP + \list + \li \l {Getting started on NXP (BareMetal and FreeRTOS)} + \li \l {Getting started on NXP (Linux)} + \li \l {Getting started on NXP (Zephyr)} + \endlist \li \l{Getting Started on STM} \li \l{Getting Started on Renesas} \li \l{Getting Started on Infineon} @@ -57,8 +62,17 @@ \li \QC version \li \QMCU SDK version \row - \li 12.0.2 or later - \li 2.7 or later + \li 16.0.0 or later + \li 2.10 or later + \row + \li 15.0.0 + \li 2.9 + \row + \li 13.0.2 + \li 2.8 + \row + \li 12.0.2 + \li 2.7 \row \li 11.0.3 \li 2.6 @@ -91,17 +105,17 @@ \li 1.0 \endtable - \sa {Enable and disable plugins}, {MCUs}{How To: Develop for MCUs}, - {Developing for MCUs}, {\QMCU} + \sa {Enable and disable plugins}, {MCUs}{How To: Develop for MCUs}, {\QMCU} */ /*! - \page creator-how-to-create-mcu-kits.html + \page creator-how-to-add-mcu-kits.html \previouspage creator-how-tos.html \ingroup creator-how-to-mcu + \ingroup creator-how-to-sdks - \title Connect MCU devices + \title Add MCU SDKs \note Enable the McuSupport plugin to develop for MCUs. @@ -154,13 +168,25 @@ \li Select \uicontrol Apply to save the preferences. \endlist - \section1 Add MCU devices + \sa {Enable and disable plugins}, {MCUs}{How To: Develop for MCUs}, + {Developing for MCUs} +*/ + +/*! + \page creator-how-to-add-mcu-devices.html + \previouspage creator-how-tos.html + + \ingroup creator-how-to-mcu + + \title Add MCU devices + + \note Enable the McuSupport plugin to develop for MCUs. \QC automatically adds a default MCU device when you select - \uicontrol Apply in the \uicontrol MCU tab after configuring the - MCU toolchain. + \uicontrol Apply in \preferences > \uicontrol SDKs > \uicontrol MCU after + adding an SDK. - \image qtcreator-mcu-device.png {MCU devices} + \image qtcreator-mcu-device.webp {MCU devices} To add MCU devices, select \preferences > \uicontrol Devices > \uicontrol Add > \uicontrol {MCU Device} > \uicontrol {Start Wizard}: @@ -175,7 +201,6 @@ {Developing for MCUs} */ - /*! \page creator-how-to-manage-mcu-kits.html \previouspage creator-how-tos.html @@ -189,9 +214,10 @@ \QC automatically adds kits for all the available MCU targets if you select \uicontrol {Automatically create kits for all available targets on start} - in \preferences > \uicontrol SDKs > \uicontrol MCU. + in \preferences > \uicontrol SDKs > \uicontrol MCU. This setting is selected + by default. - \image qtcreator-preferences-kits-mcu.webp {MCU kit} + \image qtcreator-mcu-new-kit.webp {Automatically create MCU kits} \note When you update the \QMCU SDK, \QC asks you whether you want to replace the existing kits or create additional kits. To do this manually for each @@ -206,6 +232,8 @@ To change or remove individual kits, go to \preferences > \uicontrol Kits. + \image qtcreator-preferences-kits-mcu.webp {MCU kit} + The \uicontrol {MCU dependencies} field displays paths to 3rd party software required for MCU development with the current kit. diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs index d6a8ab58cf4..a619b8f7892 100644 --- a/qbs/modules/qtc/qtc.qbs +++ b/qbs/modules/qtc/qtc.qbs @@ -4,16 +4,16 @@ import qbs.FileInfo import qbs.Utilities Module { - property string qtcreator_display_version: '16.0.0-rc1' - property string ide_version_major: '15' + property string qtcreator_display_version: '16.0.0' + property string ide_version_major: '16' property string ide_version_minor: '0' - property string ide_version_release: '84' + property string ide_version_release: '0' property string qtcreator_version: ide_version_major + '.' + ide_version_minor + '.' + ide_version_release - property string ide_compat_version_major: '15' + property string ide_compat_version_major: '16' property string ide_compat_version_minor: '0' - property string ide_compat_version_release: '84' + property string ide_compat_version_release: '0' property string qtcreator_compat_version: ide_compat_version_major + '.' + ide_compat_version_minor + '.' + ide_compat_version_release diff --git a/share/qtcreator/lua-plugins/luatests/tests.lua b/share/qtcreator/lua-plugins/luatests/tests.lua index 5ab9f8ccca0..a155cf25a85 100644 --- a/share/qtcreator/lua-plugins/luatests/tests.lua +++ b/share/qtcreator/lua-plugins/luatests/tests.lua @@ -78,6 +78,7 @@ local function setup() end, }) require 'tst_texteditor'.setup() + require 'tst_markdownbrowser'.setup() end return { setup = setup } diff --git a/share/qtcreator/lua-plugins/luatests/tst_markdownbrowser.lua b/share/qtcreator/lua-plugins/luatests/tst_markdownbrowser.lua new file mode 100644 index 00000000000..617cf7f6945 --- /dev/null +++ b/share/qtcreator/lua-plugins/luatests/tst_markdownbrowser.lua @@ -0,0 +1,44 @@ +local function tst_markdownBrowser() + G = require 'Gui' + + G.Column { + G.MarkdownBrowser { + enableCodeCopyButton = true, + markdown = [[# Markdown Browser Test + +## Code Snippets + +* Is the following code formatted correctly, and is the syntax highlighting working? +* Can you press the copy button and paste the code into a text editor? +* Is there a copy icon visible for the code snippet? + +```c++ +#include + +int main() { + std::print("Hello World!"); +} +``` + +## Links + +* [Is this a link to the Qt website?](https://www.qt.io) +* [Is this an anchor link that scrolls up to the top?](#markdown-browser-test) + +]] + } + }:show() +end + + +local function setup() + Action = require 'Action' + Action.create("LuaTests.markdownBrowserDemo", { + text = "Lua Markdown Browser Test", + onTrigger = tst_markdownBrowser, + }) +end + +return { + setup = setup, +} diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp index 9a6a54b2c21..7623760a534 100644 --- a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp +++ b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp @@ -16,6 +16,8 @@ #include #include +using namespace Core; + namespace %{PluginName}::Internal { class %{CN} final : public ExtensionSystem::IPlugin @@ -46,16 +48,15 @@ public: // bool IPlugin::initialize(const QStringList &arguments, QString *errorString) // overload. - auto action = new QAction(Tr::tr("%{PluginName} Action"), this); - Core::Command *cmd = Core::ActionManager::registerAction( - action, Constants::ACTION_ID, Core::Context(Core::Constants::C_GLOBAL)); - cmd->setDefaultKeySequence(QKeySequence(Tr::tr("Ctrl+Alt+Meta+A"))); - connect(action, &QAction::triggered, this, &%{CN}::triggerAction); - - Core::ActionContainer *menu = Core::ActionManager::createMenu(Constants::MENU_ID); + ActionContainer *menu = ActionManager::createMenu(Constants::MENU_ID); menu->menu()->setTitle(Tr::tr("%{PluginName}")); - menu->addAction(cmd); - Core::ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); + ActionManager::actionContainer(Core::Constants::M_TOOLS)->addMenu(menu); + + ActionBuilder(this, Constants::ACTION_ID) + .addToContainer(Constants::MENU_ID) + .setText(Tr::tr("%{PluginName} Action")) + .setDefaultKeySequence(Tr::tr("Ctrl+Alt+Meta+A")) + .addOnTriggered(this, &%{CN}::triggerAction); } void extensionsInitialized() final @@ -77,7 +78,7 @@ public: private: void triggerAction() { - QMessageBox::information(Core::ICore::mainWindow(), + QMessageBox::information(ICore::dialogParent(), Tr::tr("Action Triggered"), Tr::tr("This is an action from %{PluginName}.")); } diff --git a/share/qtcreator/themes/2024.tokenmapping b/share/qtcreator/themes/2024.tokenmapping index 761883e2b05..6e450e49e69 100644 --- a/share/qtcreator/themes/2024.tokenmapping +++ b/share/qtcreator/themes/2024.tokenmapping @@ -15,8 +15,8 @@ CodeModel_Info_TextMarkColor=Token_Notification_Neutral_Default CodeModel_Warning_TextMarkColor=Token_Notification_Alert_Default ComboBoxTextColor=Token_Text_Muted Debugger_Breakpoint_TextMarkColor=Token_Notification_Danger_Default -Debugger_WatchItem_ValueChanged=Token_Notification_Danger_Muted -Debugger_WatchItem_ValueInvalid=Token_Background_Subtle +Debugger_WatchItem_ValueChanged=Token_Notification_Danger_Default +Debugger_WatchItem_ValueInvalid=Token_Text_Muted Debugger_WatchItem_ValueNormal=Token_Text_Default DockWidgetResizeHandleColor=Token_Stroke_Subtle EditorPlaceholderColor=Token_Background_Muted @@ -66,11 +66,10 @@ PaletteAlternateBase=Token_Background_Muted PaletteAlternateBaseDisabled=Token_Background_Subtle PaletteBase=Token_Background_Default PaletteBaseDisabled=Token_Background_Subtle -PaletteBrightText=Token_Notification_Danger_Default PaletteBrightText=Token_Text_Default PaletteBrightTextDisabled=Token_Text_Subtle PaletteButton=Token_Background_Default -PaletteButtonDisabled=Token_Background_Subtle +PaletteButtonDisabled=Token_Background_Default PaletteButtonText=Token_Text_Default PaletteButtonTextDisabled=Token_Text_Subtle PaletteDark=Token_Background_Default @@ -118,7 +117,7 @@ TextColorError=Token_Notification_Danger_Default TextColorLink=Token_Text_Accent TextColorNormal=Token_Text_Default TextEditor_CurrentLine_ScrollBarColor=Token_Foreground_Muted -TextEditor_SearchResult_ScrollBarColor=Token_Notification_Alert_Default +TextEditor_SearchResult_ScrollBarColor=Token_Notification_Success_Default TextEditor_Selection_ScrollBarColor=Token_Foreground_Subtle Timeline_BackgroundColor1=Token_Background_Default Timeline_BackgroundColor2=Token_Background_Muted diff --git a/share/qtcreator/themes/light-2024.creatortheme b/share/qtcreator/themes/light-2024.creatortheme index 2755b4fc68b..20502c9f4b4 100644 --- a/share/qtcreator/themes/light-2024.creatortheme +++ b/share/qtcreator/themes/light-2024.creatortheme @@ -337,6 +337,11 @@ TerminalAnsi13=d22dde TerminalAnsi14=69e2e4 TerminalAnsi15=e5e5e6 +;Hack for QTCREATORBUG-32572. Use these two colors from "flat/Hybrid (2016)" theme rather than +;using color tokens. Revert when Red and Yellow tokens are available. +IconsErrorColor=ffdf4f4f +IconsWarningColor=ffecbc1c + [Flags] ComboBoxDrawTextShadow=false DerivePaletteFromTheme=true diff --git a/share/qtcreator/themes/primitive-colors.inc b/share/qtcreator/themes/primitive-colors.inc index ef7eb97abdc..390c8096795 100644 --- a/share/qtcreator/themes/primitive-colors.inc +++ b/share/qtcreator/themes/primitive-colors.inc @@ -25,12 +25,12 @@ Primitive-Neon-100=FFDBFDEC Primitive-Neon-200=FFB9F9D9 Primitive-Neon-300=FF83F2BA Primitive-Neon-400=FF2CDE85 -Primitive-Neon-500=FF1EC974 -Primitive-Neon-600=FF12A75D +Primitive-Neon-500=FF27BF73 +Primitive-Neon-600=FF1F9B5D Primitive-Neon-700=FF12834B Primitive-Neon-800=FF14673E -Primitive-Neon-900=FF0D4328 -Primitive-Neon-1000=FF092C1B +Primitive-Neon-900=FF13432B +Primitive-Neon-1000=FF133122 Primitive-Red-100=FFFACED9 Primitive-Red-200=FFF0A4B7 diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index 5b248654b4b..6b4ebf44c2b 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -73,26 +73,50 @@ - AddImageToResources + AbstractLightSection - File Name - Dateiname + Light + - Size - Größe + Color + Farbe - Add Resources - Ressourcen hinzufügen + Sets the color applied to models illuminated by this light. + - &Browse... - &Auswählen... + Ambient Color + - Target Directory - Zielverzeichnis + Sets the ambient color applied to materials before being lit by this light. + + + + Brightness + + + + Sets an overall multiplier for this light’s effects. + + + + Scope + Gültigkeitsbereich + + + Sets a Node in the scene to be the scope of this light. Only that node and it's children are affected by this light. + + + + Bake Mode + + + + Controls if the light is active in baked lighting, such as when generating lightmaps. + @@ -102,6 +126,133 @@ + + AddPropertyForm + + Integer + + + + Float + Schweben + + + Boolean + + + + Vector 2D + + + + Vector 3D + + + + Vector 4D + + + + Color + Farbe + + + Color channel + + + + Texture sampler + + + + Define (integer) + + + + Define (boolean) + + + + Add property + + + + Edit property + + + + Display Name + + + + Sets the display name of the property. + + + + Display name of the property has to be unique. + + + + Uniform Name + + + + Sets the uniform name of the property. + + + + Uniform name has to be unique. + + + + Description + Beschreibung + + + Sets the property description. + + + + Type + Typ + + + Sets the property type. + + + + Default Value + Standardwert + + + Sets the default value of the property. + + + + Min Value + + + + Sets the minimum value of the property. + + + + Max Value + + + + Sets the maximum value of the property. + + + + Cancel + Abbrechen + + + Apply + Anwenden + + AddSignalHandlerDialog @@ -188,13 +339,6 @@ - - AlignCamerasToViewAction - - Align Cameras to View - - - AlignDistributeSection @@ -310,13 +454,6 @@ - - AlignViewToCameraAction - - Align View to Camera - - - AmbientSoundSection @@ -950,24 +1087,6 @@ A positive value will increase reverb for higher frequencies and dampen lower fr - - BackgroundColorMenuActions - - Background Color Actions - - - - - BakeLights - - Bake Lights - - - - Bake lights for the current 3D scene. - - - BakeLightsProgressDialog @@ -1256,6 +1375,10 @@ It should be a relative path. Qt Design Studio Qt Design Studio + + Lite QML Designer + + Community Edition @@ -1269,6 +1392,84 @@ It should be a relative path. + + BufferInputSection + + Buffer Input + + + + Buffer + + + + Sets input buffer for a pass. + + + + Parameter + Parameter + + + Sets buffer input buffer name in the shader. + + + + + BufferSection + + Buffer + + + + Name + Name + + + Sets the buffer name. + + + + Format + Format + + + Sets the format of the buffer. + + + + Filter + Filter + + + Sets the texture filter for the buffer. + + + + Coordinate Operation + + + + Sets the texture coordinate operation for the buffer. + + + + Allocation Flags + + + + Sets the allocation flags for the buffer. + + + + Size Multiplier + + + + Sets the size multiplier for the buffer. + + + BusyIndicatorSpecifics @@ -1383,40 +1584,33 @@ It should be a relative path. - CameraActionsModel + CameraSection - Hide Camera View + Camera - Never show the camera view. + Frustum Culling - Show Selected Camera View + When this property is true, objects outside the camera frustum will be culled, meaning they will not be passed to the renderer. - Show the selected camera in the camera view. + LOD Bias - Always Show Camera View + This property changes the threshold for when the automatic level of detail meshes get used. - Show the last selected camera in the camera view. + Look-at Node - Camera view settings - - - - - CameraSpeedConfigAction - - Open camera speed configuration dialog + Sets the look-at node for the camera. @@ -1448,13 +1642,6 @@ It should be a relative path. - - CameraToggleAction - - Toggle Perspective/Orthographic Camera Mode - - - ChangeStyleWidgetAction @@ -1642,6 +1829,61 @@ It should be a relative path. Anwenden + + Coco + + Coco + + + + + CodeEditorFooter + + Live Update + + + + Close + Schließen + + + Apply + Anwenden + + + + CodeEditorHeader + + Columns + Spalten + + + Open Effect Composer Help. + + + + + CodeEditorTabs + + Fragment Shader + + + + Vertex Shader + + + + + CodeEditorUniformsView + + Insert into the editor cursor position. + + + + Copy uniform name to clipboard. + + + ColorAnimationSpecifics @@ -2020,6 +2262,22 @@ This can not be undone. Abbrechen + + ConfirmPropertyRemoveForm + + The property is in use in the shader code. +Are you sure you want to remove it? + + + + Cancel + Abbrechen + + + Remove + Entfernen + + ConnectionsDialog @@ -2406,18 +2664,10 @@ This can not be undone. <b>Content Library</b> is not supported in Qt5 projects. - - To use <b>Content Library</b>, first add the QtQuick3D module in the <b>Components</b> view. - - <b>Content Library</b> is disabled inside a non-visual component. - - There are no user assets in the <b>Content Library</b>. - - ContextMenu @@ -2497,6 +2747,392 @@ This can not be undone. + + CustomMaterialSection + + Custom Material + + + + Shading Mode + + + + Sets the material type. +Unshaded materials are not affected by the environment (for example, lights). + + + + Vertex Shader + + + + Sets the path to the vertex shader source file. + + + + Fragment Shader + + + + Sets the path to the fragment shader source file. + + + + Source Blend + + + + Sets the source blend factor. + + + + Destination Blend + + + + Sets the destination blend factor. + + + + Always Dirty + + + + Sets the material to refresh every time it is used by QtQuick3D. + + + + Line Width + + + + Sets the width of the lines when the geometry is using a primitive type of lines or line strips. + + + + + DSStore + + Can not locate design system module + + + + Can not read Design System qmldir + + + + Can not find component file. + + + + Can not create design system module directory %1. + + + + Can not write design system qmldir. %1 + + + + Can not write theme interface %1. +%2 + + + + Can not write collection %1. +%2 + + + + + DSThemeManager + + No themes objects in the collection. + + + + + DebugSettingsSection + + Debug Settings + + + + Enable Wireframe + + + + Meshes will be rendered as wireframes. + + + + Override Mode + + + + Changes how all materials are rendered to only reflect a particular aspect of the overall rendering process + + + + + DefaultMaterialSection + + Default Material + + + + Lighting + + + + Sets the lighting method. NoLighting is faster while FragmentLighting +calculates diffuse and specular lighting for each rendered pixel. + + + + Blend Mode + + + + Sets how the colors of the model blend with colors behind it. + + + + Enable Vertex Colors + + + + Sets the material to use vertex colors from the mesh. +Vertex colors are multiplied with any other color for the material. + + + + Point Size + + + + Sets the size of the points rendered when the geometry is using a primitive type of points. + + + + Line Width + + + + Sets the width of the lines rendered when the geometry is using a primitive type of lines or line strips. + + + + Diffuse + + + + Color + Farbe + + + Sets the base color. + + + + Map + + + + Sets a texture to apply to the material. + + + + Emissive + + + + Factor + + + + Sets the color of self-illumination. +The default value (0, 0, 0) means no self-illumination. + + + + R + + + + G + + + + B + + + + Sets a texture to define the intensity of the emissive color. + + + + Specular + + + + Tint + + + + Sets the color tint for the specular reflections. +Use white for no color effect. + + + + Amount + + + + Sets the strength of specularity (highlights and reflections). +The default value (0) disables specularity. + + + + Sets a texture to define the amount and the color of specularity. + + + + Model + Modell + + + Sets the functions to calculate specular highlights for lights in the scene. +Default is faster while KGGX is more physically accurate. + + + + Reflection Map + + + + Sets a texture to define specular highlights. + + + + Index of Refraction + + + + Sets the angles of reflections affected by the fresnel power. + + + + Fresnel Power + + + + Sets the strength of the fresnel power. The default value (0) means no fresnel power while a higher value +decreases head-on reflections (looking directly at the surface) while maintaining reflections seen at grazing angles. + + + + Specular Roughness + + + + Sets the size of the specular highlight generated from lights and the clarity of reflections in general. + + + + Roughness Map + + + + Sets a texture to define the specular roughness. + + + + Roughness Channel + + + + Sets the texture channel to read the roughness value from roughnessMap. + + + + Opacity + Deckkraft + + + Sets the opacity of just this material, separate from the model. + + + + Sets a texture to control the opacity differently for different parts. + + + + Channel + + + + Sets the texture channel to read the opacity value from the opacity map. + + + + Bump/Normal + + + + Bump Amount + + + + Sets the amount of simulated displacement for the bump map or normal map. + + + + Bump Map + + + + Sets a grayscale texture to simulate fine geometry displacement across the surface. + + + + Normal Map + + + + Sets a image to simulate fine geometry displacement across the surface. + + + + Translucency + + + + Falloff + + + + Sets the amount of falloff for the translucency based on the angle of the normals of the object to the light source. + + + + Diffuse Light Wrap + + + + Sets the amount of light wrap for the translucency map. +A value of 0 will not wrap the light at all, while a value of 1 will wrap the light all around the object. + + + + Sets a grayscale texture to control how much light can pass through the material from behind. + + + + Sets the texture channel to read the translucency value from translucencyMap. + + + DelayButtonSpecifics @@ -2535,25 +3171,6 @@ This can not be undone. Abbrechen - - DesignerActionManager - - Document Has Errors - - - - The document which contains the list model contains errors. So we cannot edit it. - - - - Document Cannot Be Written - - - - An error occurred during a write attemp. - - - Details @@ -2580,6 +3197,10 @@ This can not be undone. Use Qt Virtual Keyboard Qt Virtual Keyboard verwenden + + Enable Cmake Generation + + Target Qt Version: @@ -2796,9 +3417,33 @@ defined in <b>Step size</b>. - EditLightToggleAction + Edit3DCameraViewAction - Toggle Edit Light On/Off + Camera view mode + + + + Hide Camera View + + + + Never show the camera view. + + + + Show Selected Camera View + + + + Show the selected camera in the camera view. + + + + Always Show Camera View + + + + Show the last selected camera in the camera view. @@ -2821,83 +3466,6 @@ defined in <b>Step size</b>. - - EffectComposer::EffectComposerModel - - Animation - Animation - - - Running - Läuft - - - Set this property to animate the effect. - - - - Time - Zeit - - - This property allows explicit control of current animation time. - - - - Frame - Frame - - - This property allows explicit control of current animation frame. - - - - General - Allgemein - - - Extra Margin - - - - This property specifies how much of extra space is reserved for the effect outside the parent geometry. - - - - - EffectComposer::EffectComposerView - - Effect Composer [beta] - - - - - EffectComposer::EffectComposerWidget - - Effect Composer - Title of effect composer widget - - - - - EffectComposer::Uniform - - X - X - - - Y - Y - - - Z - - - - W - - - EffectComposerPreview @@ -2943,6 +3511,10 @@ defined in <b>Step size</b>. Untitled Unbenannt + + In advanced mode, you can manage effect properties and edit shader code for all effects. + + How to use Effect Composer: 1. Click "+ Add Effect" to add effect node @@ -2963,18 +3535,59 @@ defined in <b>Step size</b>. Enable/Disable Node + + A node with this name already exists. +Suffix was added to make the name unique. + + + + Edit effect node name + + + + Add Property + + + + Show Code + + EffectCompositionNodeUniform + + [Editing] + + Reset value + + This property is not used in the shader code of the effect. + + + + Additional actions disabled while editing existing property. + + + + Access additional property actions. + + + + Edit + + + + Remove + Entfernen + EffectNode - Existing effect has conflicting properties, this effect cannot be added. + An effect with same properties already exists, this effect cannot be added. @@ -2985,6 +3598,21 @@ defined in <b>Step size</b>. + + EffectSection + + Effect + + + + Passes + + + + Sets the render passes of the effect. + + + EffectsSection @@ -3000,7 +3628,11 @@ defined in <b>Step size</b>. - Adds visual effects on the component. + Removes all the visual effects from the component. + + + + Adds visual effects to the component. @@ -3220,6 +3852,21 @@ The foreground component should be transparent, and the background component sho Keyframe einfügen + + FileInstancingSection + + File Instancing + + + + Source + + + + Sets the location of an XML or binary file containing the instance data. + + + FileResourcesModel @@ -3227,13 +3874,6 @@ The foreground component should be transparent, and the background component sho Datei öffnen - - FitToViewAction - - Fit Selected Object to View - - - FlagsComboBox @@ -3457,6 +4097,109 @@ The foreground component should be transparent, and the background component sho + + FogSection + + Fog + + + + Enabled + Aktiviert + + + Controls whether fog is applied to the scene + + + + Color + Farbe + + + The color of the fog + + + + Density + + + + Controls the density of the fog + + + + Depth + + + + Controls if the fog appears in the distance + + + + Start Distance + + + + Starting distance from the camera + + + + End Distance + + + + Ending distance from the camera + + + + Intensity Curve + + + + Controls the intensity curve of depth fog + + + + Height + Höhe + + + Controls if height fog is enabled + + + + Least Intense Height + + + + Specifies the height where the fog is the least intense. + + + + Most Intense Height + + + + Specifies the height where the fog is the most intense. + + + + Controls the intensity curve of height fog + + + + Transmission + + + + Controls if the fog has a light transmission effect enabled + + + + Controls the intensity curve of the light transmission effect + + + FontExtrasSection @@ -3630,6 +4373,45 @@ The foreground component should be transparent, and the background component sho Zeichensatz + + FrustumCameraSection + + Frustum Camera + + + + Top + + + + Sets the top plane of the camera view frustum. + + + + Bottom + + + + Sets the bottom plane of the camera view frustum. + + + + Right + + + + Sets the right plane of the camera view frustum. + + + + Left + + + + Sets the left plane of the camera view frustum. + + + GeometrySection @@ -3640,6 +4422,10 @@ The foreground component should be transparent, and the background component sho This property is defined by an anchor or a layout. + + Adjust this property manually from the 2D view or by changing margins from Layout. + + Position Position @@ -4237,22 +5023,88 @@ a highlight component. - InvalidIdException + InstanceListEntrySection - Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - Es sind nur alphanumerische Zeichen und Unterstriche zulässig. -IDs müssen außerdem mit einem Kleinbuchstaben beginnen. + Instance List Entry + - Ids have to be unique. - IDs müssen eindeutig sein. + Color + Farbe - Invalid Id: %1 -%2 - Ungültige ID: %1 -%2 + Sets the color for the instance. + + + + Position + Position + + + Sets the position for the instance. + + + + Scale + Skalieren + + + Sets the scale for the instance. + + + + Rotation + Drehung + + + Sets the rotation for the instance. + + + + + InstanceListSection + + Instance List + + + + Instances + Instanzen + + + Sets the list of instance definitions. Modifying this list, or any of its elements, will cause the instance table to be updated. + + + + + InstancingSection + + Instancing + + + + Depth Sorting + + + + Enable depth sorting for instanced objects. + + + + Has Transparency + + + + Set this to true if the instancing table contains alpha values that should be used when rendering the model. + + + + Instance Count + + + + Sets a limit on the number of instances that can be rendered regardless of the number of instances in the instancing table. + @@ -4358,6 +5210,29 @@ IDs müssen außerdem mit einem Kleinbuchstaben beginnen. + + JointSection + + Joint + + + + Index + Index + + + Sets the index of this joint. + + + + Skeleton Root + + + + Sets the skeleton that contains this joint. + + + Label @@ -4578,6 +5453,77 @@ be rendered into the texture. Anker + + LightmapperSection + + Lightmapper + + + + Adaptive Bias + + + + Enables additional dynamic biasing based on the surface normal. + + + + Bias + + + + Raycasting bias to avoid self-intersection artifacts. + + + + Opacity Threshold + + + + Bounces against materials with opacity values below this threshold are ignored when calculating lighting via raytracing. + + + + Samples + Samples + + + The number of samples per lightmap texel. + + + + Indirect Lighting + + + + Enables the baking of indirect lighting. + + + + Bounces + + + + The maximum number of indirect light bounces per sample. + + + + Indirect Light Factor + + + + Multiplier for the indirect light amount. + + + + Indirect Workgroup Size + + + + The size of the workgroup used for indirect light computation. + + + ListViewSpecifics @@ -4709,6 +5655,45 @@ a highlight component. Aktuellem Element folgen + + Loader3DSection + + Loader3D + + + + Active + Aktiv + + + Sets if the Loader3D is currently active. + + + + Source + + + + Sets the URL of the QML component to instantiate. + + + + Source Component + + + + Sets the component to instantiate. + + + + Asynchronous + Asynchron + + + Sets whether the component will be instantiated asynchronously. + + + LoaderSpecifics @@ -4717,7 +5702,7 @@ a highlight component. Active - + Aktiv Whether the loader is currently active. @@ -4866,14 +5851,6 @@ a highlight component. Return to Design - - Run Project - - - - Live Preview - - Go Back Vorheriges @@ -4894,6 +5871,42 @@ a highlight component. Workspace + + You can share your project to Qt Design Viewer web service.<br><br>To be able to use the sharing service, you need to sign in with your Qt Account details. + + + + Sign in + + + + Upload succeeded. + + + + Upload failed. Please check your internet connection. + + + + Packing + + + + Packing failed. + + + + Uploading + + + + Manage shared projects + + + + Sign out + + Edit Annotations @@ -4902,14 +5915,6 @@ a highlight component. Share - - Share your project online. - - - - Sharing your project online is disabled in the Community Version. - - More Items @@ -4942,6 +5947,90 @@ a highlight component. Adds a Connection, Binding, or Custom Property to the components. + + Rename + Umbenennen + + + Delete + Löschen + + + Create collection + + + + load + + + + Create mode + + + + Create variable + + + + Color + Farbe + + + Number + + + + String + + + + Boolean + + + + Online + + + + Offline + + + + How to see a preview on Android device + + + + Scan the QR code below or click on the link to go to the Google Play store with your device and seek for Qt Viewer application. + + + + Install the Qt Viewer application on your phone. + + + + Open up this window again, if you already closed it, and click on "Add Run Target" button in this window. + + + + Run target IP + + + + Add Run Target + + + + Remove Run Target + + + + Columns + Spalten + + + Manage target devices to be used to display the project + + MainGridStack @@ -5219,6 +6308,38 @@ a highlight component. Typ + + MaterialSection + + Material + + + + Light Probe + + + + Sets a texture to use as image based lighting. +This overrides the scene's light probe. + + + + Culling Mode + + + + Sets which primitives to discard, if any. + + + + Depth Draw Mode + + + + Sets if and when depth rendering takes place. + + + MediaPlayerSection @@ -5255,60 +6376,188 @@ a highlight component. - ModelNodeOperations + ModelSection - Go to Implementation - Zu Implementierung gehen + Model + Modell - Invalid component. + Source - Cannot find an implementation. - Keine Implementierung gefunden. - - - Cannot Set Property %1 - Eigenschaft %1 kann nicht zugewiesen werden - - - The property %1 is bound to an expression. - Die Eigenschaft %1 ist an einen Ausdruck gebunden. - - - Overwrite Existing File? + Sets the location of the mesh file containing the geometry of this model. - File already exists. Overwrite? -"%1" + Geometry - Asset import data file "%1" is invalid. + Sets a custom geometry for the model - Unable to locate source scene "%1". + Materials - Opening asset import data file "%1" failed. + Edit material - Unable to resolve asset import path. + Casts Shadows - Import Update Failed + Enables the geometry of this model to be rendered to the shadow maps. - Failed to update import. -Error: -%1 + Receives Shadows + + + + Enables the geometry of this model to receive shadows. + + + + Casts Reflections + + + + Enables reflection probes to reflect this model. + + + + Receives Reflections + + + + Enables the geometry of this model to receive reflections from the nearest reflection probe. The model must be inside at least one reflection probe to start receiving reflections. + + + + Is Pickable + + + + Enables ray cast based picking for this model. + + + + Used in Baked Lighting + + + + This model is static and suitable to contribute to baked lighting. + + + + Depth Bias + + + + Sets the depth bias of the model. + + + + LOD Bias + + + + Sets the size a model needs to be when rendered before the automatic level of detail meshes are used + + + + Instancing + + + + Data Source + + + + If this property is set, the model will not be rendered normally. Instead, a number of instances of the model will be rendered, as defined by the instance table. + + + + Origin Node + + + + Sets the origin of the instance’s coordinate system. + + + + Animation + Animation + + + Skeleton + + + + Sets the skeleton for the model. + + + + Morph Targets + + + + Sets a list of MorphTargets used to render the provided geometry. + + + + Skin + + + + Sets the skin for the model. + + + + Lightmapping + + + + Resolution + + + + Sets the target resolution of the baked lightmap texture for the model. + + + + Lightmap + + + + Sets the baked lightmap data for the model. + + + + + MorphTargetSection + + Morph Target + + + + Weight + + + + Sets the weight of the current morph target. + + + + Attributes + Attribute + + + Sets the set of attributes of the current morph target. @@ -5431,24 +6680,6 @@ Error: Mouse Area - - MoveToolAction - - Activate Move Tool - - - - - NavigatorTreeModel - - Warning - Warnung - - - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - Das Verschieben der Komponente %1 an diese Stelle bewirkt das Löschen der Komponente %2. Möchten Sie den Vorgang fortsetzen? - - NewEffectDialog @@ -5637,9 +6868,48 @@ Error: - OrientationToggleAction + Object3DSection - Toggle Global/Local Orientation + Object + + + + + OrthographicCameraSection + + Orthographic Camera + + + + Clip Near + + + + Sets the near value of the camera view frustum. + + + + Clip Far + + + + Sets the far value of the camera view frustum. + + + + Horizontal Magnification + + + + Sets the horizontal magnification of the OrthographicCamera's frustum. + + + + Vertical Magnification + + + + Sets the vertical magnification of the OrthographicCamera's frustum. @@ -5809,38 +7079,34 @@ the total implicit size. - ParticleViewModeAction + PassSection - Toggle particle animation On/Off + Pass + Bestanden + + + Commands - - - ParticlesPlayAction - Play Particles + Sets the render commands of the pass. - - - ParticlesRestartAction - Restart Particles + Buffer - - - PathTool - Path Tool - Pfad-Werkzeug + Sets the output buffer for the pass. + - - - PathToolAction - Edit Path - Pfad bearbeiten + Shaders + + + + Sets the shaders for the pass. + @@ -5931,6 +7197,45 @@ a highlight component. Bereich + + PerspectiveCameraSection + + Perspective Camera + + + + Clip Near + + + + Sets the near value of the view frustum of the camera. + + + + Clip Far + + + + Sets the far value of the view frustum of the camera. + + + + Field of View + + + + Sets the field of view of the camera in degrees. + + + + FOV Orientation + + + + Sets if the field of view property reflects the vertical or the horizontal field of view. + + + PluginManager @@ -5938,6 +7243,37 @@ a highlight component. Nicht geladene Plugins (Fehlschlag beim Ladevorgang) + + PointLightSection + + Point Light + + + + Constant Fade + + + + Sets the constant attenuation of the light. + + + + Linear Fade + + + + Sets the linear attenuation of the light. + + + + Quadratic Fade + + + + Sets the quadratic attenuation of the light. + + + PopupLabel @@ -6023,6 +7359,419 @@ a highlight component. + + PreviewError + + Show Less + + + + We are not able to create a preview of this effect. + + + + <html><a href="#showmore">Show More</a></html> + + + + + PreviewImagesComboBox + + Add Custom Image + + + + Remove custom image. + + + + + PrincipledMaterialSection + + Principled Material + + + + Alpha Mode + + + + Sets the mode for how the alpha channel of base color is used. + + + + Alpha Cutoff + + + + Sets the cutoff value when using the Mask alphaMode. + + + + Blend Mode + + + + Sets how the colors of the model rendered blend with those behind it. + + + + Lighting + + + + Sets which lighting method is used when generating this material. + + + + Base Color + + + + Color + Farbe + + + Map + + + + Sets a texture used to set the base color of the material. + + + + Metalness + + + + Amount + + + + Sets the metalness of the the material. + + + + Sets a texture to be used to set the metalness amount for the different parts of the material. + + + + Channel + + + + Sets the texture channel used to read the metalness value from metalnessMap. + + + + Roughness + + + + Sets the size of the specular highlight generated from lights, and the clarity of reflections in general. + + + + Sets a texture to control the specular roughness of the material. + + + + Sets the texture channel used to read the roughness value from roughnessMap. + + + + Normal + Normal + + + Sets an RGB image used to simulate fine geometry displacement across the surface of the material. + + + + Strength + + + + Sets the amount of simulated displacement for the normalMap. + + + + Occlusion + + + + Sets the factor used to modify the values from the occlusionMap texture. + + + + Sets a texture used to determine how much indirect light the different areas of the material should receive. + + + + Sets the texture channel used to read the occlusion value from occlusionMap. + + + + Opacity + Deckkraft + + + Sets the opacity of just this material, separate from the model. + + + + Sets a texture used to control the opacity differently for different parts of the material. + + + + Sets the texture channel used to read the opacity value from opacityMap. + + + + Emissive Color + + + + Sets a texture to be used to set the emissive factor for different parts of the material. + + + + Factor + + + + Sets the color of self-illumination for this material. + + + + Height + Höhe + + + Sets the factor used to modify the values from the heightMap texture. + + + + Sets a texture used to determine the height the texture will be displaced when rendered through the use of Parallax Mapping. + + + + Sets the texture channel used to read the height value from heightMap. + + + + Min Map Samples + + + + Sets the minimum number of samples used for performing Parallex Occlusion Mapping using the heightMap. + + + + Max Map Samples + + + + Sets the maximum number of samples used for performing Parallex Occlusion Mapping using the heightMap. + + + + Clearcoat + + + + Sets the intensity of the clearcoat layer. + + + + Sets a texture used to determine the intensity of the clearcoat layer. + + + + Sets the texture channel used to read the intensity from clearcoatMap. + + + + Roughness Amount + + + + Sets the roughness of the clearcoat layer. + + + + Roughness Map + + + + Sets a texture used to determine the roughness of the clearcoat layer. + + + + Roughness Channel + + + + Sets the texture channel used to read the roughness from clearcoatRoughnessMap. + + + + Normal Map + + + + Sets a texture used as a normalMap for the clearcoat layer. + + + + Refraction + + + + Transmission Factor + + + + Sets the base percentage of light that is transmitted through the surface. + + + + Transmission Map + + + + Sets a texture that contains the transmission percentage of a the surface. + + + + Transmission Channel + + + + Sets the texture channel used to read the transmission percentage from transmissionMap. + + + + Index of Refraction + + + + Sets the index of refraction of the material. + + + + Thickness Factor + + + + Sets the thickness of the volume beneath the surface in model coordinate space. + + + + Thickness Map + + + + Sets a texture that contains the thickness of a the material volume. + + + + Thickness Channel + + + + Sets the texture channel used to read the thickness amount from thicknessMap. + + + + Attenuation Color + + + + Sets the color that white lights turn into due to absorption when reaching the attenuation distance. + + + + Attenuation Distance + + + + Sets the average distance in world space that light travels in the medium before interacting with a particle. + + + + Advanced + Erweitert + + + Vertex Colors + + + + Sets whether vertex colors are used to modulate the base color. + + + + Enabled + Aktiviert + + + Disabled + Deaktiviert + + + Point Size + + + + Sets the size of the points rendered, when the geometry is using a primitive type of points. + + + + Line Width + + + + Sets the width of the lines rendered, when the geometry is using a primitive type of lines or line strips. + + + + Overrides + + + + Specular Amount + + + + Override the strength of specularity (highlights and reflections). + + + + Specular Map + + + + An RGB Texture to override the amount and the color of specularity across the surface of the material. + + + + Reflection Map + + + + Sets a texture used for specular highlights on the material. + + + + Specular Tint + + + + Override how much of the base color contributes to the specular reflections. + + + ProgressBarSpecifics @@ -6125,21 +7874,21 @@ operation is in progress. - PropertyLabel + PropertyEditorPane - This property is not available in this configuration. + Current State + + + + The current state of the States View. - PuppetStarter + PropertyLabel - Puppet is starting... - Puppet wird gestartet... - - - You can now attach your debugger to the %1 puppet with process id: %2. - Sie können jetzt Ihren Debugger an die Puppet (%1) mit der Prozess-ID %2 anhängen. + This property is not available in this configuration. + @@ -6175,73 +7924,43 @@ operation is in progress. - QKeychain::Job + QKeychain::DeletePasswordJobPrivate - No error + Password entry not found - The specified item could not be found in the keychain + Could not decrypt data + + + + + QKeychain::ReadPasswordJobPrivate + + Password entry not found - User canceled the operation + Could not decrypt data + + + + + QKeychain::WritePasswordJobPrivate + + Credential size exceeds maximum size of %1 - User interaction is not allowed + Credential key exceeds maximum size of %1 - No keychain is available. You may need to restart your computer + Writing credentials failed: Win32 error code %1 - The user name or passphrase you entered is not correct - - - - A cryptographic verification failure has occurred - - - - Function or operation not implemented - - - - I/O error - - - - Already open with with write permission - - - - Invalid parameters passed to a function - - - - Failed to allocate memory - - - - Bad parameter or invalid state for operation - - - - An internal component failed - - - - The specified item already exists in the keychain - - - - Unable to decode the provided data - - - - Unknown error + Encryption failed @@ -6261,137 +7980,19 @@ operation is in progress. @info - - <Filter> - Library search input hint text - <Filter> - - - Show Event List - - - - Assign Events to Actions - - Connect Signal to Event - - Connected Events - - - - Connected Signals - - - - Exposed Custom Properties - - - - ID cannot start with an uppercase character (%1). - - - - ID cannot start with a number (%1). - - - - ID cannot include whitespace (%1). - - - - %1 is a reserved QML keyword. - - - - %1 is a reserved Qml type. - - - - %1 is a reserved property keyword. - - - - ID includes invalid characters (%1). - - - - Empty document - - - - Start Nanotrace - - - - Shut Down Nanotrace - - UntitledProject File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. - - Failed to Add Texture - - - - Could not add %1 to project. - %1 konnte nicht zum Projekt hinzugefügt werden. - - - Effect file %1 not found in the project. - - - - Effect %1 is not complete. - - - - Ensure that you have saved it in the Effect Composer. -Do you want to edit this effect? - - Minimize Minimieren - - Unsupported bundle file - - - - The chosen bundle was created with an incompatible version of Qt Design Studio - - - - Component Exists - - - - A component with the same name '%1' already exists in the project, are you sure you want to overwrite it? - - - - Import Component - - - - Qt Design Studio Bundle Files (*.%1) - - - - Export Material - - - - Export Component - - QmlDesigner::AbstractEditorDialog @@ -6674,14 +8275,6 @@ Exporting assets: %2 Export finished. - - Error creating asset directory. %1 - - - - Error saving asset. %1 - - QmlDesigner::AssetExporterPlugin @@ -6702,17 +8295,6 @@ Exporting assets: %2 - - QmlDesigner::AssetsLibraryModel - - Failed to Delete File - - - - Could not delete "%1". - - - QmlDesigner::AssetsLibraryView @@ -6720,42 +8302,6 @@ Exporting assets: %2 Assets - - QmlDesigner::AssetsLibraryWidget - - Assets Library - Title of assets library widget - - - - Failed to Delete Effect Resources - - - - Could not delete "%1". - - - - Failed to Add Files - Dateien konnten nicht hinzugefügt werden - - - Could not add %1 to project. - %1 konnte nicht zum Projekt hinzugefügt werden. - - - All Files (%1) - Alle Dateien (%1) - - - Add Assets - Assets hinzufügen - - - Could not add %1 to project. Unsupported file format. - - - QmlDesigner::AssignEventDialog @@ -6768,13 +8314,6 @@ Exporting assets: %2 - - QmlDesigner::BackgroundAction - - Set the color of the canvas. - Die Farbe der Leinwand einstellen - - QmlDesigner::BakeLights @@ -6842,12 +8381,12 @@ Exporting assets: %2 QmlDesigner::CapturingConnectionManager - QML Emulation Layer (QML Puppet - %1) Crashed + QML Puppet (%1) Crashed - You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. - Sie nehmen einen Ausgabestrom von Puppet auf, welche abgestürzt ist. Es wird empfohlen, Qt Quick Designer neu zu öffnen und von vorn zu beginnen. + The QML Puppet crashed while recording a stream. Please reopen %1 and try it again. + @@ -7142,26 +8681,89 @@ Exporting assets: %2 - QmlDesigner::DocumentMessage + QmlDesigner::DesignSystemView - Error parsing - Fehler beim Parsen + Design System + + + + + QmlDesigner::DesignSystemWidget + + Design System + Title of Editor widget + - Internal error - Interner Fehler + Cannot Create QtQuick View + QtQuick View konnte nicht erzeugt werden - line %1 - - Zeile %1 - + StatesEditorWidget: %1 cannot be created.%2 + + + + + QmlDesigner::DeviceShare::DeviceManagerModel + + Active + Aktiv - column %1 - - Spalte %1 - + Status + Status + + + Alias + Alias + + + IPv4 Address + + + + OS + + + + OS Version + + + + Architecture + + + + Screen Size + + + + App Version + + + + Self ID + + + + Device ID + + + + + QmlDesigner::DeviceShare::DeviceManagerWidget + + Device Manager + Title of device manager widget + + + + Cannot Create QtQuick View + QtQuick View konnte nicht erzeugt werden + + + StatesEditorWidget: %1 cannot be created.%2 + @@ -7497,189 +9099,6 @@ Exporting assets: %2 - - QmlDesigner::FormEditorAnnotationIcon - - Annotation - Annotation - - - Edit Annotation - - - - Remove Annotation - - - - By: - - - - Edited: - - - - Delete this annotation? - - - - - QmlDesigner::FormEditorView - - 2D - 2D - - - 2D view - - - - %1 is not supported as the root element by the 2D view. - - - - - QmlDesigner::FormEditorWidget - - Override Width - Breite überschreiben - - - Override Height - Höhe überschreiben - - - No Snapping - - - - Snap with Anchors - - - - Snap without Anchors - - - - Show Bounds - - - - Override width of root component. - - - - Override height of root component. - - - - Zoom In - Vergrößern - - - Zoom Out - Verkleinern - - - Zoom screen to fit all content. - - - - Ctrl+Alt+0 - - - - Zoom screen to fit current selection. - - - - Ctrl+Alt+i - - - - Reload View - - - - Export Current QML File as Image - Aktuelle QML-Datei als Bild exportieren - - - PNG (*.png);;JPG (*.jpg) - PNG (*.png);;JPG (*.jpg) - - - - QmlDesigner::GenerateResource - - Save Project as QRC File - - - - QML Resource File (*.qrc) - - - - Successfully generated QRC resource file - %1 - - - - Generating deployable package. Please wait... - - - - Failed to generate deployable package! - - - - Error - Fehler - - - Failed to generate deployable package! - -Please check the output pane for more information. - - - - Successfully generated deployable package - - - - Unable to generate resource file: %1 - - - - A timeout occurred running "%1". - Zeitüberschreitung bei Ausführung von "%1". - - - "%1" crashed. - "%1" ist abgestürzt. - - - "%1" failed (exit code %2). - "%1" schlug fehl (Rückgabewert %2). - - - Generate QRC Resource File... - - - - Generate Deployable Package... - - - - Success - - - - Save Project as Resource - - - QmlDesigner::GlobalAnnotationDialog @@ -7792,7 +9211,7 @@ Please check the output pane for more information. Accept - + Annehmen Object Type: %1 @@ -7958,12 +9377,12 @@ Please check the output pane for more information. QmlDesigner::InteractiveConnectionManager - Cannot Connect to QML Emulation Layer (QML Puppet) - Konnte keine Verbindung zur QML-Emulationsschicht (QML Puppet) herstellen + Cannot Connect to QML Puppet + - The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. - Die ausführbare Datei der QML-Emulationsschicht (QML-Puppet) reagiert nicht. Versuchen Sie ein anderes Kit zu verwenden. + The executable of the QML Puppet may not be responding. Switching to another kit might help. + @@ -8027,52 +9446,6 @@ Please check the output pane for more information. - - QmlDesigner::Internal::MetaInfoPrivate - - Invalid meta info - Ungültige Metainformation - - - - QmlDesigner::Internal::MetaInfoReader - - Illegal state while parsing. - Ungültiger Zustand bei der Auswertung. - - - No property definition allowed. - Eigenschaftsdefinition nicht zulässig. - - - Invalid type %1 - Ungültiger Typ %1 - - - Unknown property for Type %1 - Unbekannte Eigenschaft für Typ %1 - - - Unknown property for ItemLibraryEntry %1 - Unbekannte Eigenschaft für ItemLibraryEntry %1 - - - Unknown property for Property %1 - Unbekannte Eigenschaft für Eigenschaft %1 - - - Unknown property for QmlSource %1 - Unbekannte Eigenschaft für QmlSource %1 - - - Unknown property for ExtraFile %1 - - - - Invalid or duplicate library entry %1 - - - QmlDesigner::Internal::ModelPrivate @@ -8082,256 +9455,10 @@ Please check the output pane for more information. QmlDesigner::Internal::SettingsPage - - Snapping - Raster - - - Qt Quick Designer - Qt Quick-Designer - - - Restart Required - Neustart erforderlich - - - The made changes will take effect after a restart of the QML Emulation layer or %1. - Die Änderungen werden nach einem Neustart der QML-Emulationsschicht oder von %1 wirksam. - - - Canvas - Leinwand - - - Warnings - Warnungen - - - Debugging - Debuggen - - - Show the debugging view - Debugansicht anzeigen - - - Enable the debugging view - Debugansicht aktivieren - - - Subcomponents - Subkomponenten - - - Always save when leaving subcomponent in bread crumb - Immer speichern, wenn eine Subkomponente per Breadcrumb Navigation verlassen wird - - - QML Emulation Layer - QML-Emulationsschicht - - - Styling - Stil - - - Controls style: - Controls Stil: - - - Default style - Vorgabestil - - - Reset Style - Stil zurücksetzen - - - Use fallback QML emulation layer - Fallback QML-Emulationsschicht verwenden - - - Path: - Pfad: - Reset Path Pfad zurücksetzen - - Top level build path: - Oberstes Build-Verzeichnis: - - - Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. - Zeigt auch im Code-Editor eine Warnung bei QML-Funktionen an, die vom Qt Quick Designer nicht vollständig unterstützt werden. - - - Internationalization - Internationalisierung - - - qsTr() - qsTr() - - - If you select this radio button, Qt Design Studio always uses the QML emulation layer (QML Puppet) located at the following path. - - - - Warns about QML features that are not properly supported by the Qt Design Studio. - - - - qsTrId() - qsTrId() - - - Always auto-format ui.qml files in Design mode - - - - Enable DockWidget content minimum size - - - - Show property editor warnings - Zeige Warnungen des Eigenschafteneditors - - - Show warn exceptions - Zeige Warnungsausnahmen - - - Forward QML emulation layer output: - Ausgabe der QML-Emulationsschicht weiterleiten: - - - Debug QML emulation layer: - Debug-QML-Emulationsschicht: - - - Qt Quick Designer will propose to open .ui.qml files instead of opening a .qml file. - Qt Quick Designer wird vorschlagen, .ui.qml-Dateien statt einer .qml-Datei zu öffnen. - - - Warn about using .qml files instead of .ui.qml files - Bei der Verwendung von .qml-Dateien statt .ui.qml-Dateien warnen - - - Width: - Breite: - - - Height: - Höhe: - - - Controls 2 style: - Controls-2-Stil: - - - Use QML emulation layer that is built with the selected Qt - Mit dem gewählten Qt erstellte QML-Emulationsschicht verwenden - - - qsTranslate() - qsTranslate() - - - Path to the QML emulation layer executable (qmlpuppet). - Pfad zur ausführbaren Datei der QML-Emulationsschicht (qmlpuppet). - - - Resets the path to the built-in QML emulation layer. - Setzt den Pfad zurück auf die integrierte QML-Emulationsschicht. - - - Features - Zusatzfunktionen - - - Enable Timeline editor - Timeline-Editor aktivieren - - - Always open ui.qml files in Design mode - ui.qml-Dateien immer im Design-Modus öffnen - - - Parent component padding: - - - - Sibling component spacing: - - - - Enable smooth rendering in the 2D view. - - - - Smooth rendering: - - - - Root Component Init Size - - - - Warn about unsupported features of .ui.qml files in code editor - - - - Warn about unsupported features in .ui.qml files - - - - Ask for confirmation before deleting asset - - - - - QmlDesigner::Internal::TypeAnnotationReader - - Illegal state while parsing. - Ungültiger Zustand bei der Auswertung. - - - No property definition allowed. - Eigenschaftsdefinition nicht zulässig. - - - Invalid type %1 - Ungültiger Typ %1 - - - Unknown property for Type %1 - Unbekannte Eigenschaft für Typ %1 - - - Unknown property for ItemLibraryEntry %1 - Unbekannte Eigenschaft für ItemLibraryEntry %1 - - - Unknown property for Property %1 - Unbekannte Eigenschaft für Eigenschaft %1 - - - Unknown property for QmlSource %1 - Unbekannte Eigenschaft für QmlSource %1 - - - Unknown property for ExtraFile %1 - - - - - QmlDesigner::InvalidArgumentException - - Failed to create item of type %1 - Es konnte kein Element des Typs %1 erzeugt werden - QmlDesigner::ItemLibraryImport @@ -8482,13 +9609,6 @@ Please check the output pane for more information. - - QmlDesigner::Model - - Invalid Id - Ungültige ID - - QmlDesigner::NavigatorSearchWidget @@ -8498,10 +9618,6 @@ Please check the output pane for more information. QmlDesigner::NavigatorTreeModel - - Unknown component: %1 - - Toggles whether this component is exported as an alias property of the root component. @@ -8517,17 +9633,6 @@ Locked components cannot be modified or selected. - - QmlDesigner::NavigatorTreeView - - Invalid Id - Ungültige ID - - - %1 already exists. - %1 existiert bereits. - - QmlDesigner::NavigatorView @@ -8571,21 +9676,6 @@ Locked components cannot be modified or selected. - - QmlDesigner::NodeInstanceView - - Qt Quick emulation layer crashed. - Die Qt-Quick-Emulationsschicht ist abgestürzt. - - - Source item: %1 - - - - Failed to generate QSB file for: %1 - - - QmlDesigner::NodeListModel @@ -8706,21 +9796,9 @@ Locked components cannot be modified or selected. Property Editor view - - Invalid QML source - - QmlDesigner::QmlDesignerPlugin - - Cannot Open Design Mode - Design-Modus kann nicht geöffnet werden - - - The QML file is not currently opened in a QML Editor. - Die QML-Datei ist in keinem QML-Editor geöffnet. - Qml Designer Lite @@ -8733,10 +9811,6 @@ Locked components cannot be modified or selected. Give Feedback... - - Enjoying the %1? - - QmlDesigner::QmlModelNodeProxy @@ -8941,13 +10015,6 @@ Locked components cannot be modified or selected. Andere schließen - - QmlDesigner::SignalList - - Signal List for %1 - - - QmlDesigner::SignalListDelegate @@ -9158,13 +10225,6 @@ Locked components cannot be modified or selected. - - QmlDesigner::SubComponentManager - - My 3D Components - - - QmlDesigner::SwitchLanguageComboboxAction @@ -9187,25 +10247,6 @@ Locked components cannot be modified or selected. - - QmlDesigner::TextToModelMerger - - No import statements found. - - - - Qt Quick 6 is not supported with a Qt 5 kit. - - - - The Design Mode requires a valid Qt kit. - - - - No import for Qt Quick found. - Es konnte kein Import für Qt Quick gefunden werden. - - QmlDesigner::TextureEditorView @@ -9447,10 +10488,6 @@ Locked components cannot be modified or selected. QmlDesigner::TimelineSettingsModel - - None - Keine - State State @@ -9467,10 +10504,6 @@ Locked components cannot be modified or selected. Fixed Frame Fester Frame - - Base State - Grundzustand - Error Fehler @@ -9665,6 +10698,10 @@ Locked components cannot be modified or selected. %1 already exists. %1 existiert bereits. + + Default + Vorgabe + QmlDesigner::TransitionTool @@ -10324,7 +11361,7 @@ Locked components cannot be modified or selected. Workspace Manager - + Workspace-Manager Restore last workspace on startup @@ -11085,10 +12122,6 @@ manuellen Herunterladen im Browser des System zu öffnen. Physical device Physisches Gerät - - None - Kein - Erase the Android AVD "%1"? This cannot be undone. @@ -11115,6 +12148,11 @@ Dies kann nicht rückgängig gemacht werden. Connecting to the device IP "%1" failed. Die Verbindung zur Geräte-IP "%1" ist fehlgeschlagen. + + None + No skin + Kein + An error occurred while removing the Android AVD "%1" using avdmanager tool. Beim Entfernen des Android-AVD "%1" mit dem avdmanager-Werkzeug ist ein Fehler aufgetreten. @@ -11421,17 +12459,9 @@ Dies kann nicht rückgängig gemacht werden. The kit's build configuration is invalid. Die Build-Konfiguration des Kits ist ungültig. - - The kit's build steps list is invalid. - Die Liste der Build-Schritte des Kits sind ungültig. - - - The kit's deploy configuration is invalid. - Die Deployment-Konfiguration des Kits ist ungültig. - No valid deployment device is set. - Es ist kein gültiges Gerät für das Deployment gesetzt. + Es ist kein gültiges Gerät (Deployment) gesetzt. The deployment device "%1" is invalid. @@ -11527,10 +12557,6 @@ Das Kit unterstützt "%2", aber das Gerät verwendet "%3".The Qt version for kit %1 is invalid. Die Qt-Version für das Kit %1 ist ungültig. - - The minimum Qt version required for Gradle build to work is %1. It is recommended to install the latest Qt version. - Die älteste Qt-Version, die Gradle-Builds unterstützt, ist %1. Es ist ratsam, die neueste Qt-Version zu verwenden. - The API level set for the APK is less than the minimum required by the kit. The minimum API level required by the kit is %1. @@ -11666,6 +12692,22 @@ Der vom Kit mindestens benötigte API-Level ist %1. Cannot copy C++ debug server. C++-Debug-Server kann nicht kopiert werden. + + Art: Cleared App Profiles. + Art: App Profiles gelöscht. + + + Art: Clearing App Profiles failed. + Art: Löschen der App Profiles fehlgeschlagen. + + + Art: Compiled App Profiles. + Art: App Profiles kompiliert. + + + Art: Compiling App Profiles failed. + Art: Kompilierung der App Profiles fehlgeschlagen. + Android SDK Manager Android SDK-Manager @@ -11678,6 +12720,11 @@ Der vom Kit mindestens benötigte API-Level ist %1. Update Installed Aktualisierung installiert + + All + Show all packages + Alle + Show Packages Pakete anzeigen @@ -11714,10 +12761,6 @@ Der vom Kit mindestens benötigte API-Level ist %1. Installed Installiert - - All - Alle - Advanced Options... Erweiterte Optionen... @@ -12341,6 +13384,10 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube Using: %1. Verwende: %1. + + Cannot debug: Invalid target information. + Kann nicht debuggen: Ungültige Zielinformation. + Cannot debug: Only QML and native applications are supported. Kann nicht debuggen: Es werden nur QML- und native Anwendungen unterstützt. @@ -12551,11 +13598,12 @@ Warnung: Dies ist eine experimentelle Funktion und könnte dazu führen, dass di Tests automatisch nach dem Erstellen ausführen - None - Keine + No Tests + Keine Tests All + Run tests after build Alle @@ -13768,6 +14816,10 @@ Siehe auch die Einstellungen für Google Test. Path globbing Pfad-Globbing + + Named filters + Benannte Filter + Total rows: Gesamtzeilen: @@ -13776,14 +14828,6 @@ Siehe auch die Einstellungen für Google Test. Open Preferences... Einstellungen öffnen... - - Configure dashboards in Preferences > Axivion > General. - Konfigurieren Sie Dashboards in Einstellungen > Axivion > Allgemein. - - - None - Kein - No Data Keine Daten @@ -13804,10 +14848,6 @@ Siehe auch die Einstellungen für Google Test. Reload Neu laden - - Show Inline Issues - Problem im Code anzeigen - Show Issue Annotations Inline Inline-Annotationen für Probleme anzeigen @@ -13816,6 +14856,22 @@ Siehe auch die Einstellungen für Google Test. Show Online Filter Help Online-Filterhilfe anzeigen + + Show All + Alle anzeigen + + + Configure dashboards in Preferences > Analyzer > Axivion. + Konfigurieren Sie Dashboards in Einstellungen > Analyzer > Axivion. + + + No Dashboard + Kein Dashboard + + + Show Issues in Editor + Probleme im Editor anzeigen + Open Issue in Dashboard Problem im Dashboard anzeigen @@ -13926,6 +14982,10 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? User name Benutzername + + Project name must be non-empty. + Projektname darf nicht leer sein. + Add... Hinzufügen... @@ -13938,10 +14998,18 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Remove Entfernen + + Dashboard Servers + Dashboard-Server + Default dashboard server: Vorgabe-Dashboardserver: + + Misc Options + Weitere Einstellungen + unset nicht gesetzt @@ -13966,6 +15034,14 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Project name: Projektname: + + Path must be relative. + Der Pfad muss relativ sein. + + + Invalid path elements (. or ..). + Ungültige Pfadelemente (. oder ..). + Analysis path: Analysepfad: @@ -14002,10 +15078,6 @@ Wollen Sie "%1" mit der Standardanwendung öffnen? Move Down Nach unten - - General - Allgemein - Path Mapping Pfadzuordnung @@ -14125,10 +15197,6 @@ a entspricht Problemen, deren Wert den Buchstaben 'a' enthält Target driver: Zieltreiber: - - Starting %1... - Starte %1... - Choose the desired startup mode of the GDB server provider. Wählen Sie den gewünschten Startmodus des GDB-Server-Providers. @@ -14252,7 +15320,8 @@ a entspricht Problemen, deren Wert den Buchstaben 'a' enthält None - Keine + No debug server provider + Keiner Not recognized @@ -15874,6 +16943,11 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev no nein + + None + No CMake tool + Keins + (Default) (Vorgabe) @@ -15910,10 +16984,6 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev Detection source: "%1" Quelle: "%1" - - None - Keins - CMake executable path does not exist. Pfad für das CMake-Werkzeug existiert nicht. @@ -16592,8 +17662,8 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der Umbenennen von "%1" nach "%2" ist fehlgeschlagen. - Failed to copy "%1" to "%2". - Kopieren von "%1" nach "%2" ist fehlgeschlagen. + Failed to copy "%1" to "%2": %3 + Kopieren von "%1" nach "%2" ist fehlgeschlagen: %3 Failed to read file "%1". @@ -18429,14 +19499,6 @@ Setzen Sie erst eine gültige ausführbare Datei. QtC::Coco - - Select a Squish Coco CoverageBrowser Executable - Wählen Sie eine ausführbare Datei für den Squish-Coco-CoverageBrowser - - - CoverageBrowser: - CoverageBrowser: - Coco instrumentation files (*.csmes) Coco-Instrumentierungsdateien (*.csmes) @@ -18446,8 +19508,216 @@ Setzen Sie erst eine gültige ausführbare Datei. Wählen Sie eine Squish-Coco-Instrumentierungsdatei - CSMes: - CSMes: + CSMes file: + CSMes-Datei: + + + No valid CoverageScanner found. + Kein gültiger CoverageScanner gefunden. + + + Configure + Konfigurieren + + + Coco Code Coverage: Reconfiguring... + Coco Code Coverage: Konfiguriere neu... + + + Coco Code Coverage: No working Coco installation. + Coco Code Coverage: Keine funktionierende Coco-Installation. + + + Coco Code Coverage: Enabled. + Coco Code Coverage: Aktiviert. + + + Disable Coverage + Coverage deaktivieren + + + Coco Code Coverage: Disabled. + Coco Code Coverage: Deaktiviert. + + + Enable Coverage + Coverage aktivieren + + + Save && Re-configure + Speichern && neu konfigurieren + + + Additional CMake options: + Zusätzliche CMake-Optionen: + + + Initial cache script: + Skript für initialen Cache: + + + Overwrite file "%1". + Datei "%1" überschreiben. + + + Write file "%1". + Datei "%1" schreiben. + + + Coco Code Coverage + Coco Code Coverage + + + Documentation + Dokumentation + + + Revert + Rückgängig machen + + + CoverageScanner options: + CoverageScanner-Optionen: + + + Exclude File... + Datei ausschließen... + + + Exclude Directory... + Verzeichnis ausschließen... + + + These settings are stored in + Diese Einstellungen werden gespeichert in + + + Changed Build Settings + Geänderte Build-Einstellungen + + + Code for the end of the file "%1" to override the built-in declarations. Only needed in special cases. + Code für das Ende der Datei "%1", um die integrierten Deklarationen zu überschreiben. Wird nur in Ausnahmefällen benötigt. + + + Enable code coverage for build configuration "%1" + Code Coverage für Build-Konfiguration "%1" aktivieren + + + Coco is not installed correctly: %1 + Coco ist nicht korrekt installiert: %1 + + + Build Configuration changed to "%1". + Build-Konfiguration wurde zu "%1" geändert. + + + Re-configuring stopped by user. + Neukonfiguration wurde durch den Benutzer gestoppt. + + + Error when configuring with "%1". Check General Messages for more information. + Fehler beim Konfigurieren mit "%1". Prüfen Sie die Allgemeinen Ausgaben für weitere Informationen. + + + Stop Re-configuring + Neukonfiguration stoppen + + + Re-configure + Neu konfigurieren + + + Override << + << Überschreiben + + + Override >> + >> Überschreiben + + + The Coco installation path is not set correctly. + Der Installationspfad von Coco ist nicht korrekt gesetzt. + + + Edit + Bearbeiten + + + Stop re-configuring. + Neukonfiguration stoppen. + + + Re-configure. + Neu konfigurieren. + + + Reload file "%1". + Datei "%1" neu laden. + + + File to Exclude from Instrumentation + Datei, die von der Instrumentierung ausgeschlossen werden soll + + + Directory to Exclude from Instrumentation + Verzeichnis, das von der Instrumentierung ausgeschlossen werden soll + + + Save + Speichern + + + Additional qmake arguments: + Zusätzliche qmake-Argumente: + + + Build environment: + Build-Umgebung: + + + Feature file: + Feature-Datei: + + + Error: Coco installation directory not set. (This can't happen.) + Fehler: Das Installationsverzeichnis von Coco ist nicht gesetzt. (Dies kann nicht passieren.) + + + Coco Installation Directory + Installationsverzeichnis von Coco + + + Error: Coco installation directory not found at "%1". + Fehler: Installationsverzeichnis von Coco wurde nicht in "%1" gefunden. + + + Error: CoverageScanner at "%1" did not start. + Fehler: Der CoverageScanner in "%1" ist nicht gestartet. + + + Error: CoverageScanner at "%1" did not finish. + Fehler: Der CoverageScanner in "%1" wurde nicht beendet. + + + Valid CoverageScanner found at "%1": + Ein gültiger CoverageScanner wurde in "%1" gefunden: + + + Error: CoverageScanner at "%1" did not run correctly. + Fehler: Der CoverageScanner in "%1" wurde nicht korrekt ausgeführt. + + + Found Coco directory "%1". + Coco-Verzeichnis "%1" gefunden. + + + Checked Coco directory "%1". + Coco-Verzeichnis "%1" wurde überprüft. + + + Coco Directory + Coco-Verzeichnis @@ -19904,10 +21174,6 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek Compilation Database Kompilierungsdatenbank - - Qt Quick Designer - Qt Quick-Designer - Show Left Sidebar Linke Seitenleiste anzeigen @@ -20093,6 +21359,18 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek Activate %1 View Anzeige "%1" aktivieren + + A directory under version control was detected that is supported by the %1 plugin. + Es wurde ein Verzeichnis unter Versionskontrolle erkannt, das vom Plugin "%1" unterstützt wird. + + + Enable %1 + %1 aktivieren + + + The directory "%1" seems to be under version control that can be handled by the disabled %2 plugin. + Das Verzeichnis "%1" scheint unter einer Versionskontrolle zu stehen, die vom deaktivierten Plugin "%2" unterstützt wird. + %1 repository was detected but %1 is not configured. Ein Repository des Versionskontrollsystems %1 wurde gefunden, aber %1 ist noch nicht konfiguriert. @@ -20936,6 +22214,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche None + No find flags Keine @@ -21224,14 +22503,14 @@ Möchten Sie es beenden? The plugin %1 requires you to accept the following terms and conditions: Das Plugin %1 erfordert, dass Sie folgende Bedingungen und Konditionen annehmen: - - Do you wish to accept? - Wollen Sie diese annehmen? - No themes found in installation. Keine Themen in der Installation gefunden. + + Help + Hilfe + The current date (ISO). Das aktuelle Datum (ISO). @@ -22202,6 +23481,18 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Plugin failed to resolve dependencies: Plugin konnte Abhängigkeiten nicht auflösen: + + Plugin is already installed. + Das Plugin ist bereits installiert. + + + A plugin with ID "%1" is already installed. + Ein Plugin mit der ID "%1" ist bereits installiert. + + + No plugin with ID "%1" is installed. + Kein Plugin mit der ID "%1" ist installiert. + Check Archive Archiv überprüfen @@ -22222,10 +23513,6 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Accept Terms and Conditions Bedingungen und Konditionen annehmen - - I accept the terms and conditions. - Ich nehme die Bedingungen und Konditionen an. - Canceled. Abgebrochen. @@ -22238,30 +23525,6 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Archive is OK. Archiv ist OK. - - Install Location - Installationsort - - - Choose install location. - Wählen Sie einen Ort für die Installation. - - - User plugins - Benutzer-Plugins - - - The plugin will be available to all compatible %1 installations, but only for the current user. - Das Plugin wird für alle kompatiblen Installationen von %1 verfügbar sein, aber nur für den aktuellen Benutzer. - - - %1 installation - %1-Installation - - - The plugin will be available only to this %1 installation, but for all users that can access it. - Das Plugin wird nur für diese Installation von %1 verfügbar sein, aber für alle Benutzer, die diese Ausführen können. - Summary Zusammenfassung @@ -22282,6 +23545,10 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Failed to Write File Datei konnte nicht geschrieben werden + + Failed to create directory "%1". + Das Verzeichnis "%1" konnte nicht erstellt werden. + Failed to write file "%1". Die Datei "%1" konnte nicht geschrieben werden. @@ -22657,10 +23924,6 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Haskell Editor Haskell-Editor - - Binding Editor - Binding-Editor - Switches to an open document. Wechselt zu einem offenen Dokument. @@ -22716,6 +23979,12 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern. Add Definition Outside Class Definition außerhalb der Klasse erstellen + + None + No default implementation location + (kein Ort) + Keiner + Add %1 Declaration Deklaration für %1 hinzufügen @@ -23661,10 +24930,6 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Getter name: Getter-Name: - - For example, new<Name> - Zum Beispiel new<Name> - Setter name: Setter-Name: @@ -23673,10 +24938,38 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Setters should be slots Setter sollen Slots sein + + A JavaScript expression acting as the return value of a function with two parameters <b>name</b> and <b>memberName</b>, where<ul><li><b>name</b> is the "semantic name" as it would be used for a Qt property</li><li><b>memberName</b> is the name of the member variable.</li></ul> + Ein JavaScript-Ausdruck, der als Rückgabewert einer Funktion mit zwei Parametern <b>name</b> und <b>memberName</b> benutzt wird. Dabei ist <ul><li><b>name</b> der "semantische Name", wie er für eine Qt-Property benutzt würde</li><li><b>memberName</b> der Name der Membervariable.</li></ul> + + + A JavaScript expression acting as the return value of a function with a parameter <b>name</b>, which is the "semantic name" as it would be used for a Qt property. + Ein JavaScript-Ausdruck, der als Rückgabewert einer Funktion mit einem Parameter <b>name</b> benutzt wird. Dabei ist <b>name</b> der "semantische Name", wie er für eine Qt-Property benutzt würde. + Generate signals with the new value as parameter Signale mit dem neuen Wert als Parameter erzeugen + + How to get from the member variable to the semantic name. +This is the reverse of the operation above. +Leave empty to apply heuristics. + Wie der semantische Name aus der Membervariable konstruiert wird. +Dies ist die Umkehrung der vorhergehenden Operation. +Lassen Sie dies leer, um Heuristiken anwenden zu lassen. + + + Test + Test + + + Hide Test Results + Testergebnisse verbergen + + + The content of the "name" variable. + Der Inhalt der Variable "name". + Getter attributes: Getter-Attribute: @@ -23693,30 +24986,14 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Signal name: Signal-Name: - - See tool tip for more information - Mehr Informationen finden Sie im Tooltip - - - Normally reset<Name> - Normalerweise reset<Name> - For example, [[nodiscard]] Zum Beispiel [[nodiscard]] - - Normally <name>Changed - Normalerweise <name>Changed - Member variable name: Member-Variablenname: - - For example, m_<name> - Zum Beispiel m_<name> - Missing Namespace Handling Handhabung fehlender Namensräume @@ -23741,6 +25018,14 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Use type "auto" when creating new variables Typ "auto" beim Erstellen von neuen Variablen verwenden + + Name from member variable: + Name aus der Membervariable: + + + Test input: + Testeingabe: + Custom Getter Setter Templates Benutzerdefinierte Getter/Setter-Vorlagen @@ -23799,24 +25084,6 @@ Diese Präfixe werden zusätzlich zum Dateinamen beim Wechseln zwischen Header- Return non-value types by const reference Nicht-Werttypen als konstante Referenz zurückgeben - - Use <name> for the variable -Use <camel> for camel case -Use <snake> for snake case -Use <Name>, <Camel> and <Snake> for upper case -e.g. name = "m_test_foo_": -"set_<name> => "set_test_foo" -"set<Name> => "setTest_foo" -"set<Camel> => "setTestFoo" - Nutzen Sie <name> für die Variable -Nutzen Sie <camel> für Camel-Case -Nutzen Sie <snake> für Snake-Case -Nutzen Sie <Name>, <Camel> und <Snake> für Großschreibung -z.B. name = "m_test_foo_": -"set_<name> => "set_test_foo" -"set<Name> => "setTest_foo" -"set<Camel> => "setTestFoo" - The file name. Der Dateiname. @@ -24328,7 +25595,7 @@ Dies ist normalerweise nicht empfehlenswert, da die Datei wahrscheinlich währen Provide the type - Typ bestimmen + Typ festlegen Data type: @@ -24338,10 +25605,6 @@ Dies ist normalerweise nicht empfehlenswert, da die Datei wahrscheinlich währen Member Function Implementations Implementationen von Memberfunktionen - - None - Keine - Inline Inline @@ -24524,6 +25787,7 @@ Flags: %3 All + Symbol search scope Alle @@ -25478,6 +26742,14 @@ Möchten Sie die Daten trotzdem anzeigen? Attempts to correct the location of a breakpoint based on file and line number should it be in a comment or in a line for which no code is generated. The correction is based on the code model. Versucht, die Position eines zeilenbasierten Haltepunkts zu korrigieren, sofern er sich in einem Kommentar oder in einer Zeile, die keinen Code generiert, befindet. Die Korrektur basiert auf dem Codemodell. + + Enable heap debugging + Heap-Debugging aktivieren + + + Allocate memory using the debug heap rather than the normal heap. The debug heap enables additional checks to help diagnose heap related bugs. However it comes at a performance cost when allocating memory in the debugged process. + Allokiert Speicher auf dem Debug-Heap statt auf dem normalen Heap. Der Debug-Heap aktiviert zusätzliche Überprüfungen, die dabei helfen sollen, mit dem Heap zusammenhängende Fehler festzustellen. Das wirkt sich allerdings nachteilig auf die Geschwindigkeit aus, wenn Speicher im zu debuggenden Prozess allokiert wird. + Show "std::" Namespace in Types "std::"-Namensraum in Typnamen anzeigen @@ -25724,6 +26996,10 @@ Sie haben die Wahl zu warten oder das Debuggen abzubrechen. Application exited after receiving signal %1 Die Anwendung wurde nach Empfang des Signals %1 beendet + + The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for %3. Python %4 or later is required. + Dieser GDB versteht zwar Python-Skripte, aber die genutzte Version %1.%2 ist für %3 ungeeignet. Python %4 oder neuer ist erforderlich. + Retrieving data for stack view thread %1... Daten der Stackanzeige für Thread %1 werden empfangen... @@ -25950,10 +27226,6 @@ Sie haben die Wahl zu warten oder das Debuggen abzubrechen. Application exited normally. Die Anwendung wurde normal beendet. - - The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for %3. Supported versions are Python 2.7 and 3.x. - Dieser GDB versteht zwar Python-Skripte, aber diese Version %1.%2 ist für %3 ungeeignet. Unterstützte Python-Versionen sind 2.7 und 3.x. - Failed to Shut Down Application Die Anwendung konnte nicht beendet werden @@ -27010,6 +28282,10 @@ markers in the source code editor. Malformed stop response received. Es wurde eine ungültige Stop-Antwort erhalten. + + Attaching to %1... + Anhängen an %1... + Internal error: The extension %1 cannot be found. If you have updated %2 via Maintenance Tool, you may need to rerun the Tool and select "Add or remove components" and then select the Qt > Tools > Qt Creator CDB Debugger Support component. @@ -27480,14 +28756,6 @@ Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie CMake Preset CMake-Voreinstellung - - GDB Preset - GDB-Voreinstellung - - - LLDB Preset - LLDB Voreinstellung - Python Preset Python-Voreinstellung @@ -27702,46 +28970,6 @@ Soll es erneut versucht werden? &Port: &Port: - - Start Remote Engine - Entfernte Engine starten - - - &Host: - &Host: - - - &Username: - &Benutzername: - - - &Password: - &Passwort: - - - &Engine path: - &Engine-Pfad: - - - &Inferior path: - Zu &debuggende Anwendung: - - - Type Formats - Formate der Datentypen - - - Qt Types - Qt-Datentypen - - - Standard Types - Standard-Datentypen - - - Misc Types - Andere Datentypen - No Nein @@ -27750,6 +28978,11 @@ Soll es erneut versucht werden? Yes Ja + + None + Symbols Type (No debug information found) + Keine + Plain Einfach @@ -27987,10 +29220,22 @@ Einzelschritte in das Modul und das Setzen von Haltepunkten nach Datei und Zeile Debug &information: Debug&information: + + Cannot Debug + Kann nicht debuggen + + + Cannot debug application: Kit has no device. + Kann die Anwendung nicht debuggen: Das Kit hat kein Gerät. + Attach to %1 An %1 anhängen + + Attach to QML Port + Zu QML-Port verbinden + Normally, the running server is identified by the IP of the device in the kit and the server port selected above. You can choose another communication channel here, such as a serial line or custom ip:port. @@ -28126,7 +29371,6 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve System %1 at %2 - %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path %1 von System in %2 @@ -28330,10 +29574,6 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve Display string length: Anzuzeigende Länge von Zeichenketten: - - %1 (Previous) - %1 (Vorherig) - Expression %1 in function %2 from line %3 to %4 Ausdruck %1 in Funktion %2 von Zeile %3 bis %4 @@ -28813,6 +30053,14 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Type Typ + + Added a surrogate GDB DAP item for existing entry "%1". + Ein GDB DAP-Eintrag wurde für den existierenden Eintrag "%1" hinzugefügt. + + + Added a surrogate GDB DAP item for "%1". + Ein GDB DAP-Eintrag wurde für "%1" hinzugefügt. + Add Hinzufügen @@ -28865,26 +30113,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Terminal: Read failed: %1 Terminal: Lesen schlug fehl: %1 - - Global - Global - - - Custom - Benutzerdefiniert - - - Restore Global - Globale Einstellungen wiederherstellen - - - Use Customized Settings - Benutzerdefinierte Einstellungen verwenden - - - Use Global Settings - Globale Einstellungen verwenden - Copy Kopieren @@ -28950,10 +30178,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Unpacking core file to %1 Entpacke Core-Datei nach %1 - - Cannot debug: Local executable is not set. - Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben. - No executable specified. Es wurde keine ausführbare Datei angegeben. @@ -29242,10 +30466,6 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl Unknown debugger ABI Unbekannte Debugger-ABI - - None - Keine - The debugger to use for this kit. Der für dieses Kit zu verwendende Debugger. @@ -29254,6 +30474,11 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl No debugger set up. Es ist kein Debugger eingerichtet. + + None + No debugger + Keiner + Debugger "%1" not found. Der Debugger "%1" konnte nicht gefunden werden. @@ -29644,10 +30869,6 @@ Versuchen Sie, das Projekt neu zu erstellen. File "%1" not found in project. Datei "%1" wurde nicht im Projekt gefunden. - - No active target. - Kein Ziel aktiv. - No active build system. Kein Build-System aktiv. @@ -29809,6 +31030,145 @@ Versuchen Sie, das Projekt neu zu erstellen. Ungültiger Form-Dateiname: "%1" + + QtC::DesignerCore + + Failed to create item of type %1. + + + + Only alphanumeric characters and underscore allowed. +Ids must begin with a lowercase letter. + Es sind nur alphanumerische Zeichen und Unterstriche zulässig. +IDs müssen außerdem mit einem Kleinbuchstaben beginnen. + + + Ids have to be unique. + IDs müssen eindeutig sein. + + + Invalid Id: %1 +%2 + Ungültige ID: %1 +%2 + + + Invalid meta info. + + + + Illegal state while parsing. + Ungültiger Zustand bei der Auswertung. + + + No property definition allowed. + Eigenschaftsdefinition nicht zulässig. + + + Invalid type %1. + + + + Unknown property for Type %1. + + + + Unknown property for ItemLibraryEntry %1. + + + + Unknown property for Property %1. + + + + Unknown property for QmlSource %1. + + + + Unknown property for ExtraFile %1. + + + + Invalid or duplicate library entry %1. + + + + My 3D Components + + + + Error parsing + Fehler beim Parsen + + + Internal error + Interner Fehler + + + line %1 + + + + column %1 + + + + ID cannot start with an uppercase character (%1). + + + + ID cannot start with a number (%1). + + + + ID cannot include whitespace (%1). + + + + %1 is a reserved QML keyword. + + + + %1 is a reserved Qml type. + + + + %1 is a reserved property keyword. + + + + ID includes invalid characters (%1). + + + + Failed to create instance of file "%1": %2 + Es konnte keine Instanz der Datei "%1" erzeugt werden: %2 + + + Failed to create instance of file "%1". + Es konnte keine Instanz der Datei "%1" erzeugt werden. + + + Empty document. + + + + No import statements found. + + + + Qt Quick 6 is not supported with a Qt 5 kit. + + + + The Design Mode requires a valid Qt kit. + + + + No import for Qt Quick found. + Es konnte kein Import für Qt Quick gefunden werden. + + QtC::DiffEditor @@ -30077,6 +31437,10 @@ Versuchen Sie, das Projekt neu zu erstellen. Failed creating Docker container. No container ID received. Docker-Container konnte nicht erstellt werden. Keine Container-ID erhalten. + + Failed to start container "%1". + Container "%1" konnte nicht gestartet werden. + Device is shut down Das Gerät ist heruntergefahren @@ -30262,6 +31626,162 @@ Versuchen Sie, das Projekt neu zu erstellen. Konfiguration + + QtC::EffectComposer + + Trigger Completion + Code-Vervollständigung auslösen + + + Meta+Space + Meta+Space + + + Ctrl+Space + Ctrl+Space + + + Effect Code Editor + + + + Main + + + + New Property + + + + Select Custom Effect Background Image + + + + Image Files (%1) + + + + Common error: %1 + + + + QML parsing error: %1 + + + + Shader error: %1 + + + + Preprocessor error: %1 + + + + Animation + Animation + + + Running + Läuft + + + Set this property to animate the effect. + + + + Time + Zeit + + + This property allows explicit control of current animation time when Running property is false. + + + + Frame + Frame + + + This property allows explicit control of current animation frame when Running property is false. + + + + General + Allgemein + + + Extra Margin + + + + This property specifies how much of extra space is reserved for the effect outside the parent geometry. + + + + Uniform Name + + + + Property Name + + + + Type + Typ + + + Min + Min + + + Max + Max + + + Description + Beschreibung + + + Unsupported type + + + + Effect Composer [beta] + + + + Effect Composer + Title of effect composer widget + + + + Shaders Code Editor + + + + X + X + + + Y + Y + + + Z + + + + W + + + + %1 Item + + + + Set this to use an item in the scene as %1 instead of the above image. + + + QtC::EmacsKeys @@ -30367,6 +31887,14 @@ Versuchen Sie, das Projekt neu zu erstellen. Restart Now Jetzt neu starten + + Remove... + Entfernen... + + + Update... + Aktualisieren... + Error Fehler @@ -30445,6 +31973,7 @@ Versuchen Sie, das Projekt neu zu erstellen. All + Extensions filter Alle @@ -30523,6 +32052,10 @@ Versuchen Sie, das Projekt neu zu erstellen. New Neu + + Updated + Aktualisiert + QtC::ExtensionSystem @@ -30570,6 +32103,16 @@ Versuchen Sie, das Projekt neu zu erstellen. Loadable without restart: Kann ohne Neustart geladen werden: + + None + No category + Keine + + + All + Platforms: All + Alle + Plugin Details of %1 Beschreibung zu %1 @@ -30722,6 +32265,14 @@ Reason: %3 Das Plugin kann nicht geladen werden, weil eine Abhängigkeit nicht geladen werden konnte: %1(%2) Grund: %3 + + Plugin not found. + Plugin wurde nicht gefunden. + + + It does not exist. + Es existiert nicht. + The plugin "%1" is specified twice for testing. Das Plugin "%1" ist in der Testliste doppelt vorhanden. @@ -30831,12 +32382,12 @@ Grund: %3 Interner Fehler: Es existiert keine Plugininstanz zur Abarbeitung von delayedInitialize - None - Keine + Cannot remove system plugins. + System-Plugins können nicht entfernt werden. - All - Alle + Could not determine root folder. + Wurzelverzeichnis konnte nicht bestimmt werden. %1 (current: "%2") @@ -32146,10 +33697,6 @@ Jetzt Commit ausführen? Auswahl aus Commit entfernen (%n Zeilen) - - All - Alle - Show log for all local branches. Log für alle lokalen Branches anzeigen @@ -32285,6 +33832,10 @@ Möchten Sie den Branch "%1" im entfernten Repository erzeugen und ihn Cancel %1. %1 Abbrechen. + + Create &Branch from %1... + &Branch von %1 erstellen... + &Reset to Change %1 Zu&rücksetzen auf Änderung %1 @@ -32377,6 +33928,7 @@ Möchten Sie den Branch "%1" im entfernten Repository erzeugen und ihn Continue Rebase + Avoid translating "Rebase" Rebase fortsetzen @@ -32385,6 +33937,7 @@ Möchten Sie den Branch "%1" im entfernten Repository erzeugen und ihn Continue Revert + Avoid translating "Revert" Revert fortsetzen @@ -32439,6 +33992,11 @@ Jetzt Commit ausführen? Filter commits by message or content. Commits nach Nachricht oder Inhalt filtern. + + All + All branches + Alle + Show Date Datum anzeigen @@ -33687,6 +35245,16 @@ Leer lassen, um das Dateisystem zu durchsuchen. Current &File Aktuelle &Datei + + Diff Current File + Avoid translating "Diff" + Diff für aktuelle Datei + + + Diff of "%1" + Avoid translating "Diff" + Diff für "%1" + Meta+G,Meta+D Meta+G,Meta+D @@ -33695,6 +35263,16 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+D Alt+G,Alt+D + + Log Current File + Avoid translating "Log" + Log für aktuelle Datei + + + Log of "%1" + Avoid translating "Log" + Log für "%1" + Meta+G,Meta+L Meta+G,Meta+L @@ -33703,16 +35281,6 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+L Alt+G,Alt+L - - Log Current Selection - Avoid translating "Log" - Log der aktuellen Auswahl - - - Log of "%1" Selection - Avoid translating "Log" - Log der Auswahl in "%1 - Meta+G,Meta+S Meta+G,Meta+S @@ -33721,6 +35289,16 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+S Alt+G,Alt+S + + Blame Current File + Avoid translating "Blame" + Blame für aktuelle Datei + + + Blame for "%1" + Avoid translating "Blame" + Blame für "%1" + Meta+G,Meta+B Meta+G,Meta+B @@ -33729,6 +35307,16 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+B Alt+G,Alt+B + + Instant Blame Current Line + Avoid translating "Blame" + Instant Blame für aktuelle Zeile + + + Instant Blame for "%1" + Avoid translating "Blame" + Instant Blame für "%1" + Stage File for Commit Datei zu Commit hinzufügen (stage) @@ -33777,6 +35365,36 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+U Alt+G,Alt+U + + Diff Project Directory + Avoid translating "Diff" + Diff des Projektverzeichnisses + + + Diff Directory of Project "%1" + Avoid translating "Diff" + Diff des Projektverzeichnisses von "%1" + + + Log Project Directory + Avoid translating "Log" + Log des Projektverzeichnisses + + + Log Directory of Project "%1" + Avoid translating "Log" + Log des Projektverzeichnisses von "%1" + + + Clean Project Directory... + Avoid translating "Clean" + Clean des Projektverzeichnisses... + + + Clean Directory of Project "%1"... + Avoid translating "Clean" + Clean des Projektverzeichnisses von "%1"... + Meta+G,Meta+Shift+D Meta+G,Meta+Shift+D @@ -33793,44 +35411,29 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+K Alt+G,Alt+K + + Status (Include All Untracked) + Avoid translating "Status" + Status (unversionierte Dateien anzeigen) + &Local Repository &Lokales Repository + + Log Current Selection + Avoid translating "Log" + Log der aktuellen Auswahl + + + Log of "%1" Selection + Avoid translating "Log" + Log der Auswahl in "%1" + Current &Project Directory Aktuelles &Projektverzeichnis - - Diff Project Directory - Avoid translating "Diff" - Diff des Projektverzeichnisses - - - Diff Directory of Project "%1" - Avoid translating "Diff" - Diff des Projektverzeichnisses von "%1 - - - Log Project Directory - Avoid translating "Log" - Log des Projektverzeichnisses - - - Log Directory of Project "%1" - Avoid translating "Log" - Log des Projektverzeichnisses von "%1" - - - Clean Project Directory... - Avoid translating "Clean" - Clean des Projektverzeichnisses... - - - Clean Directory of Project "%1"... - Avoid translating "Clean" - Clean des Projektverzeichnisses von "%1"... - Meta+G,Meta+C Meta+G,Meta+C @@ -33839,22 +35442,59 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+C Alt+G,Alt+C + + Amend Last Commit... + Avoid translating "Commit" + Letzten Commit ändern (Amend)... + + + Fixup Previous Commit... + Avoid translating "Commit" + Vorangehenden Commit verbessern (Fixup)... + Recover Deleted Files Gelöschte Dateien wiederherstellen + + Interactive Rebase... + Avoid translating "Rebase" + Interaktives Rebase... + Update Submodules Submodule aktualisieren + + Abort Merge + Avoid translating "Merge" + Merge abbrechen + + + Abort Rebase + Avoid translating "Rebase" + Rebase abbrechen + Skip Rebase + Avoid translating "Rebase" Rebase überspringen + + Abort Cherry Pick + Avoid translating "Cherry Pick" + Cherry-Pick abbrechen + Continue Cherry Pick + Avoid translating "Cherry Pick" Cherry-Pick fortsetzen + + Abort Revert + Avoid translating "Revert" + Revert abbrechen + Branches... Branches... @@ -33883,6 +35523,11 @@ Leer lassen, um das Dateisystem zu durchsuchen. Saves the current state of your work and resets the repository. Speichert den aktuellen Stand der Arbeit und setzt das Repository zurück. + + Stash Unstaged Files + Avoid translating "Stash" + Stash nicht vorgemerkter Dateien (unstaged) + Saves the current state of your unstaged files and resets the repository to its staged state. Speichert den aktuellen Stand der nicht bereitgestellten Dateien und setzt das Repository auf den bereitgestellten Zustand zurück. @@ -33895,6 +35540,11 @@ Leer lassen, um das Dateisystem zu durchsuchen. Saves the current state of your work. Sichert den aktuellen Arbeitsstand. + + Stash Pop + Avoid translating "Stash" + Stash Pop + Restores changes saved to the stash list using "Stash". Stellt den gesicherten Zustand von "Stash" wieder her. @@ -33919,46 +35569,6 @@ Leer lassen, um das Dateisystem zu durchsuchen. Archive... Archive... - - Diff Current File - Avoid translating "Diff" - Diff für aktuelle Datei - - - Diff of "%1" - Avoid translating "Diff" - Diff für "%1" - - - Log Current File - Avoid translating "Log" - Log für aktuelle Datei - - - Log of "%1" - Avoid translating "Log" - Log für "%1" - - - Blame Current File - Avoid translating "Blame" - Blame für aktuelle Datei - - - Blame for "%1" - Avoid translating "Blame" - Blame für "%1" - - - Instant Blame Current Line - Avoid translating "Blame" - Instant Blame für aktuelle Zeile - - - Instant Blame for "%1" - Avoid translating "Blame" - Instant Blame für "%1" - Meta+G,Meta+I Meta+G,Meta+I @@ -33967,51 +35577,6 @@ Leer lassen, um das Dateisystem zu durchsuchen. Alt+G,Alt+I Alt+G,Alt+I - - Amend Last Commit... - Avoid translating "Commit" - Letzten Commit ändern (Amend)... - - - Fixup Previous Commit... - Avoid translating "Commit" - Vorangehenden Commit verbessern (Fixup)... - - - Interactive Rebase... - Avoid translating "Rebase" - Interaktives Rebase... - - - Abort Merge - Avoid translating "Merge" - Merge abbrechen - - - Abort Rebase - Avoid translating "Rebase" - Rebase abbrechen - - - Abort Cherry Pick - Avoid translating "Cherry Pick" - Cherry-Pick abbrechen - - - Abort Revert - Avoid translating "Revert" - Revert abbrechen - - - Stash Unstaged Files - Avoid translating "Stash" - Stash nicht bereitgestellter Dateien (unstaged) - - - Stash Pop - Avoid translating "Stash" - Stash Pop - Git &Tools Git-&Werkzeuge @@ -34064,10 +35629,6 @@ Leer lassen, um das Dateisystem zu durchsuchen. Another submit is currently being executed. Ein weiterer Submit-Vorgang findet gerade statt. - - Unsupported version of Git found. Git %1 or later required. - Es wurde eine nicht unterstützte Version von Git festgestellt. Es wird Git %1 oder neuer benötigt. - Amend %1 Abgabe %1 ändern (amend) @@ -35504,6 +37065,14 @@ Möchten Sie sie überschreiben? Could not find device specific debug symbols at %1. Debugging initialization will be slow until you open the Organizer window of Xcode with the device connected to have the symbols generated. Die gerätespezifischen Debugsymbole konnten nicht bei %1 gefunden werden. Die Initialisierung des Debuggers wird langsam sein, bis Sie das Organizer-Fenster von Xcode bei verbundenem Gerät öffnen, um die Symbole erzeugen zu lassen. + + Internal error. + Interner Fehler. + + + Only C++ debugging is supported for devices with iOS 17 and later. + Für Geräte mit iOS 17 und neuer wird nur C++-Debugging unterstützt. + The dSYM %1 seems to be outdated, it might confuse the debugger. Der dSYM %1 scheint veraltet zu sein, dies kann den Debugger stören. @@ -35667,8 +37236,8 @@ Möchten Sie sie überschreiben? Keine Verbindung zu %1. - Debugging and profiling is currently not supported for devices with iOS 17 and later. - Debuggen und Profiling wird für Geräte mit iOS 17 und später im Moment nicht unterstützt. + Debugging on devices with iOS 17 and later requires Xcode 16 or later. + Debuggen auf Geräten mit iOS 17 und neuer erfordert Xcode 16 oder neuer. Device type: @@ -35738,10 +37307,30 @@ Möchten Sie sie überschreiben? Running "%1" on %2... Führe "%1" auf %2 aus... + + Running failed. Failed to create the temporary output file. + Das Ausführen ist fehlgeschlagen. Das Erstellen der temporären Ausgabedatei ist fehlgeschlagen. + + + Failed to retrieve process ID. + Die Prozess-ID konnte nicht ermittelt werden. + Could not find %1. %1 konnte nicht gefunden werden. + + Failed to get a local debugger port. + Es konnte kein lokaler Debugger-Port erhalten werden. + + + Listening for debugger on local port %1. + Warte auf dem lokalen Port %1 auf den Debugger. + + + Listening for QML debugger on local port %1 (port %2 on the device). + Warte auf dem lokalen Port %1 (Port %2 auf dem Gerät) auf den QML-Debugger. + Could not get necessary ports for the debugger connection. Auf die für die Debugger-Verbindung notwendigen Ports konnte nicht zugegriffen werden. @@ -35844,6 +37433,7 @@ Ablaufdatum: %3 None + No signing identity Keine @@ -36131,6 +37721,22 @@ Beispiel: *.cpp%1*.h JSON Error JSON-Fehler + + Project Specific Language Servers + Projektabhängige Language Server + + + Use Global Settings + Globale Einstellungen verwenden + + + Enabled + Aktiviert + + + Disabled + Deaktiviert + Workspace Configuration Workspace-Konfiguration @@ -36196,6 +37802,11 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan language client state abgeschaltet + + failed to shutdown + language client state + Beenden fehlgeschlagen + Language Server "%1" Initialization Error Fehler beim Initialisieren von Language Server "%1" @@ -36312,6 +37923,10 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Collapse All Alle einklappen + + <Select Symbol> + <Symbol auswählen> + Client Message Client-Nachricht @@ -36553,10 +38168,18 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Failed to run script %1: %2 Das Ausführen des Skripts %1 ist fehlgeschlagen: %2 + + Non-string key encountered in Lua table at path "%1". + In der Lua-Tabelle im Pfad "%1" wurde ein Key gefunden, der keine Zeichenkette ist. + No hook with the name "%1" found. Kein Einsprungpunkt mit dem Namen "%1" gefunden. + + Unsupported value type "%1" at path "%2". + Nicht unterstützter Wertetyp "%1" im Pfad "%2". + Script did not return a table. Das Skript hat keine Tabelle zurückgeliefert. @@ -36729,21 +38352,6 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan Makro-Modus. Geben Sie "%1" ein, um die Aufnahme zu stoppen und "%2", um sie abzuspielen. - - QtC::Marketplace - - Marketplace - Marketplace - - - Search in Marketplace... - Im Marketplace suchen... - - - <p>Could not fetch data from Qt Marketplace.</p><p>Try with your browser instead: <a href='https://marketplace.qt.io'>https://marketplace.qt.io</a></p><br/><p><small><i>Error: %1</i></small></p> - <p>Es konnten keine Daten vom Qt Marketplace abgerufen werden.</p><p>Versuchen Sie es stattdessen im Browser: <a href='https://marketplace.qt.io'>https://marketplace.qt.io</a></p><br/><p><small><i>Fehler: %1</i></small></p> - - QtC::McuSupport @@ -36752,483 +38360,488 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan MCU Dependencies - + MCU-Abhängigkeiten Paths to 3rd party dependencies - + Pfade zu Abhängigkeiten von Drittanbietern The MCU dependencies setting value is invalid. - + Die Einstellungen für MCU-Abhängigkeiten sind ungültig. CMake variable %1 not defined. - + CMake-Variable %1 ist nicht definiert. CMake variable %1: path %2 does not exist. - + CMake-Variable %1: Der Pfad %2 existiert nicht. Warning for target %1: invalid toolchain path (%2). Update the toolchain in Edit > Preferences > Kits. - + Warnung für Ziel %1: Der Pfad der Toolchain ist ungültig (%2). Aktualisieren Sie die Toolchain in Bearbeiten > Einstellungen > Kits. Kit for %1 created. - + Kit für %1 wurde erstellt. Error registering Kit for %1. - + Fehler beim Registrieren des Kits für %1. + + + Path %1 does not exist. Add the path in Edit > Preferences > SDKs > MCU. + Der Pfad %1 existiert nicht. Fügen Sie den Pfad in Bearbeiten > Einstellungen > SDKs > MCU hinzu. + + + Missing %1. Add the path in Edit > Preferences > SDKs > MCU. + %1 fehlt. Fügen Sie den Pfad in Bearbeiten > Einstellungen > SDKs > MCU hinzu. Qt for MCUs Kit Creation - + Kit-Erstellung für Qt for MCUs Fix - + Korrigieren Help - Hilfe + Hilfe Qt for MCUs path %1 - + Pfad zu Qt for MCUs %1 Target - Ziel + Ziel Warning - Warnung + Warnung Error - Fehler + Fehler Package - Paket + Paket Status - Status + Status No target selected. - + Kein Ziel ausgewählt. Invalid paths present for target %1 - + Für das Ziel +%1 +sind ungültige Pfade vorhanden. Warning for target %1: missing CMake toolchain file expected at %2. - + Warnung für das Ziel %1: Die in %2 erwartete CMake-Toolchain-Datei fehlt. Warning for target %1: missing QulGenerators expected at %2. - + Seems to be a QulGenerators.cmake file that is not found + Warnung für das Ziel %1: Die in %2 erwartete QulGenerators-Datei fehlt. Qt for MCUs SDK version %1 detected, only supported by Qt Creator version %2. This version of Qt Creator requires Qt for MCUs %3 or greater. - + Für Qt for MCUs wurde die SDK-Version %1 erkannt, die nur von Qt Creator-Version %2 unterstützt wird. Diese Version von Qt Creator erfordert Qt for MCUs %3 oder höher. Skipped %1. Unsupported version "%2". - + Überspringe %1. Nicht unterstützte Version "%2". Detected version "%1", only supported by Qt Creator %2. - + Die erkannte Version "%1" wird nur von Qt Creator %2 unterstützt. Unsupported version "%1". - + Nicht unterstützte Version "%1". Skipped %1. %2 Qt for MCUs version >= %3 required. - + Überspringe %1. %2 Qt for MCUs-Version >= %3 wird benötigt. No valid kit descriptions found at %1. - + In %1 wurde keine gültige Beschreibung für ein Kit gefunden. Error creating kit for target %1, package %2: %3 - + Fehler beim Erstellen des Kits für das Ziel %1, Paket %2: %3 Warning creating kit for target %1, package %2: %3 - + Warnung beim Erstellen des Kits für das Ziel %1, Paket %2: %3 Path %1 exists, but does not contain %2. - - - - Path %1 does not exist. Add the path in Edit > Preferences > Devices > MCU. - - - - Missing %1. Add the path in Edit > Preferences > Devices > MCU. - + Der Pfad %1 existiert, enthält aber %2 nicht. No CMake tool was detected. Add a CMake tool in Edit > Preferences > Kits > CMake. - + Es wurde kein CMake-Werkzeug erkannt. Fügen Sie in Bearbeiten > Einstellungen > Kits > CMake ein CMake-Werkzeug hinzu. or - + oder Path %1 exists. - + Der Pfad %1 existiert. Path %1 exists. Version %2 was found. - + Der Pfad %1 existiert. Version %2 wurde gefunden. Path %1 is valid, %2 was found. - + Der Pfad %1 ist gültig, %2 wurde gefunden. but only version %1 is supported - + aber nur Version %1 wird unterstützt but only versions %1 are supported - + aber nur die Versionen %1 werden unterstützt Path %1 is valid, %2 was found, %3. - + Der Pfad %1 ist gültig, %2 wurde gefunden, %3. Path %1 does not exist. - + Der Pfad %1 existiert nicht. Path is empty. - + Der Pfad ist leer. Path is empty, %1 not found. - + Der Pfad ist leer, %1 wurde nicht gefunden. Path %1 exists, but version %2 could not be detected. - + Der Pfad %1 existiert, aber Version %2 konnte nicht erkannt werden. - Download from "%1" - + Download from "%1". + Von "%1" herunterladen. Board SDK for MIMXRT1050-EVK - + Board SDK für MIMXRT1050-EVK Board SDK MIMXRT1060-EVK - + Board SDK MIMXRT1060-EVK Board SDK for MIMXRT1060-EVK - + Board SDK für MIMXRT1060-EVK Board SDK for MIMXRT1064-EVK - + Board SDK für MIMXRT1064-EVK Board SDK for MIMXRT1170-EVK - + Board SDK für MIMXRT1170-EVK Board SDK for STM32F469I-Discovery - + Board SDK für STM32F469I-Discovery Board SDK for STM32F769I-Discovery - + Board SDK für STM32F769I-Discovery Board SDK for STM32H750B-Discovery - + Board SDK für STM32H750B-Discovery Board SDK - + Board SDK Flexible Software Package for Renesas RA MCU Family - + Flexibles Softwarepaket für die Renesas RA MCU-Familie Graphics Driver for Traveo II Cluster Series - + Grafiktreiber für die Traveo II Cluster-Serie Renesas Graphics Library - + Renesas Grafikbibliothek Cypress Auto Flash Utility - + Cypress Auto Flash-Werkzeug MCUXpresso IDE - + MCUXpresso IDE Path to SEGGER J-Link - + Pfad zu SEGGER J-Link Path to Renesas Flash Programmer - + Pfad zu Renesas Flash Programmer Green Hills Compiler for ARM - + Green Hills Compiler für ARM IAR ARM Compiler - + IAR ARM Compiler Green Hills Compiler - + Green Hills Compiler GNU Toolchain - + GNU Toolchain MSVC Toolchain - + MSVC Toolchain FreeRTOS SDK for MIMXRT1050-EVK - + FreeRTOS SDK für MIMXRT1050-EVK FreeRTOS SDK for MIMXRT1064-EVK - + FreeRTOS SDK für MIMXRT1064-EVK FreeRTOS SDK for MIMXRT1170-EVK - + FreeRTOS SDK für MIMXRT1170-EVK FreeRTOS SDK for EK-RA6M3G - + FreeRTOS SDK für EK-RA6M3G FreeRTOS SDK for STM32F769I-Discovery - + FreeRTOS SDK für STM32F769I-Discovery Path to project for Renesas e2 Studio - + Pfad zum Projekt für Renesas e2 Studio Arm GDB at %1 - + ARM GDB in %1 MSVC Binary directory - + MSVC Binary-Verzeichnis GCC Toolchain - + GCC Toolchain GNU Arm Embedded Toolchain - + GNU Arm Embedded Toolchain STM32CubeProgrammer - + STM32CubeProgrammer the toolchain.id JSON entry is empty - + der JSON-Eintrag toolchain.id ist leer the given toolchain "%1" is not supported - + die angegebene Toolchain "%1" wird nicht unterstützt the toolchain.compiler.cmakeVar JSON entry is empty - + der JSON-Eintrag toolchain.compiler.cmakeVar ist leer the toolchain.file.cmakeVar JSON entry is empty - + der JSON-Eintrag toolchain.file.cmakeVar ist leer Toolchain is invalid because %2 in file "%3". - + The source is broken because of too much language arithmetics. + Die Toolchain in Datei "%3" ist ungültig: %2. Toolchain description for "%1" is invalid because %2 in file "%3". - + The source is broken because of too much language arithmetics. + Die Toolchain-Beschreibung für "%1" in Datei "%3" ist ungültig: %2. Qt for MCUs Demos - + Qt for MCUs Demos Qt for MCUs Examples - + Qt for MCUs Beispiele Replace Existing Kits - + Existierende Kits ersetzen Create New Kits - + Neue Kits erstellen Qt for MCUs - + Qt for MCUs New version of Qt for MCUs detected. Upgrade existing kits? - + Neue Version von Qt for MCUs wurde erkannt. Existierende Kits aktualisieren? Errors while creating Qt for MCUs kits - + Fehler beim Erstellen von Kits für Qt for MCUs Details - Details + Details Qt for MCUs SDK - + Qt for MCUs SDK Targets supported by the %1 - + Von %1 unterstützte Ziele Requirements - + Anforderungen Automatically create kits for all available targets on start - + Beim Start automatisch Kits für alle verfügbaren Ziele erstellen Create a Kit - + Ein Kit erstellen Create Kit - + Kit erstellen Update Kit - + Kit aktualisieren A kit for the selected target and SDK version already exists. - + Ein Kit für das ausgewählte Ziel und die SDK-Version existiert bereits. Kits for a different SDK version exist. - + Kits für eine andere SDK-Version existieren. A kit for the selected target can be created. - + Ein Kit kann für das ausgewählte Ziel erstellt werden. Provide the package paths to create a kit for your target. - + Geben Sie die Paketpfade zum Erstellen eines Kits für Ihr Ziel an. No CMake tool was detected. Add a CMake tool in the <a href="cmake">CMake options</a> and select Apply. - + Es wurde kein CMake-Werkzeug erkannt. Fügen Sie in den <a href="cmake">CMake-Einstellungen</a> ein CMake-Werkzeug hinzu und wählen Sie "Anwenden". - Cannot apply changes in Devices > MCU. - + Cannot apply changes in SDKs > MCU. + Die Änderungen in SDKs > MCU können nicht angewendet werden. MCU - + MCU Qt for MCUs: %1 - + Qt for MCUs: %1 - Create Kits for Qt for MCUs? To do it later, select Edit > Preferences > Devices > MCU. - + Create Kits for Qt for MCUs? To do it later, select Edit > Preferences > SDKs > MCU. + Kits für Qt for MCUs erstellen? Um dies später zu tun, wählen Sie Bearbeiten > Einstellungen > SDKs > MCU. Create Kits for Qt for MCUs - + Kits für Qt for MCUs erstellen Detected %n uninstalled MCU target(s). Remove corresponding kits? - - - + + Ein nicht installiertes MCU-Ziel wurde erkannt. Sollen die entsprechenden Kits entfernt werden? + %n nicht installierte MCU-Ziele wurden erkannt. Sollen die entsprechenden Kits entfernt werden? Keep - + Behalten Remove - Entfernen + Entfernen Read about Using QtMCUs in the Qt Design Studio - + Über die Benutzung von QtMCUs in Qt Design Studio informieren Go to the Documentation - + Dokumentation öffnen Create new kits - + Neue Kits erstellen Replace existing kits - + Existierende Kits ersetzen Proceed - Weiter + Weiter Flash and run CMake parameters: - + Parameter für das Flashen und das Ausführen von CMake: Parsing error: the type entry in JSON kit files must be a string, defaulting to "path" - + Fehler beim Auswerten: Der "type"-Eintrag in den JSON-Dateien für das Kit muss eine Zeichenkette sein, standardmäßig "path" Parsing error: the type entry "%2" in JSON kit files is not supported, defaulting to "path" - + Fehler beim Auswerten: Der "type"-Eintrag "%2" in den JSON-Dateien für das Kit wird nicht unterstützt, standardmäßig "path" @@ -37616,6 +39229,34 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Running %1 in %2. Führe %1 in %2 aus. + + Source Files + Quelldateien + + + Header Files + Header-Dateien + + + Python Files + Python-Dateien + + + Qt Designer Files + Qt Designer-Dateien + + + Qt Resource Files + Qt Ressourcen-Dateien + + + QML Files + QML-Dateien + + + Other Files + Andere Dateien + Executable does not exist: %1 Ausführbare Datei existiert nicht: %1 @@ -37628,10 +39269,6 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt No Meson tool set. Kein Meson-Werkzeug konfiguriert. - - No Ninja tool set. - Kein Ninja-Werkzeug konfiguriert. - No compilers set in kit. Im Kit sind keine Compiler eingerichtet. @@ -37645,12 +39282,12 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Führt Meson bei Bedarf automatisch aus. - Ninja verbose mode - Ausführlicher Ninja-Modus + Meson verbose mode + Ausführlicher Meson-Modus - Enables verbose mode by default when invoking Ninja. - Aktiviert standardmäßig den ausführlichen Modus beim Ausführen von Ninja. + Enables verbose mode by default when invoking Meson. + Aktiviert standardmäßig den ausführlichen Modus beim Ausführen von Meson. General @@ -37680,10 +39317,6 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Location Pfad - - New Meson or Ninja tool - Neues Meson- oder Ninja-Werkzeug - Tools Werkzeuge @@ -37712,26 +39345,14 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Cannot get tool version. Das Ermitteln der Werkzeug-Version ist fehlgeschlagen. + + New Meson + Neues Meson-Werkzeug + Meson build: Parsing failed Erstellen mit Meson: Fehler beim Auswerten - - Ninja Tool - Ninja-Werkzeug - - - The Ninja tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. - Das zum Erstellen eines Projektes mit Meson zu verwendende Ninja-Werkzeug.<br>Diese Einstellung wird bei der Verwendung anderer Build-Systeme ignoriert. - - - Cannot validate this Ninja executable. - Die Überprüfung der ausführbaren Ninja-Datei ist fehlgeschlagen. - - - Ninja - Ninja - Name: Name: @@ -38039,6 +39660,11 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt QtC::Nim + + None + No default arguments + Keine + Target: Ziel: @@ -38055,10 +39681,6 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Default arguments: Standardargumente: - - None - Keine - Debug Debug @@ -38329,8 +39951,8 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Soll das folgende Skript als root ausgeführt werden, um Tracepoints zu erzeugen? - Error: No device available for active target. - Fehler: Für das aktive Ziel ist kein Gerät verfügbar. + Error: No device available for active kit. + Fehler: Für das aktive Kit ist kein Gerät verfügbar. Error: Failed to load trace point script %1: %2. @@ -38472,14 +40094,6 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt Failed to transfer Perf data to perfparser. Perf-Daten konnten nicht zum perfparser übertragen werden. - - Perf Process Failed to Start - Der Perf-Prozess konnte nicht gestartet werden - - - Make sure that you are running a recent Linux kernel and that the "perf" utility is available. - Stellen Sie sicher, dass Sie einen aktuellen Linux-Kernel verwenden und das Programm "perf" verfügbar ist. - Performance Analyzer Options Einstellungen zur Leistungsanalyse @@ -40437,6 +42051,10 @@ Bitte versuchen Sie es erneut. Close All Files in Project Alle Dateien im Projekt schließen + + SDKs + SDKs + Close All Files in Project "%1" Alle Dateien im Projekt "%1" schließen @@ -41068,6 +42686,11 @@ The name of the build configuration created by default for a generic project.<nobr><b>ABI:</b> %1 <nobr><b>ABI:</b> %1 + + None + Toolchain bundle display name + Keiner + Not all compilers are set up correctly. Nicht alle Compiler sind richtig konfiguriert. @@ -41408,10 +43031,6 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein Fetching process list. This might take a while. Rufe Prozessliste ab. Dies kann eine Weile dauern. - - Remote error output was: %1 - Fehlerausgabe: %1 - Remote Error Entfernter Fehler @@ -41501,6 +43120,18 @@ Aktivieren Sie dies, wenn Sie 32bit-x86-Binärdateien erstellen wollen, ohne ein Mark up a kit as the default one. %1 (Vorgabe) + + Global + Global + + + Use Customized Settings + Benutzerdefinierte Einstellungen verwenden + + + Use Global Settings + Globale Einstellungen verwenden + Variables in the run environment. Variablen in der Ausführungsumgebung. @@ -41809,6 +43440,10 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. Import Build Build importieren + + %1 (imported) + %1 (importiert) + %1 - temporary %1 - temporär @@ -41833,6 +43468,10 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen. Type to filter kits by name... Kits nach Namen filtern... + + Hide unsuitable kits + Ungeeignete Kits verbergen + Select Kits for Your Project Kits des Projekts einrichten @@ -42912,10 +44551,6 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Nimble Application Nimble-Anwendung - - Qt 6.4 - Qt 6.4 - Qt 6.5 Qt 6.5 @@ -43176,6 +44811,10 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Qt Quick Application - Empty Qt Quick-Anwendung - Leer + + Qt 6.8 + Qt 6.8 + Repository URL is not valid Die URL des Repositorys ist ungültig @@ -44553,6 +46192,11 @@ Was soll %1 tun? Compilers produce code for different ABIs: %1 Compiler erzeugen Code für verschiedene ABIs: %1 + + None + No compiler + Keiner + Path to the compiler executable Pfad zur ausführbaren Datei des Compilers @@ -44581,10 +46225,50 @@ Was soll %1 tun? Run device type Gerätetyp (Ausführung) + + Device: + Gerät: + Unknown device type Unbekannter Gerätetyp + + No run device set. + Kein Gerät (Ausführung) gesetzt. + + + Build device is incompatible with this kit. + Das Gerät (Erstellung) ist mit diesem Kit inkompatibel. + + + Run device is incompatible with this kit. + Das Gerät (Ausführung) ist mit diesem Kit inkompatibel. + + + Host address (%1) + Hostadresse (%1) + + + SSH port (%1) + SSH-Port (%1) + + + User name (%1) + Benutzername (%1) + + + Private key file (%1) + Private Schlüsseldatei (%1) + + + Device name (%1) + Gerätename (%1) + + + Device root directory (%1) + Wurzelverzeichnis des Geräts (%1) + Run device Gerät (Ausführung) @@ -44594,40 +46278,12 @@ Was soll %1 tun? Das Gerät, auf dem die Anwendungen laufen sollen. - No device set. - Es ist kein Gerät gesetzt. + Build device type + Gerätetyp (Erstellung) - Device is incompatible with this kit. - Das Gerät ist inkompatibel zu diesem Kit. - - - Host address - Host-Adresse - - - SSH port - SSH-Port - - - User name - Benutzername - - - Private key file - Private Schlüsseldatei - - - Device name - Gerätename - - - Device root directory - Wurzelverzeichnis des Geräts - - - Build device root directory - Wurzelverzeichnis des Geräts (Erstellung) + The type of device to build on. + Der Typ des Geräts für die Erstellung. Change... @@ -44638,8 +46294,24 @@ Was soll %1 tun? Keine anzuwendenden Änderungen. - Force UTF-8 MSVC compiler output - UTF-8-Ausgabe von MSVC-Compiler erzwingen + Edit Build Environment... + Build-Umgebung bearbeiten... + + + Edit Run Environment... + Ausführungsumgebung bearbeiten... + + + Edit Build Environment + Build-Umgebung bearbeiten + + + Edit Run Environment + Ausführungsumgebung bearbeiten + + + Force UTF-8 MSVC output + UTF-8 für MSVC-Ausgaben erzwingen Either switches MSVC to English or keeps the language and just forces UTF-8 output (may vary depending on the used MSVC compiler). @@ -44807,8 +46479,14 @@ Was soll %1 tun? Build Only the Application to Be Run Nur die auszuführende Anwendung erstellen + + None + Stop applications before building: None + Keine + All + Stop all projects Alle @@ -45086,27 +46764,7 @@ fails because Clang does not understand the target architecture. No build device set. - Kein Gerät für die Erstellung gesetzt. - - - Build host address - Hostadresse des Geräts (Erstellung) - - - Build SSH port - SSH-Port des Geräts (Erstellung) - - - Build user name - Benutzername des Geräts (Erstellung) - - - Build private key file - Private Schlüsseldatei des Geräts (Erstellung) - - - Build device name - Gerätename (Erstellung) + Kein Gerät (Erstellung) gesetzt. Run as root user @@ -45161,10 +46819,6 @@ fails because Clang does not understand the target architecture. The name of the profile build configuration created by default for a qmake project. Profile - - Profiling - Profiling - Source: Quelle: @@ -45243,7 +46897,193 @@ fails because Clang does not understand the target architecture. Provide manually - Manuell bestimmen + Manuell festlegen + + + None + Add to project: None + Keins + + + None + No compiler language + Keine + + + None + No compiler category + Keine + + + Could not open "%1" for writing: %2. + "%1" konnte nicht zum Schreiben geöffnet werden: %2. + + + Windows Configuration + Windows-Konfiguration + + + Select the download path of NuGet and Windows App SDK. + Wählen Sie den Downloadpfad von NuGet und des Windows App SDK aus. + + + Select Download Path + Downloadpfad auswählen + + + Select the path of NuGet. + Pfad von NuGet auswählen. + + + Select nuget.exe File + nuget.exe-Datei auswählen + + + Download NuGet + NuGet herunterladen + + + Automatically download NuGet. + +NuGet is needed for downloading Windows App SDK. + NuGet automatisch herunterladen. + +NuGet wird für das Herunterladen des Windows App SDK benötigt. + + + Select the path of the Windows App SDK. + Pfad des Windows App SDK auswählen. + + + Download Windows App SDK + Windows App SDK herunterladen + + + Automatically download Windows App SDK with NuGet. + +If the automatic download fails, Qt Creator proposes to open the download URL +in the system browser for manual download. + Windows App SDK automatisch mit NuGet herunterladen. + +Wenn das Herunterladen fehlschlägt, bietet Qt Creator an, die URL für das manuelle Herunterladen im Systembrowser zu öffnen. + + + Download path exists. + Downloadpfad existiert. + + + NuGet path exists. + NuGet-Pfad existiert. + + + Windows App SDK path exists. + Windows App SDK-Pfad existiert. + + + Windows App SDK settings are OK. + Windows App SDK-Einstellungen sind korrekt. + + + Windows App SDK settings have errors. + Windows App SDK-Einstellungen sind fehlerhaft. + + + Select Windows App SDK Path + Pfad des Windows App SDK auswählen + + + Download Path + Downloadpfad + + + Download location: + Herunterladen nach: + + + NuGet + NuGet + + + NuGet location: + NuGet: + + + Windows App SDK Settings + Windows App SDK-Einstellungen + + + Windows App SDK location: + Windows App SDK: + + + NuGet download failed. + Herunterladen von NuGet ist fehlgeschlagen. + + + Open NuGet URL for manual download? + Soll die URL zum manuellen Herunterladen von NuGet geöffnet werden? + + + Open Download URL + URL zum Herunterladen öffnen + + + Downloading NuGet... + Lade NuGet herunter... + + + Downloading + Lade herunter + + + The SDK Tools download URL is empty. + Die URL zum Herunterladen der SDK-Werkzeuge ist nicht gesetzt. + + + Encountered SSL errors, download is aborted. + Es sind SSL-Fehler aufgetreten, das Herunterladen wurde abgebrochen. + + + Downloading NuGet from URL %1 has failed: %2. + Das Herunterladen von NuGet von der URL %1 ist fehlgeschlagen: %2. + + + Download from %1 was redirected. + Das Herunterladen von %1 wurde umgeleitet. + + + The selected download path (%1) for NuGet already exists. +Select a different path. + Der gewählte Pfad (%1) für das Herunterladen von NuGet existiert bereits. +Wählen Sie einen anderen Pfad. + + + Download path is not configured. + Der Pfad für das Herunterladen ist nicht konfiguriert. + + + Downloading Windows App SDK + Lade Windows App SDK herunter + + + Windows App SDK is already configured. + Windows App SDK ist bereits konfiguriert. + + + Downloading Windows App SDK... + Lade Windows App SDK herunter... + + + Windows App SDK download failed. + Das Herunterladen des Windows App SDK ist fehlgeschlagen. + + + Open Windows App SDK URL for manual download? + Soll die URL zum manuellen Herunterladen des Windows App SDK geöffnet werden? + + + Windows App SDK + Windows App SDK @@ -45280,6 +47120,11 @@ fails because Clang does not understand the target architecture. Executable Ausführbare Datei + + None + No Python interpreter + Kein + Executable is empty. Ausführbare Datei ist leer. @@ -45574,10 +47419,6 @@ fails because Clang does not understand the target architecture. Issues parsed from Python runtime output. Probleme, die in der Laufzeitausgabe von Python gefunden wurden. - - None - Kein - The interpreter used for Python based projects. Der für Python-basierte Projekte verwendete Interpreter. @@ -45714,22 +47555,8 @@ fails because Clang does not understand the target architecture. Das Wurzelverzeichnis zum Erstellen von qbs-Projekten - Debug - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Debug - - - Release - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Release - - - Profile - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Profile + <No build device> + <Kein Gerät (Erstellung)> Qbs Build @@ -45947,8 +47774,8 @@ Dies ist selten nötig. Es wurde keine ausführbare qbs-Datei gefunden, bitte setzen Sie den Pfad in den Einstellungen. - The qbs executable was not found at the specified path, or it is not executable ("%1"). - Die ausführbare qbs-Datei wurde am angegebenen Pfad nicht gefunden oder ist nicht ausführbar ("%1"). + The qbs executable was not found at the specified path, or it is not executable. + Die ausführbare qbs-Datei wurde am angegebenen Pfad nicht gefunden oder ist nicht ausführbar. The qbs process quit unexpectedly. @@ -47046,10 +48873,88 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di QtC::QmlDesigner + + "%1" failed (exit code %2). + "%1" schlug fehl (Rückgabewert %2). + + + Failed to generate deployable package! + + + + "%1" crashed. + "%1" ist abgestürzt. + + + Generate QRC Resource File... + + + + Save Project as QRC File + + + + QML Resource File (*.qrc) + + + + QmlDesigner::GenerateResource + Success + + + + QmlDesigner::GenerateResource + Successfully generated QRC resource file + %1 + + + + Generate Deployable Package... + + + + Save Project as Resource + + + + Generating deployable package. Please wait... + + Error Fehler + + Failed to generate deployable package! + +Please check the output pane for more information. + + + + Success + + + + Successfully generated deployable package + + + + Failed to open file to write QRC XML: %1 + + + + Resource generator is already running. + + + + QmlDesigner::GenerateResource + Unable to generate resource file: %1 + + + + A timeout occurred running "%1". + Zeitüberschreitung bei Ausführung von "%1". + Export Components @@ -47098,6 +49003,820 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di Property Value Eigenschaftswert + + Error creating asset directory. %1 + + + + Error saving asset. %1 + + + + Failed to Delete File + + + + Could not delete "%1". + + + + Assets Library + Title of assets library widget + + + + Failed to Delete Effect Resources + + + + Folder move failure + + + + Failed to move folder "%1". The folder might contain subfolders or one of its files is in use. + + + + Failed to Add Files + Dateien konnten nicht hinzugefügt werden + + + Could not add %1 to project. + %1 konnte nicht zum Projekt hinzugefügt werden. + + + All Files (%1) + Alle Dateien (%1) + + + Add Assets + Assets hinzufügen + + + Could not add %1 to project. Unsupported file format. + + + + Binding Editor + Binding-Editor + + + Signal List for %1 + + + + <Filter> + Library search input hint text + <Filter> + + + File Name + Dateiname + + + Size + Größe + + + Add Resources + Ressourcen hinzufügen + + + &Browse... + &Auswählen... + + + Target Directory + Zielverzeichnis + + + Unsupported bundle file + + + + The chosen bundle was created with an incompatible version of Qt Design Studio + + + + Component Exists + + + + A component with the same name '%1' already exists in the project, are you sure you want to overwrite it? + + + + Import Component + + + + Qt Design Studio Bundle Files (*.%1) + + + + Export Material + + + + Export Component + + + + Failed to Add Texture + + + + Document Has Errors + + + + The document which contains the list model contains errors. So we cannot edit it. + + + + Document Cannot Be Written + + + + An error occurred during a write attemp. + + + + Invalid Id + Ungültige ID + + + Go to Implementation + Zu Implementierung gehen + + + Invalid component. + + + + Cannot find an implementation. + Keine Implementierung gefunden. + + + Cannot Set Property %1 + Eigenschaft %1 kann nicht zugewiesen werden + + + The property %1 is bound to an expression. + Die Eigenschaft %1 ist an einen Ausdruck gebunden. + + + Overwrite Existing File? + + + + File already exists. Overwrite? +"%1" + + + + TemplateMerge + Merge With Template + + + + TemplateMerge + &Browse... + + + + TemplateMerge + Template: + + + + TemplateMerge + Browse Template + + + + Effect file %1 not found in the project. + + + + Effect %1 is not complete. + + + + Ensure that you have saved it in the Effect Composer. +Do you want to edit this effect? + + + + Exposed Custom Properties + + + + Start Nanotrace + + + + Shut Down Nanotrace + + + + Bake Lights + + + + Bake lights for the current 3D scene. + + + + Select Background Color + + + + Select a color for the background of the 3D view. + + + + Select Grid Color + + + + Select a color for the grid lines of the 3D view. + + + + Reset Colors + + + + Reset the background color and the color of the grid lines of the 3D view to the default values. + + + + Use Scene Environment + + + + Sets the 3D view to use the Scene Environment color or skybox as background color. + + + + Toggle Group/Single Selection Mode + + + + Activate Move Tool + + + + Activate Rotate Tool + + + + Activate Scale Tool + + + + Fit Selected Object to View + + + + Align Cameras to View + + + + Align View to Camera + + + + Toggle Perspective/Orthographic Camera Mode + + + + Toggle Global/Local Orientation + + + + Toggle Edit Light On/Off + + + + Show Grid + + + + Toggle the visibility of the helper grid. + + + + Show Look-at + + + + Toggle the visibility of the edit camera look-at indicator. + + + + Show Selection Boxes + + + + Toggle the visibility of selection boxes. + + + + Show Icon Gizmos + + + + Toggle the visibility of icon gizmos, such as light and camera icons. + + + + Always Show Camera Frustums + + + + Toggle between always showing the camera frustum visualization and only showing it when the camera is selected. + + + + Always Show Particle Emitters And Attractors + + + + Toggle between always showing the particle emitter and attractor visualizations and only showing them when the emitter or attractor is selected. + + + + Toggle particle animation On/Off + + + + Play Particles + + + + Restart Particles + + + + Reset View + Ansicht zurücksetzen + + + Visibility Toggles + + + + Background Color Actions + + + + Toggle snapping during node drag + + + + Open snap configuration dialog + + + + Toggle Split View On/Off + + + + Open camera speed configuration dialog + + + + Show Event List + + + + Assign Events to Actions + + + + Set the color of the canvas. + Die Farbe der Leinwand einstellen + + + Annotation + Annotation + + + Edit Annotation + + + + Remove Annotation + + + + By: + + + + Edited: + + + + Delete this annotation? + + + + Connected Events + + + + Connected Signals + + + + 2D + 2D + + + 2D view + + + + %1 is not supported as the root element by the 2D view. + + + + No Snapping + + + + Snap with Anchors + + + + Snap without Anchors + + + + Show Bounds + + + + Override Width + Breite überschreiben + + + Override width of root component. + + + + Override Height + Höhe überschreiben + + + Override height of root component. + + + + Zoom In + Vergrößern + + + Zoom Out + Verkleinern + + + Zoom screen to fit all content. + + + + Ctrl+Alt+0 + + + + Zoom screen to fit current selection. + + + + Ctrl+Alt+i + + + + Reload View + + + + Export Current QML File as Image + Aktuelle QML-Datei als Bild exportieren + + + PNG (*.png);;JPG (*.jpg) + PNG (*.png);;JPG (*.jpg) + + + Asset import data file "%1" is invalid. + + + + Unable to locate source scene "%1". + + + + Opening asset import data file "%1" failed. + + + + Unable to resolve asset import path. + + + + Import Update Failed + + + + Failed to update import. +Error: +%1 + + + + %1 already exists. + %1 existiert bereits. + + + Unknown component: %1 + + + + Warning + Warnung + + + Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? + Das Verschieben der Komponente %1 an diese Stelle bewirkt das Löschen der Komponente %2. Möchten Sie den Vorgang fortsetzen? + + + Edit Path + Pfad bearbeiten + + + Path Tool + Pfad-Werkzeug + + + Invalid QML source + + + + Text Tool + Textwerkzeug + + + None + + + + Base State + Grundzustand + + + Internal process (QML Puppet) crashed. + + + + Source item: %1 + + + + Failed to generate QSB file for: %1 + + + + Puppet is starting... + Puppet wird gestartet... + + + You can now attach your debugger to the %1 QML Puppet with process id: %2. + + + + Qt Quick Designer + Qt Quick-Designer + + + Cannot Open Design Mode + Design-Modus kann nicht geöffnet werden + + + The QML file is not currently opened in a QML Editor. + Die QML-Datei ist in keinem QML-Editor geöffnet. + + + Enjoying the %1? + + + + Enable smooth rendering in the 2D view. + + + + Default style + Vorgabestil + + + Reset Style + Stil zurücksetzen + + + QML Puppet + + + + Use fallback QML Puppet + + + + If you select this radio button, Qt Design Studio always uses the QML Puppet located at the following path. + + + + Path to the QML Puppet executable. + + + + Resets the path to the built-in QML Puppet. + + + + Use QML Puppet that is built with the selected Qt + + + + Reset Path + Pfad zurücksetzen + + + Always save when leaving subcomponent in bread crumb + Immer speichern, wenn eine Subkomponente per Breadcrumb Navigation verlassen wird + + + Warn about unsupported features of .ui.qml files in code editor + + + + Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. + Zeigt auch im Code-Editor eine Warnung bei QML-Funktionen an, die vom Qt Quick Designer nicht vollständig unterstützt werden. + + + Warn about unsupported features in .ui.qml files + + + + Warns about QML features that are not properly supported by the Qt Design Studio. + + + + Warn about using .qml files instead of .ui.qml files + Bei der Verwendung von .qml-Dateien statt .ui.qml-Dateien warnen + + + Qt Quick Designer will propose to open .ui.qml files instead of opening a .qml file. + Qt Quick Designer wird vorschlagen, .ui.qml-Dateien statt einer .qml-Datei zu öffnen. + + + qsTr() + qsTr() + + + qsTrId() + qsTrId() + + + qsTranslate() + qsTranslate() + + + Always open ui.qml files in Design mode + ui.qml-Dateien immer im Design-Modus öffnen + + + Ask for confirmation before deleting asset + + + + Always auto-format ui.qml files in Design mode + + + + Enable Timeline editor + Timeline-Editor aktivieren + + + Enable DockWidget content minimum size + + + + Debugging + Debuggen + + + Show the debugging view + Debugansicht anzeigen + + + Show property editor warnings + Zeige Warnungen des Eigenschafteneditors + + + Enable the debugging view + Debugansicht aktivieren + + + Show warn exceptions + Zeige Warnungsausnahmen + + + Path: + Pfad: + + + Top level build path: + Oberstes Build-Verzeichnis: + + + Forward QML Puppet output: + + + + Debug QML Puppet: + + + + Snapping + Raster + + + Parent component padding: + + + + Sibling component spacing: + + + + Canvas + Leinwand + + + Width: + Breite: + + + Height: + Höhe: + + + Smooth rendering: + + + + Root Component Init Size + + + + Styling + Stil + + + Controls style: + Controls Stil: + + + Controls 2 style: + Controls-2-Stil: + + + Subcomponents + Subkomponenten + + + Warnings + Warnungen + + + Internationalization + Internationalisierung + + + Features + Zusatzfunktionen + + + Restart Required + Neustart erforderlich + + + The made changes will take effect after a restart of the QML Puppet or %1. + + QtC::QmlEditorWidgets @@ -48087,10 +50806,6 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de Qt Creator Qt Creator - - Turn on - Einschalten - Allow versions below Qt %1 Versionen niedriger als Qt %1 erlauben @@ -48099,6 +50814,10 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de Use advanced features (renaming, find usages, and so on) (experimental) Erweiterte Funktionen verwenden (umbenennen, Verweise finden und weiteres) (experimentell) + + Current kit does not have a valid Qt version, disabling QML Language Server. + Das aktuelle Kit hat keine gültige Qt-Version, deaktiviere den QML Language Server. + Use from latest Qt version Neueste Qt-Version verwenden @@ -48139,10 +50858,6 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de Automatic Formatting on File Save Automatische Formatierung beim Speichern einer Datei - - Enable QML Language Server on this project. - Aktiviere QML Language Server für dieses Projekt. - Qt Quick Qt Quick @@ -48151,6 +50866,10 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de Open .ui.qml files with: .ui.qml-Dateien öffnen mit: + + Open Language Server preferences... + Einstellungen des Language Servers öffnen... + Static Analyzer Statische Analyse @@ -48227,10 +50946,6 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de Read typeinfo files successfully. typeinfo-Dateien erfolgreich gelesen. - - Qmlls (%1) - Qmlls (%1) - QtC::QmlJSTools @@ -49173,11 +51888,18 @@ Speichern fehlgeschlagen. All + All frames Alle None - Keine + Compare Frame: None + Kein + + + All + All View3D frames + Alle Quick3D Frame @@ -49191,6 +51913,11 @@ Speichern fehlgeschlagen. Compare Frame Frame vergleichen + + All + Compare Frame: All + Alle + QtC::QmlProjectManager @@ -49441,6 +52168,10 @@ Sind Sie sicher? Enable CMake Generator CMake-Generator aktivieren + + The project was created with a Qt Design Studio version earlier than Qt Design Studio 4.5. Due to limitations of the project structure in earlier Qt Design Studio versions, the resulting application might not display all the assets. Referring to assets between different QML modules does not work in the compiled application.<br><a href="https://doc.qt.io/qtdesignstudio/studio-designer-developer-workflow.html">See the documentation for details.</a> + Das Projekt wurde mit einer früheren Version von Qt Design Studio als Qt Design Studio 4.5 erstellt. Wegen der Einschränkungen der Projektstruktur in früheren Versionen von Qt Design Studio könnte die resultierende Anwendung nicht alle Assets anzeigen. Verweise auf Assets zwischen verschiedenen QML-Modulen funktionieren in der erstellten Anwendung nicht.<br><a href="https://doc.qt.io/qtdesignstudio/studio-designer-developer-workflow.html">Details finden Sie in der Dokumentation.</a> + QtC::Qnx @@ -49753,10 +52484,6 @@ wirklich entfernen? (on %1) (auf %1) - - Qt version is not properly installed, please run make install - Die Qt-Version ist nicht richtig installiert, führen Sie bitte make install aus - Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong? Der Pfad zu den ausführbaren Dateien der Qt-Installation konnte nicht bestimmt werden, möglicherweise ist der Pfad zu qmake falsch? @@ -49785,10 +52512,6 @@ wirklich entfernen? qmake "%1" is not an executable. qmake "%1" ist keine ausführbare Datei. - - No QML utility installed. - Kein QML-Werkzeug installiert. - Desktop Qt Version is meant for the desktop @@ -49871,10 +52594,6 @@ wirklich entfernen? Highest Version Only Nur höchste Version - - All - Alle - Remove Invalid Qt Versions Ungültige Qt-Versionen entfernen @@ -49891,6 +52610,16 @@ wirklich entfernen? Warning Warnung + + All + All documentation + Alle + + + None + No documentation + Keine + Not all possible target environments can be supported due to missing compilers. Es können nicht alle Zielumgebungen unterstützt werden, da einige Compiler fehlen. @@ -50081,6 +52810,10 @@ wirklich entfernen? The kit has a Qt version, but no C++ compiler. Das Kit hat eine Qt-Version, aber keinen C++-Compiler. + + Qt version is not properly installed + Die Qt-Version ist nicht korrekt installiert + Name: Name: @@ -50113,6 +52846,10 @@ wirklich entfernen? Version: Version: + + Cannot update Qt version information from %1: %2. + Kann die Qt-Versionsinformation von %1 nicht aktualisieren: %2. + Qt version Qt-Version @@ -50233,8 +52970,13 @@ wirklich entfernen? The Qt library to use for all projects using this kit.<br>A Qt version is required for qmake-based projects and optional when using other build systems. Die zu verwendende Qt-Bibliothek für alle Projekte, die dieses Kit verwenden.<br>Für qmake-basierende Projekte ist diese Angabe erforderlich, für andere Build-Systeme optional. + + Mkspec: + Mkspec: + None + No Qt version Keine @@ -50341,6 +53083,26 @@ wirklich entfernen? Category for all other examples Andere + + Could not determine target OS + Das Zielbetriebssystem konnte nicht bestimmt werden + + + Could not determine target architecture + Die Zielarchitektur konnte nicht bestimmt werden + + + Could not determine OS sub-type + Der Betriebssystemuntertyp konnte nicht bestimmt werden + + + Error reading "%1": %2 + Fehler beim Lesen von "%1": %2 + + + Core.json not found for Qt at "%1" + Core.json wurde für Qt in "%1" nicht gefunden + QtC::RemoteLinux @@ -51052,10 +53814,6 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e Use rsync or sftp if available, but prefer rsync. Otherwise use default transfer. Verwende rsync oder sftp, sofern verfügbar, bevorzuge aber rsync. Sonst verwende Standardmethode. - - rsync is only supported for transfers between different devices. - rsync wird nur für das Übertragen zwischen unterschiedlichen Geräten unterstützt. - Command: Kommando: @@ -51160,6 +53918,10 @@ Wenn Sie noch keinen privaten Schlüssel besitzen, können Sie hier auch einen e Refusing to overwrite existing private key file "%1". Die private Schlüsseldatei "%1" wird nicht überschrieben. + + Unknown error + Unbekannter Fehler + The ssh-keygen tool at "%1" failed: %2 Das Programm "ssh-keygen" in "%1" hat einen Fehler festgestellt: %2 @@ -52242,6 +55004,94 @@ Zeile: %4, Spalte: %5 Modus umschalten + + QtC::SerialTerminal + + Unable to open port %1: %2. + Port %1 konnte nicht geöffnet werden: %2. + + + Session resumed. + Sitzung fortgesetzt. + + + Starting new session on %1... + Starte eine neue Sitzung auf %1... + + + Session finished on %1. + Sitzung auf %1 wurde beendet. + + + Session paused... + Sitzung wird pausiert... + + + No Port + Kein Port + + + Serial port error: %1 (%2) + Fehler am seriellen Port: %1 (%2) + + + Close Tab + Reiter schließen + + + Close All Tabs + Alle schließen + + + Close Other Tabs + Andere Reiter schließen + + + Type text and hit Enter to send. + Geben Sie Text ein und drücken Sie die Eingabetaste, um ihn abzuschicken. + + + Serial Terminal Window + Serielles Terminalfenster + + + Connect + Verbinden + + + Disconnect + Trennen + + + Reset Board + Board zurücksetzen + + + Add New Terminal + Neues Terminal hinzufügen + + + Serial Terminal + Serielles Terminal + + + None + Kein Zeilenende + Keins + + + LF + LF + + + CR + CR + + + CRLF + CRLF + + QtC::SilverSearcher @@ -53542,6 +56392,14 @@ Die Datei "%1" konnte nicht geöffnet werden. Clear Selection Auswahl löschen + + Delete Word Left + Wort links löschen + + + Delete Line Left + Zeile links löschen + Clear Terminal Terminal-Inhalt löschen @@ -54262,10 +57120,6 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. </ul></body></html> - - None - Keine - Follows Previous Indents Vorangehender Einrückung folgen @@ -54382,6 +57236,11 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Enable &mouse navigation &Mausnavigation aktivieren + + None + Backspace indentation: None + Keine + Enable scroll &wheel zooming Zoom mittels Maus&rad aktivieren @@ -54582,6 +57441,10 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Display file line ending Zeilenende-Kodierung anzeigen + + Display tab settings + Tabulatoreinstellungen anzeigen + &Highlight selection Aus&wahl hervorheben @@ -54698,10 +57561,6 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Tabs And Indentation Tabulatoren und Einrückung - - Tab policy: - Tabulatorverhalten: - Spaces Only Nur Leerzeichen @@ -54710,18 +57569,10 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält. Tabs Only Nur Tabulatoren - - Mixed - Gemischt - Ta&b size: Tabulator&weite: - - &Indent size: - &Einrückung: - Align continuation lines: Einrückung von Fortsetzungszeilen: @@ -54778,6 +57629,14 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen. </li> </ul></body></html> + + Auto detect + Automatisch bestimmen + + + %1 tries to detect the indentation settings based on the file contents. It will fallback to the settings below if the detection fails. + %1 versucht, die Einstellungen für die Einrückung aufgrund des Dateiinhalts zu bestimmen. Wenn die Bestimmung fehlschlägt, werden die unten angegebenen Einstellungen benutzt. + Not At All Keine Einrückung @@ -54790,6 +57649,14 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen. With Regular Indent Verwende normale Einrückung + + Default tab policy: + Vorgabe-Tabulatorverhalten: + + + Default &indent size: + Vorgabe-Einrückungst&iefe: + The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files. Die Einstellungen des Texteditors bezüglich Einrückung werden nur für Dateien verwendet, die keinen Code enthalten. Verwenden Sie die Einstellungen zu C++ und Qt Quick Coding-Style, um Einrückungen in Code-Dateien festzulegen. @@ -54864,6 +57731,34 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen. Anchor: Anker: + + Spaces + Leerzeichen + + + Tabs + Tabulatoren + + + Document Settings + Dokumenteinstellungen + + + Tab Settings + Tabulatoreinstellungen + + + Indent Size + Einrückungstiefe + + + Tab Size + Tabulatorweite + + + Global Settings... + Globale Einstellungen... + Unix Line Endings (LF) Unix-Zeilenenden (LF) @@ -55512,6 +58407,12 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen. Full Vollständig + + None + Case-sensitivity: None + Groß-/Kleinschreibung: + Keine + First Letter Erster Buchstabe @@ -56266,6 +59167,22 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. Underline color of the contexts of warning diagnostics. Unterstreichung der Kontexte von Warnungen. + + Info + Info + + + Underline color of info diagnostics. + Unterstreichung von Informationen. + + + Info Context + Informationskontext + + + Underline color of the contexts of info diagnostics. + Unterstreichung der Kontexte von Informationen. + Static Member Statische Member @@ -56547,11 +59464,35 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten. Copy Hash to Clipboard Hash in die Zwischenablage kopieren + + Blame %1 + Blame von %1 + + + Blame Parent + Blame des Eltern-Commits + + + File at %1 + Datei bei %1 + + + Log for line %1 + Log für Zeile %1 + <b>Note:</b> "%1" or "%2" is enabled in the instant blame settings. %1 and %2 are the "ignore whitespace changes" and "ignore line moves" options <b>Hinweis:</b> "%1" oder "%2" ist in den Einstellungen für Instant Blame aktiviert. + + Not Committed Yet + Noch nicht in Commit + + + Modified line in %1 + Geänderte Zeile in %1 + You Sie selbst @@ -57302,10 +60243,6 @@ Die Trace-Daten sind verloren. Invalid command Ungültiges Kommando - - Internal socket error: %1 - Interner Socketfehler: %1 - Cannot set up communication channel: %1 Es konnte kein Kommunikationskanal hergestellt werden: %1 @@ -57386,6 +60323,10 @@ Die Trace-Daten sind verloren. watch is not implemented. "watch" ist nicht implementiert. + + Device is unavailable. + Gerät ist nicht verfügbar. + Failed to watch "%1". Watch für "%1" ist fehlgeschlagen. @@ -57461,10 +60402,6 @@ Die Trace-Daten sind verloren. Die Datei "%1" konnte nicht geschrieben werden (es wurden nur %2 von %n Bytes geschrieben). - - Device is not connected - Gerät ist nicht verbunden - Failed reading file "%1": %2 Die Datei "%1" konnte nicht gelesen werden: %2 @@ -57529,6 +60466,10 @@ Die Trace-Daten sind verloren. Overwrite existing file "%1"? Soll die Datei "%1" überschrieben werden? + + File %1 does not exist. + Datei %1 existiert nicht. + Failed to set up scratch buffer in "%1". Notizbereich in "%1" konnte nicht erzeugt werden. @@ -57954,34 +60895,6 @@ in "%2" aus. Date Modified Zuletzt geändert - - Failed to start process launcher at "%1": %2 - Prozess-Launcher "%1" konnte nicht gestartet werden: %2 - - - Process launcher closed unexpectedly: %1 - Prozess-Launcher wurde unerwartet beendet: %1 - - - Socket error: %1 - Socketfehler: %1 - - - Internal protocol error: invalid packet size %1. - Interner Protokollfehler: Ungültige Paketgröße %1. - - - Internal protocol error: invalid packet type %1. - Interner Protokollfehler: Ungültiger Pakettyp %1. - - - Launcher socket closed unexpectedly. - Launcher-Socket wurde unerwartet geschlossen. - - - Process launcher socket error. - Prozess-Launcher Socketfehler. - Minimize Minimieren @@ -58122,6 +61035,10 @@ Zeilen, die mit "##" beginnen, werden als Kommentare behandelt.No Lua interface set Keine Lua-Schnittstelle eingestellt + + Remote error output was: %1 + Fehlerausgabe des Geräts: %1 + QtC::Valgrind @@ -58676,6 +61593,14 @@ Wird ein Problem gefunden, dann wird die Anwendung angehalten und kann untersuch Start a Valgrind Memcheck with GDB analysis. Starte einen Valgrind Speichertest mit GDB Analyse. + + Starting Memory Analyzer... + Starte Speicheranalyse... + + + Memory Analyzer running... + Speicheranalyse läuft... + Open Memcheck XML Log File Memcheck-XML-Logdatei öffnen @@ -58866,6 +61791,14 @@ Wird ein Problem gefunden, dann wird die Anwendung angehalten und kann untersuch Show costs relative to parent function's inclusive cost. Zeige Kosten relativ zu den einschließlichen Kosten der rufenden Funktion. + + Starting Function Profiler... + Starte Funktionsprofiler... + + + Function Profiler running... + Funktionsprofiler läuft... + Remove template parameter lists when displaying function names. Beim Anzeigen von Funktionsnamen Template-Parameterlisten entfernen. @@ -59048,6 +61981,7 @@ Check settings or ensure Valgrind is installed and available in PATH. None + Leak details: None Keine @@ -59296,6 +62230,10 @@ Check settings or ensure Valgrind is installed and available in PATH. Insert Name... Namen einfügen... + + File Error + Dateifehler + &Close &Schließen @@ -59839,6 +62777,14 @@ should a repository require SSH-authentication (see documentation on SSH and the characters Zeichen + + Show VCS file status + VCS-Status der Dateien anzeigen + + + Request file status updates from files and reflect them on the project tree. + Fragt den Status von Dateien ab und zeigt diesen im Projektbaum. + Reset VCS Cache VCS-Cache zurücksetzen @@ -60909,6 +63855,86 @@ defined in step size. + + ReflectionProbeSection + + Reflection Probe + + + + Box Size + + + + Sets the reflection probe box size. + + + + Box Offset + + + + Sets the reflection probe box position relative to the probe position. + + + + Parallax Correction + + + + Reflection maps are considered to be at infinite distance by default. This is unsuitable for indoor area as it produces parallax issues. +Setting this property to true corrects the cubemap by taking the camera position and the box's dimension into account. + + + + Debug View + Debugansicht + + + Enables rendering a wireframe to visualize the reflection probe box. + + + + Clear Color + + + + Sets the color that will be used to clear the reflection map. + + + + Reflection Map Quality + + + + Sets the quality of the reflection map. + + + + Refresh Mode + + + + Sets how often the reflection map will be updated. + + + + Time Slicing + + + + Sets how often the faces of the reflection cube map are updated. + + + + Override Texture + + + + Sets an override texture to use for the reflection map instead of rendering the scene. + + + RenameFolderDialog @@ -60936,6 +63962,29 @@ defined in step size. Abbrechen + + Repeater3DSection + + Repeater + + + + Model + Modell + + + The model providing data for the repeater. This can simply specify the number of delegate instances to create or it can be bound to an actual model. + + + + Delegate + + + + The delegate provides a template defining each object instantiated by the repeater. + + + RepeaterSpecifics @@ -60960,27 +64009,37 @@ defined in step size. - ResetEdit3DColorsAction + ResourceLoaderSection - Reset Colors + Resource Loader - Reset the background color and the color of the grid lines of the 3D view to the default values. + Geometries - - - ResetView - Reset View - Ansicht zurücksetzen + A list of custom geometries to be loaded and cached. + - - - RotateToolAction - Activate Rotate Tool + Mesh Sources + + + + A list of mesh assets to be loaded and cached. + + + + Currently only editable in QML. + + + + Textures + + + + A list of textures to be loaded and cached. @@ -61132,9 +64191,241 @@ defined in step size. - ScaleToolAction + SceneEnvironmentSection - Activate Scale Tool + Scene Environment + + + + Background Mode + + + + Sets if and how the background of the scene should be cleared. + + + + Clear Color + + + + Sets which color will be used to clear the viewport when using SceneEnvironment.Color for the backgroundMode property. + + + + Skybox Cube Map + + + + Sets a cubemap to be used as a skybox when the background mode is SkyBoxCubeMap. + + + + Skybox Blur + + + + Sets how much to blur the skybox when using SceneEnvironment.SkyBox for the backgroundMode property. + + + + Effects + + + + Post Processing effects applied to this scene. + + + + Tonemap Mode + + + + Sets how colors are tonemapped before rendering. + + + + Fog + + + + Settings for Fog applied to the scene. + + + + Antialiasing + Kantenglättung + + + Antialiasing Mode + + + + Sets the antialiasing mode applied to the scene. + + + + Antialiasing Quality + + + + Sets the level of antialiasing applied to the scene. + + + + Specular AA + + + + Enables specular antialiasing. + + + + Temporal AA + + + + Enables temporal antialiasing using camera jittering and frame blending. + + + + Temporal AA Strength + + + + Sets the amount of temporal antialiasing applied. + + + + Ambient Occlusion + + + + Enabled + Aktiviert + + + Enables ambient occlusion. + + + + Strength + + + + Sets the amount of ambient occulusion applied. + + + + Distance + + + + Sets roughly how far ambient occlusion shadows spread away from objects. + + + + Softness + + + + Sets how smooth the edges of the ambient occlusion shading are. + + + + Sample Rate + + + + Sets ambient occlusion quality (more shades of gray) at the expense of performance. + + + + Bias + + + + Sets a cutoff distance preventing objects from exhibiting ambient occlusion at close distances. + + + + Dither + + + + Enables scattering the edges of the ambient occlusion shadow bands to improve smoothness. + + + + Image Based Lighting + + + + HDR Image + + + + Sets an image to use to light the scene, either instead of, or in addition to standard lights. + + + + Exposure + + + + Sets the amount of light emitted by the light probe. + + + + Horizon + + + + Sets the light probe horizon. When set, adds darkness (black) to the bottom of the environment, forcing the lighting to come predominantly from the top of the image. + + + + Orientation + Ausrichtung + + + Sets the orientation of the light probe. + + + + Advanced + Erweitert + + + Enable Depth Test + + + + Enables depth testing. Disable to optimize render speed for layers with mostly transparent objects. + + + + Enable Depth Prepass + + + + Enables draw depth buffer as a separate pass. Disable to optimize render speed for layers with low depth complexity. + + + + Debug Settings + + + + Additional render settings for debugging scenes. + + + + Light Mapper + + + + Sets the light mapper object for the scene. @@ -61197,97 +64488,110 @@ This is used for calculating the total implicit size. - SelectBackgroundColorAction + SetUniformValueSection - Select Background Color + Set Uniform Value - Select a color for the background of the 3D view. + Target + Ziel + + + Sets the name of the uniform to change value for a pass. + + + + Value + Wert + + + Sets the value of the uniform. - SelectGridColorAction + ShaderSection - Select Grid Color + Shader - Select a color for the grid lines of the 3D view. + Source + + + + Sets the shader source code. + + + + Stage + Phase + + + Sets the shader stage. - SelectionModeToggleAction + ShadowSection - Toggle Group/Single Selection Mode + Shadows + + + + Casts Shadow + + + + Enables shadow casting for this light. + + + + Amount + + + + Sets how dark the cast shadows should be. + + + + Filter + Filter + + + Sets how much blur is applied to the shadows. + + + + Quality + + + + Sets the quality of the shadow map created for shadow rendering. + + + + Bias + + + + Sets a slight offset to avoid self-shadowing artifacts. + + + + Far Distance + + + + Sets the maximum distance for the shadow map. - ShowCameraFrustumAction + SkinSection - Always Show Camera Frustums - - - - Toggle between always showing the camera frustum visualization and only showing it when the camera is selected. - - - - - ShowGridAction - - Show Grid - - - - Toggle the visibility of the helper grid. - - - - - ShowIconGizmoAction - - Show Icon Gizmos - - - - Toggle the visibility of icon gizmos, such as light and camera icons. - - - - - ShowLookAtAction - - Show Look-at - - - - Toggle the visibility of the edit camera look-at indicator. - - - - - ShowParticleEmitterAction - - Always Show Particle Emitters And Attractors - - - - Toggle between always showing the particle emitter and attractor visualizations and only showing them when the emitter or attractor is selected. - - - - - ShowSelectionBoxAction - - Show Selection Boxes - - - - Toggle the visibility of selection boxes. + Skin @@ -61414,13 +64718,6 @@ This is used for calculating the total implicit size. Legt fest, ob der aktuelle Wert aktualisiert werden soll, während der Benutzer den Slider verschiebt, oder nur aktualisiert wird, wenn er losgelassen wird. - - SnapConfigAction - - Open snap configuration dialog - - - SnapConfigurationDialog @@ -61488,13 +64785,6 @@ This is used for calculating the total implicit size. Alle zurücksetzen - - SnapToggleAction - - Toggle snapping during node drag - - - SocialButton @@ -61612,6 +64902,349 @@ A near field gain of 1 will raise the volume of the sound signal by approx 20 dB + + SpecularGlossyMaterialSection + + Specular Glossy Material + + + + Alpha Mode + + + + Sets the mode for how the alpha channel of material color is used. + + + + Alpha Cutoff + + + + Sets the cutoff value when using the Mask alphaMode. + + + + Blend Mode + + + + Sets how the colors of the model rendered blend with those behind it. + + + + Lighting + + + + Sets which lighting method is used when generating this material. + + + + Albedo + + + + Color + Farbe + + + Sets the albedo color of the material. + + + + Map + + + + Sets a texture used to set the albedo color of the material. + + + + Specular + + + + Sets the specular color of the material. + + + + Sets a texture used to set the specular color of the material. + + + + Glossiness + + + + Amount + + + + Sets the size of the specular highlight generated from lights, and the clarity of reflections in general. + + + + Sets a texture to control the glossiness of the material. + + + + Channel + + + + Sets the texture channel used to read the glossiness value from glossinessMap. + + + + Normal + Normal + + + Sets an RGB image used to simulate fine geometry displacement across the surface of the material. + + + + Strength + + + + Sets the amount of simulated displacement for the normalMap. + + + + Occlusion + + + + Sets the factor used to modify the values from the occlusionMap texture. + + + + Sets a texture used to determine how much indirect light the different areas of the material should receive. + + + + Sets the texture channel used to read the occlusion value from occlusionMap. + + + + Opacity + Deckkraft + + + Sets the opacity of just this material, separate from the model. + + + + Sets a texture used to control the opacity differently for different parts of the material. + + + + Sets the texture channel used to read the opacity value from opacityMap. + + + + Emissive Color + + + + Sets a texture to be used to set the emissive factor for different parts of the material. + + + + Factor + + + + Sets the color of self-illumination for this material. + + + + Height + Höhe + + + Sets the factor used to modify the values from the heightMap texture. + + + + Sets a texture used to determine the height the texture will be displaced when rendered through the use of Parallax Mapping. + + + + Sets the texture channel used to read the height value from heightMap. + + + + Min Map Samples + + + + Sets the minimum number of samples used for performing Parallax Occlusion Mapping using the heightMap. + + + + Max Map Samples + + + + Sets the maximum number of samples used for performing Parallax Occlusion Mapping using the heightMap. + + + + Clearcoat + + + + Sets the intensity of the clearcoat layer. + + + + Sets a texture used to determine the intensity of the clearcoat layer. + + + + Sets the texture channel used to read the intensity from clearcoatMap. + + + + Roughness Amount + + + + Sets the roughness of the clearcoat layer. + + + + Roughness Map + + + + Sets a texture used to determine the roughness of the clearcoat layer. + + + + Roughness Channel + + + + Sets the texture channel used to read the roughness from clearcoatRoughnessMap. + + + + Normal Map + + + + Sets a texture used as a normalMap for the clearcoat layer. + + + + Refraction + + + + Transmission Factor + + + + Sets the base percentage of light that is transmitted through the surface. + + + + Transmission Map + + + + Sets a texture that contains the transmission percentage of a the surface. + + + + Transmission Channel + + + + Sets the texture channel used to read the transmission percentage from transmissionMap. + + + + Thickness Factor + + + + Sets the thickness of the volume beneath the surface in model coordinate space. + + + + Thickness Map + + + + Sets a texture that contains the thickness of a the material volume. + + + + Thickness Channel + + + + Sets the texture channel used to read the thickness amount from thicknessMap. + + + + Attenuation Color + + + + Sets the color that white lights turn into due to absorption when reaching the attenuation distance. + + + + Attenuation Distance + + + + Sets the average distance in world space that light travels in the medium before interacting with a particle. + + + + Advanced + Erweitert + + + Vertex Colors + + + + Sets whether vertex colors are used to modulate the base color. + + + + Enabled + Aktiviert + + + Disabled + Deaktiviert + + + Point Size + + + + Sets the size of the points rendered, when the geometry is using a primitive type of points. + + + + Line Width + + + + Sets the width of the lines rendered, when the geometry is using a primitive type of lines or line strips. + + + SpinBoxSpecifics @@ -61668,6 +65301,25 @@ it reaches the start or end. + + SplitButton + + Packing + + + + Sending + + + + Starting + + + + Manage run targets + + + SplitViewSpecifics @@ -61684,9 +65336,49 @@ it reaches the start or end. - SplitViewToggleAction + SpotLightSection - Toggle Split View On/Off + Spot Light + + + + Constant Fade + + + + Sets the constant attenuation of the light. + + + + Linear Fade + + + + Sets the linear attenuation of the light. + + + + Quadratic Fade + + + + Sets the quadratic attenuation of the light. + + + + Cone Angle + + + + Sets the angle of the light cone. + + + + Inner Cone Angle + + + + Sets the angle of the inner light cone. @@ -62089,13 +65781,6 @@ it reaches the start or end. - - SubComponentManager::parseDirectory - - Invalid meta info - Ungültige Metainformation - - SwipeViewSpecifics @@ -62123,17 +65808,6 @@ it reaches the start or end. Ausrichtung - - SyncEnvBackgroundAction - - Use Scene Environment - - - - Sets the 3D view to use the Scene Environment color or skybox as background color. - - - TabBarSpecifics @@ -62220,25 +65894,6 @@ This is used for calculating the total implicit size. - - TemplateMerge - - Merge With Template - - - - &Browse... - &Auswählen... - - - Template: - Template: - - - Browse Template - - - TestControlPanel @@ -62665,13 +66320,6 @@ This is used for calculating the total implicit size. - - TextTool - - Text Tool - Textwerkzeug - - TextureBrowserContextMenu @@ -62718,6 +66366,199 @@ This is used for calculating the total implicit size. + + TextureEditorTopSection + + Name + Name + + + Texture name + + + + + TextureInputSection + + Texture Input + + + + Texture + + + + Sets the input texture. + + + + Enabled + Aktiviert + + + Sets the texture enabled state. + + + + + TextureSection + + Texture + + + + Source + + + + Sets the location of an image file containing the data used by the texture. + + + + Source Item + Quell-Item + + + Sets an item to be used as the source of the texture. + + + + Texture Data + + + + Sets a reference to a TextureData component which defines the contents and properties of raw texture data. + + + + Scale + Skalieren + + + Sets how to scale the U texture coordinate when mapping to UV coordinates of a mesh. + + + + Sets how to scale the V texture coordinate when mapping to UV coordinates of a mesh. + + + + Flip V + + + + Sets the use of the vertically flipped coordinates. + + + + Flip U + + + + Sets the use of the horizontally flipped texture coordinates. + + + + Auto Orientation + + + + Sets if a texture transformation, such as flipping the V texture coordinate, is applied automatically for textures where this is typically relevant. + + + + Texture Mapping + + + + Sets which method of mapping to use when sampling this texture. + + + + U Tiling + + + + Sets how the texture is mapped when the U scaling value is greater than 1. + + + + V Tiling + + + + Sets how the texture is mapped when the V scaling value is greater than 1. + + + + UV Index + + + + Sets the UV coordinate index used by this texture. + + + + UV Rotation + + + + Sets the rotation of the texture around the pivot point. + + + + Position + Position + + + Sets the U coordinate mapping offset from left to right. + + + + Sets the V coordinate mapping offset from bottom to top. + + + + Pivot + + + + Sets the pivot U position. + + + + Sets the pivot V position. + + + + Generate Mipmaps + + + + Sets if mipmaps are generated for textures that do not provide mipmap levels themselves. + + + + Mag Filter + + + + Sets how the texture is sampled when a texel covers more than one pixel. + + + + Min Filter + + + + Mip Filter + + + + Sets how the texture mipmaps are sampled when a texel covers less than one pixel. + + + ThumbnailDelegate @@ -63067,9 +66908,41 @@ Are you sure you want to remove it? - VisibilityTogglesAction + View3DSection - Visibility Toggles + View3D + View3D + + + Camera + + + + Sets which camera is used to render the scene. + + + + Environment + Umgebung + + + Sets the scene environment used to render the scene. + + + + Import Scene + + + + Sets the reference node of the scene to render to the viewport. + + + + Render Format + + + + Sets the format of the backing texture. @@ -63110,14 +66983,6 @@ Are you sure you want to remove it? WidgetPluginManager - - Failed to create instance of file "%1": %2 - Es konnte keine Instanz der Datei "%1" erzeugt werden: %2 - - - Failed to create instance of file "%1". - Es konnte keine Instanz der Datei "%1" erzeugt werden. - File "%1" is not a Qt Quick Designer plugin. Die Datei "%1" ist kein Qt Quick Designer-Plugin. @@ -63205,6 +67070,289 @@ Are you sure you want to remove it? + + itemlibrary + + Item + Element + + + Rectangle + + + + Text + Text + + + Text Edit + Text Edit + + + Text Input + Texteingabe + + + Mouse Area + Mouse Area + + + Image + Bild + + + Animated Image + + + + Animated Sprite + + + + Border Image + Border Image + + + Flickable + Flickable + + + Grid View + Gitteranzeige + + + List View + List View + + + Path View + Path View + + + Focus Scope + + + + Column + Spalte + + + Row + Zeile + + + Grid + Gitter + + + Flow + Anordnung + + + Property + Eigenschaft + + + Pause + + + + Sequential + + + + Parallel + Parallel + + + Script + + + + Color + Farbe + + + Number + + + + Loader + + + + Repeater + + + + Busy Indicator + + + + Button + + + + Check Box + Checkbox + + + Check Delegate + + + + Combo Box + Combobox + + + Control + + + + Delay Button + + + + Dial + + + + Frame + Frame + + + Group Box + + + + Item Delegate + + + + Label + + + + Page + + + + Page Indicator + + + + Pane + + + + Progress Bar + + + + Radio Button + Radioknopf + + + Radio Delegate + + + + Range Slider + + + + Round Button + + + + Slider + + + + Spin Box + + + + Scroll View + + + + Stack View + + + + Swipe Delegate + + + + Swipe View + + + + Switch + + + + Switch Delegate + + + + Tab Bar + + + + Tab Button + + + + Text Area + Textfeld + + + Text Field + Textzeile + + + Tool Bar + + + + Tool Button + + + + Tool Separator + + + + Tumbler + + + + Views + + + + Positioner + + + + Animation + Animation + + + Instancers + + + + Basic + Grundlegend + + + Controls 2 + + + main diff --git a/share/qtcreator/translations/qtcreator_fr.ts b/share/qtcreator/translations/qtcreator_fr.ts index 2892664098f..e065e54b672 100644 --- a/share/qtcreator/translations/qtcreator_fr.ts +++ b/share/qtcreator/translations/qtcreator_fr.ts @@ -1,6 +1,6 @@ - + AbstractButtonSection @@ -73,26 +73,51 @@ - AddImageToResources + AbstractLightSection - File Name - Nom du fichier + Light + J'hésite entre éclairage et lumière. Il me semble ici que cela correspond à la configuration d'une lumière particulière + Lumière - Size - Taille + Color + Couleur - Add Resources - Ajouter des ressources + Sets the color applied to models illuminated by this light. + Définit la couleur appliquée sur les modèles éclairés par cette lumière. - &Browse... - &Parcourir… + Ambient Color + Couleur ambiante - Target Directory - Répertoire cible + Sets the ambient color applied to materials before being lit by this light. + Définit la couleur ambiante appliquée sur les modèles avant qu'ils ne soient éclairés par la lumière. + + + Brightness + Luminosité + + + Sets an overall multiplier for this light’s effects. + Définit un multiplicateur global aux effets de cette lumière. + + + Scope + Contexte + + + Sets a Node in the scene to be the scope of this light. Only that node and it's children are affected by this light. + Définit un nœud de la scène comme contexte pour cette lumière. Seuls ce nœud et ses enfants sont affectés par cette lumière. + + + Bake Mode + Mode de pré-calcul + + + Controls if the light is active in baked lighting, such as when generating lightmaps. + Contrôle si la lumière est active dans le pré-calcul de l'éclairage, notamment lors de la génération de la texture des lumières. @@ -102,6 +127,134 @@ Sélectionner un module à ajouter + + AddPropertyForm + + Integer + Entier + + + Float + Flottant + + + Boolean + Booléen + + + Vector 2D + Vecteur 2D + + + Vector 3D + Vecteur 3D + + + Vector 4D + Vecteur 4D + + + Color + Couleur + + + Color channel + Canal de couleur + + + Texture sampler + Échantillonneur de texture + + + Define (integer) + Je doute, mais je ne trouve pas mieux + Définition (entier) + + + Define (boolean) + Définition (booléen) + + + Add property + Ajouter une propriété + + + Edit property + Modifier une propriété + + + Display Name + Nom d'affichage + + + Sets the display name of the property. + Définit le nom à afficher pour cette propriété. + + + Display name of the property has to be unique. + Le nom à afficher de la propriété doit être unique. + + + Uniform Name + Nom de variable uniforme + + + Sets the uniform name of the property. + Définit le nom de la variable uniforme pour cette propriété. + + + Uniform name has to be unique. + Le nom de la variable uniforme doit être unique. + + + Description + Description + + + Sets the property description. + Définit la description de la propriété. + + + Type + Type + + + Sets the property type. + Définit le type de la propriété. + + + Default Value + Valeur par défaut + + + Sets the default value of the property. + Définit la valeur par défaut de la propriété. + + + Min Value + Valeur minimale + + + Sets the minimum value of the property. + Définit la valeur minimale de la propriété. + + + Max Value + Valeur maximale + + + Sets the maximum value of the property. + Définit la valeur maximale de la propriété. + + + Cancel + Annuler + + + Apply + Appliquer + + AddSignalHandlerDialog @@ -188,13 +341,6 @@ Définit la position de la ligne de base du composant en coordonnées locales. - - AlignCamerasToViewAction - - Align Cameras to View - Aligner les caméras à la vue - - AlignDistributeSection @@ -310,13 +456,6 @@ - Un composant de la sélection utilise des ancres. - - AlignViewToCameraAction - - Align View to Camera - Aligner la vue à la caméra - - AmbientSoundSection @@ -958,25 +1097,6 @@ Une valeur positive augmente la réverbération pour les hautes fréquences et En sourdine - - BackgroundColorMenuActions - - Background Color Actions - Actions sur la couleur d’arrière-plan - - - - BakeLights - - Bake Lights - Bake -> inspiré de https://docs.blender.org/manual/fr/3.6/render/cycles/baking.html - Pré-calculer les lumières - - - Bake lights for the current 3D scene. - Pré-calculer les lumières pour la scène 3D actuelle. - - BakeLightsProgressDialog @@ -1270,6 +1390,10 @@ Le chemin doit être relatif. Qt Design Studio Qt Design Studio + + Lite QML Designer + Lite QML Designer + Community Edition Édition communautaire @@ -1283,6 +1407,85 @@ Le chemin doit être relatif. Édition professionnelle + + BufferInputSection + + Buffer Input + Tampon d'entrée + + + Buffer + Tampon + + + Sets input buffer for a pass. + Définit un tampon d'entrée pour une passe. + + + Parameter + Paramètre + + + Sets buffer input buffer name in the shader. + Définit le nom du tampon d'entrée dans le shader. + + + + BufferSection + + Buffer + Tampon + + + Name + Nom + + + Sets the buffer name. + Définit le nom du tampon. + + + Format + Format + + + Sets the format of the buffer. + Définit le format du tampon. + + + Filter + Filtre + + + Sets the texture filter for the buffer. + Définit le filtre de texture pour le tampon. + + + Coordinate Operation + Opération sur les coordonnées + + + Sets the texture coordinate operation for the buffer. + Définit l'opération sur les coordonnées de texture du tampon. + + + Allocation Flags + Options? + Flags d'allocation + + + Sets the allocation flags for the buffer. + Définit les options d'allocation pour ce tampon. + + + Size Multiplier + Multiplicateur de taille + + + Sets the size multiplier for the buffer. + Définit le multiplicateur de taille pour ce tampon. + + BusyIndicatorSpecifics @@ -1397,41 +1600,34 @@ Le chemin doit être relatif. - CameraActionsModel + CameraSection - Hide Camera View - Cacher la vue de la caméra + Camera + Caméra - Never show the camera view. - Ne jamais montrer la vue de la caméra. + Frustum Culling + Élimination hors champ - Show Selected Camera View - Afficher la vue de la caméra sélectionnée + When this property is true, objects outside the camera frustum will be culled, meaning they will not be passed to the renderer. + Lorsque cette propriété est à vrai, les objets hors du champ de la caméra seront éliminés : ils ne seront pas pris en compte lors du rendu. - Show the selected camera in the camera view. - Affiche la caméra sélectionnée dans la vue. + LOD Bias + Biais de LOD - Always Show Camera View - Toujours montrer la vue de la caméra + This property changes the threshold for when the automatic level of detail meshes get used. + Cette propriété change le seuil à partir duquel le niveau de détail automatique des modèles est utilisé. - Show the last selected camera in the camera view. - Affiche la dernière caméra sélectionnée dans la vue de la caméra. + Look-at Node + Nœud pointé - Camera view settings - Paramètres de la vue de la caméra - - - - CameraSpeedConfigAction - - Open camera speed configuration dialog - Ouvrir la fenêtre de configuration de la vitesse de la caméra + Sets the look-at node for the camera. + Définit le nœud pointé par la caméra. @@ -1463,13 +1659,6 @@ Le chemin doit être relatif. <p>Vous n'avez qu'un contrôle partiel en mode survol. Pour un contrôle complet, veuillez activer les <span style="text-decoration: underline">paramètres d'accessibilité</span></p> - - CameraToggleAction - - Toggle Perspective/Orthographic Camera Mode - Activer/désactiver le mode perspective/orthographique de la caméra - - ChangeStyleWidgetAction @@ -1657,6 +1846,62 @@ Le chemin doit être relatif. Appliquer + + Coco + + Coco + Coco + + + + CodeEditorFooter + + Live Update + Mise à jour instantanée + + + Close + Fermer + + + Apply + Appliquer + + + + CodeEditorHeader + + Columns + Colonnes + + + Open Effect Composer Help. + Ouvrir l'aide du compositeur d'effet. + + + + CodeEditorTabs + + Fragment Shader + Certains utilisent le terme de nuanceur (pour shader). Personnellement, je ne l'ai jamais adopté. (https://fr.wikipedia.org/wiki/Shader#Fragment_shaders_ou_Pixel_shaders) + Fragment shader + + + Vertex Shader + Vertex shader + + + + CodeEditorUniformsView + + Insert into the editor cursor position. + Insérer dans l'éditeur à la position du curseur. + + + Copy uniform name to clipboard. + Copier le nom de la variable uniforme dans le presse-papier. + + ColorAnimationSpecifics @@ -1802,7 +2047,7 @@ Le chemin doit être relatif. Layout direction - Direction du layout + Direction de l'agencement Sets the direction of the item flow in the <b>Column Layout</b>. @@ -2037,6 +2282,23 @@ Cela ne peut être annulé. Annuler + + ConfirmPropertyRemoveForm + + The property is in use in the shader code. +Are you sure you want to remove it? + La propriété est utilisée dans le code du shader. +Voulez-vous vraiment supprimer cette propriété ? + + + Cancel + Annuler + + + Remove + Supprimer + + ConnectionsDialog @@ -2424,18 +2686,10 @@ Cela ne peut être annulé. <b>Content Library</b> is not supported in Qt5 projects. La <b>bibliothèque de contenus</b> n'est pas prise en charge dans les projets Qt5. - - To use <b>Content Library</b>, first add the QtQuick3D module in the <b>Components</b> view. - Pour utiliser la <b>bibliothèque de contenus</b>, ajoutez d'abord le module QtQuick3D dans la vue <b>Composants</b>. - <b>Content Library</b> is disabled inside a non-visual component. La <b>bibliothèque de contenus</b> est désactivée pour un composant non visible. - - There are no user assets in the <b>Content Library</b>. - Il n'y a pas de ressources de l'utilisateur dans la <b>bibliothèque de contenus</b>. - ContextMenu @@ -2515,6 +2769,413 @@ Cela ne peut être annulé. Molette + + CustomMaterialSection + + Custom Material + Matériau personnalisé + + + Shading Mode + Option pouvant être unshaded (c-à-d: sans les effets de lumières) et shaded (avec les lumières) + Mode de rendu + + + Sets the material type. +Unshaded materials are not affected by the environment (for example, lights). + Les différents mode des options ne semblent pas être traduits + Définit le type de matériau. +Les matériaux « unshaded » ne sont pas affectés par l'environnement (par exemple, les lumières). + + + Vertex Shader + Vertex shader + + + Sets the path to the vertex shader source file. + Définit le chemin menant au fichier source du vertex shader. + + + Fragment Shader + Fragment shader + + + Sets the path to the fragment shader source file. + Définit le chemin menant au fichier source du fragment shader. + + + Source Blend + On parle de blend, le mélange entre source et destination (autrement dit, cela permet de faire de la transparence). + Fondu de la source + + + Sets the source blend factor. + Définit le mode de fondu de la source. + + + Destination Blend + Fondu de la destination + + + Sets the destination blend factor. + Définit le mode de fondu de destination. + + + Always Dirty + sale ? taché ? + Toujours impropre + + + Sets the material to refresh every time it is used by QtQuick3D. + Détermine si le matériau doit être rafraîchit à chaque fois qu'il est utilisé par QtQuick3D. + + + Line Width + Largeur de ligne + + + Sets the width of the lines when the geometry is using a primitive type of lines or line strips. + Définit la largeur des lignes lorsque la géométrie utilise un type de primitive ligne ou ensemble de lignes. + + + + DSStore + + Can not locate design system module + Design system ? + Impossible de trouver le module de l'apparence système + + + Can not read Design System qmldir + Impossible de lire le fichier qmldir pour l'apparence système + + + Can not find component file. + Impossible de trouve le fichier du composant. + + + Can not create design system module directory %1. + Impossible de créer le répertoire du module de l'apparance système %1. + + + Can not write design system qmldir. %1 + Impossible d'écrire le fichier qmldir de l'apparance système. %1 + + + Can not write theme interface %1. +%2 + Impossible d'écrire le thème de l'interface %1. +%2 + + + Can not write collection %1. +%2 + Impossible d'écrire la collection %1. +%2 + + + + DSThemeManager + + No themes objects in the collection. + Aucun élément de thème dans la collection. + + + + DebugSettingsSection + + Debug Settings + Paramètres de débogage + + + Enable Wireframe + Activer le rendu en fil de fer + + + Meshes will be rendered as wireframes. + Les modèles seront affichés en fil de fer. + + + Override Mode + Surcharge ? Mode de rendu ? + Écrasement du mode + + + Changes how all materials are rendered to only reflect a particular aspect of the overall rendering process + Modifie le rendu des matériaux afin d'afficher un aspect particulier du processus de rendu + + + + DefaultMaterialSection + + Default Material + Matériau par défaut + + + Lighting + Ici, je pense que c'est lié au calcul d'une ou plusieurs lumière pour ce matériau. Donc éclairage. + Éclairage + + + Sets the lighting method. NoLighting is faster while FragmentLighting +calculates diffuse and specular lighting for each rendered pixel. + Définit la méthode de rendu des lumières. « NoLighting » est plus rapide alors que « FragmentLighting » +calcule la lumière diffuse et spéculaire pour chaque pixel dessiné. + + + Blend Mode + Mode de fondu + + + Sets how the colors of the model blend with colors behind it. + Définit comment les couleurs du modèle se mélangent avec les couleurs derrière. + + + Enable Vertex Colors + Activer les couleurs des sommets + + + Sets the material to use vertex colors from the mesh. +Vertex colors are multiplied with any other color for the material. + Définit si le matériau utilise les couleurs de sommet du modèle. +Les couleurs de sommet sont multipliées avec les autres couleurs du matériau. + + + Point Size + Taille de point + + + Sets the size of the points rendered when the geometry is using a primitive type of points. + A revoir + Définit la taille des points dessinés lorsque la géométrie utiliser le type de primitive points. + + + Line Width + Largeur de ligne + + + Sets the width of the lines rendered when the geometry is using a primitive type of lines or line strips. + Définir la largeur des lignes dessinées lorsque la géométrie utilise un type de primitive lignes ou ensemble de lignes. + + + Diffuse + Diffuse + + + Color + Couleur + + + Sets the base color. + Définit la couleur de base. + + + Map + Texture + + + Sets a texture to apply to the material. + Définit la texture à appliquer au matériau. + + + Emissive + Émissive + + + Factor + Coefficient + + + Sets the color of self-illumination. +The default value (0, 0, 0) means no self-illumination. + Définit la couleur de la lumière émie par le matériau lui-même. +La valeur par défaut (0, 0, 0) correspond à aucune émission. + + + R + R + + + G + V + + + B + B + + + Sets a texture to define the intensity of the emissive color. + Définit une texture déterminant l'intensité de la couleur émise. + + + Specular + Spéculaire + + + Tint + Teinte + + + Sets the color tint for the specular reflections. +Use white for no color effect. + Définit la couleur de teinte pour les réflexions spéculaires. +Utiliser le blanc pour un résultat neutre. + + + Amount + Quantité + + + Sets the strength of specularity (highlights and reflections). +The default value (0) disables specularity. + Définit la force de l'effet spéculaire (surbrillance et reflets). +La valeur par défaut (0) désactive l'effet. + + + Sets a texture to define the amount and the color of specularity. + spécularity + Définit une texture déterminant l'intensité et la couleur de l'effet spéculaire. + + + Model + Modèle + + + Sets the functions to calculate specular highlights for lights in the scene. +Default is faster while KGGX is more physically accurate. + Définit les fonctions pour calculer les effets spéculaires pour les lumières dans la scène. +La valeur par défaut est plus rapide alors que KGGX est plus exacte sur le plan physique. + + + Reflection Map + Texture de réflexion + + + Sets a texture to define specular highlights. + Définit la texture déterminant les reflets de l'effet spéculaire. + + + Index of Refraction + Indice de réfraction + + + Sets the angles of reflections affected by the fresnel power. + Définit les angles de réflexion impactés par l'effet Fresnel. + + + Fresnel Power + Effet Fresnel + + + Sets the strength of the fresnel power. The default value (0) means no fresnel power while a higher value +decreases head-on reflections (looking directly at the surface) while maintaining reflections seen at grazing angles. + Définit la force de l'effet Fresnel. La valeur par défaut (0) signifie l'absence d'effet Fresnel alors qu'une plus grande valeur +diminue les réflexions directes (lorsque l'on regarde directement la surface) tout en gardant des réflexions sur le côté. + + + Specular Roughness + Rugosité spéculaire + + + Sets the size of the specular highlight generated from lights and the clarity of reflections in general. + Définit la taille de l'effet spéculaire généré par les lumières et, de manière générale, la clarté de la réflexion. + + + Roughness Map + Texture de rugosité + + + Sets a texture to define the specular roughness. + Définit une texture pour déterminer la rugosité de l'effet spéculaire. + + + Roughness Channel + Canal de rugosité + + + Sets the texture channel to read the roughness value from roughnessMap. + enlever "de roughnessMap" ? + Définit le canal de la texture à partir duquel lire la valeur de rugosité de roughnessMap. + + + Opacity + Opacité + + + Sets the opacity of just this material, separate from the model. + Définit l'opacité propre à ce matériau, indépendamment du modèle. + + + Sets a texture to control the opacity differently for different parts. + Définit une texture déterminant une opacité pouvant varier suivant les régions. + + + Channel + Canal + + + Sets the texture channel to read the opacity value from the opacity map. + Définit le canal de la texture à partir duquel lire la valeur d'opacité. + + + Bump/Normal + Relief/Normales + + + Bump Amount + Quantité de relief + + + Sets the amount of simulated displacement for the bump map or normal map. + Définit la quantité de relief simulé pour la texture de relief ou la texture des normales. + + + Bump Map + Texture de relief + + + Sets a grayscale texture to simulate fine geometry displacement across the surface. + Définit une texture en nuance de gris pour simuler un relief fin sur la surface de la géométrie. + + + Normal Map + Texture de normales + + + Sets a image to simulate fine geometry displacement across the surface. + Définit une texture pour simuler une géométrie fine sur la surface. + + + Translucency + Translucidité + + + Falloff + Diminution + + + Sets the amount of falloff for the translucency based on the angle of the normals of the object to the light source. + Définit la diminution de la translucidité suivant l'angle entre la normale de l'objet et la source de lumière. + + + Diffuse Light Wrap + Enveloppe de lumière diffuse + + + Sets the amount of light wrap for the translucency map. +A value of 0 will not wrap the light at all, while a value of 1 will wrap the light all around the object. + Définit la quantité d'enveloppe pour la texture de translucidité. +Une valeur de 0 n'enveloppe pas la lumière, tandis qu'une valeur de 1 va envelopper toutes les lumières autour de l'objet. + + + Sets a grayscale texture to control how much light can pass through the material from behind. + Définit une texture en nuance de gris contrôlant la quantité de lumière traversant l'objet depuis l'arrière. + + + Sets the texture channel to read the translucency value from translucencyMap. + Définit le canal de texture à partir duquel lire la valeur de translucidité. + + DelayButtonSpecifics @@ -2553,25 +3214,6 @@ Cela ne peut être annulé. Annuler - - DesignerActionManager - - Document Has Errors - Le document contient des erreurs - - - The document which contains the list model contains errors. So we cannot edit it. - Le document qui contient le modèle de liste contient des erreurs. Nous ne pouvons donc pas le modifier. - - - Document Cannot Be Written - Le document ne peut être écrit - - - An error occurred during a write attemp. - Une erreur s’est produite lors d’une tentative d’écriture. - - Details @@ -2598,6 +3240,10 @@ Cela ne peut être annulé. Use Qt Virtual Keyboard Utiliser le clavier virtuel Qt + + Enable Cmake Generation + Activer la génération CMake + Target Qt Version: Version de Qt cible : @@ -2815,10 +3461,34 @@ définit par la<b>taille du pas</b>. - EditLightToggleAction + Edit3DCameraViewAction - Toggle Edit Light On/Off - Activer/désactiver l'édition de la lumière + Camera view mode + Mode de vue de la caméra + + + Hide Camera View + Cacher la vue de la caméra + + + Never show the camera view. + Ne jamais montrer la vue de la caméra. + + + Show Selected Camera View + Afficher la vue de la caméra sélectionnée + + + Show the selected camera in the camera view. + Affiche la caméra sélectionnée dans la vue. + + + Always Show Camera View + Toujours montrer la vue de la caméra + + + Show the last selected camera in the camera view. + Affiche la dernière caméra sélectionnée dans la vue de la caméra. @@ -2841,85 +3511,6 @@ définit par la<b>taille du pas</b>. Le compositeur d'effet est désactivé dans les projets MCU - - EffectComposer::EffectComposerModel - - Animation - Animation - - - Running - En cours d'exécution - - - Set this property to animate the effect. - Définir cette propriété permet d'animer l'effet. - - - Time - Temps - - - This property allows explicit control of current animation time. - À relire - Cette propriété permet le contrôle explicite du temps de l'animation. - - - Frame - Trame - - - This property allows explicit control of current animation frame. - À relire - Cette propriété permet le contrôle explicite de la trame de l'animation. - - - General - Général - - - Extra Margin - Marge supplémentaire - - - This property specifies how much of extra space is reserved for the effect outside the parent geometry. - Cette propriété détermine l'espace supplémentaire réservé hors de la géométrie du parent à l'effet. - - - - EffectComposer::EffectComposerView - - Effect Composer [beta] - Compositeur d'effet [bêta] - - - - EffectComposer::EffectComposerWidget - - Effect Composer - Title of effect composer widget - Compositeur d'effet - - - - EffectComposer::Uniform - - X - X - - - Y - Y - - - Z - Z - - - W - W - - EffectComposerPreview @@ -2965,6 +3556,10 @@ définit par la<b>taille du pas</b>. Untitled Sans titre + + In advanced mode, you can manage effect properties and edit shader code for all effects. + Dans le mode avancé, vous pouvez gérer les propriétés des effets et modifier le code de shader pour tous les effets. + How to use Effect Composer: 1. Click "+ Add Effect" to add effect node @@ -2990,19 +3585,61 @@ définit par la<b>taille du pas</b>. Enable/Disable Node Activer/désactiver le nœud + + A node with this name already exists. +Suffix was added to make the name unique. + Il existe déjà un nœud avec ce nom. +Un suffixe a été ajouté pour produire un nom unique. + + + Edit effect node name + Modifier le nom du nœud d'effet + + + Add Property + Ajouter une propriété + + + Show Code + Afficher le code + EffectCompositionNodeUniform + + [Editing] + [En cours de modification] + Reset value Réinitialiser la valeur + + This property is not used in the shader code of the effect. + Cette propriété n'est pas utilisée dans le code du shader de cet effet. + + + Additional actions disabled while editing existing property. + Les actions supplémentaires sont désactivées tant que la propriété est en cours de modification. + + + Access additional property actions. + Accès aux actions aditionnelles de la propriété. + + + Edit + Modifier + + + Remove + Supprimer + EffectNode - Existing effect has conflicting properties, this effect cannot be added. - Un effet existant contient des conflits de propriétés, cet effet ne peut être ajouté. + An effect with same properties already exists, this effect cannot be added. + Un effet avec les même propriétés existe déjà, cet effet ne peut être ajouté. @@ -3012,6 +3649,21 @@ définit par la<b>taille du pas</b>. + Ajouter un effet + + EffectSection + + Effect + Effet + + + Passes + Passes + + + Sets the render passes of the effect. + Définit les passes de rendu de l'effet. + + EffectsSection @@ -3027,8 +3679,12 @@ définit par la<b>taille du pas</b>. Ajouter des effets - Adds visual effects on the component. - Ajoute des effets visuels au composant. + Removes all the visual effects from the component. + Supprime tous les effets visuels de ce composant. + + + Adds visual effects to the component. + Ajoute des effets visuels à ce composant. Visible @@ -3252,6 +3908,21 @@ Les composants au premier plan doivent être transparents et le composant en arr Insérer la clé d'animation + + FileInstancingSection + + File Instancing + Instanciation de fichier + + + Source + Source + + + Sets the location of an XML or binary file containing the instance data. + Définit l'emplacement d'un fichier XML ou d'un fichier binaire contenant les données de l'instance. + + FileResourcesModel @@ -3259,13 +3930,6 @@ Les composants au premier plan doivent être transparents et le composant en arr Ouvrir le fichier - - FitToViewAction - - Fit Selected Object to View - Ajuster l’objet sélectionné à la vue - - FlagsComboBox @@ -3478,7 +4142,7 @@ Les composants au premier plan doivent être transparents et le composant en arr Layout direction - Direction du layout + Direction de l'agencement Sets in which direction items in the flow are placed. @@ -3489,6 +4153,110 @@ Les composants au premier plan doivent être transparents et le composant en arr Espacement + + FogSection + + Fog + Brouillard + + + Enabled + Activé + + + Controls whether fog is applied to the scene + Détermine si un effet de brouillard est appliqué à la scène + + + Color + Couleur + + + The color of the fog + La couleur du brouillard + + + Density + Densité + + + Controls the density of the fog + Détermine la densité du brouillard + + + Depth + Profondeur + + + Controls if the fog appears in the distance + Détermine si le brouillard apparaît à partir d'une certaine distance + + + Start Distance + Distance de début + + + Starting distance from the camera + Distance, à partir de la caméra, de début du brouillard + + + End Distance + Distance de fin + + + Ending distance from the camera + Distance, à partir de la caméra, de fin du brouillard + + + Intensity Curve + Courbe d'intensité + + + Controls the intensity curve of depth fog + Détermine la courbe d'intensité de la profondeur du brouillard + + + Height + Hauteur + + + Controls if height fog is enabled + height ? + Détermine si différentes hauteurs de brouillard sont prises en compte + + + Least Intense Height + Hauteur de brouillard léger + + + Specifies the height where the fog is the least intense. + Détermine la hauteur à partir de laquelle le brouillard est le moins intense. + + + Most Intense Height + Hauteur de brouillard intense + + + Specifies the height where the fog is the most intense. + Détermine la hauteur où le brouillard est le plus intense. + + + Controls the intensity curve of height fog + Détermine la coube d'intensité de la hauteur du brouillard + + + Transmission + Transmission + + + Controls if the fog has a light transmission effect enabled + Détermine si l'effet de transmission de la lumière dans le brouillard est activé + + + Controls the intensity curve of the light transmission effect + Détermine la courbe d'intensité de l'effet de transmission de lumière + + FontExtrasSection @@ -3664,6 +4432,45 @@ Les composants au premier plan doivent être transparents et le composant en arr Police + + FrustumCameraSection + + Frustum Camera + Champ de la caméra + + + Top + Haut + + + Sets the top plane of the camera view frustum. + Définit le plan haut du champ de la caméra. + + + Bottom + Bas + + + Sets the bottom plane of the camera view frustum. + Définit le plan bas du champ de la caméra. + + + Right + Droit + + + Sets the right plane of the camera view frustum. + Définit le plan droit du champ de la caméra. + + + Left + Gauche + + + Sets the left plane of the camera view frustum. + Définit le plan gauche du champ de la caméra. + + GeometrySection @@ -3674,6 +4481,10 @@ Les composants au premier plan doivent être transparents et le composant en arr This property is defined by an anchor or a layout. Cette propriété est définie par une ancre ou un agencement. + + Adjust this property manually from the 2D view or by changing margins from Layout. + Ajuster cette propriété manuellement depuis la vue 2D ou en changeant les marges depuis Agencement. + Position Position @@ -3826,7 +4637,7 @@ Les composants au premier plan doivent être transparents et le composant en arr Layout direction - Direction du layout + Direction de l'agencement Sets the direction of the dynamic items left to right or right to left in the <b>Grid Layout</b>. @@ -3885,7 +4696,7 @@ Les composants au premier plan doivent être transparents et le composant en arr Layout direction - Direction du layout + Direction de l'agencement Alignment H @@ -3949,7 +4760,7 @@ Les composants au premier plan doivent être transparents et le composant en arr Layout direction - Direction du layout + Direction de l'agencement Sets in which direction items in the grid view are placed. @@ -4278,22 +5089,88 @@ ajouter un composant en surbrillance. - InvalidIdException + InstanceListEntrySection - Only alphanumeric characters and underscore allowed. -Ids must begin with a lowercase letter. - Seuls les caractères alphanumériques et les tirets du bas sont acceptés. -Les identifiants doivent commencer avec une lettre minuscule. + Instance List Entry + Élément de la liste d'instances - Ids have to be unique. - Les identifiants doivent être uniques. + Color + Couleur - Invalid Id: %1 -%2 - Identifiant invalide : %1 -%2 + Sets the color for the instance. + Définit la couleur de l'instance. + + + Position + Position + + + Sets the position for the instance. + Définit la position de l'instance. + + + Scale + Échelle + + + Sets the scale for the instance. + Définit l'échelle de l'instance. + + + Rotation + Rotation + + + Sets the rotation for the instance. + Définit la rotation de l'instance. + + + + InstanceListSection + + Instance List + Liste d'instances + + + Instances + Instances + + + Sets the list of instance definitions. Modifying this list, or any of its elements, will cause the instance table to be updated. + Définit la liste de définitions des instances. La modification de cette liste ou de n'importe lequel de ses éléments provoquera la mise à jour de la table d'instances. + + + + InstancingSection + + Instancing + Instanciation + + + Depth Sorting + Tri par la profondeur + + + Enable depth sorting for instanced objects. + Active le tri par la profondeur pour les objets instanciés. + + + Has Transparency + Transparent + + + Set this to true if the instancing table contains alpha values that should be used when rendering the model. + À définir à vrai lorsque la table d'instanciation contient des valeurs alpha devant être utilisées lors du rendu du modèle. + + + Instance Count + Nombre d'instances + + + Sets a limit on the number of instances that can be rendered regardless of the number of instances in the instancing table. + Définit le nombre limite d'instances pouvant être dessinées sans tenir compte du nombre d'instance dans la table d'instanciation. @@ -4357,7 +5234,7 @@ Les identifiants doivent commencer avec une lettre minuscule. Layout - Layout + Agencement @@ -4399,6 +5276,29 @@ Les identifiants doivent commencer avec une lettre minuscule. Ajouter un module. + + JointSection + + Joint + Articulation + + + Index + Index + + + Sets the index of this joint. + Définit l'index de l'articulation. + + + Skeleton Root + Squelette racine + + + Sets the skeleton that contains this joint. + Définit le squelette contenant cette articulation. + + Label @@ -4613,13 +5513,84 @@ dessinée dans la texture. LayoutSection Layout - Layout + Agencement Anchors Ancres + + LightmapperSection + + Lightmapper + Pré-calcul de la lumière + + + Adaptive Bias + Biais adaptif + + + Enables additional dynamic biasing based on the surface normal. + Active un biais supplémentaire, dynamique, reposant sur la normale de la surface. + + + Bias + Biais + + + Raycasting bias to avoid self-intersection artifacts. + Biais de lancer de rayon permettant d'éviter les artefacts liés aux intersections avec soi-même. + + + Opacity Threshold + Seuil d'opacité + + + Bounces against materials with opacity values below this threshold are ignored when calculating lighting via raytracing. + Les rebonds contre les matériaux ayant une valeur d'opacité en deça de ce seuil sont ignorés lors du calcul de l'éclairage par lancer de rayon. + + + Samples + Échantillons + + + The number of samples per lightmap texel. + Le nombre d'échantillons par texel de la texture de lumière. + + + Indirect Lighting + Éclairage indirect + + + Enables the baking of indirect lighting. + Active le pré-calcul de l'éclairage indirect. + + + Bounces + Rebonds + + + The maximum number of indirect light bounces per sample. + Le nombre maximum de rebonds par échantillon pour la lumière indirecte. + + + Indirect Light Factor + Coefficient de lumière indirecte + + + Multiplier for the indirect light amount. + Nombre multiplicateur de la quantité de lumière indirecte. + + + Indirect Workgroup Size + Taille du groupe de travail + + + The size of the workgroup used for indirect light computation. + La taille du groupe de travail utilisée pour le calcul de la lumière indirecte. + + ListViewSpecifics @@ -4759,6 +5730,45 @@ ajouter un composant en surbrillance. Suit l’actuel + + Loader3DSection + + Loader3D + Chargeur 3D + + + Active + Actif + + + Sets if the Loader3D is currently active. + Définit si le chargeur 3D est actuellement actif. + + + Source + Source + + + Sets the URL of the QML component to instantiate. + Définit l'URL du composant QML à instancier. + + + Source Component + Composant source + + + Sets the component to instantiate. + Définit le composant à instancier. + + + Asynchronous + Asynchrone + + + Sets whether the component will be instantiated asynchronously. + Définit si le composant doit être instancié de manière asynchrone. + + LoaderSpecifics @@ -4916,14 +5926,6 @@ ajouter un composant en surbrillance. Return to Design Retourner au Design - - Run Project - Exécuter le projet - - - Live Preview - Prévisualisation instantanée - Go Back Précédent @@ -4945,6 +5947,44 @@ ajouter un composant en surbrillance. Workspace Espace de travail + + You can share your project to Qt Design Viewer web service.<br><br>To be able to use the sharing service, you need to sign in with your Qt Account details. + Vous pouvez partager votre projet sur le service Internet Qt Design Viewer. <br><br>Afin de pouvoir utiliser ce service de partage, vous devez vous identifier avec votre compte Qt. + + + Sign in + S'identifier + + + Upload succeeded. + Téléversement ? + Mise en ligne réussie. + + + Upload failed. Please check your internet connection. + Échec de la mise en ligne. Vérifiez votre connexion Internet. + + + Packing + Empaquetage ? Mise en paquet ? + Archivage + + + Packing failed. + Archivage échoué. + + + Uploading + Mise en ligne en cours + + + Manage shared projects + Gérer les projets partagés + + + Sign out + Déconnexion + Edit Annotations Éditer les annotations @@ -4953,14 +5993,6 @@ ajouter un composant en surbrillance. Share Partager - - Share your project online. - Partager votre projet en ligne. - - - Sharing your project online is disabled in the Community Version. - Le partage du projet en ligne est désactivé dans la version communautaire. - More Items Plus d'éléments @@ -4993,6 +6025,91 @@ ajouter un composant en surbrillance. Adds a Connection, Binding, or Custom Property to the components. Ajoute une connexion, liaison ou une propriété personnalisée aux composants. + + Rename + Renommer + + + Delete + Supprimer + + + Create collection + Créer une collection + + + load + (Y a un commentaire indiquant que c'est pour du débogage) + chargement + + + Create mode + Créer un mode + + + Create variable + Créer une variable + + + Color + Couleur + + + Number + Nombre + + + String + Chaîne de caractères + + + Boolean + Booléen + + + Online + En ligne + + + Offline + Hors ligne + + + How to see a preview on Android device + Comment obtenir une prévisualisation sur un périphérique Android + + + Scan the QR code below or click on the link to go to the Google Play store with your device and seek for Qt Viewer application. + Scannez le QR-code ci-dessous ou cliquez sur le lien pour naviguer sur le magasin Google Play avec votre périphérique et chercher l'application Qt Viewer. + + + Install the Qt Viewer application on your phone. + Installez l'application Qt Viewer sur votre téléphone. + + + Open up this window again, if you already closed it, and click on "Add Run Target" button in this window. + Si vous l'avez déjà fermée, ré-ouvrez cette fenêtre et cliquez sur le bouton « Ajouter une cible d'exécution ». + + + Run target IP + Addresse IP de la cible + + + Add Run Target + Ajouter une cible d'exécution + + + Remove Run Target + Supprimer une cible d'exécution + + + Columns + Colonnes + + + Manage target devices to be used to display the project + Gérer les périphériques cibles à utiliser pour afficher ce projet + MainGridStack @@ -5271,6 +6388,39 @@ ajouter un composant en surbrillance. Type + + MaterialSection + + Material + Matériau + + + Light Probe + Sonde de lumière + + + Sets a texture to use as image based lighting. +This overrides the scene's light probe. + Définit une texture à utiliser comme source pour l'éclairage. +Celle-ci remplacera la sonde de lumière de la scène. + + + Culling Mode + Mode de découpage + + + Sets which primitives to discard, if any. + Définit quel type de primitives à rejeter, s'il y en a. + + + Depth Draw Mode + Mode de rendu de la profondeur + + + Sets if and when depth rendering takes place. + Définit si et quand le rendu de la profondeur aura lieu. + + MediaPlayerSection @@ -5307,64 +6457,189 @@ ajouter un composant en surbrillance. - ModelNodeOperations + ModelSection - Go to Implementation - Aller à l’implémentation + Model + Modèle - Invalid component. - Composant invalide. + Source + Source - Cannot find an implementation. - Impossible de trouver une implémentation. + Sets the location of the mesh file containing the geometry of this model. + Définit l'emplacement du fichier de modèle contenant la géométrie pour ce modèle. - Cannot Set Property %1 - Impossible de définir la propriété %1 + Geometry + Géométrie - The property %1 is bound to an expression. - La propriété %1 est liée à une expression. + Sets a custom geometry for the model + Définit une géométrie personnalisée pour ce modèle - Overwrite Existing File? - Écraser le fichier existant ? + Materials + Matériaux - File already exists. Overwrite? -"%1" - Le fichier existe déjà. L’écraser ? -« %1 » + Edit material + Modifier le matériau - Asset import data file "%1" is invalid. - Le fichier des données de la ressource importée « %1 » n'est pas valide. + Casts Shadows + Génère des ombres - Unable to locate source scene "%1". - Impossible de localiser la scène source « %1 ». + Enables the geometry of this model to be rendered to the shadow maps. + Active le rendu de la géométrie de ce modèle dans la texture des ombres. - Opening asset import data file "%1" failed. - Échec d'ouverture du fichier des données de la ressource importée « %1 ». + Receives Shadows + Reçoit des ombres - Unable to resolve asset import path. - Impossible de résoudre le chemin d'import des ressources. + Enables the geometry of this model to receive shadows. + Active si la géométrie de ce modèle reçoit des ombres. - Import Update Failed - Échec de la mise à jour de l’importation + Casts Reflections + Génère des réflexions - Failed to update import. -Error: -%1 - Échec de la mise à jour de l’importation. -Erreur : -%1 + Enables reflection probes to reflect this model. + Active les sondes de reflexions pour réfléchir ce modèle. + + + Receives Reflections + Reçoit des réflexions + + + Enables the geometry of this model to receive reflections from the nearest reflection probe. The model must be inside at least one reflection probe to start receiving reflections. + Active la réception de réflexions provenant de source de réflexions proches pour la géométrie de ce modèle. Ce modèle doit être à l'intérieur d'au moins une source de réflexions pour recevoir des réflexions. + + + Is Pickable + Peut être choisi + + + Enables ray cast based picking for this model. + Active la détection par lancer de rayon de ce modèle. + + + Used in Baked Lighting + Utlisé dans le pré-calcul des lumières + + + This model is static and suitable to contribute to baked lighting. + Ce modèle est statique et convient pour contribuer au pré-calcul des lumières. + + + Depth Bias + Biais de profondeur + + + Sets the depth bias of the model. + Définit un biais de profondeur pour ce modèle. + + + LOD Bias + Biais de LOD + + + Sets the size a model needs to be when rendered before the automatic level of detail meshes are used + Définit la taille que le modèle doit avoir pour être dessiné avant que les modèles de niveau de détail (LOD) automatiques soient utilisés + + + Instancing + Instanciation + + + Data Source + Source de données + + + If this property is set, the model will not be rendered normally. Instead, a number of instances of the model will be rendered, as defined by the instance table. + Si cette propriété est définie, le modèle ne sera pas dessiné normalement. À la place, un nombre d'instances du modèle seront dessinés, comme déterminé par la table d'instances. + + + Origin Node + Nœud d'origine + + + Sets the origin of the instance’s coordinate system. + Définit l'origine du système de coordonées de l'instance. + + + Animation + Animation + + + Skeleton + Squelette + + + Sets the skeleton for the model. + Définit le squelette de ce modèle. + + + Morph Targets + Cible de transformation + + + Sets a list of MorphTargets used to render the provided geometry. + Définit une liste de cibles de transformation à utiliser pour dessiner la géométrie fournie. + + + Skin + Peau + + + Sets the skin for the model. + Définit la peau du modèle. + + + Lightmapping + Pré-calcul de la lumière + + + Resolution + Résolution + + + Sets the target resolution of the baked lightmap texture for the model. + Définit la résolution cible pour la texture de lumières pré-calculée pour ce modèle. + + + Lightmap + Texture de lumières + + + Sets the baked lightmap data for the model. + Définit les données de lumières pré-calculées pour ce modèle. + + + + MorphTargetSection + + Morph Target + Cible de transformation + + + Weight + Poids + + + Sets the weight of the current morph target. + Définit le poids de la cible de transformation actuelle. + + + Attributes + Attributs + + + Sets the set of attributes of the current morph target. + Définit l'ensemble des attributs pour la cible de transformation actuelle. @@ -5487,24 +6762,6 @@ Erreur : MouseArea - - MoveToolAction - - Activate Move Tool - Activer l'outil de déplacement - - - - NavigatorTreeModel - - Warning - Avertissement - - - Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? - Redéfinir ici le parent du composant %1 entraînera la suppression du composant %2. Voulez-vous continuer ? - - NewEffectDialog @@ -5693,10 +6950,49 @@ Erreur : - OrientationToggleAction + Object3DSection - Toggle Global/Local Orientation - Activer/désactiver l’orientation globale/locale + Object + Objet + + + + OrthographicCameraSection + + Orthographic Camera + Caméra orthographique + + + Clip Near + Plan proche + + + Sets the near value of the camera view frustum. + Définit la valeur du plan proche pour le champ de la caméra. + + + Clip Far + Plan lointain + + + Sets the far value of the camera view frustum. + Définit la valeur du plan lointain du champ de la caméra. + + + Horizontal Magnification + Agrandissement horizontal + + + Sets the horizontal magnification of the OrthographicCamera's frustum. + Définit l'agrandissement horizontal du champ de la caméra orthographique. + + + Vertical Magnification + Agrandissement vertical + + + Sets the vertical magnification of the OrthographicCamera's frustum. + Définit l'agrandissement vertical du champ de la caméra orthographique. @@ -5867,38 +7163,34 @@ la taille totale implicite. - ParticleViewModeAction + PassSection - Toggle particle animation On/Off - Activer/Désactiver l’animation des particules + Pass + Passe - - - ParticlesPlayAction - Play Particles - Lancer les particules + Commands + Commandes - - - ParticlesRestartAction - Restart Particles - Relancer les particules + Sets the render commands of the pass. + Définit les commandes de rendu de la passe. - - - PathTool - Path Tool - Outil de chemin + Buffer + Tampon - - - PathToolAction - Edit Path - Éditer le chemin + Sets the output buffer for the pass. + Définit le tampon de sortie de la passe. + + + Shaders + Shaders + + + Sets the shaders for the pass. + Définit les shaders de la passe. @@ -6020,6 +7312,45 @@ ajouter un composant en surbrillance. Violation d'ordre des événements MMAP entre les vidages de tampons détectée. Le moment de l'événement est: %1, temps maximum depuis le dernier vidage: %2. Cela peut interrompre l'analyse des données. + + PerspectiveCameraSection + + Perspective Camera + Caméra perspective + + + Clip Near + Plan proche + + + Sets the near value of the view frustum of the camera. + Définit la valeur du plan proche pour le champ de la caméra. + + + Clip Far + Plan lointain + + + Sets the far value of the view frustum of the camera. + Définit la valeur du plan lointain pour le champ de la caméra. + + + Field of View + Champ de vision + + + Sets the field of view of the camera in degrees. + Définit le champ de vision de la caméra en degrées. + + + FOV Orientation + Orientation du champ de vision + + + Sets if the field of view property reflects the vertical or the horizontal field of view. + Détermine si la propriété du champ de vision spécifie un champ de vision vertical ou horizontal. + + PluginManager @@ -6027,6 +7358,37 @@ ajouter un composant en surbrillance. Greffons en échec + + PointLightSection + + Point Light + Lumière ponctuelle + + + Constant Fade + Atténuation constante + + + Sets the constant attenuation of the light. + Définit l'atténuation constante de la lumière. + + + Linear Fade + Atténuation linéaire + + + Sets the linear attenuation of the light. + Définit l'atténuation linéaire de la lumière. + + + Quadratic Fade + Atténuation quadratique + + + Sets the quadratic attenuation of the light. + Définit l'atténuation quadratique de la lumière. + + PopupLabel @@ -6112,6 +7474,421 @@ ajouter un composant en surbrillance. Supprimer le préréglage personnalisé + + PreviewError + + Show Less + Montrer moins + + + We are not able to create a preview of this effect. + Pas fan du "nous" + Impossible de créer une prévisualisation de cet effet. + + + <html><a href="#showmore">Show More</a></html> + <html><a href="#showmore">Montrer plus</a></html> + + + + PreviewImagesComboBox + + Add Custom Image + Ajouter une image personnalisée + + + Remove custom image. + Supprimer l'image personnalisée. + + + + PrincipledMaterialSection + + Principled Material + Matériau de base + + + Alpha Mode + Mode alpha + + + Sets the mode for how the alpha channel of base color is used. + Définit l'utilisation faite du canal alpha de la couleur de base. + + + Alpha Cutoff + Valeur alpha de butée + + + Sets the cutoff value when using the Mask alphaMode. + Définit la valeur de butée lors de l'utilisation du mode « Mask ». + + + Blend Mode + Mode de mélange + + + Sets how the colors of the model rendered blend with those behind it. + Définit comment les couleurs du modèle sont mélangées avec celles derrière celui-ci. + + + Lighting + Éclairage + + + Sets which lighting method is used when generating this material. + Définit la méthode de calcul de l'éclairage à utiliser lors de la génération de ce matériau. + + + Base Color + Couleur de base + + + Color + Couleur + + + Map + Texture + + + Sets a texture used to set the base color of the material. + Définit une texture déterminant la couleur de base du matériau. + + + Metalness + Aspect métallique + + + Amount + Quantité + + + Sets the metalness of the the material. + Définit l'importance de l'aspect métallique du matériau. + + + Sets a texture to be used to set the metalness amount for the different parts of the material. + Définit une texture déterminant l'importance de l'aspect métallique sur les différentes parties du matériau. + + + Channel + Canal + + + Sets the texture channel used to read the metalness value from metalnessMap. + Définit le canal de texture lu pour déterminer l'importance de l'aspect métallique. + + + Roughness + Rugosité + + + Sets the size of the specular highlight generated from lights, and the clarity of reflections in general. + Définit la taille de l'effet spéculaire généré par les lumières et, de manière générale, la netteté des réflexions. + + + Sets a texture to control the specular roughness of the material. + Définit une texture pour contrôler la rugosité de l'effet spéculaire du matériau. + + + Sets the texture channel used to read the roughness value from roughnessMap. + Définit le canal de texture à partir duquel lire la valeur de rugosité. + + + Normal + Normales + + + Sets an RGB image used to simulate fine geometry displacement across the surface of the material. + Définit une image RVB utilisée pour simuler une géométrie fine sur la surface du matériau. + + + Strength + Force + + + Sets the amount of simulated displacement for the normalMap. + Définit la quantité de relief simulé. + + + Occlusion + Occlusion + + + Sets the factor used to modify the values from the occlusionMap texture. + Définit le coefficient modifiant les valeurs de la texture d'occlusion. + + + Sets a texture used to determine how much indirect light the different areas of the material should receive. + Définit une texture déterminant la quantité de lumière indirecte reçue par les différentes parties du matériau. + + + Sets the texture channel used to read the occlusion value from occlusionMap. + Définit la canal de la texture à partir duquel lire les valeurs d'occlusion. + + + Opacity + Opacité + + + Sets the opacity of just this material, separate from the model. + Définit l'opacité de ce matériau, indépendamment du modèle. + + + Sets a texture used to control the opacity differently for different parts of the material. + Définit une texture déterminant l'opacité des différentes parties du matériau. + + + Sets the texture channel used to read the opacity value from opacityMap. + Définit le canal de texture à partir duquel lire la valeur d'opacité. + + + Emissive Color + Couleur émissive + + + Sets a texture to be used to set the emissive factor for different parts of the material. + Définit une texture déterminant le coefficient de lumière émissive pour les différentes parties du matériau. + + + Factor + Coefficient + + + Sets the color of self-illumination for this material. + Définit la couleur d'illumination propre de ce matériau. + + + Height + Relief + + + Sets the factor used to modify the values from the heightMap texture. + Définit le coefficient à utiliser pour modifier les valeurs de la texture des hauteurs. + + + Sets a texture used to determine the height the texture will be displaced when rendered through the use of Parallax Mapping. + Définit une texture déterminant le décalage appliqué lors du rendu provenant du « Parallax Mapping ». + + + Sets the texture channel used to read the height value from heightMap. + Définit le canal à partir duquel lire la hauteur. + + + Min Map Samples + Échantillons minimum de texture + + + Sets the minimum number of samples used for performing Parallex Occlusion Mapping using the heightMap. + Définit le nombre minimum d'échantillons de la texture des hauteurs à utiliser lors de l'application du « Parallax Occlusion Mapping ». + + + Max Map Samples + Échantillons maximum de texture + + + Sets the maximum number of samples used for performing Parallex Occlusion Mapping using the heightMap. + Définit le nombre maximum d'échantillons de la texture des hauteurs à utiliser lors de l'application du « Parallax Occlusion Mapping ». + + + Clearcoat + clearcoat ? Il semble que cela vienne du monde automobile et que ce soit proche d'un vernis + Vernis + + + Sets the intensity of the clearcoat layer. + Définit l'intensité de la couche de vernis. + + + Sets a texture used to determine the intensity of the clearcoat layer. + Définit la texture déterminant l'instensité de la couche de vernis. + + + Sets the texture channel used to read the intensity from clearcoatMap. + Définit le canal de la texture de vernis à partir duquel lire l'intensité. + + + Roughness Amount + Quantité de rugosité + + + Sets the roughness of the clearcoat layer. + Définit la rugosité de la couche de vernis. + + + Roughness Map + Texture de rugosité + + + Sets a texture used to determine the roughness of the clearcoat layer. + Définit une texture déterminant la quantité de rugosité de la couche de vernis. + + + Roughness Channel + Canal de rugosité + + + Sets the texture channel used to read the roughness from clearcoatRoughnessMap. + Définit le canal de la texture à partir duquel lire la rugosité. + + + Normal Map + Texture de normales + + + Sets a texture used as a normalMap for the clearcoat layer. + Définit une texture déterminant les normales de la couche de vernis. + + + Refraction + Réfraction + + + Transmission Factor + Coefficient de transmission + + + Sets the base percentage of light that is transmitted through the surface. + Définit le pourcentage de lumière transmis à travers la surface. + + + Transmission Map + Texture de transmission + + + Sets a texture that contains the transmission percentage of a the surface. + Définit une texture déterminant le pourcentage de transmission de la surface. + + + Transmission Channel + Canal de transmission + + + Sets the texture channel used to read the transmission percentage from transmissionMap. + Définit le canal de la texture à partir duquel lire le pourcentage de transmission. + + + Index of Refraction + Indice de réfraction + + + Sets the index of refraction of the material. + Définit l'indice de réfraction du matériau. + + + Thickness Factor + Coefficient d'épaisseur + + + Sets the thickness of the volume beneath the surface in model coordinate space. + Définit l'épaisseur du volume en dessous de la surface dans le système de coordonnées du modèle. + + + Thickness Map + Texture d'épaisseur + + + Sets a texture that contains the thickness of a the material volume. + Définit une texture déterminant l'épaisseur du volume du matériau. + + + Thickness Channel + Canal d'épaisseur + + + Sets the texture channel used to read the thickness amount from thicknessMap. + Définit le canal de la texture à partir duquel lire l'épaisseur. + + + Attenuation Color + Couleur d'atténuation + + + Sets the color that white lights turn into due to absorption when reaching the attenuation distance. + Définit la couleur prise par la lumière blanche lorsque celle-ci est absorbée après avoir atteint la distance d'atténuation. + + + Attenuation Distance + Distance d'atténuation + + + Sets the average distance in world space that light travels in the medium before interacting with a particle. + Définit la distance moyenne, dans le système de coordonnées du monde, parcourue par la lumière avant d'interagir avec une particule. + + + Advanced + Avancé + + + Vertex Colors + Couleur de sommets + + + Sets whether vertex colors are used to modulate the base color. + Définit si les couleurs de sommets sont utilisées pour moduler la couleur de base. + + + Enabled + Activé + + + Disabled + Désactivé + + + Point Size + Taille de point + + + Sets the size of the points rendered, when the geometry is using a primitive type of points. + Définit la taille des points dessinés lorsque la géométrie utilise le type de primitive points. + + + Line Width + Largeur de ligne + + + Sets the width of the lines rendered, when the geometry is using a primitive type of lines or line strips. + Définit la largeur des lignes dessinées lorsque la géométrie utilise un type de primitif ligne ou ensemble de lignes. + + + Overrides + Surcharge + + + Specular Amount + Quantité de spéculaire + + + Override the strength of specularity (highlights and reflections). + Surcharge la force de l'effet spéculaire (surbrillance et reflets). + + + Specular Map + Texture spéculaire + + + An RGB Texture to override the amount and the color of specularity across the surface of the material. + Une texture RVB pour remplacer la quantité et la couleur de l'effet spéculaire sur la surface du matériau. + + + Reflection Map + Texture de réflexions + + + Sets a texture used for specular highlights on the material. + Définit une texture déterminant les reflets spéculaires du matériau. + + + Specular Tint + Teinte spéculaire + + + Override how much of the base color contributes to the specular reflections. + Surcharge la quantité de contribution de la couleur de base dans les réflexions spéculaires. + + ProgressBarSpecifics @@ -6216,6 +7993,17 @@ est en cours. Valeur de la propriété. + + PropertyEditorPane + + Current State + État actuel + + + The current state of the States View. + L'état actuel de la vue des états. + + PropertyLabel @@ -6223,17 +8011,6 @@ est en cours. Cette propriété n’est pas disponible dans cette configuration. - - PuppetStarter - - Puppet is starting... - Démarrage de Puppet… - - - You can now attach your debugger to the %1 puppet with process id: %2. - Vous pouvez maintenant attacher votre débogueur au mode puppet %1 avec l'identifiant de processus : %2. - - QAbstractFileIconProvider @@ -6378,70 +8155,15 @@ est en cours. @info Mise à jour de la définition syntaxique pour « %1 » vers la version %2… - - <Filter> - Library search input hint text - <Filtre> - - - Start Nanotrace - Démarrer Nanotrace - - - Shut Down Nanotrace - Arrêter Nanotrace - - - Failed to Add Texture - Échec de l’ajout de la texture - - - Could not add %1 to project. - Impossible d’ajouter %1 au projet. - - - Show Event List - Afficher la liste des évènements - - - Assign Events to Actions - Assigner des évènements aux actions - Connect Signal to Event Connecter un signal à un évènement - - Connected Events - Évènements connectés - - - Connected Signals - Signaux connectés - - - Exposed Custom Properties - Propriétés personnalisées exposées - UntitledProject File path suggestion for a new project. If you choose to translate it, make sure it is a valid path name without blanks and using only ascii chars. ProjetSansNom - - Effect file %1 not found in the project. - Fichier d'effet %1 introuvable dans le projet. - - - Effect %1 is not complete. - L'effet %1 n'est pas complet. - - - Ensure that you have saved it in the Effect Composer. -Do you want to edit this effect? - Assurez-vous de l'avoir sauvegardé dans le compositeur d'effet. -Souhaitez-vous éditer cet effet ? - Entry not found Entrée introuvable @@ -6450,70 +8172,6 @@ Souhaitez-vous éditer cet effet ? Minimize Minimiser - - ID cannot start with an uppercase character (%1). - L'identifiant ne peut pas commencer avec un caractère majuscule (%1). - - - ID cannot start with a number (%1). - L'identifiant ne peut pas commencer avec un chiffre (%1). - - - ID cannot include whitespace (%1). - L'identifiant ne peut pas contenir d'espace (%1). - - - %1 is a reserved QML keyword. - %1 est un mot clé QML réservé. - - - %1 is a reserved Qml type. - %1 est un type Qml réservé. - - - %1 is a reserved property keyword. - %1 est un mot clé de propriété réservé. - - - ID includes invalid characters (%1). - L'identifiant contient des caractères invalides (%1). - - - Empty document - Document vide - - - Unsupported bundle file - Fichier de bundle non pris en charge - - - The chosen bundle was created with an incompatible version of Qt Design Studio - Le bundle sélectionné a été créé avec une version de Qt Design Studio non prise en charge - - - Component Exists - Le composant existe déjà - - - A component with the same name '%1' already exists in the project, are you sure you want to overwrite it? - Un composant avec le nom « %1 » existe déjà dans le projet. Souhaitez-vous l'écraser ? - - - Import Component - Importation d'un composant - - - Qt Design Studio Bundle Files (*.%1) - Fichiers de bundle de Qt Design Studio (*.%1) - - - Export Material - Exportation d'un matériau - - - Export Component - Exportation d'un composant - QmlDesigner::AbstractEditorDialog @@ -6798,14 +8456,6 @@ Export des ressources : %2 Export finished. Exportation terminée. - - Error creating asset directory. %1 - Erreur lors de la création du dossier de ressources. %1 - - - Error saving asset. %1 - Erreur lors de l'enregistrement de la ressource. %1 - QmlDesigner::AssetExporterPlugin @@ -6826,17 +8476,6 @@ Export des ressources : %2 Exporter les composants du projet en cours. - - QmlDesigner::AssetsLibraryModel - - Failed to Delete File - Échec de la suppression du fichier - - - Could not delete "%1". - Impossible de supprimer « %1 ». - - QmlDesigner::AssetsLibraryView @@ -6844,42 +8483,6 @@ Export des ressources : %2 Ressources - - QmlDesigner::AssetsLibraryWidget - - Assets Library - Title of assets library widget - Bibliothèque de ressources - - - Failed to Delete Effect Resources - Échec de suppression des ressources d'effet - - - Could not delete "%1". - Impossible de supprimer « %1 ». - - - Failed to Add Files - Échec lors de l'ajout de fichiers - - - Could not add %1 to project. - Impossible d'ajouter %1 au projet. - - - All Files (%1) - Tous les fichiers (%1) - - - Add Assets - Ajouter des ressources - - - Could not add %1 to project. Unsupported file format. - Impossible d'ajouter %1 au projet. Format de fichier non supporté. - - QmlDesigner::AssignEventDialog @@ -6893,13 +8496,6 @@ Export des ressources : %2 - - QmlDesigner::BackgroundAction - - Set the color of the canvas. - Définit la couleur du canevas. - - QmlDesigner::BakeLights @@ -6967,12 +8563,12 @@ Export des ressources : %2 QmlDesigner::CapturingConnectionManager - QML Emulation Layer (QML Puppet - %1) Crashed - La couche d’émulation de QML (QML Puppet - %1) a planté + QML Puppet (%1) Crashed + QML Puppet (%1) a planté - You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. - Vous êtes en train d'enregistrer un flux puppet et la couche d'émulation a planté. Il est recommandé de réouvrir Qt Quick Designer et de recommancer. + The QML Puppet crashed while recording a stream. Please reopen %1 and try it again. + Le processus QML Puppet a planté lors de l'enregistrement du flux. Ré-ouvrez %1 et réessayez. @@ -7267,26 +8863,90 @@ Export des ressources : %2 - QmlDesigner::DocumentMessage + QmlDesigner::DesignSystemView - Error parsing - Erreur d'analyse + Design System + Apparence système + + + + QmlDesigner::DesignSystemWidget + + Design System + Title of Editor widget + Apparence système - Internal error - Erreur interne + Cannot Create QtQuick View + Impossible de créer une vue QtQuick - line %1 - - ligne %1 - + StatesEditorWidget: %1 cannot be created.%2 + StatesEditorWidget : %1 ne peut être créé. %2 + + + + QmlDesigner::DeviceShare::DeviceManagerModel + + Active + Actif - column %1 - - colonne %1 - + Status + État + + + Alias + Alias + + + IPv4 Address + Adresse IPv4 + + + OS + ou SE? (sachant que c'est probablement une entête de colonne d'un tableau) + Système d'exploitation + + + OS Version + Version du système d'exploitation + + + Architecture + Architecture + + + Screen Size + Taille d'écran + + + App Version + Version de l'application + + + Self ID + Identifiant + + + Device ID + Identifiant du périphérique + + + + QmlDesigner::DeviceShare::DeviceManagerWidget + + Device Manager + Title of device manager widget + Gestionnaire de périphériques + + + Cannot Create QtQuick View + Impossible de créer une vue QtQuick + + + StatesEditorWidget: %1 cannot be created.%2 + StatesEditorWidget : %1 ne peut être créé. %2 @@ -7624,193 +9284,6 @@ Export des ressources : %2 Annulation de la préparation du fichier. - - QmlDesigner::FormEditorAnnotationIcon - - Annotation - Annotation - - - Edit Annotation - Modifier l'annotation - - - Remove Annotation - Supprimer l'annotation - - - By: - Par : - - - Edited: - Édité : - - - Delete this annotation? - Supprimer cette annotation ? - - - - QmlDesigner::FormEditorView - - 2D - 2D - - - 2D view - Vue 2D - - - %1 is not supported as the root element by the 2D view. - %1 n'est pas supporté comme élément racine par la vue 2D. - - - - QmlDesigner::FormEditorWidget - - No Snapping - Aucune aimantation - - - Snap with Anchors - Aimantation avec les ancres - - - Snap without Anchors - Aimantation sans ancres - - - Show Bounds - Afficher les bordures - - - Override Width - Écraser la largeur - - - Override width of root component. - Écraser la largeur du composant racine. - - - Override Height - Écraser la hauteur - - - Override height of root component. - Écraser la hauteur du composant racine. - - - Zoom In - Zoom avant - - - Zoom Out - Zoom arrière - - - Zoom screen to fit all content. - Zoom pour afficher tout le contenu. - - - Ctrl+Alt+0 - Ctrl+Alt+O - - - Zoom screen to fit current selection. - Zoom pour contenir la sélection en cours. - - - Ctrl+Alt+i - Ctrl+Alt+i - - - Reload View - Recharger la vue - - - Export Current QML File as Image - Exporter le fichier QML en cours en tant qu'image - - - PNG (*.png);;JPG (*.jpg) - PNG (*.png);;JPG (*.jpg) - - - - QmlDesigner::GenerateResource - - Unable to generate resource file: %1 - Impossible de générer le fichier de ressource : %1 - - - A timeout occurred running "%1". - Un dépassement de délai s’est produit lors de l’exécution de « %1 ». - - - "%1" crashed. - « %1 » a planté. - - - "%1" failed (exit code %2). - « %1 » a échoué (code de sortie %2). - - - Generate QRC Resource File... - Générer le fichier de ressource QRC… - - - Save Project as QRC File - Enregistrer le projet en tant que fichier QRC - - - QML Resource File (*.qrc) - Fichier de ressource QML (*.qrc) - - - Successfully generated QRC resource file - %1 - ressoures ? - Fichier de ressource QRC généré avec succès - %1 - - - Generate Deployable Package... - Générer un paquet déployable… - - - Save Project as Resource - Enregistrer le projet en tant que ressource - - - Generating deployable package. Please wait... - Génération du paquet déployable. Veuillez patienter… - - - Failed to generate deployable package! - Échec de génération du paquet déployable ! - - - Error - Erreur - - - Failed to generate deployable package! - -Please check the output pane for more information. - Échec de génération du paquet déployable ! - -Veuillez vérifier le panneau de sortie pour plus d'informations. - - - Successfully generated deployable package - Génération du paquet déployable réussie - - - Success - Réussite - - QmlDesigner::GlobalAnnotationDialog @@ -8091,12 +9564,12 @@ Veuillez vérifier le panneau de sortie pour plus d'informations. QmlDesigner::InteractiveConnectionManager - Cannot Connect to QML Emulation Layer (QML Puppet) - Impossible de se connecter à la couche d'émulation QML (QML Puppet) + Cannot Connect to QML Puppet + Impossible de se connecter à QML Puppet - The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. - L'exécutable de la couche d'émulation QML (QML Puppet) ne semble pas répondre. L'utilisation d'un autre kit peut résoudre le problème. + The executable of the QML Puppet may not be responding. Switching to another kit might help. + L'exécutable de QML Puppet ne répond pas. Changer de kit peut aider. @@ -8162,52 +9635,6 @@ Veuillez vérifier le panneau de sortie pour plus d'informations.Réinitialiser l'espace de travail actif - - QmlDesigner::Internal::MetaInfoPrivate - - Invalid meta info - Métadonnées invalides - - - - QmlDesigner::Internal::MetaInfoReader - - Illegal state while parsing. - État illégal lors de l'analyse. - - - No property definition allowed. - Aucune définition de propriété permise. - - - Invalid type %1 - Type %1 invalide - - - Unknown property for Type %1 - Propriété inconnue pour le type %1 - - - Unknown property for ItemLibraryEntry %1 - Propriété inconnue pour ItemLibraryEntry %1 - - - Unknown property for Property %1 - Propriété inconnue pour Property %1 - - - Unknown property for QmlSource %1 - Propriété inconnue pour QmlSource %1 - - - Unknown property for ExtraFile %1 - Propriété inconnue pour ExtraFile %1 - - - Invalid or duplicate library entry %1 - Entrée de bibliothèque %1 invalide ou dupliquée - - QmlDesigner::Internal::ModelPrivate @@ -8217,259 +9644,10 @@ Veuillez vérifier le panneau de sortie pour plus d'informations. QmlDesigner::Internal::SettingsPage - - Snapping - pour être cohérents avec designer - Aimantation - - - Qt Quick Designer - Designer Qt Quick - - - Canvas - Canevas - - - If you select this radio button, Qt Design Studio always uses the QML emulation layer (QML Puppet) located at the following path. - Si vous sélectionnez ce bouton radio, Qt Design Studio utilisera toujours la couche d'émulation QML (QML Puppet) située au chemin suivant. - - - Warns about QML features that are not properly supported by the Qt Design Studio. - Avertit à propos des fonctionnalités QML qui ne sont pas prises en charge par Qt Design Studio. - - - Debugging - Débogage - - - Show the debugging view - Afficher la vue de débogage - - - Enable smooth rendering in the 2D view. - Activer le rendu lisse dans la vue 2D. - - - Default style - Style par défaut - - - Reset Style - Réinitialiser le style - - - QML Emulation Layer - Couche d'émulation QML - - - Use fallback QML emulation layer - Utiliser la couche d'émulation QML de secours - - - Path to the QML emulation layer executable (qmlpuppet). - Chemin de l'exécutable de la couche d'émulation QML (qmlpuppet). - Reset Path Réinitialiser le chemin - - Resets the path to the built-in QML emulation layer. - Réinitialiser le chemin à la couche d'émulation QML intégrée. - - - Use QML emulation layer that is built with the selected Qt - Utiliser la couche d'émulation QML intégrée avec la version de Qt sélectionnée - - - Always save when leaving subcomponent in bread crumb - https://fr.wikipedia.org/wiki/Fil_d%27Ariane_(ergonomie) - Toujours enregistrer lorsque l'on quitte un sous-composant du fil d'Ariane - - - Warn about unsupported features of .ui.qml files in code editor - Avertir à propos des fonctionnalités non supportées par l'éditeur de code des fichiers .ui.qml - - - Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. - Avertir aussi dans l'éditeur de code à propos des fonctionnalités QML qui ne sont pas gérées correctement par Qt Quick Designer. - - - Warn about unsupported features in .ui.qml files - Avertir à propos des fonctionnalités non supportées dans les fichiers .ui.qml - - - Warn about using .qml files instead of .ui.qml files - Avertir à propos de l'utilisation des fichiers .qml à la place des fichiers .ui.qml - - - Qt Quick Designer will propose to open .ui.qml files instead of opening a .qml file. - Qt Quick Designer proposera d'ouvrir le fichier .ui.qml à la place du fichier .qml. - - - qsTr() - Option name referring to function in Qt. Should not be translatable? - qsTr() - - - qsTrId() - qsTrId() - - - qsTranslate() - qsTranslate() - - - Always open ui.qml files in Design mode - Toujours ouvrir les fichiers .ui.qml dans le mode Design - - - Ask for confirmation before deleting asset - Demander confirmation avant la suppression d'une ressource - - - Always auto-format ui.qml files in Design mode - Toujours formatter automatiquement les fichiers .ui.qml dans le mode Design - - - Enable Timeline editor - Activer l'éditeur de ligne temporelle - - - Enable DockWidget content minimum size - Activer la taille minimale de contenu du DockWidget - - - Show property editor warnings - Afficher les avertissements de l'éditeur de propriétés - - - Enable the debugging view - Activer la vue de débogage - - - Show warn exceptions - Afficher les exceptions - - - Path: - Chemin : - - - Top level build path: - Chemin de construction de haut niveau : - - - Forward QML emulation layer output: - Faire suivre la sortie de la couche d'émulation QML : - - - Debug QML emulation layer: - Débogage de la couche d'émulation QML : - - - Parent component padding: - Remplissage du composant parent : - - - Sibling component spacing: - Espacement des composants voisins : - - - Width: - Largeur : - - - Height: - Hauteur : - - - Smooth rendering: - Rendu lisse : - - - Root Component Init Size - Taille initiale du composant racine - - - Styling - Style - - - Controls style: - Style des Controls : - - - Controls 2 style: - Style des Controls 2 : - - - Subcomponents - Sous-composants - - - Warnings - Avertissements - - - Internationalization - Internationalisation - - - Features - Fonctionnalités - - - Restart Required - Redémarrage nécessaire - - - The made changes will take effect after a restart of the QML Emulation layer or %1. - Les changements effectués prendront effet au prochain démarrage de la couche d’émulation QML ou %1. - - - - QmlDesigner::Internal::TypeAnnotationReader - - Illegal state while parsing. - État illégal lors de l'analyse. - - - No property definition allowed. - Aucune définition de propriété permise. - - - Invalid type %1 - Type %1 invalide - - - Unknown property for Type %1 - Propriété inconnue pour le type %1 - - - Unknown property for ItemLibraryEntry %1 - Propriété inconnue pour ItemLibraryEntry %1 - - - Unknown property for Property %1 - Propriété inconnue pour Property %1 - - - Unknown property for QmlSource %1 - Propriété inconnue pour QmlSource %1 - - - Unknown property for ExtraFile %1 - Propriété inconnue pour ExtraFile %1 - - - - QmlDesigner::InvalidArgumentException - - Failed to create item of type %1 - Échec lors de la création de l'élément de type %1 - QmlDesigner::ItemLibraryImport @@ -8620,13 +9798,6 @@ Veuillez vérifier le panneau de sortie pour plus d'informations.Vue de l'éditeur de matériau - - QmlDesigner::Model - - Invalid Id - Identifiant invalide - - QmlDesigner::NavigatorSearchWidget @@ -8636,10 +9807,6 @@ Veuillez vérifier le panneau de sortie pour plus d'informations. QmlDesigner::NavigatorTreeModel - - Unknown component: %1 - Composant inconnu : %1 - Toggles whether this component is exported as an alias property of the root component. Indique si ce composant est exporté en tant que propriété alias du composant racine. @@ -8657,17 +9824,6 @@ Locked components cannot be modified or selected. Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés. - - QmlDesigner::NavigatorTreeView - - Invalid Id - Identifiant invalide - - - %1 already exists. - %1 existe déjà. - - QmlDesigner::NavigatorView @@ -8711,21 +9867,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Inverser l'ordre des composants - - QmlDesigner::NodeInstanceView - - Qt Quick emulation layer crashed. - La couche d'émulation Qt Quick a planté. - - - Source item: %1 - Élément source : %1 - - - Failed to generate QSB file for: %1 - Échec de génération du fichier QSB pour : %1 - - QmlDesigner::NodeListModel @@ -8846,21 +9987,9 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.%1 already exists. %1 existe déjà. - - Invalid QML source - Source QML invalide - QmlDesigner::QmlDesignerPlugin - - Cannot Open Design Mode - Impossible d'ouvrir le mode Design - - - The QML file is not currently opened in a QML Editor. - Le fichier QML n'est actuellement pas ouvert dans un éditeur QML. - Qml Designer Lite Qml Designer Lite @@ -8873,10 +10002,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Give Feedback... Faire un retour… - - Enjoying the %1? - Vous appréciez %1 ? - QmlDesigner::QmlModelNodeProxy @@ -9082,13 +10207,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Fermer les autres éditeurs - - QmlDesigner::SignalList - - Signal List for %1 - Liste des signaux pour %1 - - QmlDesigner::SignalListDelegate @@ -9299,13 +10417,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Le changement du chemin des bundles prendra effet après le redémarrage. - - QmlDesigner::SubComponentManager - - My 3D Components - Mes composants 3D - - QmlDesigner::SwitchLanguageComboboxAction @@ -9328,26 +10439,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Vue du code - - QmlDesigner::TextToModelMerger - - No import statements found. - instruction? - Aucune mention d'importation n'a été trouvée. - - - Qt Quick 6 is not supported with a Qt 5 kit. - Qt Quick 6 n'est pas pris en charge avec un kit Qt 5. - - - The Design Mode requires a valid Qt kit. - Le mode Design nécessite un kit Qt valide. - - - No import for Qt Quick found. - Aucune importation de Qt Quick n'a été trouvée. - - QmlDesigner::TextureEditorView @@ -9589,10 +10680,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés. QmlDesigner::TimelineSettingsModel - - None - Aucune - State État @@ -9609,10 +10696,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Fixed Frame Étape fixe - - Base State - État de base - Error Erreur @@ -9807,6 +10890,10 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.%1 already exists. %1 existe déjà. + + Default + Défaut + QmlDesigner::TransitionTool @@ -9893,7 +10980,7 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés. Layout - Organisation + Agencement Parent @@ -10756,7 +11843,8 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés. All - Tout + Show all packages + Tous Advanced Options... @@ -11341,10 +12429,6 @@ dans le navigateur système pour un téléchargement manuel. The Qt version for kit %1 is invalid. La version Qt du kit %1 est invalide. - - The minimum Qt version required for Gradle build to work is %1. It is recommended to install the latest Qt version. - La version minimale requise pour une compilation avec Gradle est %1. Il est recommandé d'installer la dernière version de Qt. - The API level set for the APK is less than the minimum required by the kit. The minimum API level required by the kit is %1. @@ -11423,14 +12507,6 @@ Le niveau minimum d'API nécessaire par le kit est %1. The kit's build configuration is invalid. La configuration de compilation du kit est invalide. - - The kit's build steps list is invalid. - Les étapes de compilation du kit sont invalides. - - - The kit's deploy configuration is invalid. - La configuration de déploiement du kit est invalide. - No valid deployment device is set. Aucun périphérique pour le déploiement n'est défini. @@ -11629,10 +12705,6 @@ Le kit supporte « %2 », mais le périphérique utilise « %3&#x Physical device Périphérique physique - - None - Aucune - Erase the Android AVD "%1"? This cannot be undone. @@ -11659,6 +12731,11 @@ Cela ne peut être annulé. Connecting to the device IP "%1" failed. Échec lors de la connexion au périphérique avec l'adresse IP « %1 ». + + None + No skin + Aucun + An error occurred while removing the Android AVD "%1" using avdmanager tool. Une erreur est apparue lors de la suppression du périphérique AVD « %1 » au travers de l'outil avdmanager. @@ -11779,6 +12856,23 @@ Cela ne peut être annulé. Cannot copy C++ debug server. Impossible de copier le serveur de débogage C++. + + Art: Cleared App Profiles. + Art -> Android Runtime + Art : profils d'application nettoyés. + + + Art: Clearing App Profiles failed. + Art : nettoyage des profils d'application échoué. + + + Art: Compiled App Profiles. + Art : profils d'application compilés. + + + Art: Compiling App Profiles failed. + Art : compilation des profils d'application échoué. + General Général @@ -12486,6 +13580,10 @@ le fichier manifeste et d'écraser vos paramètres. Accepter l'écrase Using: %1. En utilisant : %1. + + Cannot debug: Invalid target information. + Impossible de déboguer : information de la cible invalide. + Cannot debug: Only QML and native applications are supported. Impossible de déboguer : seules les applications QML ou natives sont prises en charge. @@ -13137,11 +14235,12 @@ Voir la documentation de Google Test pour plus d'informations sur les filtr Exécuter automatiquement les tests après la compilation - None - Aucun + No Tests + Aucun test All + Run tests after build Tous @@ -13920,6 +15019,10 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec globbing? Motif de chemin + + Named filters + Filtres nommés + Total rows: Nombre de lignes totales : @@ -13928,14 +15031,6 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec Open Preferences... Ouvrir les préférences… - - Configure dashboards in Preferences > Axivion > General. - Configurer les tableaux de bord dans Préférences > Axivion > Général. - - - None - Aucun - No Data Aucune donnée @@ -13952,10 +15047,6 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec Reload Recharger - - Show Inline Issues - Afficher les problèmes en ligne - Show Issue Annotations Inline Afficher les problèmes avec des annotations en ligne @@ -13964,6 +15055,22 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec Show Online Filter Help Afficher l'aide en ligne des filtres + + Show All + Tout afficher + + + Configure dashboards in Preferences > Analyzer > Axivion. + Configurez des tableaux de bord dans Préférences > Analyseur > Axivion. + + + No Dashboard + Aucun tableau de bord + + + Show Issues in Editor + Afficher les problèmes dans l'éditeur + Open Issue in Dashboard Ouvrir le problème dans le tableau de bord @@ -14063,6 +15170,14 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut Highlight marks Mise en avant des problèmes + + Path must be relative. + Le chemin doit être relatif. + + + Invalid path elements (. or ..). + Éléments de chemin invalides (. ou ..). + Marks issues on the scroll bar. Affiche les problèmes dans la barre de défilement. @@ -14079,6 +15194,10 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut User name Nom d'utilisateur + + Project name must be non-empty. + Le nom du projet ne peut pas être vide. + Add... Ajouter… @@ -14091,10 +15210,18 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut Remove Supprimer + + Dashboard Servers + Serveurs de tableaux de bord + Default dashboard server: Serveur de tableau de bord par défaut : + + Misc Options + Options diverses + unset non défini @@ -14155,10 +15282,6 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut Move Down Déplacer vers le bas - - General - Général - Path Mapping Correspondance des emplacements @@ -14248,7 +15371,8 @@ a permet de trouver les problèmes contenant la lettre 'a' None - Aucune + No debug server provider + Aucun Not recognized @@ -14746,10 +15870,6 @@ a permet de trouver les problèmes contenant la lettre 'a' Target driver: Pilote cible : - - Starting %1... - Démarrage de %1… - Version Version @@ -16480,6 +17600,7 @@ Par exemple, « Revision : 15 » laissera la branche à la révis None + No CMake tool Aucun @@ -16788,8 +17909,8 @@ Assurez-vous que la variable CMAKE_BUILD_TYPE contient le champ « Build ty Impossible de renommer « %1 » en « %2 ». - Failed to copy "%1" to "%2". - Échec de la copie de « %1 » vers « %2 ». + Failed to copy "%1" to "%2": %3 + Échec lors de la copie de « %1 » vers « %2 » : %3 <File System> @@ -18419,11 +19540,11 @@ Oui :) Remote root path is empty - L'emplacement de la racine distante est vide + L'emplacement de la racine distante est vide Remote root path is not absolute - L'emplacement de la racine distante n'est pas absolu + L'emplacement de la racine distante n'est pas absolu Could not find dd on remote host: %1 @@ -18492,14 +19613,6 @@ Oui :) QtC::Coco - - Select a Squish Coco CoverageBrowser Executable - Sélectionner un exécutable Squish Coco CoverageBrowser - - - CoverageBrowser: - CoverageBrowser : - Coco instrumentation files (*.csmes) Fichiers d'instrumentation Coco (*.csmes) @@ -18509,8 +19622,218 @@ Oui :) Sélectionner un fichier d'instrumentation Squish Coco - CSMes: - CSMes : + CSMes file: + Fichier CSMes : + + + No valid CoverageScanner found. + Aucun scanneur de couverture valide n'a été trouvé. + + + Configure + Configurer + + + Coco Code Coverage: Reconfiguring... + Couverture de code Coco : reconfiguration… + + + Coco Code Coverage: No working Coco installation. + Couverture de code Coco : aucune installation Coco fonctionelle. + + + Coco Code Coverage: Enabled. + Couverture de code Coco : activée. + + + Disable Coverage + Désactiver la couverture + + + Coco Code Coverage: Disabled. + Couverture de code Coco : désactivée. + + + Enable Coverage + Activer la couverture + + + Save && Re-configure + Sauvegarder && Reconfigurer + + + Additional CMake options: + Options CMake supplémentaires : + + + Initial cache script: + Cache de script initial : + + + Overwrite file "%1". + Écrasement du fichier « %1 ». + + + Write file "%1". + Écriture du fichier « %1 ». + + + Coco Code Coverage + Couverture de code Coco + + + Documentation + Documentation + + + Revert + Rétablir + + + CoverageScanner options: + Options du scanneur de couverture : + + + Exclude File... + pour un bouton + Exclure le fichier… + + + Exclude Directory... + Exclure le dossier… + + + These settings are stored in + Ces paramètres sont stockés dans + + + Changed Build Settings + Paramètres de compilation modifiés + + + Code for the end of the file "%1" to override the built-in declarations. Only needed in special cases. + Code pour la fin du fichier « %1 » afin de remplacer les déclarations intégrées. Utile uniquement dans des cas spécifiques. + + + Enable code coverage for build configuration "%1" + Activation de la couverture de code pour la configuration de compilation « %1 » + + + Coco is not installed correctly: %1 + Coco n'est pas installé correctement : %1 + + + Build Configuration changed to "%1". + Configuration de compilation modifiée en « %1 ». + + + Re-configuring stopped by user. + Reconfiguration stoppée par l'utilisateur. + + + Error when configuring with "%1". Check General Messages for more information. + Une erreur s'est produite lors de la configuration avec « %1 ». Obtenez plus d'informations dans les messages généraux. + + + Stop Re-configuring + Stopper la reconfiguration + + + Re-configure + Reconfigurer + + + Override << + Écraser << + + + Override >> + Écraser >> + + + The Coco installation path is not set correctly. + Le chemin de l'installation de Coco n'est pas défini correctement. + + + Edit + Modifier + + + Stop re-configuring. + Reconfiguration arrêtée. + + + Re-configure. + Reconfiguration. + + + Reload file "%1". + Rechargement du fichier « %1 ». + + + File to Exclude from Instrumentation + Fichier à exclure de l'instrumentalisation + + + Directory to Exclude from Instrumentation + Répertoire à exclure de l'instrumentalisation + + + Save + Enregistrer + + + Additional qmake arguments: + Arguments qmake supplémentaires : + + + Build environment: + Environnement de compilation : + + + Feature file: + D'après les sources, c'est le fichier cocoplugin.prf, mais je n'ai pas trouvé d'info dans la doc. + Fichier de fonctionnalité : + + + Error: Coco installation directory not set. (This can't happen.) + Erreur : le répertoire d'installation de Coco n'est pas défini. (Cela ne peut pas arriver.) + + + Coco Installation Directory + Répertoire d'installation de Coco + + + Error: Coco installation directory not found at "%1". + Erreur : le répertoire d'installation de Coco n'a pas été trouvé à l'emplacement « %1 ». + + + Error: CoverageScanner at "%1" did not start. + Erreur : le scanneur de couverture à l'emplacement « %1 » n'a pas démarré. + + + Error: CoverageScanner at "%1" did not finish. + Erreur : le scanneur de couverture « %1 » n'a pas terminé. + + + Valid CoverageScanner found at "%1": + Scanneur de couverture valide trouvé à l'emplacement « %1 » : + + + Error: CoverageScanner at "%1" did not run correctly. + Erreur : le scanneur de couverture « %1 » ne s'est pas exécuté correctement. + + + Found Coco directory "%1". + Répertoire de Coco trouvé « %1 ». + + + Checked Coco directory "%1". + Répertoire de Coco vérifié « %1 ». + + + Coco Directory + Répertoire de Coco @@ -21346,26 +22669,6 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Sample external tool text Texte utile - - Creates qm translation files that can be used by an application from the translator's ts files - Crée un fichier de traduction qm utilisable par l’application à partir des fichiers ts du traducteur - - - Release Translations (lrelease) - Publier les traductions (lrelease) - - - Linguist - Linguist - - - Synchronizes translator's ts files with the program code - Synchronise les fichiers ts de traduction avec le code source - - - Update Translations (lupdate) - Mettre à jour les traductions (lupdate) - Opens the current file in Notepad Notepad, c'est pas très cross-platform @@ -21528,6 +22831,18 @@ To do this, you type this shortcut and a space in the Locator entry field, and t External Tools Outils externes + + A directory under version control was detected that is supported by the %1 plugin. + Un répertoire sous contrôle de version géré par le greffon %1 a été détecté. + + + Enable %1 + Activer %1 + + + The directory "%1" seems to be under version control that can be handled by the disabled %2 plugin. + Le répertoire « %1 » semble être sous contrôle de version et peut être géré par le greffon désactivé %2. + %1 repository was detected but %1 is not configured. Le dépôt %1 a été détecté mais %1 n’est pas configuré. @@ -21722,6 +23037,7 @@ Voulez-vous les écraser ? None + No find flags Aucune @@ -22158,14 +23474,14 @@ Souhaitez-vous les importer maintenant ? The plugin %1 requires you to accept the following terms and conditions: Le greffon %1 nécessite que vous acceptiez les termes et conditions : - - Do you wish to accept? - Souhaitez-vous accepter ? - No themes found in installation. Aucun thème n’a été trouvé dans l’installation. + + Help + Aide + The current date (ISO). La date actuelle (ISO). @@ -22605,6 +23921,18 @@ Double-cliquez pour modifier l’élément. Plugin failed to resolve dependencies: La résolution des dépendances pour le greffon a échoué : + + Plugin is already installed. + Le greffon est déjà installé. + + + A plugin with ID "%1" is already installed. + Un greffon ayant l'identifiant « %1 » est déjà installé. + + + No plugin with ID "%1" is installed. + Aucun greffon ayant l'identifiant « %1 » n'est installé. + Check Archive Vérifier l’archive @@ -22625,10 +23953,6 @@ Double-cliquez pour modifier l’élément. Accept Terms and Conditions Accepter les termes et conditions - - I accept the terms and conditions. - J'accepte les termes et conditions. - Canceled. Annulé. @@ -22641,30 +23965,6 @@ Double-cliquez pour modifier l’élément. Archive is OK. L’archive est OK. - - Install Location - Emplacement de l’installation - - - Choose install location. - Sélectionner l’emplacement de l’installation. - - - User plugins - Greffons utilisateur - - - The plugin will be available to all compatible %1 installations, but only for the current user. - Le greffon sera disponible pour toutes les installations compatibles %1, mais seulement pour l’utilisateur actuel. - - - %1 installation - Installation %1 - - - The plugin will be available only to this %1 installation, but for all users that can access it. - Le greffon ne sera disponible que pour cette installation %1, mais pour tous les utilisateurs qui peuvent y accéder. - Summary Résumé @@ -22685,6 +23985,10 @@ Double-cliquez pour modifier l’élément. Failed to Write File Échec de l’écriture du fichier + + Failed to create directory "%1". + Échec de la création du répertoire « %1 ». + Failed to write file "%1". Échec de l’écriture du fichier « %1 ». @@ -22723,7 +24027,7 @@ Double-cliquez pour modifier l’élément. <br/>Built on %1 %2<br/> - <br/>Construit sur %1 %2<br/> + <br/>Compilé le %1 %2<br/> Haskell Editor @@ -22737,14 +24041,6 @@ Double-cliquez pour modifier l’élément. Nim Editor Éditeur Nim - - Binding Editor - Éditeur de binding - - - Qt Quick Designer - Qt Quick Designer - SCXML Editor Éditeur SCXML @@ -22980,10 +24276,6 @@ devraient être gérés par le même processus clangd, ajoutez-les ici.Clangd Clangd - - None - Aucune - Quick Fixes Corrections rapides @@ -23210,6 +24502,11 @@ devraient être gérés par le même processus clangd, ajoutez-les ici.Member Function Implementations Implémentation des fonctions membres + + None + No default implementation location + Aucun + Inline Inline @@ -23488,6 +24785,11 @@ Utilisez le glisser-déposer pour modifier l’ordre des paramètres.Enums Énumérations + + All + Symbol search scope + Tous + Declarations Déclarations @@ -23504,10 +24806,6 @@ Flags: %3 Types : %2 Indicateurs : %3 - - All - Tout - Projects Projets @@ -23520,56 +24818,18 @@ Indicateurs : %3 lines lignes - - See tool tip for more information - Voir l’info-bulle pour plus d’informations - - - Use <name> for the variable -Use <camel> for camel case -Use <snake> for snake case -Use <Name>, <Camel> and <Snake> for upper case -e.g. name = "m_test_foo_": -"set_<name> => "set_test_foo" -"set<Name> => "setTest_foo" -"set<Camel> => "setTestFoo" - Utiliser <nom> pour la variable -Utiliser <camel> pour le camel case -Utiliser <snake> for snake case -Utiliser <Nom>, <Camel> et <Snake> pour les majuscules -p.ex. nom = « m_test_toto_ » : -"set_<nom> => « set_test_toto » -"set<Nom> => « setTest_toto » -"set<Camel> => « setTestToto » - For example, [[nodiscard]] Par exemple, [[nodiscard]] - - For example, new<Name> - Par exemple, new<Nom> - Setters should be slots Les setters doivent être des slots - - Normally reset<Name> - Normalement reset<Nom> - - - Normally <name>Changed - Normalement <Nom>Changed - Generate signals with the new value as parameter Générer des signaux avec la nouvelle valeur comme paramètre - - For example, m_<name> - Par exemple, m_<nom> - Generate missing namespaces Générer les espaces de noms manquants @@ -23630,6 +24890,34 @@ p.ex. nom = « m_test_toto_ » : Default Défaut + + A JavaScript expression acting as the return value of a function with two parameters <b>name</b> and <b>memberName</b>, where<ul><li><b>name</b> is the "semantic name" as it would be used for a Qt property</li><li><b>memberName</b> is the name of the member variable.</li></ul> + Une expression JavaScript agissant comme valeur de retour d'une fonction avec deux paramètres <b>nom</b> et <b>nomMembre</b>, où <ul><li><b>nom</b> est le « nom sémantique » comme il le serait pour une propriété Qt</li><li><b>nomMembre</;> est le nom de la variable membre.</li></ul> + + + A JavaScript expression acting as the return value of a function with a parameter <b>name</b>, which is the "semantic name" as it would be used for a Qt property. + Une expression JavaScript agissant comme valeur de retour d'une fonction avec un paramètre <b>nom</b>, le « nom sémantique » comme il le serait pour une propriété Qt. + + + How to get from the member variable to the semantic name. +This is the reverse of the operation above. +Leave empty to apply heuristics. + Comment obtenir le nom sémantique à partir de la variable membre. +C'est l'opération inverse de celle ci-dessus. +Laissez vide pour utiliser les heuristiques. + + + Test + Test + + + Hide Test Results + Cacher les résultats des tests + + + The content of the "name" variable. + Le contenu de la variable « name ». + Outside class: En dehors de la classe : @@ -23694,6 +24982,14 @@ p.ex. nom = « m_test_toto_ » : Member variable name: Nom de la variable membre : + + Name from member variable: + Nom pour la variable membre : + + + Test input: + Entrée de test : + Missing Namespace Handling Traitement des espaces de noms manquants @@ -25765,10 +27061,6 @@ Vous pouvez décider entre attendre plus longtemps ou mettre fin au débogage.Application exited normally. L’application s’est terminée normalement. - - The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for %3. Supported versions are Python 2.7 and 3.x. - La version sélectionnée de GDB prend en charge les scripts Python, mais la version utilisée %1.%2 n’est pas suffisante pour %3. Les versions prises en charge sont Python 2.7 et 3.x. - Failed to Shut Down Application Échec de la terminaison du programme @@ -25817,6 +27109,10 @@ Vous pouvez décider entre attendre plus longtemps ou mettre fin au débogage.Executable failed: %1 Échec de l’exécutable : %1 + + The selected build of GDB supports Python scripting, but the used version %1.%2 is not sufficient for %3. Python %4 or later is required. + Le binaire GDB sélectionné prend en charge les scripts Python, mais la version utilisée %1.%2 n'est pas suffisante pour %3. Python %4 ou supérieur est requis. + Step requested... Pas à pas demandé… @@ -26212,6 +27508,14 @@ reçoit un signal comme SIGSEGV pendant le débogage. Second chance exceptions Exceptions de deuxième chance + + Enable heap debugging + Active le débogage du tas + + + Allocate memory using the debug heap rather than the normal heap. The debug heap enables additional checks to help diagnose heap related bugs. However it comes at a performance cost when allocating memory in the debugged process. + Alloue de la mémoire en utilisant le tas de débogage à la place du tas classique. Le tas de débogage permet des vérifications supplémentaires pour trouver les bogues liés au tas. Toutefois, les performances d'allocation de mémoire dans le processus débogué seront impactées. + Show "std::" namespace in types Afficher l’espace de noms « std:: » dans les types @@ -26619,10 +27923,6 @@ par défaut de l’utilisateur au démarrage du débogueur. No valid expression Aucune expression valide - - %1 (Previous) - %1 (précédente) - Expression too complex Expression trop complexe @@ -26839,6 +28139,10 @@ par défaut de l’utilisateur au démarrage du débogueur. Separate Window Fenêtre séparée + + Attaching to %1... + Attachement à %1… + There is no CDB executable specified. Il n’y a pas d’exécutable CDB spécifié. @@ -27046,10 +28350,6 @@ Sélectionner GDB ou LLDB comme débogueur améliorerait l’expérience de déb Unpacking core file to %1 Dépaquetage du fichier core vers %1 - - Cannot debug: Local executable is not set. - Débogage impossible : l’exécutable local n’est pas défini. - No executable specified. Aucun exécutable n’est spécifié. @@ -27627,14 +28927,6 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si CMake Preset Préréglage CMake - - GDB Preset - Préréglage GDB - - - LLDB Preset - Préréglage LLDB - Python Preset Préréglage Python @@ -28019,50 +29311,10 @@ Voulez-vous réessayer ? Stop when %1() is called Arrêter lorsque %1() est appelé - - Start Remote Engine - Démarrer le moteur distant - - - &Host: - &Hôte : - - - &Username: - &Utilisateur : - - - &Password: - Mot de &passe : - - - &Engine path: - Chemin du mot&eur : - - - &Inferior path: - Chemin &inférieur : - Reset Réinitialiser - - Type Formats - Formats des types - - - Qt Types - Types Qt - - - Standard Types - Types standards - - - Misc Types - Types divers - Additional startup commands: Commandes supplémentaires de démarrage : @@ -28306,17 +29558,21 @@ Vous pouvez choisir un autre canal de communication ici, comme une ligne série &Récent : - Cannot debug + Cannot Debug Impossible de déboguer - Cannot debug application: Kit has no device - Impossible de déboguer l'application : le kit n'a pas de périphérique + Cannot debug application: Kit has no device. + Impossible de déboguer l'application : le kit n'a pas de périphérique. Attach to %1 Attacher à %1 + + Attach to QML Port + Attacher au port QML + <html><body><p>The remote CDB needs to load the matching %1 CDB extension (<code>%2</code> or <code>%3</code>, respectively).</p><p>Copy it onto the remote machine and set the environment variable <code>%4</code> to point to its folder.</p><p>Launch the remote CDB as <code>%5 &lt;executable&gt;</code> to use TCP/IP as communication protocol.</p><p>Enter the connection parameters as:</p><pre>%6</pre></body></html> <html><body><p>Le CDB distant doit charger l'extension CDB correspondante %1 (<code>%2</code> ou <code>%3</code>, respectivement).</p><p>Copiez les sur la machine distanteet définissez la variable d'environnement <code>%4</code> pour diriger vers son dossier.</p><p>Lancez le CDB distant comme <code>%5 &lt;exécutable&gt;</code> pour utiliser le protocole de communication TCP/IP.</p><p>Entrez les paramètres de connexions tels quel&nbsp;:</p><pre>%6</pre></body></html> @@ -28329,6 +29585,11 @@ Vous pouvez choisir un autre canal de communication ici, comme une ligne série No debugger set up. Aucun débogueur n’a été configuré. + + None + No debugger + Aucun + Debugger "%1" not found. Le débogueur « %1 » est introuvable. @@ -28471,10 +29732,6 @@ Vous pouvez choisir un autre canal de communication ici, comme une ligne série Yes Oui - - None - Aucune - Plain Simple @@ -28553,6 +29810,11 @@ Le pas à pas dans le module ou la définition de points d’arrêt par fichier Show Dependencies Montrer les dépendances + + None + Symbols Type (No debug information found) + Aucun + This module contains debug information. Stepping into the module or setting breakpoints by file and line is expected to work. @@ -29342,6 +30604,14 @@ L’accès au module ou la mise en place de points d’arrêt par fichier et par Label text for path configuration. %2 is "x-bit version". <html><body><p>Spécifier le chemin à <a href="%1">l’exécutable du débogueur en console de Windows</a> (%2) ici. + + Added a surrogate GDB DAP item for existing entry "%1". + Un élément de substitution GDB DAP a été ajouté à l'entrée existante « %1 ». + + + Added a surrogate GDB DAP item for "%1". + Un élément de substitution GDB DAP a été ajouté à « %1 ». + Clone Cloner @@ -29380,7 +30650,6 @@ L’accès au module ou la mise en place de points d’arrêt par fichier et par System %1 at %2 - %1: Debugger engine type (GDB, LLDB, CDB...), %2: Path %1 du système à %2 @@ -29477,26 +30746,6 @@ L’accès au module ou la mise en place de points d’arrêt par fichier et par Run %1 in %2 Mode? Lancer %1 en mode %2 ? - - Global - Général - - - Custom - Personnalisé - - - Restore Global - Restaurer les valeurs générales - - - Use Customized Settings - Utiliser des réglages personnalisés - - - Use Global Settings - Utiliser les paramètres généraux - Copy Copier @@ -29848,10 +31097,6 @@ Recompiler le projet pourrait aider. File "%1" not found in project. Fichier « %1 » introuvable dans le projet. - - No active target. - Aucune cible active. - No active build system. Aucun système de compilation. @@ -29925,6 +31170,145 @@ La recompilation du projet peut aider. Nom de fichier d’interface invalide : « %1 » + + QtC::DesignerCore + + Failed to create item of type %1. + Échec de création d'un élément de type %1. + + + Only alphanumeric characters and underscore allowed. +Ids must begin with a lowercase letter. + Seuls les caractères alphanumériques et les tirets du bas sont acceptés. +Les identifiants doivent commencer avec une lettre minuscule. + + + Ids have to be unique. + Les identifiants doivent être uniques. + + + Invalid Id: %1 +%2 + Identifiant invalide : %1 +%2 + + + Invalid meta info. + Métadonnées invalides. + + + Illegal state while parsing. + État illégal lors de l'analyse. + + + No property definition allowed. + Aucune définition de propriété permise. + + + Invalid type %1. + Type %1 invalide. + + + Unknown property for Type %1. + Propriété inconnue pour le type %1. + + + Unknown property for ItemLibraryEntry %1. + Propriété inconnue pour ItemLibraryEntry %1. + + + Unknown property for Property %1. + Propriété inconnue pour Property %1. + + + Unknown property for QmlSource %1. + Propriété inconnue pour QmlSource %1. + + + Unknown property for ExtraFile %1. + Propriété inconnue pour ExtraFile %1. + + + Invalid or duplicate library entry %1. + Entrée de bibliothèque %1 invalide ou dupliquée. + + + My 3D Components + Mes composants 3D + + + Error parsing + Erreur d'analyse + + + Internal error + Erreur interne + + + line %1 + ligne %1 + + + column %1 + colonne %1 + + + ID cannot start with an uppercase character (%1). + L'identifiant ne peut pas commencer avec un caractère majuscule (%1). + + + ID cannot start with a number (%1). + L'identifiant ne peut pas commencer avec un chiffre (%1). + + + ID cannot include whitespace (%1). + L'identifiant ne peut pas contenir d'espace (%1). + + + %1 is a reserved QML keyword. + %1 est un mot clé QML réservé. + + + %1 is a reserved Qml type. + %1 est un type Qml réservé. + + + %1 is a reserved property keyword. + %1 est un mot clé de propriété réservé. + + + ID includes invalid characters (%1). + L'identifiant contient des caractères invalides (%1). + + + Failed to create instance of file "%1": %2 + Impossible de créer une instance à partir du fichier « %1 » : %2 + + + Failed to create instance of file "%1". + Impossible de créer une instance à partir du fichier « %1 ». + + + Empty document. + Document vide. + + + No import statements found. + Aucune mention d'importation n'a été trouvée. + + + Qt Quick 6 is not supported with a Qt 5 kit. + Qt Quick 6 n'est pas pris en charge avec un kit Qt 5. + + + The Design Mode requires a valid Qt kit. + Le mode Design nécessite un kit Qt valide. + + + No import for Qt Quick found. + Aucune importation de Qt Quick n'a été trouvée. + + QtC::DiffEditor @@ -30133,10 +31517,6 @@ La recompilation du projet peut aider. Failed starting Docker container. Exit code: %1, output: %2 Échec lors du démarrage du container Docker. Code de sortie : %1, sortie : %2 - - Failed to start container: %1 - Échec du démarrage du container : %1 - Docker Image "%1" (%2) Image Docker « %1 » (%2) @@ -30197,6 +31577,10 @@ La recompilation du projet peut aider. Failed creating Docker container. No container ID received. Échec lors de la création du container Docker. Aucun identifiant de container reçu. + + Failed to start container "%1". + Échec de démarrage du container « %1 ». + Device is shut down Le périphérique a été fermé @@ -30382,6 +31766,162 @@ La recompilation du projet peut aider. Configuration + + QtC::EffectComposer + + Trigger Completion + Déclencher la complétion + + + Meta+Space + Meta+Espace + + + Ctrl+Space + Ctrl+Espace + + + Effect Code Editor + Éditeur de code d'effet + + + Main + Principal + + + New Property + Nouvelle propriété + + + Select Custom Effect Background Image + Sélectionner une image personnalisée d'effet d'arrière-plan + + + Image Files (%1) + Fichiers image (%1) + + + Common error: %1 + Erreur commune : %1 + + + QML parsing error: %1 + Erreur d'analyse QML : %1 + + + Shader error: %1 + Erreur de shader : %1 + + + Preprocessor error: %1 + Erreur du préprocesseur : %1 + + + Animation + Animation + + + Running + En cours d'exécution + + + Set this property to animate the effect. + Définir cette propriété pour un effet animé. + + + Time + Temps + + + This property allows explicit control of current animation time when Running property is false. + Cette propriété permet un contrôle explicite du temps de l'animation lorsque la propriété « En cours d'exécution » est à faux. + + + Frame + Trame + + + This property allows explicit control of current animation frame when Running property is false. + Cette propriété permet un contrôle explicite de la trame d'animation lorsque la propriété « En cours d'exécution » est à faux. + + + General + Général + + + Extra Margin + Marge supplémentaire + + + This property specifies how much of extra space is reserved for the effect outside the parent geometry. + Cette propriété détermine l'espace supplémentaire réservé hors de la géométrie du parent à l'effet. + + + Uniform Name + Nom de variable uniforme + + + Property Name + Nom de propriété + + + Type + Type + + + Min + Min + + + Max + Max + + + Description + Description + + + Unsupported type + Type non pris en charge + + + Effect Composer [beta] + Compositeur d'effet [bêta] + + + Effect Composer + Title of effect composer widget + Compositeur d'effets + + + Shaders Code Editor + Éditeur de code de shaders + + + X + X + + + Y + Y + + + Z + Z + + + W + W + + + %1 Item + élément %1 + + + Set this to use an item in the scene as %1 instead of the above image. + Définir cette propriété pour utiliser un élément de la scène comme %1 au lieu de l'image ci-dessus. + + QtC::EmacsKeys @@ -30487,6 +32027,14 @@ La recompilation du projet peut aider. Restart Now Redémarrer maintenant + + Remove... + Supprimer… + + + Update... + Mise à jour… + Error Erreur @@ -30565,7 +32113,8 @@ La recompilation du projet peut aider. All - Toutes + Extensions filter + Tous Extension packs @@ -30643,6 +32192,10 @@ La recompilation du projet peut aider. New Nouveau + + Updated + Mis à jour + QtC::ExtensionSystem @@ -30691,6 +32244,16 @@ La recompilation du projet peut aider. Loadable without restart: Pouvant être chargé sans redémarrage + + None + No category + Aucune + + + All + Platforms: All + Toutes + %1 (current: "%2") %1 (actuel : « %2 ») @@ -30948,6 +32511,14 @@ Reason: %3 Impossible de charger le greffon car une des dépendances n’a pas pu être chargé : %1(%2) Raison : %3 + + Plugin not found. + Greffon non trouvé. + + + It does not exist. + Il n'existe pas. + The plugin "%1" is specified twice for testing. Le greffon « %1 » est spécifié deux fois pour les tests. @@ -31081,12 +32652,12 @@ Raison : %3 Erreur interne : aucune instance de l’extension sur laquelle exécuter delayedInitialized - None - Aucune + Cannot remove system plugins. + Impossible de supprimer les greffons système. - All - Tout + Could not determine root folder. + Impossible de déterminer le répertoire racine. Load on Startup @@ -32364,6 +33935,11 @@ Raison : %3 Cannot describe revision "%1" in "%2": %3 Impossible de décrire la révision « %1 » dans « %2 » : %3 + + All + All branches + Toutes + Cannot resolve stash message "%1" in "%2". Look-up of a stash via its descriptive message failed. @@ -32383,6 +33959,7 @@ Raison : %3 Continue Rebase + Avoid translating "Rebase" Continuer le rebasage @@ -32405,6 +33982,7 @@ Soumettre maintenant ? Continue Revert + Avoid translating "Revert" Continuer le rétablissement @@ -32576,11 +34154,6 @@ Souhaitez-vous créer la branche « %1 » sur le serveur distant et la Chunk successfully unstaged Le chunk a été retiré avec succès - - All - Semble être pour les branches - Toutes - Show log for all local branches. Afficher le journal de toutes les branches locales. @@ -32676,6 +34249,10 @@ Valider maintenant ? C&heckout %1 C&heckout %1 + + Create &Branch from %1... + Créer une &branche depuis %1… + &Interactive Rebase from %1... Rebasage &interactif à partir de %1… @@ -32850,6 +34427,56 @@ Valider maintenant ? Current &File &Fichier actuel + + Diff Current File + Avoid translating "Diff" + Réaliser un diff du fichier actuel + + + Diff of "%1" + Avoid translating "Diff" + Réaliser un diff de « %1 » + + + Log Current File + Avoid translating "Log" + Afficher le log du fichier actuel + + + Log of "%1" + Avoid translating "Log" + Afficher le log de « %1 » + + + Log Current Selection + Avoid translating "Log" + Log de la sélection actuelle + + + Log of "%1" Selection + Avoid translating "Log" + Log de la sélection « %1 » + + + Blame Current File + Avoid translating "Blame" + Blamer le fichier actuel + + + Blame for "%1" + Avoid translating "Blame" + Blamer « %1 » + + + Instant Blame Current Line + Avoid translating "Blame" + Blamer instantanément la ligne actuelle + + + Instant Blame for "%1" + Avoid translating "Blame" + Blamer instantanément « %1 » + Stage "%1" for Commit Ajouter « %1 » au staging pour commit @@ -32884,6 +34511,36 @@ Valider maintenant ? Undo Uncommitted Changes for "%1" Annuler les changements non committés pour « %1 » + + Diff Project Directory + Avoid translating "Diff" + Réaliser un diff du répertoire du projet + + + Diff Directory of Project "%1" + Avoid translating "Diff" + Réaliser un diff du répertoire du projet « %1 » + + + Log Project Directory + Avoid translating "Log" + Log du répertoire du projet + + + Log Directory of Project "%1" + Avoid translating "Log" + Log du répertoire du projet « %1 » + + + Clean Project Directory... + Avoid translating "Clean" + Clean du répertoire de projet… + + + Clean Directory of Project "%1"... + Avoid translating "Clean" + Clean du répertoire de projet « %1 »… + Alt+G,Alt+K Alt+G,Alt+K @@ -32926,13 +34583,9 @@ Valider maintenant ? Continue Cherry Pick + Avoid translating "Cherry Pick" Continuer l’importation sélective (« cherry pick ») - - Abort Revert - Avoid translating "Revert" - Annuler le rétablissement - &Patch &Patch @@ -32949,6 +34602,56 @@ Valider maintenant ? Branches... Branches… + + Status (Include All Untracked) + Avoid translating "Status" + Status (inclure les fichiers non suivis) + + + Amend Last Commit... + Avoid translating "Commit" + Amender le dernier commit… + + + Fixup Previous Commit... + Avoid translating "Commit" + Correction du commit précédent… + + + Interactive Rebase... + Avoid translating "Rebase" + Rebase interactif… + + + Abort Merge + Avoid translating "Merge" + Annuler le merge + + + Abort Rebase + Avoid translating "Rebase" + Annuler le rebase + + + Abort Cherry Pick + Avoid translating "Cherry Pick" + Annuler le Cherry Pick + + + Abort Revert + Avoid translating "Revert" + Annuler le revert + + + Stash Unstaged Files + Avoid translating "Stash" + Stash les fichiers non mis en cache + + + Stash Pop + Avoid translating "Stash" + Dépiler le stash + The repository is clean. Le dépôt est propre. @@ -32981,50 +34684,10 @@ Valider maintenant ? Triggers a Git version control operation. Déclenche une opération du gestionnaire de versions Git. - - Diff Current File - Avoid translating "Diff" - Réaliser un diff du fichier actuel - - - Diff of "%1" - Avoid translating "Diff" - Réaliser un diff de « %1 » - - - Log Current File - Avoid translating "Log" - Réaliser un log du fichier actuel - - - Log of "%1" - Avoid translating "Log" - Réaliser un log de « %1 » - Meta+G,Meta+L Meta+G, Meta+L - - Blame Current File - Avoid translating "Blame" - Blamer le fichier actuel - - - Blame for "%1" - Avoid translating "Blame" - Blamer « %1 » - - - Instant Blame Current Line - Avoid translating "Blame" - Blamer instantanément la ligne actuelle - - - Instant Blame for "%1" - Avoid translating "Blame" - Blamer instantanément « %1 » - Meta+G,Meta+I Meta+G,Meta+I @@ -33053,49 +34716,15 @@ Valider maintenant ? &Local Repository Dépôt &local - - Amend Last Commit... - Avoid translating "Commit" - Amender le dernier commit… - - - Fixup Previous Commit... - Avoid translating "Commit" - Correction du commit précédent… - Recover Deleted Files Accéder aux fichiers supprimés - - Interactive Rebase... - Avoid translating "Rebase" - Rebasage interactif… - - - Abort Merge - Avoid translating "Merge" - Annuler la fusion - - - Abort Rebase - Avoid translating "Rebase" - Annuler le rebasage - Skip Rebase + Avoid translating "Rebase" Sauter le rebasage - - Abort Cherry Pick - Avoid translating "Cherry Pick" - Annuler l’importation sélective (« cherry pick ») - - - Stash Pop - Avoid translating "Stash" - Accéder à la remise (« stash pop ») - Archive... Archiver… @@ -33120,11 +34749,6 @@ Valider maintenant ? Apply from File... Appliquer depuis le fichier… - - Stash Unstaged Files - Avoid translating "Stash" - Mettre dans la remise (« stash ») les fichiers non mis en cache - Saves the current state of your unstaged files and resets the repository to its staged state. Enregistre l’état actuel de vos fichiers non mis en cache et réinitialise le dépôt à son état mis en cache. @@ -33137,17 +34761,6 @@ Valider maintenant ? Meta+G,Meta+C Meta+G, Meta+C - - Log Current Selection - Avoid translating "Log" - Doit t-on suivre le conseil du développeur ? :D - Log de la sélection actuelle - - - Log of "%1" Selection - Avoid translating "Log" - Log de la sélection « %1 » - Meta+G,Meta+S Meta+G, Meta+S @@ -33160,36 +34773,6 @@ Valider maintenant ? Current &Project Directory Répertoire du &projet actuel - - Diff Project Directory - Avoid translating "Diff" - Diff du répertoire du projet - - - Diff Directory of Project "%1" - Avoid translating "Diff" - Diff du répertoire du projet « %1 » - - - Log Project Directory - Avoid translating "Log" - Log du répertoire du projet - - - Log Directory of Project "%1" - Avoid translating "Log" - Log du répertoire du projet « %1 » - - - Clean Project Directory... - Avoid translating "Clean" - Clean du répertoire de projet… - - - Clean Directory of Project "%1"... - Avoid translating "Clean" - Clean du répertoire de projet « %1 »… - &Subversion &Subversion @@ -33250,10 +34833,6 @@ Valider maintenant ? Interactive Rebase Rebasage interactif - - Unsupported version of Git found. Git %1 or later required. - Une version non prise en charge de Git a été trouvée. Git %1 ou plus récent est requis. - Amend %1 Amender %1 @@ -35820,8 +37399,8 @@ Souhaitez-vous les écraser ? %1 n'est pas connecté. - Debugging and profiling is currently not supported for devices with iOS 17 and later. - Le débogage et le profilage n'est actuellement pas pris en charge avec les périphériques iOS 17 et supérieur. + Debugging on devices with iOS 17 and later requires Xcode 16 or later. + Le débogage sur les périphériques iOS 17 et supérieur nécessite Xcode 16 ou supérieur. Update @@ -35855,6 +37434,26 @@ Souhaitez-vous les écraser ? Running "%1" on %2... Exécution de « %1 » sur %2… + + Running failed. Failed to create the temporary output file. + Échec de l'exécution. Impossible de créer le fichier de sortie temporaire. + + + Failed to retrieve process ID. + Échec de la récupération de l'identifiant du processus. + + + Failed to get a local debugger port. + Échec lors de l'obtention d'un port local de débogage. + + + Listening for debugger on local port %1. + Attente d'un débogueur sur le port local %1. + + + Listening for QML debugger on local port %1 (port %2 on the device). + Attente d'un débogueur QML sur le port local %1 (port %2 sur le périphérique). + Could not get necessary ports for the debugger connection. Impossible de récupérer les ports nécessaires à la connexion de débogage. @@ -35884,6 +37483,14 @@ Souhaitez-vous les écraser ? Could not get necessary ports for the profiler connection. Impossible de récupérer les ports nécessaires à la connexion du profileur. + + Internal error. + Erreur interne. + + + Only C++ debugging is supported for devices with iOS 17 and later. + Seul le débogage C++ est pris en charge sur les périphériques avec iOS 17 ou supérieur. + Application not running. L'application ne s'exécute pas. @@ -35904,10 +37511,6 @@ Souhaitez-vous les écraser ? Device type: Type de périphérique : - - None - Aucun - iOS Settings Paramètres iOS @@ -35932,6 +37535,11 @@ Souhaitez-vous les écraser ? Default Défaut + + None + No signing identity + Aucune + Development team is not selected. L'équipe de développement n'est pas sélectionnée. @@ -36174,6 +37782,11 @@ Date d'expiration : %3 language client state arrêt + + failed to shutdown + language client state + échec de l'arrêt + Language Server "%1" Initialization Error Erreur d'initialisation du serveur de langage « %1 » @@ -36367,6 +37980,22 @@ Exemple : *.cpp%1*.h JSON Error Erreur JSON + + Project Specific Language Servers + Serveurs de langage spécifique au projet + + + Use Global Settings + Utiliser les paramètres généraux + + + Enabled + Activé + + + Disabled + Désactivé + Workspace Configuration Configuration de l'espace de travail @@ -36474,6 +38103,10 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Collapse All Tout réduire + + <Select Symbol> + <Sélectionner un symbole> + Capabilities: Capacités : @@ -36689,10 +38322,18 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Failed to run script %1: %2 Impossible d'exécuter le script %1 : %2 + + Non-string key encountered in Lua table at path "%1". + Une clé qui n'est pas une chaîne de caractères a été trouvée dans le tableau Lua au chemin « %1 ». + No hook with the name "%1" found. Aucun crochet avec le nom « %1 » n'a été trouvé. + + Unsupported value type "%1" at path "%2". + Type de valeur « %1 » non pris en charge au chemin « %2 ». + Script did not return a table. Le script n'a pas retourné de tableau. @@ -36866,21 +38507,6 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Exécute une macro d’édition de texte qui a été enregistrée avec Outils > Macros d’édition de texte > Enregistrer une macro. - - QtC::Marketplace - - Marketplace - Marketplace - - - Search in Marketplace... - Rechercher dans le Marketplace… - - - <p>Could not fetch data from Qt Marketplace.</p><p>Try with your browser instead: <a href='https://marketplace.qt.io'>https://marketplace.qt.io</a></p><br/><p><small><i>Error: %1</i></small></p> - <p>Impossible d’accéder aux données depuis Qt Marketplace.</p><p>Essayer plutôt avec votre navigateur : <a href='https://marketplace.qt.io'>https://marketplace.qt.io</a></p><br/><p><small><i>Erreur : %1</i></small></p> - - QtC::McuSupport @@ -36928,12 +38554,12 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Le chemin %1 existe, mais ne contient pas %2. - Path %1 does not exist. Add the path in Edit > Preferences > Devices > MCU. - Le chemin %1 n'existe pas. Ajoutez le chemin dans Éditer > Préférences > Périphériques > MCU. + Path %1 does not exist. Add the path in Edit > Preferences > SDKs > MCU. + Le chemin %1 n'existe pas. Ajoutez le chemin dans Éditer > Préférences > SDKs > MCU. - Missing %1. Add the path in Edit > Preferences > Devices > MCU. - %1 manquant. Ajoutez le chemin dans Edit > Préférences > Périphériques > MCI. + Missing %1. Add the path in Edit > Preferences > SDKs > MCU. + %1 manquant. Ajoutez le chemin dans Edit > Préférences > SDKs > MCI. No CMake tool was detected. Add a CMake tool in Edit > Preferences > Kits > CMake. @@ -36984,8 +38610,8 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Le chemin %1 existe, mais la version %2 n'a pas pu être détectée. - Download from "%1" - Télécharger depuis « %1 » + Download from "%1". + Téléchargement depuis « %1 ». Board SDK for MIMXRT1050-EVK @@ -37197,8 +38823,8 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Aucun outil CMake détecté. Ajoutez un outil CMake dans les <a href="cmake">options CMake</a> et cliquez sur Appliquer. - Cannot apply changes in Devices > MCU. - Impossible d'appliquer les changements dans Périphériques > MCU. + Cannot apply changes in SDKs > MCU. + Impossible d'appliquer les changements dans SDKs > MCU. Qt for MCUs Kit Creation @@ -37255,8 +38881,8 @@ Voir la documentation spécifique au serveur de langage pour la liste des param Qt pour MCUs : %1 - Create Kits for Qt for MCUs? To do it later, select Edit > Preferences > Devices > MCU. - Créer des kits Qt pour MCUs ? Pour faire cela plus tard, sélectionnez Éditer > Préférences > Périphériques > MCU. + Create Kits for Qt for MCUs? To do it later, select Edit > Preferences > SDKs > MCU. + Créer les kits Qt pour les MCUs ? Vous pouvez le faire plus tard dans Édition > Préférences > SDKs > MCU. Create Kits for Qt for MCUs @@ -37733,6 +39359,34 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio Meson build: Parsing failed Compilation Meson : échec de l’analyse + + Source Files + Fichiers source + + + Header Files + Fichiers d'en-tête + + + Python Files + Fichiers Python + + + Qt Designer Files + Fichiers Qt Designer + + + Qt Resource Files + Fichiers de ressource Qt + + + QML Files + Fichiers QML + + + Other Files + Autres fichiers + Running %1 in %2. Exécute %1 dans %2. @@ -37753,10 +39407,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio No Meson tool set. Aucun outil Meson n’est défini. - - No Ninja tool set. - Aucun outil Ninja n’est défini. - No compilers set in kit. Pas d’ensemble de compilation dans le kit. @@ -37794,22 +39444,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio Meson Build Compilation Meson - - Ninja Tool - Outils Ninja - - - The Ninja tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. - Les outils Ninja à utiliser lors de la compilation d’un projet avec Meson.<br>Ce paramètre est ignoré lors de l’utilisation d’autres systèmes de compilation. - - - Cannot validate this Ninja executable. - Impossible de valider l’exécutable Ninja. - - - Ninja - Ninja - Autorun Meson Exécution automatique de Meson @@ -37819,12 +39453,12 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio Exécuter automatiquement Meson lorsque c’est nécessaire. - Ninja verbose mode - Mode verbeux de Ninja + Meson verbose mode + Mode verbeux de Meson - Enables verbose mode by default when invoking Ninja. - Active le mode verbeux par défaut lors de l’invocation de Ninja. + Enables verbose mode by default when invoking Meson. + Active le mode verbeux par défaut lors de l'invocation de Meson. General @@ -37846,10 +39480,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio Location Emplacement - - New Meson or Ninja tool - Nouveaux outils Meson ou Ninja - Tools Outils @@ -37898,6 +39528,10 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio Cannot get tool version. Impossible d’obtenir la version de l’outil. + + New Meson + Nouveau Meson + QtC::ModelEditor @@ -38228,7 +39862,8 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio None - Aucune + No default arguments + Aucun Target: @@ -38490,14 +40125,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio [unknown] [inconnu] - - Perf Process Failed to Start - Le processus perf n’a pas pu démarrer - - - Make sure that you are running a recent Linux kernel and that the "perf" utility is available. - Assurez-vous que vous utilisez un noyau Linux récent et que l’utilitaire « perf » est disponible. - Failed to transfer Perf data to perfparser. Échec du transfert des données Perf à perfparser. @@ -38865,8 +40492,8 @@ Vous pouvez trouver des explications supplémentaires dans la vue « Sortie Élever les privilèges en utilisant : - Error: No device available for active target. - Erreur : aucun périphérique n’est disponible pour la cible active. + Error: No device available for active kit. + Erreur : aucun périphérique n'est disponible pour le kit actif. Error: Failed to load trace point script %1: %2. @@ -39951,6 +41578,18 @@ Title of a the cloned RunConfiguration window, text of the window Run Settings Paramètres d’exécution + + Global + Global + + + Use Customized Settings + Utiliser des paramètres personnalisés + + + Use Global Settings + Utiliser les paramètres généraux + Variables in the run environment. Variables de l’environnement d’exécution. @@ -40197,6 +41836,10 @@ Title of a the cloned RunConfiguration window, text of the window Cancel Build Annuler la compilation + + SDKs + SDKs + Open Workspace... Ouvrir l'espace de travail… @@ -40870,6 +42513,16 @@ Veuillez réessayer. Use jom instead of nmake Utiliser jom à la place de nmake + + None + Stop applications before building: None + Aucune + + + All + Stop all projects + Tous + Projects Directory Répertoire du projet @@ -40940,10 +42593,6 @@ Veuillez réessayer. Build Only the Application to Be Run Compiler uniquement l’application à exécuter - - All - Toutes - Same Project Le même projet @@ -41237,10 +42886,6 @@ Display name of the clean build step list. Used as part of the labels in the pro Non-Qt Project Projet non Qt - - Qt Creator Plugin - Greffon Qt Creator - Code Snippet Extrait de code @@ -41493,6 +43138,10 @@ Display name of the clean build step list. Used as part of the labels in the pro Creates a CMake-based test project where you can enter a code snippet to compile and check it. Créer un projet de test basé sur CMake dans lequel vous pouvez insérer un extrait de code à compiler et le vérifier. + + Qt Creator C++ Plugin + Greffon Qt Creator C++ + You must tell Qt Creator which test framework is used inside the project. @@ -41521,6 +43170,10 @@ Vous ne devez pas mélanger plusieurs cadriciels de tests dans un même projet.< Markdown File Fichier Markdown + + CMake for Qt 6.5 and Later + CMake pour Qt 6.5 et supérieur + Creates a project containing a single main.cpp file with a stub implementation and no graphical UI. @@ -41541,6 +43194,14 @@ Présélectionne un Qt optimisé pour le bureau pour compiler l'application Creates a Qt for Python application that includes a Qt Widgets Designer-based widget (ui file). Requires .ui to Python conversion. Génère une application Qt pour Python qui inclût un widget basé sur Qt Widgets Designer (fichier ui). Nécessite une conversion de .ui vers Python. + + Create a project that you can open in Qt Design Studio + Crée un projet que vous pouvez ouvrir dans Qt Design Studio + + + Creates a project with a structure that is compatible both with Qt Design Studio and with Qt Creator. It contains a .ui.qml form that you can visually edit in Qt Design Studio. + Crée un projet avec une structure qui est compatible avec Qt Design Studio et Qt Creator. Celui-ci contient un formulaire avec l'extension .ui.qml que vous pouvez modifier visuellement avec Qt Design Studio. + Creates a Qt Quick UI project for previewing and prototyping designs. @@ -42017,34 +43678,10 @@ Pour développer une application complête, créer un projet Qt Quick Applicatio Generate initialization and cleanup code Génère le code d’initialisation et de nettoyage - - Creates a project that you can open in Qt Design Studio - Crée un projet que vous pouvez ouvrir dans Qt Design Studio - - - Creates a project with a structure that is compatible both with Qt Design Studio (via .qmlproject) and with Qt Creator (via CMakeLists.txt). It contains a .ui.qml form that you can visually edit in Qt Design Studio. - Génère un projet avec une structure compatible avec Qt Design Studio (via .qmlproject) et avec Qt Creator (via CMakeLists.txt). Le projet contient un formulaire .ui.qml qui peut être éditer visuellement dans Qt Design Studio. - - - Qt 6.4 - Qt 6.4 - Qt 6.5 Qt 6.5 - - The minimum version of Qt you want to build the application for - La version minimale de Qt avec laquelle vous pouvez compiler l'application - - - Creates a Qt Quick application that can have both QML and C++ code. You can build the application and deploy it to desktop, embedded, and mobile target platforms. - -You can select an option to create a project that you can open in Qt Design Studio, which has a visual editor for Qt Quick UIs. - Génère une application Qt Quick qui peut contenir du code QML et C++. Vous pouvez construire l'application et la déployer sur PC, machines embarqués et plateformes mobiles. - -Vous pouvez sélectionner une option pour créer un projet que vous pouvez ouvrir dans Qt Design Studio, outil possédant un éditeur visuel pour les interfaces Qt Quick. - Creates a Qt Quick application that contains an empty window. @@ -42181,6 +43818,14 @@ Sélectionne un Qt optimisé pour bureaux pour compiler l'application, si d Python Python + + Qt 6.8 + Qt 6.8 + + + Creates a Qt Quick application that can have both QML and C++ code. You can build the application and deploy it to desktop, embedded, and mobile target platforms. + Crée une application Qt Quick qui peut contenir du code QML et du code C++. Vous pouvez compiler l'application et la déployer sur PC, les plateformes embarquées et les plateformes mobiles. + Creates a new unit test project using Boost. Unit tests allow you to verify that the code is fit for use and that there are no regressions. Crée un nouveau projet de tests unitaires utilisant Boost. Les tests unitaires vous permettent de vérifier si le code est prêt à être utilisé et s'il n'y a pas de régression. @@ -43103,6 +44748,11 @@ fails because Clang does not understand the target architecture. Manual Manuel + + None + Toolchain bundle display name + Aucun + <nobr><b>ABI:</b> %1 <nobr><b>ABI :</b> %1 @@ -43582,6 +45232,11 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Compilers produce code for different ABIs: %1 Les compilateurs produisent du code pour différentes ABI : %1 + + None + No compiler + Aucun + Path to the compiler executable Chemin d’accès à l’exécutable du compilateur @@ -43594,6 +45249,46 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Compiler executable for different languages Exécutable de compilateur pour différents langages + + Device: + Périphérique : + + + No run device set. + Aucun périphérique d'exécution n'est défini. + + + Build device is incompatible with this kit. + Le périphérique de compilation est incompatible avec ce kit. + + + Run device is incompatible with this kit. + Le périphérique d'exécution est incompatible avec ce kit. + + + Host address (%1) + Adresse de l'hôte (%1) + + + SSH port (%1) + Port SSH (%1) + + + User name (%1) + Nom d'utilisateur (%1) + + + Private key file (%1) + Fichier de clé privée (%1) + + + Device name (%1) + Nom du périphérique (%1) + + + Device root directory (%1) + Répertoire racine du périphérique (%1) + Run device type Type de périphérique sur lequel exécuter @@ -43603,32 +45298,12 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Périphérique sur lequel exécuter - Device is incompatible with this kit. - Le périphérique est incompatible avec ce kit. + Build device type + Type du périphérique de compilation - Host address - Adresse de l’hôte - - - SSH port - Port SSH - - - User name - Nom d’utilisateur - - - Private key file - Fichier de clé privée - - - Device name - Nom du périphérique - - - Device root directory - Répertoire racine du périphérique + The type of device to build on. + Le type du périphérique sur lequel compiler. Build device @@ -43642,30 +45317,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u No build device set. Aucun périphérique de compilation n’est défini. - - Build host address - Adresse de l’hôte de compilation - - - Build SSH port - Port SSH de compilation - - - Build user name - Nom d’utilisateur de compilation - - - Build private key file - Fichier de clé privée de compilation - - - Build device name - Nom du périphérique de compilation - - - Build device root directory - Répertoire de construction racine du périphérique - Change... Modifier… @@ -43675,8 +45326,24 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Aucune modification à appliquer. - Force UTF-8 MSVC compiler output - Forcer la sortie UTF-8 du compilateur MSVC + Edit Build Environment... + Modifier l'environnement de compilation… + + + Edit Run Environment... + Modifier l'environnement d'exécution… + + + Edit Build Environment + Modifier l'environnement de compilation + + + Edit Run Environment + Modifier l'environnement d'exécution + + + Force UTF-8 MSVC output + Forcer la sortie MSVC en UTF-8 Either switches MSVC to English or keeps the language and just forces UTF-8 output (may vary depending on the used MSVC compiler). @@ -43706,10 +45373,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Device type Type de périphérique - - No device set. - Pas de périphérique défini. - The root directory of the system image to use.<br>Leave empty when building for the desktop. Le répertoire racine du système image à utiliser.<br>Laisser vide lors d’une compilation sur le bureau. @@ -44164,6 +45827,10 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Import Build Importer une compilation + + %1 (imported) + %1 (importé) + %1 - temporary %1 – temporaire @@ -44188,6 +45855,10 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u Type to filter kits by name... Taper pour filtrer les kits par nom… + + Hide unsuitable kits + Cacher les kits inappropriés + Select Kits for Your Project Sélectionner un kit pour votre projet @@ -44424,10 +46095,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u No file access for device "%1" Aucun accès aux fichiers pour le périphérique « %1 » - - Remote error output was: %1 - La sortie d’erreur distante était : %1 - Found %n free ports. @@ -45305,10 +46972,6 @@ Ces fichiers sont préservés. The name of the profile build configuration created by default for a qmake project. Profiler - - Profiling - Profilage - "data" must be a JSON object for "VcsConfiguration" pages. Do not translate "VcsConfiguration", because it is the id of a page. @@ -45399,6 +47062,194 @@ Ces fichiers sont préservés. Provide manually Fournir manuellement + + None + Add to project: None + Aucun + + + None + No compiler language + Aucun + + + None + No compiler category + Aucune + + + Could not open "%1" for writing: %2. + Impossible d'ouvrir « %1 » en écriture : %2. + + + Windows Configuration + Configuration Windows + + + Select the download path of NuGet and Windows App SDK. + Windows App SDK? + Sélectionnez le chemin de téléchargement de NuGet et du SDK d'application Windows. + + + Select Download Path + Sélection du chemin de téléchargement + + + Select the path of NuGet. + Sélectionnez le chemin menant à NuGet. + + + Select nuget.exe File + Sélection du fichier nuget.exe + + + Download NuGet + Télécharger NuGet + + + Automatically download NuGet. + +NuGet is needed for downloading Windows App SDK. + Téléchargement automatique de NuGet. + +NuGet est nécessaire pour télécharger le SDK d'application Windows. + + + Select the path of the Windows App SDK. + Sélectionnez le chemin du SDK d'application Windows. + + + Download Windows App SDK + Télécharger le SDK d'application Windows + + + Automatically download Windows App SDK with NuGet. + +If the automatic download fails, Qt Creator proposes to open the download URL +in the system browser for manual download. + Téléchargement automatique du SDK d'application Windows avec NuGet. + +Si le téléchargement automatique échoue, Qt Creator propose d'ouvrir l'URL de téléchargement +dans le navigateur Internet du système pour un téléchargement manuel. + + + Download path exists. + Le chemin de téléchargement existe. + + + NuGet path exists. + Le chemin de NuGet existe. + + + Windows App SDK path exists. + Le chemin du SDK d'application Windows existe. + + + Windows App SDK settings are OK. + Les paramètres du SDK d'application Windows sont corrects. + + + Windows App SDK settings have errors. + Les paramètres du SDK d'application Windows contiennent des erreurs. + + + Select Windows App SDK Path + Sélectionnez le chemin du SDK d'application Windows + + + Download Path + Chemin de téléchargement + + + Download location: + Chemin de téléchargement : + + + NuGet + NuGet + + + NuGet location: + Emplacement de NuGet : + + + Windows App SDK Settings + Paramètres du SDK d'application Windows + + + Windows App SDK location: + Emplacement du SDK d'application Windows : + + + NuGet download failed. + Téléchargement de NuGet échoué. + + + Open NuGet URL for manual download? + Ouvrir l'URL de NuGet pour un téléchargement manuel ? + + + Open Download URL + Ouvrir l'URL de téléchargement + + + Downloading NuGet... + Téléchargement de NuGet… + + + Downloading + Téléchargement + + + The SDK Tools download URL is empty. + L'URL de téléchargement des outils SDK est vide. + + + Encountered SSL errors, download is aborted. + Erreurs SSL rencontrées. Le téléchargement a été annulé. + + + Downloading NuGet from URL %1 has failed: %2. + Le téléchargement de NuGet depuis l'URL %1 a échoué %2. + + + Download from %1 was redirected. + Le téléchargement à partir de %1 a été redirigé. + + + The selected download path (%1) for NuGet already exists. +Select a different path. + Le chemin de téléchargement sélectionné (%1) pour NuGet existe déjà. +Choisissez un chemin différent. + + + Download path is not configured. + Le chemin de téléchargement n'est pas configuré. + + + Downloading Windows App SDK + Téléchargement du SDK d'application Windows + + + Windows App SDK is already configured. + Le SDK d'application Windows est déjà configuré. + + + Downloading Windows App SDK... + Téléchargement du SDK d'application Windows… + + + Windows App SDK download failed. + Échec lors du téléchargement du SDK d'application Windows. + + + Open Windows App SDK URL for manual download? + Ouverture de l'URL du SDK d'application Windows pour un téléchargement manuel ? + + + Windows App SDK + SDK d'application Windows + QtC::Python @@ -45611,6 +47462,11 @@ Ces fichiers sont préservés. Executable Exécutable + + None + No Python interpreter + Aucun + Executable is empty. L’exécutable est vide. @@ -45727,10 +47583,6 @@ Ces fichiers sont préservés. Issues parsed from Python runtime output. Problèmes provenant de la sortie de l'exécution de Python. - - None - Aucun - The interpreter used for Python based projects. L'interpréteur utilisé pour les projets reposant sur Python. @@ -45971,22 +47823,8 @@ Ces fichiers sont préservés. La racine de compilation du projet qbs - Debug - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Debug - - - Release - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Release - - - Profile - Shadow build directory suffix - Non-ASCII characters in directory suffix may cause build issues. - Profile + <No build device> + <Aucun périphérique de compilation> Change... @@ -46071,8 +47909,8 @@ Vous avez rarement besoin de ceci. Aucun exécutable qbs n’a été trouvé, veuillez définir le chemin d’accès dans les paramètres. - The qbs executable was not found at the specified path, or it is not executable ("%1"). - L’exécutable qbs n’a pas été trouvé au chemin spécifié, ou bien ce n’est pas exécutable (« %1 »). + The qbs executable was not found at the specified path, or it is not executable. + L'exécutable qbs n'a pas été trouvé au répertoire indiqué ou ce n'est pas un exécutable. The qbs process quit unexpectedly. @@ -47206,10 +49044,91 @@ Ajoute la bibliothèque et les chemins d’inclusion dans le fichier .pro. QtC::QmlDesigner + + "%1" failed (exit code %2). + « %1 » a échoué (code de sortie %2). + + + Failed to generate deployable package! + Échec de génération du paquet déployable ! + + + "%1" crashed. + « %1 » a planté. + + + Generate QRC Resource File... + Générer le fichier de ressources QRC… + + + Save Project as QRC File + Enregistrer le projet en tant que fichier QRC + + + QML Resource File (*.qrc) + Fichier de ressources QML (*.qrc) + + + QmlDesigner::GenerateResource + Success + C'est étrange, ici, le texte source est non traduisible, alors que le commentaire développeur semble plus à même d'être traduit. + Réussite + + + QmlDesigner::GenerateResource + Successfully generated QRC resource file + %1 + Génération du fichier de ressources QRC %1 réussie + + + Generate Deployable Package... + Générer un paquet déployable… + + + Save Project as Resource + Enregistrer le projet en tant que ressource + + + Generating deployable package. Please wait... + Génération du paquet déployable. Veuillez patienter… + Error Erreur + + Failed to generate deployable package! + +Please check the output pane for more information. + Échec de génération du paquet déployable ! + +Veuillez vérifier le panneau de sortie pour plus d'informations. + + + Success + Réussite + + + Successfully generated deployable package + Génération du paquet déployable réussie + + + Failed to open file to write QRC XML: %1 + Échec de l'ouverture du fichier QRC XML « %1 » pour l’écriture + + + Resource generator is already running. + Le générateur de ressources est déjà en cours d'exécution. + + + QmlDesigner::GenerateResource + Unable to generate resource file: %1 + Impossible de générer le fichier de ressources : %1 + + + A timeout occurred running "%1". + Un dépassement de délai s'est produit lors de l'exécution de « %1 ». + Export Components Exporter les composants @@ -47258,6 +49177,824 @@ Ajoute la bibliothèque et les chemins d’inclusion dans le fichier .pro.Property Value Valeur de la propriété + + Error creating asset directory. %1 + Erreur lors de la création du dossier de ressources. %1 + + + Error saving asset. %1 + Erreur lors de l'enregistrement de la ressource. %1 + + + Failed to Delete File + Échec lors de la suppression du fichier + + + Could not delete "%1". + Impossible de supprimer « %1 ». + + + Assets Library + Title of assets library widget + Bibliothèque de ressources + + + Failed to Delete Effect Resources + Échec de suppression des ressources d'effet + + + Folder move failure + Échec de déplacement du répertoire + + + Failed to move folder "%1". The folder might contain subfolders or one of its files is in use. + Échec lors du déplacement du répertoire « %1 ». Le répertoire contient peut être des sous-dossiers ou un de ces fichiers est en cours d'utilisation. + + + Failed to Add Files + Échec lors de l'ajout de fichiers + + + Could not add %1 to project. + Impossible d'ajouter %1 au projet. + + + All Files (%1) + Tous les fichiers (%1) + + + Add Assets + Ajouter des ressources + + + Could not add %1 to project. Unsupported file format. + Impossible d'ajouter %1 au projet. Format de fichier non pris en charge. + + + Binding Editor + Éditeur de liaison + + + Signal List for %1 + Liste des signaux pour %1 + + + <Filter> + Library search input hint text + <Filtre> + + + File Name + Nom du fichier + + + Size + Taille + + + Add Resources + Ajouter des ressources + + + &Browse... + &Parcourir… + + + Target Directory + Répertoire cible + + + Unsupported bundle file + Fichier de bundle non pris en charge + + + The chosen bundle was created with an incompatible version of Qt Design Studio + Le bundle sélectionné a été créé avec une version de Qt Design Studio non prise en charge + + + Component Exists + Le composant existe déjà + + + A component with the same name '%1' already exists in the project, are you sure you want to overwrite it? + Un composant avec le nom « %1 » existe déjà dans le projet. Souhaitez-vous l'écraser ? + + + Import Component + Importation d'un composant + + + Qt Design Studio Bundle Files (*.%1) + Fichiers de bundle de Qt Design Studio (*.%1) + + + Export Material + Exportation d'un matériau + + + Export Component + Exportation d'un composant + + + Failed to Add Texture + Échec de l'ajout de la texture + + + Document Has Errors + Le document contient des erreurs + + + The document which contains the list model contains errors. So we cannot edit it. + Le document qui contient le modèle de liste contient des erreurs. Nous ne pouvons donc pas le modifier. + + + Document Cannot Be Written + Le document ne peut être écrit + + + An error occurred during a write attemp. + Une erreur s'est produite lors d’une tentative d'écriture. + + + Invalid Id + Identifiant invalide + + + Go to Implementation + Aller à l'implémentation + + + Invalid component. + Composant invalide. + + + Cannot find an implementation. + Impossible de trouver une implémentation. + + + Cannot Set Property %1 + Impossible de définir la propriété %1 + + + The property %1 is bound to an expression. + La propriété %1 est liée à une expression. + + + Overwrite Existing File? + Écraser le fichier existant ? + + + File already exists. Overwrite? +"%1" + Le fichier existe déjà. L'écraser ? +« %1 » + + + TemplateMerge + Merge With Template + Fusion avec le modèle + + + TemplateMerge + &Browse... + &Parcourir + + + TemplateMerge + Template: + Modèle : + + + TemplateMerge + Browse Template + Parcourir le modèle + + + Effect file %1 not found in the project. + Fichier d'effet %1 introuvable dans le projet. + + + Effect %1 is not complete. + L'effet %1 n'est pas complet. + + + Ensure that you have saved it in the Effect Composer. +Do you want to edit this effect? + Assurez-vous de l'avoir sauvegardé dans le compositeur d'effets. +Souhaitez-vous éditer cet effet ? + + + Exposed Custom Properties + Propriétés personnalisées exposées + + + Start Nanotrace + Démarrer Nanotrace + + + Shut Down Nanotrace + Arrêter Nanotrace + + + Bake Lights + Pré-calculer les lumières + + + Bake lights for the current 3D scene. + Pré-calculer les lumières pour la scène 3D actuelle. + + + Select Background Color + Sélectionner la couleur d'arrière-plan + + + Select a color for the background of the 3D view. + Sélectionner la couleur d'arrière-plan de la vue 3D. + + + Select Grid Color + Sélectionner la couleur de la grille + + + Select a color for the grid lines of the 3D view. + Sélectionner une couleur pour les lignes de la grille de la vue 3D. + + + Reset Colors + Réinitialiser les couleurs + + + Reset the background color and the color of the grid lines of the 3D view to the default values. + Réinitialise la couleur d'arrière-plan et la couleur des lignes de la grille de la vue 3D. + + + Use Scene Environment + Utiliser l'environnement de la scène + + + Sets the 3D view to use the Scene Environment color or skybox as background color. + Détermine si la vue 3D utilise la couleur de l'environnement de scène ou celle de la skybox comme couleur de fond. + + + Toggle Group/Single Selection Mode + Activer/désactiver le mode de sélection par groupe/seul + + + Activate Move Tool + Activer l'outil de déplacement + + + Activate Rotate Tool + Activer l'outil de rotation + + + Activate Scale Tool + Activer l'outil de redimensionnement + + + Fit Selected Object to View + Ajuster l'objet sélectionné à la vue + + + Align Cameras to View + Aligner les caméras à la vue + + + Align View to Camera + Aligner la vue à la caméra + + + Toggle Perspective/Orthographic Camera Mode + Activer/désactiver le mode perspective/orthographique de la caméra + + + Toggle Global/Local Orientation + Activer/désactiver l’orientation globale/locale + + + Toggle Edit Light On/Off + Activer/désactiver l'édition de la lumière + + + Show Grid + Afficher la grille + + + Toggle the visibility of the helper grid. + Activer/désactiver la visibilité de la grille d'aide. + + + Show Look-at + Afficher la direction du regard + + + Toggle the visibility of the edit camera look-at indicator. + Active/désactive l'indicateur pour modifier la direction de la caméra. + + + Show Selection Boxes + Afficher les boites de sélection + + + Toggle the visibility of selection boxes. + Activer/désactiver la visibilité des boites de sélection. + + + Show Icon Gizmos + Affiche les icônes + + + Toggle the visibility of icon gizmos, such as light and camera icons. + Active/désactive la visibilité des icônes, telle que l'icône de caméra ou l'icône des lumières. + + + Always Show Camera Frustums + Toujours afficher le champ de la caméra + + + Toggle between always showing the camera frustum visualization and only showing it when the camera is selected. + Active/désactive si la visualisation du champ de la caméra est toujours visible ou seulement lorsque la caméra est sélectionnée. + + + Always Show Particle Emitters And Attractors + Affiche toujours les émetteurs de particules et les attracteurs + + + Toggle between always showing the particle emitter and attractor visualizations and only showing them when the emitter or attractor is selected. + Active/désactive si les émetteurs et attracteurs de particules sont toujours visibles ou seulement lorsque sélectionné. + + + Toggle particle animation On/Off + Activer/désactiver l'animation des particules + + + Play Particles + Lancer les particules + + + Restart Particles + Relancer les particules + + + Reset View + Réinitialiser la vue + + + Visibility Toggles + Alterne la visibilité + + + Background Color Actions + Actions sur la couleur d'arrière-plan + + + Toggle snapping during node drag + Active/désactive l'aimantation lors du glissement du nœud + + + Open snap configuration dialog + Ouvrir la fenêtre de configuration de l'aimantation + + + Toggle Split View On/Off + Activer/désactiver la vue scindée + + + Open camera speed configuration dialog + Ouvrir la fenêtre de configuration de la vitesse de la caméra + + + Show Event List + Afficher la liste des évènements + + + Assign Events to Actions + Assigner des évènements aux actions + + + Set the color of the canvas. + Définit la couleur du canevas. + + + Annotation + Annotation + + + Edit Annotation + Modifier l'annotation + + + Remove Annotation + Supprimer l'annotation + + + By: + Par : + + + Edited: + Modifié : + + + Delete this annotation? + Supprimer cette annotation ? + + + Connected Events + Évènements connectés + + + Connected Signals + Signaux connectés + + + 2D + 2D + + + 2D view + Vue 2D + + + %1 is not supported as the root element by the 2D view. + %1 n'est pas pris en charge comme élément racine par la vue 2D. + + + No Snapping + Aucune aimantation + + + Snap with Anchors + Aimantation avec les ancres + + + Snap without Anchors + Aimantation sans ancres + + + Show Bounds + Afficher les bordures + + + Override Width + Écraser la largeur + + + Override width of root component. + Écraser la largeur du composant racine. + + + Override Height + Écraser la hauteur + + + Override height of root component. + Écraser la hauteur du composant racine. + + + Zoom In + Zoom avant + + + Zoom Out + Zoom arrière + + + Zoom screen to fit all content. + Zoom pour afficher tout le contenu. + + + Ctrl+Alt+0 + Ctrl+Alt+0 + + + Zoom screen to fit current selection. + Zoom pour contenir la sélection en cours. + + + Ctrl+Alt+i + Ctrl+Alt+i + + + Reload View + Recharger la vue + + + Export Current QML File as Image + Exporter le fichier QML en cours en tant qu'image + + + PNG (*.png);;JPG (*.jpg) + PNG (*.png);;JPG (*.jpg) + + + Asset import data file "%1" is invalid. + Le fichier des données de la ressource importée « %1 » n'est pas valide. + + + Unable to locate source scene "%1". + Impossible de localiser la scène source « %1 ». + + + Opening asset import data file "%1" failed. + Échec d'ouverture du fichier des données de la ressource importée « %1 ». + + + Unable to resolve asset import path. + Impossible de résoudre le chemin d'import des ressources. + + + Import Update Failed + Échec de la mise à jour de l'importation + + + Failed to update import. +Error: +%1 + Échec de la mise à jour de l'importation. +Erreur : +%1 + + + %1 already exists. + %1 existe déjà. + + + Unknown component: %1 + Composant inconnu : %1 + + + Warning + Avertissement + + + Reparenting the component %1 here will cause the component %2 to be deleted. Do you want to proceed? + Redéfinir ici le parent du composant %1 entraînera la suppression du composant %2. Voulez-vous continuer ? + + + Edit Path + Modifier le chemin + + + Path Tool + Outil de chemin + + + Invalid QML source + Source QML invalide + + + Text Tool + Outil de texte + + + None + Aucun + + + Base State + État de base + + + Internal process (QML Puppet) crashed. + Le processus interne (QML Puppet) a planté. + + + Source item: %1 + Élément source : %1 + + + Failed to generate QSB file for: %1 + Échec de génération du fichier QSB pour : %1 + + + Puppet is starting... + Démarrage de Puppet… + + + You can now attach your debugger to the %1 QML Puppet with process id: %2. + Vous pouvez maintenant attacher votre débogueur à QML Puppet %1 avec le processus ayant pour identifiant : %2. + + + Qt Quick Designer + Qt Quick Designer + + + Cannot Open Design Mode + Impossible d'ouvrir le mode Design + + + The QML file is not currently opened in a QML Editor. + Le fichier QML n'est actuellement pas ouvert dans un éditeur QML. + + + Enjoying the %1? + Appréciez-vous %1 ? + + + Enable smooth rendering in the 2D view. + Activer le rendu lisse dans la vue 2D. + + + Default style + Style par défaut + + + Reset Style + Réinitialiser le style + + + QML Puppet + QML Puppet + + + Use fallback QML Puppet + Utiliser la solution QML Puppet de secours + + + If you select this radio button, Qt Design Studio always uses the QML Puppet located at the following path. + Si vous sélectionnez ce bouton radio, Qt Design Studio utilisera toujours QML Puppet se trouvant au chemin suivant. + + + Path to the QML Puppet executable. + Chemin de l'exécutable QML Puppet. + + + Resets the path to the built-in QML Puppet. + Réinitialiser le chemin à QML Puppet intégré. + + + Use QML Puppet that is built with the selected Qt + Utiliser QML Puppet intégré avec la version de Qt sélectionnée + + + Reset Path + Réinitialiser le chemin + + + Always save when leaving subcomponent in bread crumb + Toujours enregistrer lorsque l'on quitte un sous-composant du fil d'Ariane + + + Warn about unsupported features of .ui.qml files in code editor + Avertir à propos des fonctionnalités non prises en charge par l'éditeur de code des fichiers .ui.qml + + + Also warns in the code editor about QML features that are not properly supported by the Qt Quick Designer. + Avertir aussi dans l'éditeur de code à propos des fonctionnalités QML qui ne sont pas gérées correctement par Qt Quick Designer. + + + Warn about unsupported features in .ui.qml files + Avertir à propos des fonctionnalités non prises en charge dans les fichiers .ui.qml + + + Warns about QML features that are not properly supported by the Qt Design Studio. + Avertit à propos des fonctionnalités QML qui ne sont pas prises en charge par Qt Design Studio. + + + Warn about using .qml files instead of .ui.qml files + Avertir à propos de l'utilisation des fichiers .qml à la place des fichiers .ui.qml + + + Qt Quick Designer will propose to open .ui.qml files instead of opening a .qml file. + Qt Quick Designer proposera d'ouvrir le fichier .ui.qml à la place du fichier .qml. + + + qsTr() + qsTr() + + + qsTrId() + qsTrId() + + + qsTranslate() + qsTranslate() + + + Always open ui.qml files in Design mode + Toujours ouvrir les fichiers .ui.qml dans le mode Design + + + Ask for confirmation before deleting asset + Demander confirmation avant la suppression d'une ressource + + + Always auto-format ui.qml files in Design mode + Toujours formatter automatiquement les fichiers .ui.qml dans le mode Design + + + Enable Timeline editor + Activer l'éditeur de ligne temporelle + + + Enable DockWidget content minimum size + Activer la taille minimale de contenu du DockWidget + + + Debugging + Débogage + + + Show the debugging view + Afficher la vue de débogage + + + Show property editor warnings + Afficher les avertissements de l'éditeur de propriétés + + + Enable the debugging view + Activer la vue de débogage + + + Show warn exceptions + Afficher les exceptions + + + Path: + Chemin : + + + Top level build path: + Chemin de compilation de haut niveau : + + + Forward QML Puppet output: + Transfert de la sortie de QML Puppet : + + + Debug QML Puppet: + Débogage QML Puppet : + + + Snapping + Aimantation + + + Parent component padding: + Remplissage du composant parent : + + + Sibling component spacing: + Espacement des composants voisins : + + + Canvas + Canevas + + + Width: + Largeur : + + + Height: + Hauteur : + + + Smooth rendering: + Rendu lisse : + + + Root Component Init Size + Taille initiale du composant racine + + + Styling + Style + + + Controls style: + Style des Controls : + + + Controls 2 style: + Style des Controls 2 : + + + Subcomponents + Sous-composants + + + Warnings + Avertissements + + + Internationalization + Internationalisation + + + Features + Fonctionnalités + + + Restart Required + Redémarrage nécessaire + + + The made changes will take effect after a restart of the QML Puppet or %1. + Les changements effectués prendront effet après redémarrage de QML Puppet ou de %1. + QtC::QmlEditorWidgets @@ -48184,10 +50921,6 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr Use customized static analyzer Utiliser l'analyseur statique personnalisé - - Turn on - Activer - Allow versions below Qt %1 Permettre les versions Qt inférieures à %1 @@ -48196,6 +50929,10 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr Use advanced features (renaming, find usages, and so on) (experimental) Utiliser les fonctionnalités avancées (renommage, trouver les utilisations, etc.) (expérimental) + + Current kit does not have a valid Qt version, disabling QML Language Server. + Désactivation du serveur de langage QML : la version actuelle du kit ne contient pas une version valide de Qt. + Use from latest Qt version Utiliser la dernière version de Qt @@ -48236,10 +50973,6 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr Features Fonctionnalités - - Enable QML Language Server on this project. - Activer le serveur de langage QML pour ce projet. - Qt Quick Qt Quick @@ -48248,6 +50981,10 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr Open .ui.qml files with: Ouvrir les fichiers .ui.qml avec : + + Open Language Server preferences... + Ouvrir les préférences du serveur de langage… + Static Analyzer Analyseur statique @@ -48391,10 +51128,6 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr Code Model Error Erreur du modèle de code - - Qmlls (%1) - Qmlls (%1) - QtC::QmlJSTools @@ -49151,12 +51884,19 @@ notamment lorsque plusieurs moteurs QML démarrent et s'arrêtent au cours All - Tout + All frames + Toutes None + Compare Frame: None Aucune + + All + All View3D frames + Toutes + Quick3D Frame Trame Quick3D @@ -49169,6 +51909,11 @@ notamment lorsque plusieurs moteurs QML démarrent et s'arrêtent au cours Compare Frame Comparaison de trame + + All + Compare Frame: All + Toutes + Render Frame Trame de rendu @@ -49607,6 +52352,10 @@ Qt Design Studio nécessite un projet fondé sur .qmlproject pour ouvrir le fich Enable CMake Generator Activer le générateur CMake + + The project was created with a Qt Design Studio version earlier than Qt Design Studio 4.5. Due to limitations of the project structure in earlier Qt Design Studio versions, the resulting application might not display all the assets. Referring to assets between different QML modules does not work in the compiled application.<br><a href="https://doc.qt.io/qtdesignstudio/studio-designer-developer-workflow.html">See the documentation for details.</a> + Le projet a été créé avec une version de Qt Design Studio antérieure à Qt Design Studio 4.5. En raison d'une limitation dans la structure du projet dans les anciennes version de Qt Design Studio, l'application obtenue pourrait ne pas afficher toutes les ressources. Le référencement de ressources entre différents modules QML ne fonctionne pas dans l'application compilée.<br><a href="https://doc.qt.io/qtdesignstudio/studio-designer-developer-workflow.html">Consultez la documentation pour plus de détails.</a> + QtC::Qnx @@ -49917,10 +52666,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj System Système - - Qt version is not properly installed, please run make install - La version de Qt n’est pas correctement installée, veuillez exécuter make install - Could not determine the path to the binaries of the Qt installation, maybe the qmake path is wrong? Impossible de déterminer le chemin vers les programmes de Qt, peut-être que le chemin vers qmake est faux ? @@ -49938,10 +52683,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj ? Version de Qt compilée avec -prefix non installée – pour le développement interne uniquement. - - No QML utility installed. - Aucun utilitaire QML installé. - Desktop Qt Version is meant for the desktop @@ -49996,6 +52737,10 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj The kit has a Qt version, but no C++ compiler. Le kit comporte une version de Qt, mais pas de compilateur C++. + + Qt version is not properly installed + La version de Qt n'est pas installée correctement + Name: Nom : @@ -50028,6 +52773,10 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Version: Version : + + Cannot update Qt version information from %1: %2. + Impossible de mettre à jour les informations de version de Qt depuis %1 : %2. + The version string of the current Qt version. La chaîne de caractères de la version actuelle de Qt. @@ -50200,10 +52949,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Highest Version Only Version la plus élevée uniquement - - All - Toutes - Display Name is not unique. Le nom affiché n’est pas unique. @@ -50224,6 +52969,16 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Warning Avertissement + + All + All documentation + Toute + + + None + No documentation + Aucune + Select a qmake Executable Sélectionner un exécutable qmake @@ -50360,10 +53115,19 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Cannot Copy Project Impossible de copier le projet + + Mkspec: + Mkspec : + The Qt library to use for all projects using this kit.<br>A Qt version is required for qmake-based projects and optional when using other build systems. La bibliothèque Qt à utiliser pour tous les projets utilisant ce kit.<br>Une version de Qt est nécessaire pour les projets basés sur qmake et est optionnelle pour les autres systèmes de compilation. + + None + No Qt version + Aucune + Name of Qt Version Nom de la version de Qt @@ -50380,10 +53144,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Qt version Version de Qt - - None - Aucune - Qt Versions Versions de Qt @@ -50508,6 +53268,26 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj Translation file: Fichier de traduction : + + Could not determine target OS + Impossible de déterminer le système d'exploitation cible + + + Could not determine target architecture + Impossible de déterminer l'architecture cible + + + Could not determine OS sub-type + Impossible de déterminer la variante du système d'exploitation + + + Error reading "%1": %2 + Erreur lors de la lecture de « %1 » : %2 + + + Core.json not found for Qt at "%1" + Le fichier Core.json pour Qt n'a pas été trouvé à l'emplacement « %1 » + QtC::RemoteLinux @@ -51281,10 +54061,6 @@ Les ports local et distant sont déterminés automatiquement. Use rsync or sftp if available, but prefer rsync. Otherwise use default transfer. Utiliser rsync ou sftp si possible, mais préférer rsync. Sinon, utiliser le transfert par défaut. - - rsync is only supported for transfers between different devices. - rsync n'est supporté que pour le transfert de fichiers entre les périphériques. - SSH Key Configuration Configuration de la clé SSH @@ -51325,6 +54101,10 @@ Les ports local et distant sont déterminés automatiquement. Refusing to overwrite existing private key file "%1". L'écrasement du fichier de clé privée existant « %1 » a été refusé. + + Unknown error + Erreur inconnue + The ssh-keygen tool at "%1" failed: %2 L'outil ssh-keygen dans « %1 » a échoué : %2 @@ -53798,6 +56578,15 @@ Impossible d'ouvrir le fichier « %1 ». Clear Selection Effacer la sélection + + Delete Word Left + Supprimer le mot à gauche + + + Delete Line Left + Ou: supprimer la gauche de la ligne + Supprimer la ligne à gauche + Clear Terminal Nettoyer le terminal @@ -53961,6 +56750,11 @@ Impossible d'ouvrir le fichier « %1 ». Full Totale + + None + Case-sensitivity: None + Aucune + First Letter Première lettre @@ -55345,6 +58139,22 @@ Ne s’applique pas aux espaces blancs dans les commentaires et dans les chaîne Underline color of the contexts of warning diagnostics. Couleur de soulignement des contextes de diagnostic d’avertissement. + + Info + Info + + + Underline color of info diagnostics. + Couleur de soulignement des diagnostics d'information. + + + Info Context + Information contextuelle + + + Underline color of the contexts of info diagnostics. + Couleur de soulignement des diagnostics d'information contextuelle. + Output Argument Argument de sortie @@ -55815,6 +58625,34 @@ Ne s’applique pas aux espaces blancs dans les commentaires et dans les chaîne Anchor: Ancre : + + Spaces + Espaces + + + Tabs + Tabulations + + + Document Settings + Paramètres du document + + + Tab Settings + Paramètres des tabulations + + + Indent Size + Taille de l'indentation + + + Tab Size + Taille de tabulation + + + Global Settings... + Paramètres généraux… + Unix Line Endings (LF) Fin de ligne Unix (LF) @@ -56072,10 +58910,6 @@ Spécifie comment retour arrière se comporte avec l’indentation. </ul></body></html> - - None - Aucune - Follows Previous Indents Suit l’indentation qui précède @@ -56256,6 +59090,11 @@ Notez que les BOM UTF-8 sont peu courants et traités de manière incorrecte par Mouse and Keyboard Souris et clavier + + None + Backspace indentation: None + Aucune + Enable &mouse navigation Activer la navigation à la &souris @@ -56362,6 +59201,10 @@ francis : en effet, une erreur de ma part --> validé. Center &cursor on scroll Centrer le &curseur sur la barre de défilement + + Display tab settings + Paramètres d'affichage des tabulations + Shows tabs and spaces. Affiche les tabulations et les espaces. @@ -56463,10 +59306,6 @@ francis : en effet, une erreur de ma part --> validé. Tabs And Indentation Tabulation et indentation - - Tab policy: - Politique de tabulation : - Spaces Only Espaces seulement @@ -56475,18 +59314,10 @@ francis : en effet, une erreur de ma part --> validé. Tabs Only Tabulation seulement - - Mixed - Mixte - Ta&b size: Taille de &tabulation : - - &Indent size: - Taille de l’&indentation : - Align continuation lines: Aligner les lignes de continuation : @@ -56540,6 +59371,14 @@ Influence l’indentation des lignes de continuation. </li> </ul></body></html> + + Auto detect + Autodétection + + + %1 tries to detect the indentation settings based on the file contents. It will fallback to the settings below if the detection fails. + %1 essaie de détecter la configuration de l'indentation selon le contenu du fichier. Si ce n'est pas possible, les paramètres ci-dessous seront pris en compte. + Not At All Pas du tout @@ -56552,6 +59391,14 @@ Influence l’indentation des lignes de continuation. With Regular Indent Avec l’indentation régulière + + Default tab policy: + Politique de tabulation par défaut : + + + Default &indent size: + Taille de l'&indentation par défaut : + The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files. Le paramètre d’indentation de l’éditeur de texte n’est utilisé que pour les fichiers autre que de code. Voir les paramètres du style de codage C++ et Qt Quick pour configurer l’indentation pour les fichiers de code. @@ -56711,11 +59558,35 @@ Influence l’indentation des lignes de continuation. J'ai vu hashage? Copier le hachage dans le presse-papiers + + Blame %1 + Blamer %1 + + + Blame Parent + Blamer le parent + + + File at %1 + Fichier dans %1 + + + Log for line %1 + Log de la ligne %1 + <b>Note:</b> "%1" or "%2" is enabled in the instant blame settings. %1 and %2 are the "ignore whitespace changes" and "ignore line moves" options <b>Remarque :</b> les options « %1 » ou « %2 » sont actives dans les paramètres de blame instantané. + + Not Committed Yet + Changement non enregistré + + + Modified line in %1 + Ligne modifiée dans %1 + You Vous @@ -57701,13 +60572,17 @@ Les données de la trace sont perdues. watch is not implemented. L'observation n'est pas implémentée. + + Device is unavailable. + Le périphérique n'est pas disponible. + Failed to watch "%1". Impossible de surveiller « %1 ». Failed to watch "%1", it does not exist. - Impossible de surveiller « %1 », l'emplacement n'existe pas. + Impossible de surveiller « %1 », l'emplacement n'existe pas. Refusing to remove the standard directory "%1". @@ -57740,10 +60615,6 @@ Les données de la trace sont perdues. Impossible d'écrire dans le fichier « %1 » (seuls %2 sur %n octets ont été écrits). - - Device is not connected - Le périphérique n'est pas connecté - Failed creating temporary file "%1" (too many tries). Échec lors de la création du fichier temporaire « %1 » (trop d'essais). @@ -57828,6 +60699,10 @@ Les données de la trace sont perdues. Could not copy file "%1" to "%2". Impossible de copier le fichier « %1 » vers « %2 ». + + File %1 does not exist. + Le fichier %1 n'existe pas. + Failed to set up scratch buffer in "%1". Impossible d'initialiser un brouillon dans « %1 ». @@ -58097,38 +60972,6 @@ dans « %2 ». %n éléments - - Failed to start process launcher at "%1": %2 - Échec du démarrage du lanceur de processus à « %1 » : %2 - - - Process launcher closed unexpectedly: %1 - Le lanceur de processus s’est fermé de manière inattendue : %1 - - - Process launcher socket error. - Erreur de socket du lanceur de processus. - - - Internal socket error: %1 - Erreur de socket interne : %1 - - - Socket error: %1 - Erreur de socket : %1 - - - Internal protocol error: invalid packet size %1. - Erreur de protocole interne : taille de paquet invalide %1. - - - Internal protocol error: invalid packet type %1. - Erreur de protocole interne : type de paquet invalide %1. - - - Launcher socket closed unexpectedly. - La socket du lanceur s’est fermé de manière inattendue. - Infinite recursion error Erreur de récursivité infinie @@ -58383,6 +61226,10 @@ Les lignes débutant avec « ### » seront traitées comme commentaire No Lua interface set Aucune interface Lua n'est définie + + Remote error output was: %1 + La sortie d'erreur distante était : %1 + QtC::Valgrind @@ -58760,6 +61607,14 @@ Avec la simulation du cache, d’autres compteurs d’évènements sont activés Show costs relative to parent function's inclusive cost. Montrer les coûts relativement aux coût inclusif des fonctions parentes. + + Starting Function Profiler... + Démarrage du profileur de fonction… + + + Function Profiler running... + Profileur de fonction en cours d'exécution… + Select This Function in the Analyzer Output Sélectionner cette fonction dans la sortie de l’analyseur @@ -58970,6 +61825,14 @@ Lorsqu’un problème est détecté, l’application s’interrompt et peut êtr Start a Valgrind Memcheck with GDB analysis. Lancer une analyse Valgrind Memcheck avec GDB. + + Starting Memory Analyzer... + Démarrage de l'analyseur mémoire… + + + Memory Analyzer running... + Analyseur mémoire en cours d'exécution… + Open Memcheck XML Log File Ouvrir un fichier de log XML de Memcheck @@ -59054,7 +61917,7 @@ Lorsqu’un problème est détecté, l’application s’interrompt et peut êtr None - concerne les détails de fuite mémoire + Leak details: None Aucun @@ -59561,6 +62424,10 @@ Vérifiez les paramètres pour vous assurer que Valgrind est installé et dispon Insert Name... Insérez le nom… + + File Error + Erreur de fichier + &Close &Fermer @@ -59971,6 +62838,14 @@ Vérifiez les paramètres pour vous assurer que Valgrind est installé et dispon Submit message &check script: Script de vérifi&cation du message : + + Show VCS file status + Afficher le statut du logiciel de contrôle de version du fichier + + + Request file status updates from files and reflect them on the project tree. + Effectue une mise à jour du statut des fichiers et répercute ce changement dans la hiérarchie du projet. + Reset VCS Cache Réinitialiser le cache VCS @@ -61178,6 +64053,87 @@ définit dans la taille de pas. Définit le rayon utilisé pour arrondir les coins. + + ReflectionProbeSection + + Reflection Probe + Sonde de réflexions + + + Box Size + Taille de la boîte + + + Sets the reflection probe box size. + Définit la taille de la boîte pour la sonde de réflexions. + + + Box Offset + Décalage de la boîte + + + Sets the reflection probe box position relative to the probe position. + Définit la position de la boîte de la sonde de réflexions relatif à la sonde. + + + Parallax Correction + Correction de parralaxe + + + Reflection maps are considered to be at infinite distance by default. This is unsuitable for indoor area as it produces parallax issues. +Setting this property to true corrects the cubemap by taking the camera position and the box's dimension into account. + Les textures de réflexions indiquent une distance infinie par défaut. Ce n'est pas adéquat pour un espace intérieur car cela produit des problèmes de parallaxe. +En définissant cette propriété à vrai, la texture cubique sera corrigée en prenant en compte la position de la caméra et les dimensions de la boîte. + + + Debug View + Vue de débogage + + + Enables rendering a wireframe to visualize the reflection probe box. + Active le rendu en fil de fer pour visualiser la boîte de la sonde de réflexions. + + + Clear Color + Couleur de réinitialisation + + + Sets the color that will be used to clear the reflection map. + Définit la couleur utilisée pour réinitialiser la texture de réflexions. + + + Reflection Map Quality + Qualité de la texture de réflexions + + + Sets the quality of the reflection map. + Définit la qualité de la texture de réflexion. + + + Refresh Mode + Mode de rafraîchissement + + + Sets how often the reflection map will be updated. + Définit la fréquence à laquelle la texture de réflexions est mise à jour. + + + Time Slicing + Découpage du temps + + + Sets how often the faces of the reflection cube map are updated. + Définit la fréquence de mise à jour des faces de la texture cubique de réflexions. + + + Override Texture + Surcharge de la texture + + + Sets an override texture to use for the reflection map instead of rendering the scene. + Définit une texture à utiliser en remplacement de la texture de réflexions générée depuis la scène. + + RenameFolderDialog @@ -61205,6 +64161,29 @@ définit dans la taille de pas. Annuler + + Repeater3DSection + + Repeater + Répéteur + + + Model + Modèle + + + The model providing data for the repeater. This can simply specify the number of delegate instances to create or it can be bound to an actual model. + Le modèle fournissant les données au répéteur. Cela peut être juste le nombre d'instances déléguées à créer ou la propriété peut être liée à un modèle. + + + Delegate + Délégué + + + The delegate provides a template defining each object instantiated by the repeater. + Le délégué fournit un patron définissant chaque objet instancié par le répéteur. + + RepeaterSpecifics @@ -61229,28 +64208,38 @@ définit dans la taille de pas. - ResetEdit3DColorsAction + ResourceLoaderSection - Reset Colors - Réinitialiser les couleurs + Resource Loader + Chargeur de ressource - Reset the background color and the color of the grid lines of the 3D view to the default values. - Réinitialiser la couleur d’arrière-plan et la couleur des lignes de la grille de la vue 3D. + Geometries + Géométries - - - ResetView - Reset View - Réinitialiser la vue + A list of custom geometries to be loaded and cached. + Une liste de géométries personnalisées à charger et à mettre en cache. - - - RotateToolAction - Activate Rotate Tool - Activer l'outil de rotation + Mesh Sources + Modèle sources + + + A list of mesh assets to be loaded and cached. + Une liste de modèle à charger et à mettre en cache. + + + Currently only editable in QML. + Actuellement uniquement modifiable dans le QML. + + + Textures + Textures + + + A list of textures to be loaded and cached. + Une liste de textures à charger et à mettre en cache. @@ -61300,7 +64289,7 @@ définit dans la taille de pas. Layout direction - Direction du layout + Direction de l'agencement Sets the direction of the item flow in the <b>Row Layout</b>. @@ -61327,7 +64316,7 @@ définit dans la taille de pas. Layout direction - Direction du layout + Direction de l'agencement Sets in which direction items in the row are placed. @@ -61401,10 +64390,244 @@ définit dans la taille de pas. - ScaleToolAction + SceneEnvironmentSection - Activate Scale Tool - Activer l'outil de redimensionnement + Scene Environment + Environnement de la scène + + + Background Mode + Mode d'arrière-plan + + + Sets if and how the background of the scene should be cleared. + Définit si et comment l'arrière-plan de la scène doit être réinitialisé. + + + Clear Color + Couleur de réinitialisation + + + Sets which color will be used to clear the viewport when using SceneEnvironment.Color for the backgroundMode property. + Définit la couleur utilisée pour réinitialiser la vue lors de l'utilisation de SceneEnvironment.Color comme mode d'arrière-plan. + + + Skybox Cube Map + Boîte englobante du ciel ? + Texture cubique pour la skybox + + + Sets a cubemap to be used as a skybox when the background mode is SkyBoxCubeMap. + Définit une texture cubique à utiliser comme boîte englobante du ciel lors le mode d'arrière-plan est SkyBoxCubeMap. + + + Skybox Blur + Flou du ciel + + + Sets how much to blur the skybox when using SceneEnvironment.SkyBox for the backgroundMode property. + Définit la quantité de flou à appliquer au ciel lors de l'utilisation du mode d'arrière plan SceneEnvironment.SkyBox. + + + Effects + Effets + + + Post Processing effects applied to this scene. + Effet de post-traitement à appliquer à la scène. + + + Tonemap Mode + Je me suis inspiré de la traduction Blender (https://translate.blender.org/browse/blender-manual/blender-4-4/manual-4-4/fr/?q=tone&sort_by=source&checksum=) + Correspondance des tons + + + Sets how colors are tonemapped before rendering. + Définit comment les couleurs sont altérées avant le rendu. + + + Fog + Brouillard + + + Settings for Fog applied to the scene. + Paramètre du brouillard appliqué à la scène. + + + Antialiasing + Anticrénelage + + + Antialiasing Mode + Type d'anticrénelage + + + Sets the antialiasing mode applied to the scene. + Définit le type d'anticrénelage à appliquer à la scène. + + + Antialiasing Quality + Qualité de l'anticrénelage + + + Sets the level of antialiasing applied to the scene. + Définit le niveau d'anticrénelage appliqué à la scène. + + + Specular AA + Anticrénelage spéculaire + + + Enables specular antialiasing. + Active l'anticrénelage spéculaire. + + + Temporal AA + Anticrénelage temporel + + + Enables temporal antialiasing using camera jittering and frame blending. + Active l'anticrénelage temporel reposant sur les mouvements de la caméra et la fusion d'images. + + + Temporal AA Strength + Force de l'anticrénalage temporel + + + Sets the amount of temporal antialiasing applied. + Définit la quantité appliquée d'anticrénelage temporel. + + + Ambient Occlusion + Occlusion ambiante + + + Enabled + Activée + + + Enables ambient occlusion. + Active l'occlusion ambiante. + + + Strength + Force + + + Sets the amount of ambient occulusion applied. + Définit la quantité appliquée d'occlusion ambiante. + + + Distance + Distance + + + Sets roughly how far ambient occlusion shadows spread away from objects. + Définit approximativement la distance sur laquelle les ombres d'occlusion ambiante s'étale au loin des objets. + + + Softness + Douceur + + + Sets how smooth the edges of the ambient occlusion shading are. + Définit la douceur des bords des ombres de l'occlusion ambiante. + + + Sample Rate + Taux d'échantillonage + + + Sets ambient occlusion quality (more shades of gray) at the expense of performance. + Définit la qualité de l'occlusion ambiante (le nombre de teintes de gris) au dépend des performances. + + + Bias + Biais + + + Sets a cutoff distance preventing objects from exhibiting ambient occlusion at close distances. + Définit une distance limite empêchant les objets de former des ombres d'occluion ambiante à faible distance. + + + Dither + Éparpillement + + + Enables scattering the edges of the ambient occlusion shadow bands to improve smoothness. + Active la dispersion des bordures des bandes d'ombres d'occlusion ambiante afin d'améliorer la douceur. + + + Image Based Lighting + Éclairage basé sur une image + + + HDR Image + Image HDR + + + Sets an image to use to light the scene, either instead of, or in addition to standard lights. + Définit une image à utiliser pour éclairer la scène, à la place ou en plus des lumières standards. + + + Exposure + Exposition + + + Sets the amount of light emitted by the light probe. + Définit la quantité de lumière émise par la sonde de lumière. + + + Horizon + Horizon + + + Sets the light probe horizon. When set, adds darkness (black) to the bottom of the environment, forcing the lighting to come predominantly from the top of the image. + Définit l'horizon de la sonde de lumière. Lorsque défini, le bas de l'environnement est plus sombre (noir), forçant la lumière à venir majoritairement du haut de l'image. + + + Orientation + Orientation + + + Sets the orientation of the light probe. + Définit l'orientation de la sonde de lumière. + + + Advanced + Avancé + + + Enable Depth Test + Activer le test de profondeur + + + Enables depth testing. Disable to optimize render speed for layers with mostly transparent objects. + Active le test de profondeur. Sa désactivation améliore les temps de rendu pour les couches contenant majoritairement des objets transparents. + + + Enable Depth Prepass + Activer la pré-passe de profondeur + + + Enables draw depth buffer as a separate pass. Disable to optimize render speed for layers with low depth complexity. + Active le rendu du tampon de profondeur dans une passe dédiée. Désactivez cette passe pour optimiser le temps de rendu pour les couches ayant une faible complexité au niveau de la profondeur. + + + Debug Settings + Paramètres de débogage + + + Additional render settings for debugging scenes. + Paramètres de rendu supplémentaires pour le débogage de scène. + + + Light Mapper + Pré-calcul de l'éclairage + + + Sets the light mapper object for the scene. + Définit un objet de pré-calcul de l'éclairage pour la scène. @@ -61467,99 +64690,111 @@ Elle est utilisée pour calculer la taille totale implicite. - SelectBackgroundColorAction + SetUniformValueSection - Select Background Color - Sélectionner la couleur d’arrière-plan + Set Uniform Value + Définir la valeur uniforme - Select a color for the background of the 3D view. - Sélectionner la couleur d’arrière-plan de la vue 3D. + Target + Cible + + + Sets the name of the uniform to change value for a pass. + Définit le nom de la variable uniforme pour changer sa valeur dans une passe. + + + Value + Valeur + + + Sets the value of the uniform. + Définit la valeur de la variable uniforme. - SelectGridColorAction + ShaderSection - Select Grid Color - Sélectionner la couleur de la grille + Shader + Shader - Select a color for the grid lines of the 3D view. - Sélectionner une couleur pour les lignes de la grille de la vue 3D. + Source + Source + + + Sets the shader source code. + Définit le code source du shader. + + + Stage + Étape + + + Sets the shader stage. + Définit l'étape du shader. - SelectionModeToggleAction + ShadowSection - Toggle Group/Single Selection Mode - Activer/désactiver le mode de sélection par groupe/seul + Shadows + Ombres + + + Casts Shadow + Génère une ombre + + + Enables shadow casting for this light. + Active la génération d'une ombre pour cette lumière. + + + Amount + Quantité + + + Sets how dark the cast shadows should be. + Définit la profondeur de l'obscurité produite par les ombres. + + + Filter + Filtre + + + Sets how much blur is applied to the shadows. + Définit la quantité de flou appliquée aux ombres. + + + Quality + Qualité + + + Sets the quality of the shadow map created for shadow rendering. + Définit la qualité de la texture d'ombrage créée par le rendu des ombres. + + + Bias + Biais + + + Sets a slight offset to avoid self-shadowing artifacts. + Définit un léger décalage pour éviter les artefacts liés à sa propre ombre. + + + Far Distance + Distance de fin + + + Sets the maximum distance for the shadow map. + Définit la distance maximale pour la texture des ombres. - ShowCameraFrustumAction + SkinSection - Always Show Camera Frustums - Toujours afficher le frustrum de la caméra - - - Toggle between always showing the camera frustum visualization and only showing it when the camera is selected. - Active/désactive si la visualisation du frustrum de la caméra est toujours visible ou seulement lorsque la caméra est sélectionnée. - - - - ShowGridAction - - Show Grid - Afficher la grille - - - Toggle the visibility of the helper grid. - Activer/désactiver la visibilité de la grille d’aide. - - - - ShowIconGizmoAction - - Show Icon Gizmos - Affiche les icônes - - - Toggle the visibility of icon gizmos, such as light and camera icons. - Active/désactive la visibilité des icônes, telle que l'icône de caméra ou l'icône des lumières. - - - - ShowLookAtAction - - Show Look-at - où la caméra pointe/direction - Afficher la direction du regard - - - Toggle the visibility of the edit camera look-at indicator. - Active/désactive l'indicateur pour modifier la direction de la caméra. - - - - ShowParticleEmitterAction - - Always Show Particle Emitters And Attractors - Affiche toujours les émetteurs de particules et les attracteurs - - - Toggle between always showing the particle emitter and attractor visualizations and only showing them when the emitter or attractor is selected. - Active/désactive si les émetteurs et attracteurs de particules sont toujours visibles ou seulement lorsque sélectionné. - - - - ShowSelectionBoxAction - - Show Selection Boxes - Afficher les boites de sélection - - - Toggle the visibility of selection boxes. - Activer/désactiver la visibilité des boites de sélection. + Skin + Peau @@ -61685,13 +64920,6 @@ Elle est utilisée pour calculer la taille totale implicite. Détermine si la valeur actuelle doit être mise à jour lorsque l'utilisateur déplace la poignée du slider, ou si la mise à jour s'effectue uniquement au relachement. - - SnapConfigAction - - Open snap configuration dialog - Ouvrir la fenêtre de configuration de l'aimantation - - SnapConfigurationDialog @@ -61759,13 +64987,6 @@ Elle est utilisée pour calculer la taille totale implicite. Tout réinitialiser - - SnapToggleAction - - Toggle snapping during node drag - Active/désactive l'aimantation lors du glissement du nœud - - SocialButton @@ -61891,6 +65112,349 @@ A near field gain of 1 will raise the volume of the sound signal by approx 20 dB Un gain de 1 augmentera le volume du signal sonore d'environ 20 dB lorsque l'auditeur est très proche. + + SpecularGlossyMaterialSection + + Specular Glossy Material + Matériau spéculaire brillant + + + Alpha Mode + Mode alpha + + + Sets the mode for how the alpha channel of material color is used. + Définit le mode déterminant comment le canal alpha de la couleur du matériau doit être utilisé. + + + Alpha Cutoff + Valeur alpha de butée + + + Sets the cutoff value when using the Mask alphaMode. + Définit la valeur de butée lors de l'utilisation du mode « Mask ». + + + Blend Mode + Mode de fondu + + + Sets how the colors of the model rendered blend with those behind it. + Définit comment les couleurs du modèle sont fondues avec celles derrière lui. + + + Lighting + Éclairage + + + Sets which lighting method is used when generating this material. + Définit la méthode de calcul des lumières lors de la génération de ce matériau. + + + Albedo + Albédo + + + Color + Couleur + + + Sets the albedo color of the material. + Définit la couleur albédo de ce matériau. + + + Map + Texture + + + Sets a texture used to set the albedo color of the material. + Définit une texture déterminant la couleur albédo de ce matériau. + + + Specular + Spéculaire + + + Sets the specular color of the material. + Définit la couleur spéculaire du matériau. + + + Sets a texture used to set the specular color of the material. + Définit la texture utilisée pour définir la couleur spéculaire du matériau. + + + Glossiness + Brillance + + + Amount + Quantité + + + Sets the size of the specular highlight generated from lights, and the clarity of reflections in general. + Définit la taille de l'effet spéculaire généré par les lumières et, de manière générale, la clarté des reflets. + + + Sets a texture to control the glossiness of the material. + Définit une texture pour contrôler la brillance du matériau. + + + Channel + Canal + + + Sets the texture channel used to read the glossiness value from glossinessMap. + Définit le canal de la texture de brillance à partir duquel lire la valeur. + + + Normal + Normales + + + Sets an RGB image used to simulate fine geometry displacement across the surface of the material. + Définit une image RVB utilisée pour simuler un fin relief à la surface de la géométrie du matériau. + + + Strength + Force + + + Sets the amount of simulated displacement for the normalMap. + Définit la quantité de déplacement pour la texture de normales. + + + Occlusion + Occlusion + + + Sets the factor used to modify the values from the occlusionMap texture. + Définit le coefficient utilisé pour modifier les valeurs de la texture d'occlusion. + + + Sets a texture used to determine how much indirect light the different areas of the material should receive. + Définit une texture déterminant la quantité de lumière indirecte reçue par les différentes parties du matériau. + + + Sets the texture channel used to read the occlusion value from occlusionMap. + Définit le canal de la texture d'occlusion à utiliser pour lire les valeurs. + + + Opacity + Opacité + + + Sets the opacity of just this material, separate from the model. + Définit l'opacité propre à ce matériau, indépendamment du modèle. + + + Sets a texture used to control the opacity differently for different parts of the material. + Définit une texture déterminant l'opacité des différentes parties du matériau. + + + Sets the texture channel used to read the opacity value from opacityMap. + Définit le canal de la texture d'opacité à partir duquel lire les valeurs. + + + Emissive Color + Couleur émissive + + + Sets a texture to be used to set the emissive factor for different parts of the material. + Définit une texture déterminant le coefficient d'émission des différentes parties du matériau. + + + Factor + Coefficient + + + Sets the color of self-illumination for this material. + Définit la couleur émise par ce matériau. + + + Height + Relief + + + Sets the factor used to modify the values from the heightMap texture. + Définit le coefficient utilisé pour modifier les valeurs de la texture de relief. + + + Sets a texture used to determine the height the texture will be displaced when rendered through the use of Parallax Mapping. + Définit une texture déterminant le décalage appliqué lors du rendu provenant du « Parallax Mapping ». + + + Sets the texture channel used to read the height value from heightMap. + Définit le canal de la texture de hauteur à partir duquel lire les valeurs. + + + Min Map Samples + Échantillons minimum de texture + + + Sets the minimum number of samples used for performing Parallax Occlusion Mapping using the heightMap. + Définit le nombre minimum d'échantillons de la texture des hauteurs à utiliser lors de l'application du « Parallax Occlusion Mapping ». + + + Max Map Samples + Échantillons maximum de texture + + + Sets the maximum number of samples used for performing Parallax Occlusion Mapping using the heightMap. + Définit le nombre maximum d'échantillons de la texture des hauteurs à utiliser lors de l'application du « Parallax Occlusion Mapping ». + + + Clearcoat + Vernis + + + Sets the intensity of the clearcoat layer. + Définit l'intensité de la couche de vernis. + + + Sets a texture used to determine the intensity of the clearcoat layer. + Définit la texture déterminant l'intensité de la couche de vernis. + + + Sets the texture channel used to read the intensity from clearcoatMap. + Définit le canal de texture d'intensité à partir duquel lire les valeurs. + + + Roughness Amount + Quantité de rugosité + + + Sets the roughness of the clearcoat layer. + Définit la rugosité de la couche de vernis. + + + Roughness Map + Texture de rugosité + + + Sets a texture used to determine the roughness of the clearcoat layer. + Définit la texture déterminant la rugosité de la couche de vernis. + + + Roughness Channel + Canal de rugosité + + + Sets the texture channel used to read the roughness from clearcoatRoughnessMap. + Définit le canal de la texture de rugosité à partir duquel lire les valeurs. + + + Normal Map + Texture de normales + + + Sets a texture used as a normalMap for the clearcoat layer. + Définit une texture déterminant les normales de la couche de vernis. + + + Refraction + Réfraction + + + Transmission Factor + Coefficient de transmission + + + Sets the base percentage of light that is transmitted through the surface. + Définit le pourcentage de lumière transmis à travers la surface. + + + Transmission Map + Texture de transmission + + + Sets a texture that contains the transmission percentage of a the surface. + Définit une texture déterminant le pourcentage de lumière transmis à travers la surface. + + + Transmission Channel + Canal de transmission + + + Sets the texture channel used to read the transmission percentage from transmissionMap. + Définit le canal de la texture de transmission à partir duquel lire les valeurs. + + + Thickness Factor + Coefficient d'épaisseur + + + Sets the thickness of the volume beneath the surface in model coordinate space. + Définit l'épaisseur du volume en dessous de la surface, dans le système de coordonées du modèle. + + + Thickness Map + Texture d'épaisseur + + + Sets a texture that contains the thickness of a the material volume. + Définit une texture déterminant l'épaisseur du volume du matériau. + + + Thickness Channel + Canal d'épaisseur + + + Sets the texture channel used to read the thickness amount from thicknessMap. + Définit le canal de la texture d'épaisseur à partir duquel lire les valeurs. + + + Attenuation Color + Couleur d'atténuation + + + Sets the color that white lights turn into due to absorption when reaching the attenuation distance. + Définit la couleur prise par la lumière blanche lorsque celle-ci est absorbée après avoir atteint la distance d'atténuation. + + + Attenuation Distance + Distance d'atténuation + + + Sets the average distance in world space that light travels in the medium before interacting with a particle. + Définit la distance moyenne, dans le système de coordonnées du monde, parcourue par la lumière avant d'interagir avec une particule. + + + Advanced + Avancé + + + Vertex Colors + Couleurs des sommets + + + Sets whether vertex colors are used to modulate the base color. + Définit si les couleurs des sommets doivent être utilisées pour altérer la couleur de base. + + + Enabled + Activé + + + Disabled + Désactivé + + + Point Size + Taille de point + + + Sets the size of the points rendered, when the geometry is using a primitive type of points. + Définit la taille des points dessinés lorsque la géométrie utilise le type de primitive points. + + + Line Width + Largeur de ligne + + + Sets the width of the lines rendered, when the geometry is using a primitive type of lines or line strips. + Définit la largeur des lignes dessinées lorsque la géométrie utilise un type de primitif ligne ou ensemble de lignes. + + SpinBoxSpecifics @@ -61948,6 +65512,25 @@ atteint le début ou la fin. Boucle + + SplitButton + + Packing + Empaquetage + + + Sending + Envoi + + + Starting + Démarrage + + + Manage run targets + Gérer les cibles d'exécution + + SplitViewSpecifics @@ -61964,10 +65547,50 @@ atteint le début ou la fin. - SplitViewToggleAction + SpotLightSection - Toggle Split View On/Off - Activer/désactiver la vue scindée + Spot Light + Lumière spot + + + Constant Fade + Atténuation constante + + + Sets the constant attenuation of the light. + Définit l'atténuation constante de la lumière. + + + Linear Fade + Atténuation linéaire + + + Sets the linear attenuation of the light. + Définit l'atténuation linéaire de la lumière. + + + Quadratic Fade + Atténuation quadratique + + + Sets the quadratic attenuation of the light. + Définit l'atténuation quadratique de la lumière. + + + Cone Angle + Angle du cône + + + Sets the angle of the light cone. + Définit l'angle du cône de lumière. + + + Inner Cone Angle + Angle intérieur du cône + + + Sets the angle of the inner light cone. + Définit l'angle intérieur du cône de lumière. @@ -62376,13 +65999,6 @@ atteint le début ou la fin. Dark - - SubComponentManager::parseDirectory - - Invalid meta info - Métadonnées invalides - - SwipeViewSpecifics @@ -62411,17 +66027,6 @@ atteint le début ou la fin. Orientation - - SyncEnvBackgroundAction - - Use Scene Environment - Utiliser l'environnement de la scène - - - Sets the 3D view to use the Scene Environment color or skybox as background color. - Règle la vue 3D pour utiliser la couleur de l'environnement de scène ou de la skybox comme couleur de fond. - - TabBarSpecifics @@ -62509,25 +66114,6 @@ Elle est utilisée pour calculer la taille totale implicite. nom d'étiquette - - TemplateMerge - - Merge With Template - Fusionner avec le modèle - - - &Browse... - &Parcourir… - - - Template: - Modèle : - - - Browse Template - Parcourir les modèles - - TestControlPanel @@ -62957,13 +66543,6 @@ Elle est utilisée pour calculer la taille totale implicite. Si la zone de texte accepte les évènements de survol. - - TextTool - - Text Tool - Outil de texte - - TextureBrowserContextMenu @@ -63010,6 +66589,199 @@ Elle est utilisée pour calculer la taille totale implicite. Ouvrir le navigateur de matériaux. + + TextureEditorTopSection + + Name + Nom + + + Texture name + Nom de texture + + + + TextureInputSection + + Texture Input + Texture en entrée + + + Texture + Texture + + + Sets the input texture. + Définit la texture en entrée. + + + Enabled + Activée + + + Sets the texture enabled state. + Définit si la texture est active. + + + + TextureSection + + Texture + Texture + + + Source + Source + + + Sets the location of an image file containing the data used by the texture. + Définit l'emplacement d'un fichier image contenant les données de la texture. + + + Source Item + Élément source + + + Sets an item to be used as the source of the texture. + Définit un élément à utiliser comme source de la texture. + + + Texture Data + Données de la texture + + + Sets a reference to a TextureData component which defines the contents and properties of raw texture data. + Définit une référence vers un composant TextureData définissant le contenu et les propriétés des données brutes de texture. + + + Scale + Échelle + + + Sets how to scale the U texture coordinate when mapping to UV coordinates of a mesh. + Définit un redimensionnement des coordonnées de texture U lors de la mise en correspondance avec les coordonnées UV d'un modèle. + + + Sets how to scale the V texture coordinate when mapping to UV coordinates of a mesh. + Définit un redimensionnement des coordonnées de texture V lors de la mise en correspondance avec les coordonnées UV d'un modèle. + + + Flip V + Retournement V + + + Sets the use of the vertically flipped coordinates. + Définit l'inversion verticale des coordonnées. + + + Flip U + Retournement U + + + Sets the use of the horizontally flipped texture coordinates. + Définit l'inversion horizontale des coordonnées. + + + Auto Orientation + Orientation automatique + + + Sets if a texture transformation, such as flipping the V texture coordinate, is applied automatically for textures where this is typically relevant. + Définit si la transformation de la texture, tel que le retournement des coordonnées de texture V, est appliquée automatiquement pour les textures où cela est pertinent. + + + Texture Mapping + Application de la texture + + + Sets which method of mapping to use when sampling this texture. + Définit quelle méthode d'application utiliser lors de l'échantillonage de cette texture. + + + U Tiling + Mise en tuile U + + + Sets how the texture is mapped when the U scaling value is greater than 1. + Définit comment la texture est appliquée lorsque les coordonnées U sont plus grandes que 1. + + + V Tiling + Mise en tuile V + + + Sets how the texture is mapped when the V scaling value is greater than 1. + Définit comment la texture est appliquée lorsque les coordonnées V sont plus grandes que 1. + + + UV Index + Indice UV + + + Sets the UV coordinate index used by this texture. + Définit l'indice des coordonnées UV utilisées par cette texture. + + + UV Rotation + Rotation UV + + + Sets the rotation of the texture around the pivot point. + Définit la rotation de la texture autour du point de pivot. + + + Position + Position + + + Sets the U coordinate mapping offset from left to right. + Définit le décalage lors de l'application des coordonnées U de gauche à droite. + + + Sets the V coordinate mapping offset from bottom to top. + Définit le décalage lors de l'application des coordonnées V de bas à haut. + + + Pivot + Pivot + + + Sets the pivot U position. + Définit la position U du pivot. + + + Sets the pivot V position. + Définit la position V du pivot. + + + Generate Mipmaps + Générer les mipmaps + + + Sets if mipmaps are generated for textures that do not provide mipmap levels themselves. + Détermine si les mipmaps sont générées pour les textures qui n'en proposent pas elles-mêmes. + + + Mag Filter + Filtre d'agrandissement + + + Sets how the texture is sampled when a texel covers more than one pixel. + Définit comment la texture est échantillonnée lorsque les texels font plus d'un pixel. + + + Min Filter + Filtre de rétrécissement + + + Mip Filter + Filtre de rétrécissement de mipmap + + + Sets how the texture mipmaps are sampled when a texel covers less than one pixel. + Définit comment la mipmap de la texture est échantillonnée lorsque les texels font moins d'un pixel. + + ThumbnailDelegate @@ -63363,10 +67135,42 @@ Voulez-vous vraiment le supprimer ? - VisibilityTogglesAction + View3DSection - Visibility Toggles - Alterne la visibilité + View3D + Vue 3D + + + Camera + Caméra + + + Sets which camera is used to render the scene. + Définit quelle caméra utiliser pour le rendu de la scène. + + + Environment + Environnement + + + Sets the scene environment used to render the scene. + Définit l'environnement de la scène utilisé pour dessiner la scène. + + + Import Scene + Importer une scène + + + Sets the reference node of the scene to render to the viewport. + Définit un nœud de référence de la scène pour le rendu dans la vue. + + + Render Format + Format de rendu + + + Sets the format of the backing texture. + Définit le format pour la texture. @@ -63406,14 +67210,6 @@ Voulez-vous vraiment le supprimer ? WidgetPluginManager - - Failed to create instance of file "%1": %2 - Impossible de créer une instance à partir du fichier « %1 » : %2 - - - Failed to create instance of file "%1". - Impossible de créer une instance à partir du fichier « %1 ». - File "%1" is not a Qt Quick Designer plugin. Le fichier « %1 » n'est pas un greffon Qt Quick Designer. @@ -63501,6 +67297,289 @@ Voulez-vous vraiment le supprimer ? Sélectionnez un composant pour voir ses propriétés. + + itemlibrary + + Item + Élément + + + Rectangle + Rectangle + + + Text + Texte + + + Text Edit + Éditeur de texte + + + Text Input + Texte en entrée + + + Mouse Area + Zone de souris + + + Image + Image + + + Animated Image + Image animée + + + Animated Sprite + Sprite animé + + + Border Image + Image avec bordure + + + Flickable + Flickable + + + Grid View + Vue en grille + + + List View + Vue en liste + + + Path View + Vue en chemin + + + Focus Scope + Portée de focus + + + Column + Colonne + + + Row + Ligne + + + Grid + Grille + + + Flow + Flux + + + Property + Propriété + + + Pause + Pause + + + Sequential + Séquentiel + + + Parallel + Parallèle + + + Script + Script + + + Color + Couleur + + + Number + Nombre + + + Loader + Chargeur + + + Repeater + Répéteur + + + Busy Indicator + Indicateur d'occupation + + + Button + Bouton + + + Check Box + Case à cocher + + + Check Delegate + Délégué de case à cocher + + + Combo Box + Liste déroulante + + + Control + Contrôle + + + Delay Button + Bouton avec un retard + + + Dial + Cadran + + + Frame + Cadre + + + Group Box + Boîte de groupe + + + Item Delegate + Délégué d'élément + + + Label + Libellé + + + Page + Page + + + Page Indicator + Indicateur de page + + + Pane + Panneau + + + Progress Bar + Barre de progression + + + Radio Button + Bouton radio + + + Radio Delegate + Délégué de bouton radio + + + Range Slider + Slider de plage + + + Round Button + Bouton arrondi + + + Slider + Slider + + + Spin Box + Spin Box + + + Scroll View + Vue défilante + + + Stack View + Vue en tas + + + Swipe Delegate + Délégué de vue en balayage + + + Swipe View + Vue en balayage + + + Switch + Interrupteur + + + Switch Delegate + Délégué d'interrupteur + + + Tab Bar + Barre d'onglets + + + Tab Button + Bouton d'onglet + + + Text Area + Zone de texte + + + Text Field + Champ de texte + + + Tool Bar + Barre d'outils + + + Tool Button + Bouton de barre d'outils + + + Tool Separator + Séparateur d'outil + + + Tumbler + Tumbler + + + Views + Vues + + + Positioner + Positionneur + + + Animation + Animation + + + Instancers + Instanciateur + + + Basic + Basique + + + Controls 2 + Controls 2 + + main diff --git a/src/app/qtcreator.ico b/src/app/qtcreator.ico index 1a4a16d9d86..890e4dba4a2 100644 Binary files a/src/app/qtcreator.ico and b/src/app/qtcreator.ico differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png index 6a5bd0b9cb2..414928e27cb 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png index 71642ef953e..80f535f41fe 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_128x128@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png index 71642ef953e..80f535f41fe 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png index cb6599145d3..6971a20ef88 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_256x256@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png index 0876aa7827a..02493934b76 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_32x32@2x.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png index cb6599145d3..6971a20ef88 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512.png differ diff --git a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png index 760b7f8a08d..f9b69ff4ca9 100644 Binary files a/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png and b/src/app/qtcreator.xcassets/qtcreator.appiconset/icon_512x512@2x.png differ diff --git a/src/libs/3rdparty/cplusplus/Symbols.h b/src/libs/3rdparty/cplusplus/Symbols.h index ccca5048995..14dd07b83fd 100644 --- a/src/libs/3rdparty/cplusplus/Symbols.h +++ b/src/libs/3rdparty/cplusplus/Symbols.h @@ -205,7 +205,7 @@ protected: void visitSymbol0(SymbolVisitor *visitor) override; private: FullySpecifiedType _type; - const Name *_conceptName; + const Name *_conceptName = nullptr; }; class CPLUSPLUS_EXPORT Block final : public Scope diff --git a/src/libs/3rdparty/libptyqt/conptyprocess.cpp b/src/libs/3rdparty/libptyqt/conptyprocess.cpp index 31497d3333a..8e9358386ec 100644 --- a/src/libs/3rdparty/libptyqt/conptyprocess.cpp +++ b/src/libs/3rdparty/libptyqt/conptyprocess.cpp @@ -570,30 +570,21 @@ void _ClosePseudoConsoleMembers(_In_ PseudoConsole* pPty) { if (pPty != nullptr) { - // See MSFT:19918626 - // First break the signal pipe - this will trigger conhost to tear itself down if (_HandleIsValid(pPty->hSignal)) { CloseHandle(pPty->hSignal); pPty->hSignal = nullptr; } - // Then, wait on the conhost process before killing it. - // We do this to make sure the conhost finishes flushing any output it - // has yet to send before we hard kill it. - if (_HandleIsValid(pPty->hConPtyProcess)) - { - TerminateProcess(pPty->hConPtyProcess, 0); - CloseHandle(pPty->hConPtyProcess); - pPty->hConPtyProcess = nullptr; - } - // Then take care of the reference handle. - // TODO GH#1810: Closing the reference handle late leaves conhost thinking - // that we have an outstanding connected client. if (_HandleIsValid(pPty->hPtyReference)) { CloseHandle(pPty->hPtyReference); pPty->hPtyReference = nullptr; } + if (_HandleIsValid(pPty->hConPtyProcess)) + { + CloseHandle(pPty->hConPtyProcess); + pPty->hConPtyProcess = nullptr; + } } } diff --git a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp index 21028853bf0..33a6961f46d 100644 --- a/src/libs/gocmdbridge/client/cmdbridgeclient.cpp +++ b/src/libs/gocmdbridge/client/cmdbridgeclient.cpp @@ -338,7 +338,8 @@ expected_str> Client::start() return; } // Broken package, search for next magic marker - qCWarning(clientLog) << "Magic marker was not found"; + qCWarning(clientLog) + << "Magic marker was not found, buffer content:" << buffer; // If we don't find a magic marker, the rest of the buffer is trash. buffer.clear(); } else { @@ -445,8 +446,7 @@ static Utils::expected_str> createJob( std::make_exception_ptr(std::system_error(ENOENT, std::generic_category()))); promise->finish(); } else if (errType == "NormalExit") { - promise->setException( - std::make_exception_ptr(std::runtime_error(err.toStdString()))); + promise->setException(std::make_exception_ptr(std::runtime_error("NormalExit"))); promise->finish(); } else { qCWarning(clientLog) << "Error (" << errType << "):" << err; @@ -857,10 +857,22 @@ Utils::expected_str> Client::signalProcess(int pid, Utils::Control bool Client::exit() { try { - createVoidJob(d.get(), QCborMap{{"Type", "exit"}}, "exitres")->waitForFinished(); + createVoidJob(d.get(), QCborMap{{"Type", "exit"}}, "exitres").and_then([](auto future) { + future.waitForFinished(); + return expected_str(); + }); return true; + } catch (const std::runtime_error &e) { + if (e.what() == std::string("NormalExit")) + return true; + + qCWarning(clientLog) << "Client::exit() caught exception:" << e.what(); + return false; + } catch (const std::exception &e) { + qCWarning(clientLog) << "Client::exit() caught exception:" << e.what(); + return false; } catch (...) { - qCWarning(clientLog) << "Client::exit() caught exception"; + qCWarning(clientLog) << "Client::exit() caught unexpected exception"; return false; } } diff --git a/src/libs/gocmdbridge/server/cmdbridge.go b/src/libs/gocmdbridge/server/cmdbridge.go index ee60f425e90..9cce3359648 100644 --- a/src/libs/gocmdbridge/server/cmdbridge.go +++ b/src/libs/gocmdbridge/server/cmdbridge.go @@ -124,7 +124,7 @@ func readPacket(decoder *cbor.Decoder) (*command, error) { func sendError(out chan<- []byte, cmd command, err error) { errMsg := err.Error() - errType := reflect.TypeOf(err).Elem().Name() + errType := reflect.TypeOf(err).Name() if e, ok := err.(*os.PathError); ok { errMsg = e.Err.Error() errType = reflect.TypeOf(e.Err).Name() diff --git a/src/libs/languageserverprotocol/lsptypes.cpp b/src/libs/languageserverprotocol/lsptypes.cpp index e6d99ab18c7..05cda63fcb7 100644 --- a/src/libs/languageserverprotocol/lsptypes.cpp +++ b/src/libs/languageserverprotocol/lsptypes.cpp @@ -145,6 +145,7 @@ static QHash mimeTypeLanguageIdMap() {"application/xml", "xml"}, {"application/xslt+xml", "xsl"}, {"application/x-yaml", "yaml"}, + {"text/x-swift", "swift"}, }; for (const QPair &languageIdForMimeTypeName : languageIdsForMimeTypeNames) { const Utils::MimeType &mimeType = Utils::mimeTypeForName(languageIdForMimeTypeName.first); diff --git a/src/libs/solutions/terminal/terminalview.cpp b/src/libs/solutions/terminal/terminalview.cpp index fd4cf66a6d8..9faf721d594 100644 --- a/src/libs/solutions/terminal/terminalview.cpp +++ b/src/libs/solutions/terminal/terminalview.cpp @@ -966,12 +966,6 @@ void TerminalView::keyPressEvent(QKeyEvent *event) verticalScrollBar()->value() - d->m_surface->liveSize().height(), verticalScrollBar()->maximum())); break; - case Qt::Key_End: - verticalScrollBar()->setValue(verticalScrollBar()->maximum()); - break; - case Qt::Key_Home: - verticalScrollBar()->setValue(0); - break; default: if (event->key() < Qt::Key_Shift || event->key() > Qt::Key_ScrollLock) verticalScrollBar()->setValue(verticalScrollBar()->maximum()); @@ -1015,8 +1009,10 @@ void TerminalView::applySizeChange() void TerminalView::updateScrollBars() { int scrollSize = d->m_surface->fullSize().height() - d->m_surface->liveSize().height(); + const bool shouldScroll = verticalScrollBar()->value() == verticalScrollBar()->maximum(); verticalScrollBar()->setRange(0, scrollSize); - verticalScrollBar()->setValue(verticalScrollBar()->maximum()); + if (shouldScroll) + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); updateViewport(); } @@ -1110,6 +1106,11 @@ void TerminalView::focusOutEvent(QFocusEvent *) void TerminalView::inputMethodEvent(QInputMethodEvent *event) { + // Gnome sends empty events when switching virtual desktops, so ignore those. + if (event->commitString().isEmpty() && event->preeditString().isEmpty() + && event->attributes().empty() && d->m_preEditString.isEmpty()) + return; + verticalScrollBar()->setValue(verticalScrollBar()->maximum()); d->m_preEditString = event->preeditString(); diff --git a/src/libs/utils/devicefileaccess.cpp b/src/libs/utils/devicefileaccess.cpp index 0eb8818fcc2..18bf2812e6c 100644 --- a/src/libs/utils/devicefileaccess.cpp +++ b/src/libs/utils/devicefileaccess.cpp @@ -1479,10 +1479,11 @@ expected_str UnixDeviceFileAccess::fileContents(const FilePath &file } #ifndef UTILS_STATIC_LIBRARY const FilePath dd = filePath.withNewPath("dd"); + using namespace std::literals::chrono_literals; Process p; p.setCommand({dd, args, OsType::OsTypeLinux}); - p.runBlocking(); + p.runBlocking(0s); // Run forever if (p.exitCode() != 0) { return make_unexpected(Tr::tr("Failed reading file \"%1\": %2") .arg(filePath.toUserOutput(), p.readAllStandardError())); diff --git a/src/libs/utils/environmentmodel.cpp b/src/libs/utils/environmentmodel.cpp index 9d5edb684fd..46681742158 100644 --- a/src/libs/utils/environmentmodel.cpp +++ b/src/libs/utils/environmentmodel.cpp @@ -356,7 +356,7 @@ void EnvironmentModel::toggleVariable(const QModelIndex &idx) { const QString name = indexToVariable(idx); const auto newIt = d->m_resultNameValueDictionary.find(name); - QTC_ASSERT(newIt != d->m_resultNameValueDictionary.begin(), return); + QTC_ASSERT(newIt != d->m_resultNameValueDictionary.end(), return); const auto op = newIt.enabled() ? EnvironmentItem::SetDisabled : EnvironmentItem::SetEnabled; const int changesPos = d->findInChanges(name); if (changesPos != -1) { diff --git a/src/libs/utils/images/code_copy_square.png b/src/libs/utils/images/code_copy_square.png new file mode 100644 index 00000000000..73583ff1752 Binary files /dev/null and b/src/libs/utils/images/code_copy_square.png differ diff --git a/src/libs/utils/images/code_copy_square@2x.png b/src/libs/utils/images/code_copy_square@2x.png new file mode 100644 index 00000000000..4a9602b3305 Binary files /dev/null and b/src/libs/utils/images/code_copy_square@2x.png differ diff --git a/src/libs/utils/layoutbuilder.cpp b/src/libs/utils/layoutbuilder.cpp index 6d3ed01cbb9..517e2803467 100644 --- a/src/libs/utils/layoutbuilder.cpp +++ b/src/libs/utils/layoutbuilder.cpp @@ -820,6 +820,11 @@ void Widget::setMinimumWidth(int minw) access(this)->setMinimumWidth(minw); } +void Widget::setMinimumHeight(int height) +{ + access(this)->setMinimumHeight(height); +} + void Widget::setSizePolicy(const QSizePolicy &policy) { access(this)->setSizePolicy(policy); @@ -1109,6 +1114,11 @@ MarkdownBrowser::MarkdownBrowser(std::initializer_list ps) apply(this, ps); } +QString MarkdownBrowser::toMarkdown() const +{ + return access(this)->toMarkdown(); +} + void MarkdownBrowser::setMarkdown(const QString &markdown) { access(this)->setMarkdown(markdown); @@ -1119,6 +1129,11 @@ void MarkdownBrowser::setBasePath(const Utils::FilePath &path) access(this)->setBasePath(path); } +void MarkdownBrowser::setEnableCodeCopyButton(bool enable) +{ + access(this)->setEnableCodeCopyButton(enable); +} + // Special If If::If( @@ -1245,11 +1260,6 @@ void LineEdit::setCompleter(QCompleter *completer) access(this)->setSpecialCompleter(completer); } -void LineEdit::setMinimumHeight(int height) -{ - access(this)->setMinimumHeight(height); -} - void LineEdit::onReturnPressed(QObject *guard, const std::function &func) { static_cast(access(this))->acceptReturnKeys = true; diff --git a/src/libs/utils/layoutbuilder.h b/src/libs/utils/layoutbuilder.h index 313771b1417..651166a4f0d 100644 --- a/src/libs/utils/layoutbuilder.h +++ b/src/libs/utils/layoutbuilder.h @@ -266,6 +266,7 @@ public: void setContentsMargins(int left, int top, int right, int bottom); void setCursor(Qt::CursorShape shape); void setMinimumWidth(int); + void setMinimumHeight(int height); void activateWindow(); void close(); @@ -357,7 +358,6 @@ public: void setRightSideIconPath(const Utils::FilePath &path); void setPlaceHolderText(const QString &text); void setCompleter(QCompleter *completer); - void setMinimumHeight(int height); void onReturnPressed(QObject *guard, const std::function &); void onRightSideIconClicked(QObject *guard, const std::function &); }; @@ -456,8 +456,10 @@ public: MarkdownBrowser(std::initializer_list items); + QString toMarkdown() const; void setMarkdown(const QString &); void setBasePath(const Utils::FilePath &); + void setEnableCodeCopyButton(bool enable); }; // Special diff --git a/src/libs/utils/markdownbrowser.cpp b/src/libs/utils/markdownbrowser.cpp index f56612e5b82..58b15db0c31 100644 --- a/src/libs/utils/markdownbrowser.cpp +++ b/src/libs/utils/markdownbrowser.cpp @@ -8,6 +8,7 @@ #include "mimeutils.h" #include "movie.h" #include "networkaccessmanager.h" +#include "stringutils.h" #include "stylehelper.h" #include "textutils.h" #include "theme/theme.h" @@ -19,8 +20,11 @@ #include #include +#include +#include #include #include +#include #include #include #include @@ -81,9 +85,12 @@ static QStringList defaultCodeFontFamilies() return {"Menlo", "Source Code Pro", "Monospace", "Courier"}; } -static void highlightCodeBlock(QTextDocument *document, QTextBlock &block, const QString &language) +static int registerSnippet(QTextDocument *document, const QString &code); + +static void highlightCodeBlock( + QTextDocument *document, QTextBlock &block, const QString &language, bool enableCopy) { - const int position = block.position(); + const int startPos = block.position(); // Find the end of the code block ... for (block = block.next(); block.isValid(); block = block.next()) { if (!block.blockFormat().hasProperty(QTextFormat::BlockCodeLanguage)) @@ -91,43 +98,81 @@ static void highlightCodeBlock(QTextDocument *document, QTextBlock &block, const if (language != block.blockFormat().stringProperty(QTextFormat::BlockCodeLanguage)) break; } - const int end = (block.isValid() ? block.position() : document->characterCount()) - 1; + const int endPos = (block.isValid() ? block.position() : document->characterCount()) - 1; + // Get the text of the code block and erase it QTextCursor eraseCursor(document); - eraseCursor.setPosition(position); - eraseCursor.setPosition(end, QTextCursor::KeepAnchor); - + eraseCursor.setPosition(startPos); + eraseCursor.setPosition(endPos, QTextCursor::KeepAnchor); const QString code = eraseCursor.selectedText(); eraseCursor.removeSelectedText(); - // Create a new Frame and insert the highlighted code ... - block = document->findBlock(position); - + // Reposition the main cursor to startPos, to insert new content + block = document->findBlock(startPos); QTextCursor cursor(block); - QTextFrameFormat format; - format.setBorderStyle(QTextFrameFormat::BorderStyle_Solid); - format.setBackground(creatorColor(Theme::Token_Background_Muted)); - format.setPadding(SpacingTokens::ExPaddingGapM); - format.setLeftMargin(SpacingTokens::VGapM); - format.setRightMargin(SpacingTokens::VGapM); - QTextFrame *frame = cursor.insertFrame(format); + QTextFrameFormat frameFormat; + frameFormat.setBorderStyle(QTextFrameFormat::BorderStyle_Solid); + frameFormat.setBackground(creatorColor(Theme::Token_Background_Muted)); + frameFormat.setPadding(SpacingTokens::ExPaddingGapM); + frameFormat.setLeftMargin(SpacingTokens::VGapM); + frameFormat.setRightMargin(SpacingTokens::VGapM); + + QTextFrame *frame = cursor.insertFrame(frameFormat); QTextCursor frameCursor(frame); - std::unique_ptr codeDocument(highlightText(code, language)); - bool first = true; + if (enableCopy) { + QTextBlockFormat linkBlockFmt; + linkBlockFmt.setAlignment(Qt::AlignRight); + frameCursor.insertBlock(linkBlockFmt); - for (auto block = codeDocument->begin(); block != codeDocument->end(); block = block.next()) { - if (!first) - frameCursor.insertBlock(); + const int snippetId = registerSnippet(document, code); + const QString copy_id = QString("copy:%1").arg(snippetId); - QTextCharFormat charFormat = block.charFormat(); - charFormat.setFontFamilies(defaultCodeFontFamilies()); - frameCursor.setCharFormat(charFormat); + // Insert copy icon + QTextImageFormat imageFormat; + imageFormat.setName("qrc:/markdownbrowser/images/code_copy_square.png"); + imageFormat.setAnchor(true); + imageFormat.setAnchorHref(copy_id); + imageFormat.setWidth(16); + imageFormat.setHeight(16); + frameCursor.insertImage(imageFormat); - first = false; - auto formats = block.layout()->formats(); - frameCursor.insertText(block.text()); + // Create a clickable anchor for the "Copy" text + QTextCharFormat anchorFormat; + anchorFormat.setAnchor(true); + anchorFormat.setAnchorHref(copy_id); + anchorFormat.setForeground(QColor("#888")); + anchorFormat.setFontPointSize(10); + frameCursor.setCharFormat(anchorFormat); + frameCursor.insertText(" Copy"); + + // Insert a new left-aligned block to start the first line of code + QTextBlockFormat codeBlockFmt; + codeBlockFmt.setAlignment(Qt::AlignLeft); + frameCursor.insertBlock(codeBlockFmt); + } + + std::unique_ptr codeDoc(highlightText(code, language)); + + // Iterate each line in codeDoc and copy it out + bool firstLine = true; + for (auto tempBlock = codeDoc->begin(); tempBlock != codeDoc->end(); + tempBlock = tempBlock.next()) { + // For each subsequent line, insert another block + if (!firstLine) { + QTextBlockFormat codeBlockFmt; + codeBlockFmt.setAlignment(Qt::AlignLeft); + frameCursor.insertBlock(codeBlockFmt); + } + firstLine = false; + + QTextCharFormat lineFormat = tempBlock.charFormat(); + lineFormat.setFontFamilies(defaultCodeFontFamilies()); + frameCursor.setCharFormat(lineFormat); + + auto formats = tempBlock.layout()->formats(); + frameCursor.insertText(tempBlock.text()); frameCursor.block().layout()->setFormats(formats); } @@ -315,11 +360,18 @@ public: || (url.isRelative() && isBaseHttp); }; - QSet remoteUrls = Utils::filtered(m_urlsToLoad, isRemoteUrl); - QSet localUrls = Utils::filtered(m_urlsToLoad, std::not_fn(isRemoteUrl)); + const auto isLocalUrl = [this, isRemoteUrl](const QUrl &url) { + if (url.scheme() == "qrc") + return true; - if (m_basePath.isEmpty()) - localUrls.clear(); + if (!m_basePath.isEmpty() && !isRemoteUrl(url)) + return true; + + return false; + }; + + QSet remoteUrls = Utils::filtered(m_urlsToLoad, isRemoteUrl); + QSet localUrls = Utils::filtered(m_urlsToLoad, isLocalUrl); if (!m_loadRemoteImages) remoteUrls.clear(); @@ -384,22 +436,36 @@ public: } }; - auto onLocalSetup = [localIterator, - basePath = m_basePath, - maxSize = m_imageHandler.maximumCacheSize()]( - Async &async) { - const FilePath path = basePath.resolvePath(localIterator->path()); - async.setConcurrentCallData( - [](QPromise &promise, const FilePath &path, qsizetype maxSize) { - auto data = path.fileContents(); - if (!data || promise.isCanceled()) - return; + auto onLocalSetup = + [localIterator, basePath = m_basePath, maxSize = m_imageHandler.maximumCacheSize()]( + Async &async) { + const QUrl url = *localIterator; + async.setConcurrentCallData( + [](QPromise &promise, + const FilePath &basePath, + const QUrl &url, + qsizetype maxSize) { + if (url.scheme() == "qrc") { + QFile f(":" + url.path()); + if (!f.open(QIODevice::ReadOnly)) + return; - promise.addResult(AnimatedImageHandler::makeEntry(*data, maxSize)); - }, - path, - maxSize); - }; + promise.addResult( + AnimatedImageHandler::makeEntry(f.readAll(), maxSize)); + return; + } + + const FilePath path = basePath.resolvePath(url.path()); + auto data = path.fileContents(); + if (!data || promise.isCanceled()) + return; + + promise.addResult(AnimatedImageHandler::makeEntry(*data, maxSize)); + }, + basePath, + url, + maxSize); + }; auto onLocalDone = [localIterator, this](const Async &async) { EntryPointer result = async.result(); @@ -427,6 +493,21 @@ public: }); } + int registerSnippet(const QString &code) + { + const int id = m_nextSnippetId++; + m_snippetMap.insert(id, code); + return id; + } + + QString snippetById(int id) const { return m_snippetMap.value(id); } + + void clearSnippets() + { + m_snippetMap.clear(); + m_nextSnippetId = 0; + } + void scheduleLoad(const QUrl &url) { m_urlsToLoad.insert(url); @@ -449,11 +530,24 @@ private: FilePath m_basePath; std::function m_requestHook; QNetworkAccessManager *m_networkAccessManager = NetworkAccessManager::instance(); + QMap m_snippetMap; + int m_nextSnippetId = 0; }; +static int registerSnippet(QTextDocument *document, const QString &code) +{ + auto *animDoc = static_cast(document); + return animDoc->registerSnippet(code); +} + MarkdownBrowser::MarkdownBrowser(QWidget *parent) : QTextBrowser(parent) + , m_enableCodeCopyButton(false) { + setOpenLinks(false); + + connect(this, &QTextBrowser::anchorClicked, this, &MarkdownBrowser::handleAnchorClicked); + setDocument(new AnimatedDocument(this)); } @@ -480,6 +574,11 @@ void MarkdownBrowser::setMargins(const QMargins &margins) setViewportMargins(margins); } +void MarkdownBrowser::setEnableCodeCopyButton(bool enable) +{ + m_enableCodeCopyButton = enable; +} + void MarkdownBrowser::setAllowRemoteImages(bool allow) { static_cast(document())->setAllowRemoteImages(allow); @@ -500,6 +599,33 @@ void MarkdownBrowser::setMaximumCacheSize(qsizetype maxSize) static_cast(document())->setMaximumCacheSize(maxSize); } +void MarkdownBrowser::handleAnchorClicked(const QUrl &link) +{ + if (link.scheme() != QLatin1String("copy")) { + if (link.scheme() == "http" || link.scheme() == "https") + QDesktopServices::openUrl(link); + + if (link.hasFragment() && link.path().isEmpty() && link.scheme().isEmpty()) { + // local anchor + scrollToAnchor(link.fragment(QUrl::FullyEncoded)); + } + + return; + } + + bool ok = false; + const int snippetId = link.path().toInt(&ok); + if (!ok) + return; + + auto *animDoc = static_cast(document()); + const QString snippet = animDoc->snippetById(snippetId).replace(QChar::ParagraphSeparator, '\n'); + if (snippet.isEmpty()) + return; + + Utils::setClipboardAndSelection(snippet); +} + void MarkdownBrowser::setBasePath(const FilePath &filePath) { static_cast(document())->setBasePath(filePath); @@ -507,13 +633,26 @@ void MarkdownBrowser::setBasePath(const FilePath &filePath) void MarkdownBrowser::setMarkdown(const QString &markdown) { + QScrollBar *sb = verticalScrollBar(); + int oldValue = sb->value(); + + auto *animDoc = static_cast(document()); + animDoc->clearSnippets(); document()->setMarkdown(markdown); postProcessDocument(true); + + QTimer::singleShot(0, this, [sb, oldValue] { sb->setValue(oldValue); }); + // Reset cursor to start of the document, so that "show" does not // scroll to the end of the document. setTextCursor(QTextCursor(document())); } +QString MarkdownBrowser::toMarkdown() const +{ + return document()->toMarkdown(); +} + void MarkdownBrowser::postProcessDocument(bool firstTime) const { const QFont contentFont = Utils::font(contentTF); @@ -534,7 +673,7 @@ void MarkdownBrowser::postProcessDocument(bool firstTime) const // Convert code blocks to highlighted frames if (blockFormat.hasProperty(QTextFormat::BlockCodeLanguage)) { const QString language = blockFormat.stringProperty(QTextFormat::BlockCodeLanguage); - highlightCodeBlock(document(), block, language); + highlightCodeBlock(document(), block, language, m_enableCodeCopyButton); continue; } diff --git a/src/libs/utils/markdownbrowser.h b/src/libs/utils/markdownbrowser.h index a8fe2662f9f..4250ceaaba4 100644 --- a/src/libs/utils/markdownbrowser.h +++ b/src/libs/utils/markdownbrowser.h @@ -25,6 +25,7 @@ public: MarkdownBrowser(QWidget *parent = nullptr); void setMarkdown(const QString &markdown); + QString toMarkdown() const; void setBasePath(const FilePath &filePath); void setAllowRemoteImages(bool allow); void setNetworkAccessManager(QNetworkAccessManager *nam); @@ -35,12 +36,17 @@ public: QSize minimumSizeHint() const override; void setMargins(const QMargins &margins); + void setEnableCodeCopyButton(bool enable); protected: void changeEvent(QEvent *event) override; private: + void handleAnchorClicked(const QUrl &link); void postProcessDocument(bool firstTime) const; + +private: + bool m_enableCodeCopyButton; }; } // namespace Utils diff --git a/src/libs/utils/namevaluesdialog.cpp b/src/libs/utils/namevaluesdialog.cpp index cd34a23955f..c5cf7a6dc50 100644 --- a/src/libs/utils/namevaluesdialog.cpp +++ b/src/libs/utils/namevaluesdialog.cpp @@ -115,6 +115,10 @@ bool NameValueItemsWidget::editVariable(const QString &name, Selection selection } }; skipWhiteSpace(); + if (offset < line.length() && line.at(offset) == '#') { + ++offset; + skipWhiteSpace(); + } if (line.mid(offset, name.size()) != name) continue; offset += name.size(); diff --git a/src/libs/utils/utils.qrc b/src/libs/utils/utils.qrc index 4a98273073c..785a307bef2 100644 --- a/src/libs/utils/utils.qrc +++ b/src/libs/utils/utils.qrc @@ -295,4 +295,8 @@ images/classrelationbackground.png images/classrelationbackground@2x.png + + images/code_copy_square.png + images/code_copy_square@2x.png + diff --git a/src/plugins/appstatisticsmonitor/appstatisticsmonitor.qbs b/src/plugins/appstatisticsmonitor/appstatisticsmonitor.qbs index 177dd9d0a28..302a07f6f87 100644 --- a/src/plugins/appstatisticsmonitor/appstatisticsmonitor.qbs +++ b/src/plugins/appstatisticsmonitor/appstatisticsmonitor.qbs @@ -7,6 +7,8 @@ QtcPlugin { condition: Qt.charts.present + pluginjson.replacements: ({APPSTATISTICSMONITOR_DISABLEDBYDEFAULT: "true"}) + files: [ "appstatisticsmonitorplugin.cpp", "appstatisticsmonitortr.h", diff --git a/src/plugins/axivion/issueheaderview.cpp b/src/plugins/axivion/issueheaderview.cpp index 0726188f0a5..893d181de22 100644 --- a/src/plugins/axivion/issueheaderview.cpp +++ b/src/plugins/axivion/issueheaderview.cpp @@ -48,7 +48,8 @@ static QPoint globalPosOnScreen(const QPoint &orig, const QSize &size) qscreen = QGuiApplication::primaryScreen(); const QRect screen = qscreen->availableGeometry(); - return QPoint(std::max(screen.x(), orig.x() - size.width()), orig.y() - size.height()); + return QPoint(std::max(screen.x(), orig.x() - size.width()), + std::max(screen.y(), orig.y() - size.height())); } class FilterPopupWidget : public QFrame diff --git a/src/plugins/boot2qt/qdbdevicedebugsupport.cpp b/src/plugins/boot2qt/qdbdevicedebugsupport.cpp index 987ac7d446e..5b42771ba34 100644 --- a/src/plugins/boot2qt/qdbdevicedebugsupport.cpp +++ b/src/plugins/boot2qt/qdbdevicedebugsupport.cpp @@ -124,6 +124,7 @@ public: rp.setUseContinueInsteadOfRun(true); rp.setContinueAfterAttach(true); rp.addSolibSearchDir("%{sysroot}/system/lib"); + rp.setSkipDebugServer(true); auto debuggee = createQdbDeviceInferiorWorker(runControl, QmlDebuggerServices); worker->addStartDependency(debuggee); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 7ab76749aa0..20b87c1f8a1 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -2007,12 +2007,14 @@ void CMakeBuildConfiguration::setBuildPresetToBuildSteps(const ProjectExplorer:: cbs->setToolArguments(nativeToolOptions.split(" ")); } - if (buildPresets[i].configuration) + if (buildPresets[i].configuration) { cbs->setConfiguration(*buildPresets[i].configuration); - - // Leave only the first build step enabled - if (i > 0) - cbs->setStepEnabled(false); + cbs->setStepEnabled(buildTypeAspect() == buildPresets[i].configuration); + } else { + // Leave only the first build step enabled + if (i > 0) + cbs->setStepEnabled(false); + } } } diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp index 53239b40d68..df542f13dfc 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.cpp +++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp @@ -40,9 +40,9 @@ FileApiReader::FileApiReader() : m_lastReplyTimestamp() { QObject::connect(&m_watcher, - &FileSystemWatcher::directoryChanged, + &FileSystemWatcher::fileChanged, this, - &FileApiReader::handleReplyDirectoryChange); + &FileApiReader::handleReplyIndexFileChange); } FileApiReader::~FileApiReader() @@ -60,11 +60,7 @@ void FileApiReader::setParameters(const BuildDirParameters &p) m_parameters = p; qCDebug(cmakeFileApiMode) << "Work directory:" << m_parameters.buildDirectory.toUserOutput(); - FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory); - - const FilePath replyDirectory = FileApiParser::cmakeReplyDirectory(m_parameters.buildDirectory); - if (!m_watcher.watchesDirectory(replyDirectory)) - m_watcher.addDirectory(replyDirectory.path(), FileSystemWatcher::WatchAllChanges); + setupCMakeFileApi(); resetData(); } @@ -351,6 +347,15 @@ void FileApiReader::writeConfigurationIntoBuildDirectory(const QStringList &conf QTC_ASSERT_EXPECTED(settingsFile.writeFileContents(contents), return); } +void FileApiReader::setupCMakeFileApi() +{ + FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory); + + const FilePath replyIndexfile = FileApiParser::scanForCMakeReplyFile(m_parameters.buildDirectory); + if (!replyIndexfile.isEmpty() && !m_watcher.watchesFile(replyIndexfile)) + m_watcher.addFile(replyIndexfile.path(), FileSystemWatcher::WatchAllChanges); +} + QString FileApiReader::cmakeGenerator() const { return m_cmakeGenerator; @@ -403,16 +408,13 @@ void FileApiReader::cmakeFinishedState(int exitCode) if (m_lastCMakeExitCode != 0) makeBackupConfiguration(false); - FileApiParser::setupCMakeFileApi(m_parameters.buildDirectory); - - m_watcher.addDirectory(FileApiParser::cmakeReplyDirectory(m_parameters.buildDirectory).path(), - FileSystemWatcher::WatchAllChanges); + setupCMakeFileApi(); endState(FileApiParser::scanForCMakeReplyFile(m_parameters.buildDirectory), m_lastCMakeExitCode != 0); } -void FileApiReader::handleReplyDirectoryChange(const QString &directory) +void FileApiReader::handleReplyIndexFileChange(const QString &indexFile) { if (m_isParsing) return; // This has been triggered by ourselves, ignore. @@ -422,7 +424,7 @@ void FileApiReader::handleReplyDirectoryChange(const QString &directory) if (dir.isEmpty()) return; // CMake started to fill the result dir, but has not written a result file yet QTC_CHECK(dir.isLocal()); - QTC_ASSERT(dir.path() == directory, return); + QTC_ASSERT(dir == FilePath::fromString(indexFile).parentDir(), return); if (m_lastReplyTimestamp.isValid() && reply.lastModified() > m_lastReplyTimestamp) { m_lastReplyTimestamp = reply.lastModified(); diff --git a/src/plugins/cmakeprojectmanager/fileapireader.h b/src/plugins/cmakeprojectmanager/fileapireader.h index de56ad900d8..56908313a5f 100644 --- a/src/plugins/cmakeprojectmanager/fileapireader.h +++ b/src/plugins/cmakeprojectmanager/fileapireader.h @@ -78,10 +78,11 @@ private: void startCMakeState(const QStringList &configurationArguments); void cmakeFinishedState(int exitCode); - void handleReplyDirectoryChange(const QString &directory); + void handleReplyIndexFileChange(const QString &indexFile); void makeBackupConfiguration(bool store); void writeConfigurationIntoBuildDirectory(const QStringList &configuration); + void setupCMakeFileApi(); std::unique_ptr m_cmakeProcess; diff --git a/src/plugins/copilot/copilotclient.cpp b/src/plugins/copilot/copilotclient.cpp index 441269bb87d..3ed13801c9f 100644 --- a/src/plugins/copilot/copilotclient.cpp +++ b/src/plugins/copilot/copilotclient.cpp @@ -42,7 +42,7 @@ namespace Copilot::Internal { static LanguageClient::BaseClientInterface *clientInterface(const FilePath &nodePath, const FilePath &distPath) { - CommandLine cmd{nodePath, {distPath.toFSPathString()}}; + CommandLine cmd{nodePath, {distPath.toFSPathString(), "--stdio"}}; const auto interface = new LanguageClient::StdIOClientInterface; interface->setCommandLine(cmd); diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 8e95d7bcf08..cb882f9f000 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -1618,7 +1618,8 @@ bool EditorManagerPrivate::closeEditors(const QList &editors, CloseFla emit m_instance->editorAboutToClose(editor); const DocumentModel::Entry *entry = DocumentModel::entryForDocument(editor->document()); // If the file is pinned, closing it should remove the editor but keep it in Open Documents. - const bool removeSuspendedEntry = !entry->pinned && flag != CloseFlag::Suspend; + const bool isPinned = QTC_GUARD(entry) && entry->pinned; + const bool removeSuspendedEntry = !isPinned && flag != CloseFlag::Suspend; removeEditor(editor, removeSuspendedEntry); if (EditorView *view = viewForEditor(editor)) { editorsPerView.insert(view, editor); diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index c421154c1d3..85d0e751548 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -681,7 +681,10 @@ void OutputWindow::registerPositionOf(unsigned taskId, int linkedOutputLines, in return; const int blocknumber = document()->blockCount() - offset; - const int firstLine = blocknumber - linkedOutputLines - skipLines; + + // -1 because OutputFormatter has already added the newline. + const int firstLine = blocknumber - linkedOutputLines - skipLines - 1; + const int lastLine = firstLine + linkedOutputLines - 1; d->taskPositions.insert(taskId, {firstLine, lastLine}); diff --git a/src/plugins/coreplugin/session.cpp b/src/plugins/coreplugin/session.cpp index baf1d9c07e8..96e66ec3fe7 100644 --- a/src/plugins/coreplugin/session.cpp +++ b/src/plugins/coreplugin/session.cpp @@ -413,6 +413,12 @@ static QString determineSessionToRestoreAtStartup() return {}; } +bool SessionManager::loadsSessionOrFileAtStartup() +{ + // "left-over arguments" usually mean a session or files + return !PluginManager::arguments().isEmpty() || !determineSessionToRestoreAtStartup().isEmpty(); +} + void SessionManagerPrivate::restoreStartupSession() { NANOTRACE_SCOPE("Core", "SessionManagerPrivate::restoreStartupSession"); diff --git a/src/plugins/coreplugin/session.h b/src/plugins/coreplugin/session.h index 6c0bef6d954..71769125d76 100644 --- a/src/plugins/coreplugin/session.h +++ b/src/plugins/coreplugin/session.h @@ -28,6 +28,8 @@ public: static SessionManager *instance(); + static bool loadsSessionOrFileAtStartup(); + // higher level session management static QString activeSession(); static QString lastSession(); diff --git a/src/plugins/cppeditor/cppfilesettingspage.h b/src/plugins/cppeditor/cppfilesettingspage.h index 044ac6fb450..b77341c43ac 100644 --- a/src/plugins/cppeditor/cppfilesettingspage.h +++ b/src/plugins/cppeditor/cppfilesettingspage.h @@ -29,7 +29,8 @@ public: QDir::toNativeSeparators("../Src"), ".."}; Utils::FilePath licenseTemplatePath; - QString headerGuardTemplate = "%{JS: '%{Header:FileName}'.toUpperCase().replace(/[.]/g, '_')}"; + QString headerGuardTemplate + = "%{JS: '%{Header:FileName}'.toUpperCase().replace(/^[1-9]/, '_').replace(/[^_a-zA-Z1-9]/g, '_')}"; bool headerPragmaOnce = false; bool lowerCaseFiles = Constants::LOWERCASE_CPPFILES_DEFAULT; diff --git a/src/plugins/cppeditor/cpptoolstestcase.cpp b/src/plugins/cppeditor/cpptoolstestcase.cpp index d224e38fe38..0c986588c54 100644 --- a/src/plugins/cppeditor/cpptoolstestcase.cpp +++ b/src/plugins/cppeditor/cpptoolstestcase.cpp @@ -25,9 +25,12 @@ #include #include +#include #include #include +#include #include +#include #include #include @@ -232,6 +235,9 @@ bool TestCase::openCppEditor(const FilePath &filePath, TextEditor::BaseTextEdito TextEditor::StorageSettings s = e->textDocument()->storageSettings(); s.m_addFinalNewLine = false; e->textDocument()->setStorageSettings(s); + TextEditor::TabSettings ts = TextEditor::TextEditorSettings::codeStyle()->tabSettings(); + ts.m_autoDetect = false; + e->textDocument()->setTabSettings(ts); } if (!QTest::qWaitFor( diff --git a/src/plugins/debugger/breakhandler.cpp b/src/plugins/debugger/breakhandler.cpp index dd161efd42d..a0f94e4f2ee 100644 --- a/src/plugins/debugger/breakhandler.cpp +++ b/src/plugins/debugger/breakhandler.cpp @@ -1019,7 +1019,7 @@ static QString trimmedFileName(const FilePath &fullPath) const Project *project = ProjectTree::currentProject(); const FilePath projectDirectory = project ? project->projectDirectory() : FilePath(); if (projectDirectory.exists()) - return FilePath::calcRelativePath(fullPath.path(), projectDirectory.toUserOutput()); + return fullPath.relativePathFrom(projectDirectory).toUserOutput(); return fullPath.toUserOutput(); } diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h index c7732607426..daa5dd278f6 100644 --- a/src/plugins/debugger/debuggerengine.h +++ b/src/plugins/debugger/debuggerengine.h @@ -268,6 +268,9 @@ public: void setServerEssential(bool on) { m_serverEssential = on; } bool serverEssential() const { return m_serverEssential; } + void setSkipDebugServer(bool on) { m_skipDebugServer = on; } + bool skipDebugServer() const { return m_skipDebugServer; } + void setAddQmlServerInferiorCmdArgIfNeeded(bool on) { m_addQmlServerInferiorCmdArgIfNeeded = on; } bool isAddQmlServerInferiorCmdArgIfNeeded() const { return m_addQmlServerInferiorCmdArgIfNeeded; } @@ -367,6 +370,7 @@ private: Utils::ProcessHandle m_serverAttachPid; bool m_serverUseMulti = true; bool m_serverEssential = true; + bool m_skipDebugServer = false; bool m_addQmlServerInferiorCmdArgIfNeeded = false; }; diff --git a/src/plugins/debugger/debuggericons.cpp b/src/plugins/debugger/debuggericons.cpp index fef65347492..5c4e64d7f04 100644 --- a/src/plugins/debugger/debuggericons.cpp +++ b/src/plugins/debugger/debuggericons.cpp @@ -16,7 +16,7 @@ const Icon BREAKPOINT_PENDING({ {":/debugger/images/breakpoint_pending_overlay.png", Theme::PanelTextColorDark}}, Icon::IconStyleOptions(Icon::Tint | Icon::PunchEdges)); const Icon BREAKPOINT_WITH_LOCATION({ {":/utils/images/filledcircle.png", Theme::IconsErrorColor}, - {":/debugger/images/location.png", Theme::IconsWarningToolBarColor}}, Icon::Tint); + {":/debugger/images/location.png", Theme::IconsWarningColor}}, Icon::Tint); const Icon BREAKPOINTS( ":/debugger/images/debugger_breakpoints.png"); const Icon WATCHPOINT({ @@ -65,10 +65,10 @@ const Icon DEBUG_EXIT_SMALL_TOOLBAR({ {":/utils/images/debugger_overlay_small.png", Theme::IconsDebugColor}}); const Icon LOCATION({ {":/debugger/images/location_background.png", Theme::IconsCodeModelOverlayForegroundColor}, - {":/debugger/images/location.png", Theme::IconsWarningToolBarColor}}, Icon::Tint); + {":/debugger/images/location.png", Theme::IconsWarningColor}}, Icon::Tint); const Icon REVERSE_LOCATION({ {":/debugger/images/debugger_reversemode_background.png", Theme::IconsCodeModelOverlayForegroundColor}, - {":/debugger/images/debugger_reversemode.png", Theme::IconsWarningToolBarColor}}, Icon::Tint); + {":/debugger/images/debugger_reversemode.png", Theme::IconsWarningColor}}, Icon::Tint); const Icon REVERSE_MODE({ {":/debugger/images/debugger_reversemode_background.png", Theme::IconsCodeModelOverlayForegroundColor}, {":/debugger/images/debugger_reversemode.png", Theme::IconsInfoColor}}, Icon::Tint); diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp index c5a931d5d54..c53842fe565 100644 --- a/src/plugins/debugger/debuggerruncontrol.cpp +++ b/src/plugins/debugger/debuggerruncontrol.cpp @@ -562,7 +562,7 @@ void DebuggerRunTool::showMessage(const QString &msg, int channel, int timeout) void DebuggerRunTool::startDebugServerIfNeededAndContinueStartup() { - if (!runControl()->usesDebugChannel()) { + if (!runControl()->usesDebugChannel() || m_runParameters.skipDebugServer()) { continueAfterDebugServerStart(); return; } @@ -680,9 +680,9 @@ void DebuggerRunTool::startDebugServerIfNeededAndContinueStartup() }); connect(&d->debuggerServerProc, &Process::done, this, [this] { - if (d->terminalProc.error() != QProcess::UnknownError) - reportFailure(d->terminalProc.errorString()); - if (d->terminalProc.error() != QProcess::FailedToStart && m_runParameters.serverEssential()) + if (d->debuggerServerProc.error() != QProcess::UnknownError) + reportFailure(d->debuggerServerProc.errorString()); + if (d->debuggerServerProc.error() != QProcess::FailedToStart && m_runParameters.serverEssential()) reportDone(); }); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index c75712a8146..d2e29aeef81 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -1511,7 +1511,9 @@ void GdbEngine::handlePythonSetup(const DebuggerResponse &response) GdbMi data = response.data; watchHandler()->addDumpers(data["dumpers"]); m_pythonVersion = data["python"].toInt(); - if (m_pythonVersion < 30700) { + // Python 3.5.x: Released 2016-06-27, supported until 2018-12-24, security until 2021-12-23, + // used in Ubuntu 16.04 and Qt 5.15.10 Boot2Qt BSPs. + if (m_pythonVersion < 30502) { int pythonMajor = m_pythonVersion / 10000; int pythonMinor = (m_pythonVersion / 100) % 100; QString out = "

" diff --git a/src/plugins/debugger/moduleshandler.cpp b/src/plugins/debugger/moduleshandler.cpp index a2d6cac565c..75655056566 100644 --- a/src/plugins/debugger/moduleshandler.cpp +++ b/src/plugins/debugger/moduleshandler.cpp @@ -296,13 +296,18 @@ void ModulesHandler::updateModule(const Module &module) m_model->rootItem()->appendChild(item); } - try { // MinGW occasionallly throws std::bad_alloc. - ElfReader reader(path); - item->module.elfData = reader.readHeaders(); - item->update(); - } catch(...) { - qWarning("%s: An exception occurred while reading module '%s'", - Q_FUNC_INFO, qPrintable(module.modulePath.toUserOutput())); + if (path.isLocal()) { + try { // MinGW occasionallly throws std::bad_alloc. + ElfReader reader(path); + item->module.elfData = reader.readHeaders(); + item->update(); + } catch(...) { + qWarning("%s: An exception occurred while reading module '%s'", + Q_FUNC_INFO, qPrintable(module.modulePath.toUserOutput())); + } + } else { + m_model->engine->showMessage( + QString("Skipping elf-reading of remote path %1").arg(path.toUserOutput())); } item->updated = true; } diff --git a/src/plugins/diffeditor/CMakeLists.txt b/src/plugins/diffeditor/CMakeLists.txt index 34b075c97a4..e71485aa8b4 100644 --- a/src/plugins/diffeditor/CMakeLists.txt +++ b/src/plugins/diffeditor/CMakeLists.txt @@ -16,5 +16,4 @@ add_qtc_plugin(DiffEditor selectabletexteditorwidget.cpp selectabletexteditorwidget.h sidebysidediffeditorwidget.cpp sidebysidediffeditorwidget.h unifieddiffeditorwidget.cpp unifieddiffeditorwidget.h - EXPLICIT_MOC diffeditor.h ) diff --git a/src/plugins/docker/CMakeLists.txt b/src/plugins/docker/CMakeLists.txt index f8978774ac5..2a9c77218ff 100644 --- a/src/plugins/docker/CMakeLists.txt +++ b/src/plugins/docker/CMakeLists.txt @@ -6,6 +6,8 @@ add_qtc_plugin(Docker dockertr.h dockerapi.cpp dockerapi.h dockerconstants.h + dockercontainerthread.cpp + dockercontainerthread.h dockerdevice.cpp dockerdevice.h dockerdevicewidget.cpp dockerdevicewidget.h dockerplugin.cpp diff --git a/src/plugins/docker/docker.qbs b/src/plugins/docker/docker.qbs index a891d86bbb5..9921cd8b811 100644 --- a/src/plugins/docker/docker.qbs +++ b/src/plugins/docker/docker.qbs @@ -16,6 +16,8 @@ QtcPlugin { "dockerapi.cpp", "dockerapi.h", "dockerconstants.h", + "dockercontainerthread.cpp", + "dockercontainerthread.h", "dockerdevice.cpp", "dockerdevice.h", "dockerdevicewidget.cpp", diff --git a/src/plugins/docker/dockerapi.cpp b/src/plugins/docker/dockerapi.cpp index f19bee6abe1..7096b66e006 100644 --- a/src/plugins/docker/dockerapi.cpp +++ b/src/plugins/docker/dockerapi.cpp @@ -38,22 +38,19 @@ bool DockerApi::canConnect() { Process process; FilePath dockerExe = dockerClient(); - if (dockerExe.isEmpty() || !dockerExe.isExecutableFile()) + if (dockerExe.isEmpty()) return false; - bool result = false; - process.setCommand({dockerExe, {"info"}}); - connect(&process, &Process::done, [&process, &result] { + process.runBlocking(); + + const bool success = process.result() == ProcessResult::FinishedWithSuccess; + if (!success) + qCWarning(dockerApiLog) << "Failed to connect to docker daemon:" << process.allOutput(); + else qCInfo(dockerApiLog) << "'docker info' result:\n" << qPrintable(process.allOutput()); - if (process.result() == ProcessResult::FinishedWithSuccess) - result = true; - }); - process.start(); - process.waitForFinished(); - - return result; + return process.result() == ProcessResult::FinishedWithSuccess; } bool DockerApi::isContainerRunning(const QString &containerId) diff --git a/src/plugins/docker/dockercontainerthread.cpp b/src/plugins/docker/dockercontainerthread.cpp new file mode 100644 index 00000000000..298d700b019 --- /dev/null +++ b/src/plugins/docker/dockercontainerthread.cpp @@ -0,0 +1,147 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "dockercontainerthread.h" + +#include "dockertr.h" + +#include + +#include + +using namespace Utils; + +Q_LOGGING_CATEGORY(dockerThreadLog, "qtc.docker.device.thread", QtWarningMsg); + +namespace Docker::Internal { + +// THIS OBJECT MAY NEVER KNOW OR CALL ANY OTHER OBJECTS, EXCEPT ITS OWN !!! +class Internal : public QObject +{ +public: + Internal(const DockerContainerThread::Init &init) + : m_init(init) + {} + + ~Internal() + { + if (m_startProcess && m_startProcess->isRunning()) { + // Kill instead of stop so we don't wait for the process to finish. + m_startProcess->kill(); + m_startProcess->waitForFinished(); + } + } + + expected_str start() + { + QString containerId; + + if (expected_str create = createContainer(); !create) + return make_unexpected(create.error()); + else + containerId = *create; + + if (Result start = startContainer(); !start) + return make_unexpected(start.error()); + + return containerId; + } + +private: + expected_str createContainer() + { + Process createProcess; + createProcess.setCommand(m_init.createContainerCmd); + createProcess.runBlocking(); + + if (createProcess.result() != ProcessResult::FinishedWithSuccess) { + return make_unexpected( + Tr::tr("Failed creating Docker container. Exit code: %1, output: %2") + .arg(createProcess.exitCode()) + .arg(createProcess.allOutput())); + } + + m_containerId = createProcess.cleanedStdOut().trimmed(); + if (m_containerId.isEmpty()) + return make_unexpected( + Tr::tr("Failed creating Docker container. No container ID received.")); + + qCDebug(dockerThreadLog) << "ContainerId:" << m_containerId; + return m_containerId; + } + + Result startContainer() + { + using namespace std::chrono_literals; + + m_startProcess = new Process(this); + + m_startProcess->setCommand( + {m_init.dockerBinaryPath, {"container", "start", "-a", "-i", m_containerId}}); + m_startProcess->setProcessMode(ProcessMode::Writer); + m_startProcess->start(); + if (!m_startProcess->waitForStarted(5s)) { + if (m_startProcess->state() == QProcess::NotRunning) { + return Result::Error( + Tr::tr("Failed starting Docker container. Exit code: %1, output: %2") + .arg(m_startProcess->exitCode()) + .arg(m_startProcess->allOutput())); + } + // Lets assume it will start soon + qCWarning(dockerThreadLog) + << "Docker container start process took more than 5 seconds to start."; + } + + qCDebug(dockerThreadLog) << "Started container: " << m_startProcess->commandLine(); + + return Result::Ok; + } + +private: + DockerContainerThread::Init m_init; + QString m_containerId; + Process *m_startProcess = nullptr; +}; + +DockerContainerThread::DockerContainerThread(Init init) + : m_internal(new Internal(init)) +{ + m_thread.setObjectName("Docker Container Thread"); + m_internal->moveToThread(&m_thread); + QObject::connect(&m_thread, &QThread::finished, m_internal, &QObject::deleteLater); + m_thread.start(); +} + +Result DockerContainerThread::start() +{ + expected_str result; + QMetaObject::invokeMethod(m_internal, &Internal::start, Qt::BlockingQueuedConnection, &result); + if (result) { + m_containerId = *result; + return Result::Ok; + } + return Result::Error(result.error()); +} + +DockerContainerThread::~DockerContainerThread() +{ + m_thread.quit(); + m_thread.wait(); +} + +QString DockerContainerThread::containerId() const +{ + return m_containerId; +} + +expected_str> DockerContainerThread::create(const Init &init) +{ + std::unique_ptr thread(new DockerContainerThread(init)); + + if (Result result = thread->start(); !result) + return make_unexpected(result.error()); + + return thread; +} + +} // namespace Docker::Internal diff --git a/src/plugins/docker/dockercontainerthread.h b/src/plugins/docker/dockercontainerthread.h new file mode 100644 index 00000000000..215dd58c790 --- /dev/null +++ b/src/plugins/docker/dockercontainerthread.h @@ -0,0 +1,40 @@ +// Copyright (C) 2025 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#pragma once + +#include + +#include + +namespace Docker::Internal { + +class Internal; + +class DockerContainerThread +{ +public: + struct Init + { + Utils::CommandLine createContainerCmd; + Utils::FilePath dockerBinaryPath; + }; + +public: + ~DockerContainerThread(); + + QString containerId() const; + + static Utils::expected_str> create(const Init &init); + +private: + DockerContainerThread(Init init); + Utils::Result start(); + +private: + QThread m_thread; + Internal *m_internal; + QString m_containerId; +}; + +} // namespace Docker::Internal diff --git a/src/plugins/docker/dockerdevice.cpp b/src/plugins/docker/dockerdevice.cpp index 8eac541f36a..c89a9f7d16e 100644 --- a/src/plugins/docker/dockerdevice.cpp +++ b/src/plugins/docker/dockerdevice.cpp @@ -5,6 +5,7 @@ #include "dockerapi.h" #include "dockerconstants.h" +#include "dockercontainerthread.h" #include "dockerdevicewidget.h" #include "dockersettings.h" #include "dockertr.h" @@ -170,25 +171,19 @@ public: DockerDevicePrivate(DockerDevice *parent) : q(parent) { - QObject::connect(q, &DockerDevice::applied, this, [this] { - if (!m_container.isEmpty()) { - stopCurrentContainer(); - } - }); + QObject::connect(q, &DockerDevice::applied, this, [this] { stopCurrentContainer(); }); } ~DockerDevicePrivate() { stopCurrentContainer(); } CommandLine createCommandLine(); - expected_str updateContainerAccess(); + expected_str updateContainerAccess(); void changeMounts(QStringList newMounts); bool ensureReachable(const FilePath &other); void shutdown(); expected_str localSource(const FilePath &other) const; - QString containerId() { return m_container; } - expected_str> osTypeAndArch() const; expected_str environment(); @@ -204,10 +199,8 @@ public: bool prepareForBuild(const Target *target); Tasks validateMounts() const; - expected_str createContainer(); - expected_str startContainer(); void stopCurrentContainer(); - expected_str fetchSystemEnviroment(); + Result fetchSystemEnviroment(); expected_str getCmdBridgePath() const; @@ -277,13 +270,10 @@ public: FilePath containerPath; }; - QString m_container; - - std::unique_ptr m_startProcess; - std::optional m_cachedEnviroment; bool m_isShutdown = false; SynchronizedValue> m_fileAccess; + SynchronizedValue> m_deviceThread; }; class DockerProcessImpl : public ProcessInterface @@ -299,9 +289,7 @@ private: private: DockerDevicePrivate *m_devicePrivate = nullptr; - // Store the IDevice::ConstPtr in order to extend the lifetime of device for as long - // as this object is alive. - IDevice::ConstPtr m_device; + std::weak_ptr m_device; Process m_process; qint64 m_remotePID = 0; @@ -312,7 +300,7 @@ private: DockerProcessImpl::DockerProcessImpl(IDevice::ConstPtr device, DockerDevicePrivate *devicePrivate) : m_devicePrivate(devicePrivate) - , m_device(std::move(device)) + , m_device(device) , m_process(this) { connect(&m_process, &Process::started, this, [this] { @@ -378,7 +366,6 @@ DockerProcessImpl::DockerProcessImpl(IDevice::ConstPtr device, DockerDevicePriva if (rest.size() > 0 || stdErr.size() > 0) emit readyRead(rest, stdErr); - }); connect(&m_process, &Process::readyReadStandardError, this, [this] { @@ -412,6 +399,15 @@ DockerProcessImpl::DockerProcessImpl(IDevice::ConstPtr device, DockerDevicePriva emit done(resultData); }); + + connect(device.get(), &QObject::destroyed, this, [this] { + emit done(ProcessResultData{ + -1, + QProcess::ExitStatus::CrashExit, + QProcess::ProcessError::UnknownError, + Tr::tr("Device is shut down"), + }); + }); } DockerProcessImpl::~DockerProcessImpl() @@ -482,15 +478,19 @@ void DockerProcessImpl::sendControlSignal(ControlSignal controlSignal) m_process.closeWriteChannel(); return; } - auto dfa = dynamic_cast(m_device->fileAccess()); + auto device = m_device.lock(); + if (!device) + return; + + auto dfa = dynamic_cast(device->fileAccess()); if (dfa) { - static_cast(m_device->fileAccess()) + static_cast(device->fileAccess()) ->signalProcess(m_remotePID, controlSignal); } else { const int signal = controlSignalToInt(controlSignal); Process p; p.setCommand( - {m_device->rootPath().withNewPath("kill"), + {device->rootPath().withNewPath("kill"), {QString("-%1").arg(signal), QString("%2").arg(m_remotePID)}}); p.runBlocking(); } @@ -602,7 +602,6 @@ DockerDevice::DockerDevice() auto future = DockerApi::instance()->networks(); auto watcher = new QFutureWatcher>>(this); - watcher->setFuture(future); QObject::connect(watcher, &QFutureWatcher>>::finished, this, @@ -622,6 +621,7 @@ DockerDevice::DockerDevice() cb({errorItem}); } }); + watcher->setFuture(future); }); connect(DockerApi::instance(), @@ -671,13 +671,10 @@ DockerDevice::DockerDevice() const FilePath &workingDir) -> expected_str { Q_UNUSED(env); // TODO: That's the runnable's environment in general. Use it via -e below. - expected_str result = d->updateContainerAccess(); + expected_str result = d->updateContainerAccess(); if (!result) - return result; - - if (d->containerId().isEmpty()) - return make_unexpected(Tr::tr("Error starting remote shell. No container.")); + return make_unexpected(result.error()); expected_str shell = Terminal::defaultShellForDevice(rootPath()); if (!shell) @@ -716,9 +713,10 @@ void DockerDevice::shutdown() d->shutdown(); } -expected_str DockerDevice::updateContainerAccess() const +Result DockerDevice::updateContainerAccess() const { - return d->updateContainerAccess(); + expected_str result = d->updateContainerAccess(); + return result ? Result::Ok : Result::Error(result.error()); } expected_str DockerDevicePrivate::withDockerExecCmd( @@ -729,8 +727,12 @@ expected_str DockerDevicePrivate::withDockerExecCmd( bool withPty, bool withMarker) { - if (const auto result = updateContainerAccess(); !result) + QString containerId; + + if (const expected_str result = updateContainerAccess(); !result) return make_unexpected(result.error()); + else + containerId = *result; auto osAndArch = osTypeAndArch(); if (!osAndArch) @@ -756,7 +758,7 @@ expected_str DockerDevicePrivate::withDockerExecCmd( if (workDir && !workDir->isEmpty()) dockerCmd.addArgs({"-w", q->rootPath().withNewMappedPath(*workDir).nativePath()}); - dockerCmd.addArg(m_container); + dockerCmd.addArg(containerId); dockerCmd.addArgs({"/bin/sh", "-c"}, osAndArch->first); @@ -787,28 +789,12 @@ expected_str DockerDevicePrivate::withDockerExecCmd( void DockerDevicePrivate::stopCurrentContainer() { - if (m_container.isEmpty()) - return; - - if (!DockerApi::isDockerDaemonAvailable(false).value_or(false)) - return; - - auto fileAccess = m_fileAccess.writeLocked(); - if (*fileAccess) { - if (QThread::currentThread() == thread()) { - fileAccess->reset(); - } else { - QMetaObject::invokeMethod( - this, [ptr = fileAccess->release()]() { delete ptr; }, Qt::QueuedConnection); - } - } - - if (m_startProcess && m_startProcess->isRunning()) - m_startProcess->kill(); // Kill instead of stop so we don't wait for the process to finish. - - m_container.clear(); - m_cachedEnviroment.reset(); + auto fileAccess = m_fileAccess.writeLocked(); + fileAccess->reset(); + + auto locked = m_deviceThread.writeLocked(); + locked->reset(); } bool DockerDevicePrivate::prepareForBuild(const Target *target) @@ -949,8 +935,10 @@ CommandLine DockerDevicePrivate::createCommandLine() #ifdef Q_OS_UNIX // no getuid() and getgid() on Windows. - if (q->useLocalUidGid()) + if (q->useLocalUidGid()) { dockerCreate.addArgs({"-u", QString("%1:%2").arg(getuid()).arg(getgid())}); + dockerCreate.addArgs({"-e", QString("HOME=/tmp/qtc_home/%1").arg(getuid())}); + } #endif if (!q->network().isEmpty()) { @@ -973,99 +961,36 @@ CommandLine DockerDevicePrivate::createCommandLine() return dockerCreate; } -expected_str DockerDevicePrivate::createContainer() +expected_str DockerDevicePrivate::updateContainerAccess() { - if (!isImageAvailable()) - return make_unexpected(Tr::tr("Image \"%1\" is not available.").arg(q->repoAndTag())); - - const CommandLine cmdLine = createCommandLine(); - - qCDebug(dockerDeviceLog).noquote() << "RUNNING: " << cmdLine.toUserOutput(); - Process createProcess; - createProcess.setCommand(cmdLine); - createProcess.runBlocking(); - - if (createProcess.result() != ProcessResult::FinishedWithSuccess) { - return make_unexpected(Tr::tr("Failed creating Docker container. Exit code: %1, output: %2") - .arg(createProcess.exitCode()) - .arg(createProcess.allOutput())); - } - - m_container = createProcess.cleanedStdOut().trimmed(); - if (m_container.isEmpty()) - return make_unexpected( - Tr::tr("Failed creating Docker container. No container ID received.")); - - qCDebug(dockerDeviceLog) << "ContainerId:" << m_container; - return m_container; -} - -expected_str DockerDevicePrivate::startContainer() -{ - using namespace std::chrono_literals; - - auto createResult = createContainer(); - if (!createResult) - return make_unexpected(createResult.error()); - - if (m_startProcess) - m_startProcess->stop(); - - m_startProcess = std::make_unique(); - - m_startProcess->setCommand( - {settings().dockerBinaryPath(), {"container", "start", "-a", "-i", m_container}}); - m_startProcess->setProcessMode(ProcessMode::Writer); - m_startProcess->start(); - if (!m_startProcess->waitForStarted(5s)) { - if (m_startProcess->state() == QProcess::NotRunning) { - return make_unexpected( - Tr::tr("Failed starting Docker container. Exit code: %1, output: %2") - .arg(m_startProcess->exitCode()) - .arg(m_startProcess->allOutput())); - } - // Lets assume it will start soon - qCWarning(dockerDeviceLog) - << "Docker container start process took more than 5 seconds to start."; - } - - QDeadlineTimer deadline(5s); - while (!DockerApi::instance()->isContainerRunning(m_container) && !deadline.hasExpired()) { - QThread::msleep(100); - } - - if (deadline.hasExpired() && !DockerApi::instance()->isContainerRunning(m_container)) { - m_startProcess->stop(); - return make_unexpected(Tr::tr("Failed to start container \"%1\".").arg(m_container)); - } - - qCDebug(dockerDeviceLog) << "Started container: " << m_startProcess->commandLine(); - - return {}; -} - -expected_str DockerDevicePrivate::updateContainerAccess() -{ - if (!m_container.isEmpty() && DockerApi::instance()->isContainerRunning(m_container)) - return {}; - if (m_isShutdown) return make_unexpected(Tr::tr("Device is shut down")); - if (DockerApi::isDockerDaemonAvailable(false).value_or(false) == false) return make_unexpected(Tr::tr("Docker system is not reachable")); - expected_str result = startContainer(); - QString containerStatus = result ? Tr::tr("Running") : result.error().trimmed(); + auto lockedThread = m_deviceThread.writeLocked(); + if (*lockedThread) + return (*lockedThread)->containerId(); - if (!result) - result = make_unexpected(QString("Failed to start container: %1").arg(result.error())); + DockerContainerThread::Init init; + init.dockerBinaryPath = settings().dockerBinaryPath(); + init.createContainerCmd = createCommandLine(); + + auto result = DockerContainerThread::create(init); + + if (result) + lockedThread->reset(result->release()); + + QString containerStatus = result ? Tr::tr("Running") : result.error().trimmed(); QTimer::singleShot(0, this, [this, containerStatus] { q->containerStatus.setText(containerStatus); }); - return result; + if (!result) + return make_unexpected(result.error()); + + return (*lockedThread)->containerId(); } void DockerDevice::setMounts(const QStringList &mounts) const @@ -1152,24 +1077,19 @@ void DockerDevice::aboutToBeRemoved() const detector.undoAutoDetect(id().toString()); } -expected_str DockerDevicePrivate::fetchSystemEnviroment() +Result DockerDevicePrivate::fetchSystemEnviroment() { if (m_cachedEnviroment) - return {}; + return Result::Ok; if (auto fileAccess = m_fileAccess.readLocked()->get()) { m_cachedEnviroment = fileAccess->deviceEnvironment(); - return {}; + return Result::Ok; } - expected_str result = updateContainerAccess(); - - if (!result) - return result; - const expected_str fullCommandLine = withDockerExecCmd(CommandLine{"env"}); if (!fullCommandLine) - return make_unexpected(fullCommandLine.error()); + return Result::Error(fullCommandLine.error()); Process proc; proc.setCommand(*fullCommandLine); @@ -1180,9 +1100,9 @@ expected_str DockerDevicePrivate::fetchSystemEnviroment() QString stdErr = proc.cleanedStdErr(); if (stdErr.isEmpty()) - return {}; + return Result::Ok; - return make_unexpected("Could not read container environment: " + stdErr); + return Result::Error("Could not read container environment: " + stdErr); } // Factory @@ -1385,19 +1305,19 @@ DockerDeviceFactory::DockerDeviceFactory() }); setConstructionFunction([this] { auto device = DockerDevice::create(); - QMutexLocker lk(&m_deviceListMutex); - m_existingDevices.push_back(device); + m_existingDevices.writeLocked()->push_back(device); return device; }); } void DockerDeviceFactory::shutdownExistingDevices() { - QMutexLocker lk(&m_deviceListMutex); - for (const auto &weakDevice : m_existingDevices) { - if (std::shared_ptr device = weakDevice.lock()) - device->shutdown(); - } + m_existingDevices.read([](const std::vector> &devices) { + for (const std::weak_ptr &weakDevice : devices) { + if (std::shared_ptr device = weakDevice.lock()) + device->shutdown(); + } + }); } expected_str> DockerDevicePrivate::osTypeAndArch() const @@ -1428,8 +1348,7 @@ expected_str> DockerDevicePrivate::osTypeAnd expected_str DockerDevicePrivate::environment() { if (!m_cachedEnviroment) { - expected_str result = fetchSystemEnviroment(); - if (!result) + if (Result result = fetchSystemEnviroment(); !result) return make_unexpected(result.error()); } @@ -1463,7 +1382,8 @@ expected_str DockerDevicePrivate::localSource(const FilePath &other) c } } - return make_unexpected(Tr::tr("localSource: No mount point found for %1").arg(other.toUrlishString())); + return make_unexpected( + Tr::tr("localSource: No mount point found for %1").arg(other.toUserOutput())); } bool DockerDevicePrivate::ensureReachable(const FilePath &other) diff --git a/src/plugins/docker/dockerdevice.h b/src/plugins/docker/dockerdevice.h index ea2f0d21feb..22f07d530d3 100644 --- a/src/plugins/docker/dockerdevice.h +++ b/src/plugins/docker/dockerdevice.h @@ -8,7 +8,7 @@ #include #include -#include +#include namespace Docker::Internal { @@ -49,7 +49,7 @@ public: Utils::expected_str systemEnvironmentWithError() const override; - Utils::expected_str updateContainerAccess() const; + Utils::Result updateContainerAccess() const; void setMounts(const QStringList &mounts) const; bool prepareForBuild(const ProjectExplorer::Target *target) override; @@ -92,8 +92,7 @@ public: void shutdownExistingDevices(); private: - QMutex m_deviceListMutex; - std::vector> m_existingDevices; + Utils::SynchronizedValue>> m_existingDevices; }; } // namespace Docker::Internal diff --git a/src/plugins/docker/dockerdevicewidget.cpp b/src/plugins/docker/dockerdevicewidget.cpp index 3ab529d243c..52a8f1fb402 100644 --- a/src/plugins/docker/dockerdevicewidget.cpp +++ b/src/plugins/docker/dockerdevicewidget.cpp @@ -104,7 +104,7 @@ DockerDeviceWidget::DockerDeviceWidget(const IDevice::Ptr &device) this, [this, logView, dockerDevice, searchPaths] { logView->clear(); - expected_str startResult = dockerDevice->updateContainerAccess(); + Result startResult = dockerDevice->updateContainerAccess(); if (!startResult) { logView->append(Tr::tr("Failed to start container.")); diff --git a/src/plugins/extensionmanager/extensionmanagersettings.cpp b/src/plugins/extensionmanager/extensionmanagersettings.cpp index 556459c6f5f..e6db9e31338 100644 --- a/src/plugins/extensionmanager/extensionmanagersettings.cpp +++ b/src/plugins/extensionmanager/extensionmanagersettings.cpp @@ -15,6 +15,7 @@ #include #include +#include namespace ExtensionManager::Internal { @@ -33,6 +34,13 @@ ExtensionManagerSettings::ExtensionManagerSettings() useExternalRepo.setDefaultValue(false); useExternalRepo.setLabelText(Tr::tr("Use external repository")); + const bool sslSupported = QSslSocket::supportsSsl(); + + useExternalRepo.setEnabled(sslSupported); + if (!sslSupported) { + useExternalRepo.setToolTip(Tr::tr("SSL support is not available.")); + } + externalRepoUrl.setSettingsKey("ExternalRepoUrl"); externalRepoUrl.setDefaultValue("https://qc-extensions.qt.io"); externalRepoUrl.setDisplayStyle(Utils::StringAspect::LineEditDisplay); diff --git a/src/plugins/extensionmanager/extensionsbrowser.cpp b/src/plugins/extensionmanager/extensionsbrowser.cpp index 933e234618f..7ac58889422 100644 --- a/src/plugins/extensionmanager/extensionsbrowser.cpp +++ b/src/plugins/extensionmanager/extensionsbrowser.cpp @@ -549,7 +549,11 @@ ExtensionsBrowser::ExtensionsBrowser(ExtensionsModel *model, QWidget *parent) applyTf(titleLabel, titleTF); auto externalRepoSwitch = new Switch("Use external repository"); - externalRepoSwitch->setToolTip("" + externalRepoWarningNote()); + externalRepoSwitch->setEnabled(settings().useExternalRepo.isEnabled()); + if (settings().useExternalRepo.isEnabled()) + externalRepoSwitch->setToolTip("" + externalRepoWarningNote()); + else + externalRepoSwitch->setToolTip(settings().useExternalRepo.toolTip()); d->searchBox = new SearchBox; d->searchBox->setPlaceholderText(Tr::tr("Search")); diff --git a/src/plugins/git/instantblame.cpp b/src/plugins/git/instantblame.cpp index a1e174ee390..928952cfee5 100644 --- a/src/plugins/git/instantblame.cpp +++ b/src/plugins/git/instantblame.cpp @@ -140,7 +140,7 @@ QString BlameMark::toolTipText(const CommitInfo &info) const .arg(colors.hash, info.hash, colors.author, info.author, info.authorMail, colors.date, info.authorDate.toString("yyyy-MM-dd hh:mm:ss"), - colors.subject, info.subject); + colors.subject, info.subject.toHtmlEscaped()); QString result = actions + header; diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 41af302f2fb..16f76160cbd 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -674,13 +674,7 @@ void LanguageClientManager::documentOpened(Core::IDocument *document) void LanguageClientManager::documentClosed(Core::IDocument *document) { - if (auto textDocument = qobject_cast(document)) { - openDocumentWithClient(textDocument, nullptr); - for (auto client : std::as_const(managerInstance->m_clients)) { - if (client->documentOpen(textDocument)) - client->closeDocument(textDocument); - } - } + openDocumentWithClient(qobject_cast(document), nullptr); } void LanguageClientManager::updateProject(ProjectExplorer::Project *project) diff --git a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp index c1b5f094653..7f0876a3b14 100644 --- a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp +++ b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp @@ -29,6 +29,7 @@ using namespace Utils; using namespace Core; using namespace TextEditor; using namespace ProjectExplorer; +using namespace std::string_view_literals; namespace { @@ -264,21 +265,22 @@ public: return make_unexpected(QString("init callback did not return a table or string")); }); - if (auto initOptionsTable = options.get>("initializationOptions")) + if (auto initOptionsTable = options.get>( + "initializationOptions"sv)) m_initializationOptions = ::Lua::toJsonString(*initOptionsTable); - else if (auto initOptionsString = options.get>("initializationOptions")) + else if (auto initOptionsString = options.get>("initializationOptions"sv)) m_initializationOptions = *initOptionsString; - m_name = options.get("name"); + m_name = options.get("name"sv); m_settingsTypeId = Utils::Id::fromString(QString("Lua_%1").arg(m_name)); - m_serverName = options.get_or("serverName", ""); + m_serverName = options.get_or("serverName"sv, ""); m_startBehavior = startBehaviorFromString( - options.get_or("startBehavior", "AlwaysOn")); + options.get_or("startBehavior"sv, "AlwaysOn")); - m_startFailedCallback = options.get("onStartFailed"); + m_startFailedCallback = options.get("onStartFailed"sv); - QString transportType = options.get_or("transport", "stdio"); + QString transportType = options.get_or("transport"sv, "stdio"); if (transportType == "stdio") m_transportType = TransportType::StdIO; else if (transportType == "localsocket") @@ -286,7 +288,7 @@ public: else qWarning() << "Unknown transport type:" << transportType; - auto languageFilter = options.get>("languageFilter"); + auto languageFilter = options.get>("languageFilter"sv); if (languageFilter) { auto patterns = languageFilter->get>("patterns"); auto mimeTypes = languageFilter->get>("mimeTypes"); @@ -300,10 +302,10 @@ public: m_languageFilter.mimeTypes.push_back(v.as()); } - m_showInSettings = options.get>("showInSettings").value_or(true); + m_showInSettings = options.get>("showInSettings"sv).value_or(true); // get> because on MSVC, get_or(..., nullptr) fails to compile - m_aspects = options.get>("settings").value_or(nullptr); + m_aspects = options.get>("settings"sv).value_or(nullptr); if (m_aspects) { connect(m_aspects, &AspectContainer::applied, this, [this] { diff --git a/src/plugins/lua/bindings/fetch.cpp b/src/plugins/lua/bindings/fetch.cpp index 29a54fae264..cf642bc418b 100644 --- a/src/plugins/lua/bindings/fetch.cpp +++ b/src/plugins/lua/bindings/fetch.cpp @@ -26,6 +26,7 @@ using namespace Utils; using namespace Core; +using namespace std::string_view_literals; namespace Lua::Internal { @@ -139,7 +140,7 @@ void setupFetchModule() "Fetch", [mod = std::move(module), infoBarCleaner = InfoBarCleaner()](sol::state_view lua) mutable -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); sol::table async = lua.script("return require('async')", "_fetch_").get(); sol::function wrap = async["wrap"]; @@ -257,13 +258,13 @@ void setupFetchModule() const sol::main_table &options, const sol::main_function &callback, const sol::this_state &thisState) { - auto url = options.get("url"); + auto url = options.get("url"sv); auto actualFetch = [guard, url, options, callback, thisState]() { - auto method = (options.get_or("method", "GET")).toLower(); - auto headers = options.get_or("headers", {}); - auto data = options.get_or("body", {}); + auto method = (options.get_or("method"sv, "GET")).toLower(); + auto headers = options.get_or("headers"sv, {}); + auto data = options.get_or("body"sv, {}); bool convertToTable - = options.get>("convertToTable").value_or(false); + = options.get>("convertToTable"sv).value_or(false); QNetworkRequest request((QUrl(url))); if (headers && !headers.empty()) { diff --git a/src/plugins/lua/bindings/gui.cpp b/src/plugins/lua/bindings/gui.cpp index a8bb9507702..02fa73f7647 100644 --- a/src/plugins/lua/bindings/gui.cpp +++ b/src/plugins/lua/bindings/gui.cpp @@ -11,9 +11,11 @@ #include #include +#include using namespace Layouting; using namespace Utils; +using namespace std::string_view_literals; namespace Lua::Internal { @@ -67,8 +69,8 @@ static std::unique_ptr construct(const sol::table &children) template void constructWidget(std::unique_ptr &widget, const sol::table &children) { - widget->setWindowTitle(children.get_or("windowTitle", "")); - widget->setToolTip(children.get_or("toolTip", "")); + widget->setWindowTitle(children.get_or("windowTitle"sv, "")); + widget->setToolTip(children.get_or("toolTip"sv, "")); for (size_t i = 1; i <= children.size(); ++i) { const auto &child = children[i]; @@ -115,91 +117,100 @@ CREATE_HAS_FUNC(setIcon, Utils::Icon()); CREATE_HAS_FUNC(setContentsMargins, int(), int(), int(), int()); CREATE_HAS_FUNC(setCursor, Qt::CursorShape()) CREATE_HAS_FUNC(setMinimumWidth, int()); +CREATE_HAS_FUNC(setEnableCodeCopyButton, bool()); template void setProperties(std::unique_ptr &item, const sol::table &children, QObject *guard) { if constexpr (has_setContentsMargins) { - sol::optional margins = children.get>("contentMargins"); + sol::optional margins = children.get>("contentMargins"sv); if (margins) item->setContentsMargins(margins->left(), margins->top(), margins->right(), margins->bottom()); } if constexpr (has_setCursor) { - const auto cursor = children.get>("cursor"); + const auto cursor = children.get>("cursor"sv); if (cursor) item->setCursor(*cursor); } if constexpr (has_setMinimumWidth) { - const auto minw = children.get>("minimumWidth"); + const auto minw = children.get>("minimumWidth"sv); if (minw) item->setMinimumWidth(*minw); } + if constexpr (has_setEnableCodeCopyButton) { + const auto enableCodeCopyButton = children.get>("enableCodeCopyButton"); + if (enableCodeCopyButton) + item->setEnableCodeCopyButton(*enableCodeCopyButton); + } + if constexpr (has_setVisible) { - const auto visible = children.get>("visible"); + const auto visible = children.get>("visible"sv); if (visible) item->setVisible(*visible); } if constexpr (has_setIcon) { - const auto icon = children.get>("icon"); + const auto icon = children.get>("icon"sv); if (icon) item->setIcon(*toIcon(*icon)); } if constexpr (has_setTextInteractionFlags) { - const auto interactionFlags = children.get>("interactionFlags"); + const auto interactionFlags = children.get>("interactionFlags"sv); if (interactionFlags) { item->setTextInteractionFlags(tableToFlags(*interactionFlags)); } } if constexpr (has_setFixedSize) { - sol::optional size = children.get>("fixedSize"); + sol::optional size = children.get>("fixedSize"sv); if (size) item->setFixedSize(*size); } if constexpr (has_setWordWrap) { - const auto wrap = children.get>("wordWrap"); + const auto wrap = children.get>("wordWrap"sv); if (wrap) item->setWordWrap(*wrap); } if constexpr (has_setTextFormat) { - const auto format = children.get>("textFormat"); + const auto format = children.get>("textFormat"sv); if (format) item->setTextFormat(*format); } if constexpr (has_setRightSideIconPath) { - const auto path = children.get>("rightSideIconPath"); + const auto path = children.get>("rightSideIconPath"sv); if (path) item->setRightSideIconPath(*path); } if constexpr (has_setPlaceHolderText) { - const auto text = children.get>("placeHolderText"); + const auto text = children.get>("placeHolderText"sv); if (text) item->setPlaceHolderText(*text); } if constexpr (has_setCompleter) { - const auto completer = children.get("completer"); - if (completer) + const auto completer = children.get("completer"sv); + if (completer) { item->setCompleter(completer); + completer->setParent(item->emerge()); + } } if constexpr (has_setMinimumHeight) { - const auto minHeight = children.get>("minimumHeight"); + const auto minHeight = children.get>("minimumHeight"sv); if (minHeight) item->setMinimumHeight(*minHeight); } if constexpr (has_onReturnPressed) { - const auto callback = children.get>("onReturnPressed"); + const auto callback = children.get>("onReturnPressed"sv); if (callback) { item->onReturnPressed(guard, [func = *callback]() { void_safe_call(func); }); } @@ -213,19 +224,19 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } if constexpr (has_setFlat) { - const auto flat = children.get>("flat"); + const auto flat = children.get>("flat"sv); if (flat) item->setFlat(*flat); } if constexpr (has_setIconPath) { - const auto iconPath = children.get>("iconPath"); + const auto iconPath = children.get>("iconPath"sv); if (iconPath) item->setIconPath(*iconPath); } if constexpr (has_setIconSize) { - const auto iconSize = children.get>("iconSize"); + const auto iconSize = children.get>("iconSize"sv); if (iconSize) item->setIconSize(*iconSize); } @@ -242,7 +253,7 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } if constexpr (has_setSize) { - sol::optional size = children.get>("size"); + sol::optional size = children.get>("size"sv); if (size) item->setSize(size->width(), size->height()); } @@ -266,7 +277,7 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject if constexpr (has_onTextChanged) { sol::optional onTextChanged - = children.get>("onTextChanged"); + = children.get>("onTextChanged"sv); if (onTextChanged) { item->onTextChanged( guard, @@ -278,7 +289,7 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } if constexpr (has_onClicked) { sol::optional onClicked - = children.get>("onClicked"); + = children.get>("onClicked"sv); if (onClicked) { item->onClicked( guard, @@ -289,17 +300,17 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } } if constexpr (has_setText) { - auto text = children.get>("text"); + auto text = children.get>("text"sv); if (text) item->setText(*text); } if constexpr (has_setMarkdown) { - auto markdown = children.get>("markdown"); + auto markdown = children.get>("markdown"sv); if (markdown) item->setMarkdown(*markdown); } if constexpr (has_setSizePolicy) { - auto sizePolicy = children.get>("sizePolicy"); + auto sizePolicy = children.get>("sizePolicy"sv); if (sizePolicy) { QTC_ASSERT( sizePolicy->size() == 2, @@ -312,21 +323,21 @@ void setProperties(std::unique_ptr &item, const sol::table &children, QObject } } if constexpr (has_setTitle) { - item->setTitle(children.get_or("title", "")); + item->setTitle(children.get_or("title"sv, "")); } if constexpr (has_setValue) { - sol::optional value = children.get>("value"); + sol::optional value = children.get>("value"sv); if (value) item->setValue(*value); } if constexpr (has_setReadOnly) { - sol::optional readOnly = children.get>("readOnly"); + sol::optional readOnly = children.get>("readOnly"sv); if (readOnly) item->setReadOnly(*readOnly); } if constexpr (has_setOpenExternalLinks) { sol::optional openExternalLinks = children.get>( - "openExternalLinks"); + "openExternalLinks"sv); if (openExternalLinks) item->setOpenExternalLinks(*openExternalLinks); } @@ -420,7 +431,7 @@ std::unique_ptr constructSplitter(const sol::table &children) std::unique_ptr item(new Splitter({})); constructWidget(item, children); - if (const auto &orientation = children.get>("orientation")) { + if (const auto &orientation = children.get>("orientation"sv)) { if (*orientation == "horizontal") item->setOrientation(Qt::Horizontal); else if (*orientation == "vertical") @@ -429,7 +440,7 @@ std::unique_ptr constructSplitter(const sol::table &children) throw sol::error(QString("Invalid orientation: %1").arg(*orientation).toStdString()); } - if (const auto collapsible = children.get>("collapsible")) + if (const auto collapsible = children.get>("collapsible"sv)) item->setChildrenCollapsible(*collapsible); for (size_t i = 1; i <= children.size(); ++i) { @@ -444,7 +455,7 @@ std::unique_ptr constructSplitter(const sol::table &children) } } - if (const auto &stretchFactors = children.get>("stretchFactors")) { + if (const auto &stretchFactors = children.get>("stretchFactors"sv)) { for (const auto &kv : *stretchFactors) { if (kv.second.get_type() != sol::type::number) throw sol::error("Stretch factors must be numbers"); @@ -457,7 +468,7 @@ std::unique_ptr constructSplitter(const sol::table &children) void setupGuiModule() { registerProvider("Gui", [](sol::state_view l) -> sol::object { - const ScriptPluginSpec *pluginSpec = l.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = l.get("PluginSpec"sv); QObject *guard = pluginSpec->connectionGuard.get(); sol::table gui = l.create_table(); @@ -545,6 +556,9 @@ void setupGuiModule() sol::factories([guard](const sol::table &children) { return constructWidgetType(children, guard); }), + "markdown", + sol::property( + &Layouting::MarkdownBrowser::toMarkdown, &Layouting::MarkdownBrowser::setMarkdown), sol::base_classes, sol::bases()); diff --git a/src/plugins/lua/bindings/install.cpp b/src/plugins/lua/bindings/install.cpp index 64708856fad..7e28422de3c 100644 --- a/src/plugins/lua/bindings/install.cpp +++ b/src/plugins/lua/bindings/install.cpp @@ -29,6 +29,7 @@ using namespace Core; using namespace Tasking; using namespace Utils; +using namespace std::string_view_literals; namespace Lua::Internal { @@ -268,7 +269,7 @@ void setupInstallModule() sol::function wrap = async["wrap"]; sol::table install = lua.create_table(); - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); install["packageInfo"] = [pluginSpec](const QString &name, sol::this_state l) -> sol::optional { diff --git a/src/plugins/lua/bindings/project.cpp b/src/plugins/lua/bindings/project.cpp index 64b0b5abb1e..6600b2db9a0 100644 --- a/src/plugins/lua/bindings/project.cpp +++ b/src/plugins/lua/bindings/project.cpp @@ -17,13 +17,14 @@ using namespace ProjectExplorer; using namespace Utils; +using namespace std::string_view_literals; namespace Lua::Internal { void setupProjectModule() { registerProvider("Project", [](sol::state_view lua) -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); QObject *guard = pluginSpec->connectionGuard.get(); sol::table result = lua.create_table(); diff --git a/src/plugins/lua/bindings/qt.cpp b/src/plugins/lua/bindings/qt.cpp index 8a8b18807e1..16bcb12b714 100644 --- a/src/plugins/lua/bindings/qt.cpp +++ b/src/plugins/lua/bindings/qt.cpp @@ -16,19 +16,28 @@ #include #include +using namespace std::string_view_literals; + namespace Lua::Internal { void setupQtModule() { registerProvider("Qt", [](sol::state_view lua) { sol::table qt(lua, sol::create); - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); qt.new_usertype( "QCompleter", "create", - [](const QStringList &list) -> std::unique_ptr { - return std::make_unique(list); + [](const QStringList &list) -> QCompleter* { + return new QCompleter(list); + }, + sol::meta_function::garbage_collect, [](QCompleter *self) { + // If the user never parented this QCompleter to any QObject, + // then we own it, so let's delete it to avoid a memory leak. + if (!self->parent()) { + self->deleteLater(); + } }, "currentCompletion", &QCompleter::currentCompletion, diff --git a/src/plugins/lua/bindings/qtcprocess.cpp b/src/plugins/lua/bindings/qtcprocess.cpp index 0aa6ccfa9b3..8d6d4741f5a 100644 --- a/src/plugins/lua/bindings/qtcprocess.cpp +++ b/src/plugins/lua/bindings/qtcprocess.cpp @@ -9,13 +9,14 @@ #include using namespace Utils; +using namespace std::string_view_literals; namespace Lua::Internal { void setupProcessModule() { registerProvider("Process", [](sol::state_view lua) -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); QObject *guard = pluginSpec->connectionGuard.get(); sol::table async = lua.script("return require('async')", "_process_").get(); @@ -50,17 +51,17 @@ void setupProcessModule() process["commandOutput"] = wrap(process["commandOutput_cb"]); process["create"] = [](const sol::table ¶meter) { - const auto cmd = toFilePath(parameter.get>("command")); + const auto cmd = toFilePath(parameter.get>("command"sv)); const QStringList arguments = parameter.get_or("arguments", {}); const std::optional workingDirectory = parameter.get>( "workingDirectory"); - const auto stdOut = parameter.get>("stdout"); - const auto stdErr = parameter.get>("stderr"); - const auto stdIn = parameter.get>("stdin"); - const auto onFinished = parameter.get>("onFinished"); + const auto stdOut = parameter.get>("stdout"sv); + const auto stdErr = parameter.get>("stderr"sv); + const auto stdIn = parameter.get>("stdin"sv); + const auto onFinished = parameter.get>("onFinished"sv); auto p = std::make_unique(); diff --git a/src/plugins/lua/bindings/settings.cpp b/src/plugins/lua/bindings/settings.cpp index 1d6448e33fd..154d535352e 100644 --- a/src/plugins/lua/bindings/settings.cpp +++ b/src/plugins/lua/bindings/settings.cpp @@ -14,6 +14,7 @@ using namespace Utils; using namespace Core; +using namespace std::string_view_literals; namespace Lua::Internal { @@ -318,7 +319,7 @@ public: void setupSettingsModule() { registerProvider("Settings", [pool = ObjectPool()](sol::state_view lua) -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); sol::table async = lua.script("return require('async')", "_process_").get(); sol::function wrap = async["wrap"]; @@ -658,19 +659,19 @@ void setupSettingsModule() OptionsPage(const ScriptPluginSpec *spec, const sol::table &options) { setCategory(Id::fromString( - QString("%1.%2").arg(spec->id).arg(options.get("categoryId")))); - const QString catName = options.get("displayCategory"); - const FilePath catIcon = options.get>("categoryIconPath") + QString("%1.%2").arg(spec->id).arg(options.get("categoryId"sv)))); + const QString catName = options.get("displayCategory"sv); + const FilePath catIcon = options.get>("categoryIconPath"sv) .value_or(FilePath::fromUserInput( - options.get_or("categoryIconPath", {}))); + options.get_or("categoryIconPath"sv, {}))); if (!catName.isEmpty() || !catIcon.isEmpty()) IOptionsPage::registerCategory(category(), catName, catIcon); - setId( - Id::fromString(QString("%1.%2").arg(spec->id).arg(options.get("id")))); - setDisplayName(options.get("displayName")); + setId(Id::fromString( + QString("%1.%2").arg(spec->id).arg(options.get("id"sv)))); + setDisplayName(options.get("displayName"sv)); - AspectContainer *container = options.get("aspectContainer"); + AspectContainer *container = options.get("aspectContainer"sv); if (container->isAutoApply()) throw sol::error("AspectContainer must have autoApply set to false"); diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp index 16abd9fcfa6..7e9de660df9 100644 --- a/src/plugins/lua/bindings/texteditor.cpp +++ b/src/plugins/lua/bindings/texteditor.cpp @@ -23,6 +23,7 @@ using namespace Utils; using namespace Text; using namespace TextEditor; +using namespace std::string_view_literals; namespace { @@ -204,7 +205,7 @@ void setupTextEditorModule() TextEditorRegistry::instance(); registerProvider("TextEditor", [](sol::state_view lua) -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); QObject *guard = pluginSpec->connectionGuard.get(); sol::table result = lua.create_table(); diff --git a/src/plugins/lua/bindings/translate.cpp b/src/plugins/lua/bindings/translate.cpp index aec22c23ce1..20eb397f53b 100644 --- a/src/plugins/lua/bindings/translate.cpp +++ b/src/plugins/lua/bindings/translate.cpp @@ -5,12 +5,14 @@ #include +using namespace std::string_view_literals; + namespace Lua::Internal { void setupTranslateModule() { autoRegister([](sol::state_view lua) { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); static const QRegularExpression regexp("[^a-zA-Z]"); const QString trContext = QString(pluginSpec->name).replace(regexp, "_"); diff --git a/src/plugins/lua/bindings/utils.cpp b/src/plugins/lua/bindings/utils.cpp index 2750518312a..e8f8ef85105 100644 --- a/src/plugins/lua/bindings/utils.cpp +++ b/src/plugins/lua/bindings/utils.cpp @@ -22,6 +22,7 @@ #include using namespace Utils; +using namespace std::string_view_literals; namespace Lua::Internal { @@ -29,7 +30,8 @@ void setupUtilsModule() { registerProvider( "Utils", [futureSync = FutureSynchronizer()](sol::state_view lua) mutable -> sol::object { - const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"); + + const ScriptPluginSpec *pluginSpec = lua.get("PluginSpec"sv); auto async = lua.script("return require('async')", "_utils_").get(); @@ -45,12 +47,12 @@ void setupUtilsModule() const FilePath &p, const sol::table &options, const sol::function &cb) { - const QStringList nameFilters = options.get_or("nameFilters", {}); + const QStringList nameFilters = options.get_or("nameFilters"sv, {}); QDir::Filters fileFilters - = (QDir::Filters) options.get_or("fileFilters", QDir::NoFilter); + = (QDir::Filters) options.get_or("fileFilters"sv, QDir::NoFilter); QDirIterator::IteratorFlags flags = (QDirIterator::IteratorFlags) - options.get_or("flags", QDirIterator::NoIteratorFlags); + options.get_or("flags"sv, QDirIterator::NoIteratorFlags); FileFilter filter(nameFilters, fileFilters, flags); diff --git a/src/plugins/lua/luaengine.cpp b/src/plugins/lua/luaengine.cpp index b0c03b296a8..5c3ae2ba097 100644 --- a/src/plugins/lua/luaengine.cpp +++ b/src/plugins/lua/luaengine.cpp @@ -22,6 +22,7 @@ #include using namespace Utils; +using namespace std::string_view_literals; namespace Lua { @@ -381,7 +382,7 @@ expected_str prepareSetup( return make_unexpected(connectResult.error()); } - auto setupFunction = pluginTable->get_or("setup", {}); + auto setupFunction = pluginTable->get_or("setup"sv, {}); if (!setupFunction) return make_unexpected(Tr::tr("Extension info table did not contain a setup function.")); diff --git a/src/plugins/lua/luapluginspec.cpp b/src/plugins/lua/luapluginspec.cpp index 5b5b2f2035b..eb406a88fcf 100644 --- a/src/plugins/lua/luapluginspec.cpp +++ b/src/plugins/lua/luapluginspec.cpp @@ -22,6 +22,7 @@ Q_LOGGING_CATEGORY(luaPluginSpecLog, "qtc.lua.pluginspec", QtWarningMsg) using namespace ExtensionSystem; using namespace Utils; +using namespace std::string_view_literals; namespace Lua { @@ -51,7 +52,7 @@ expected_str LuaPluginSpec::create(const FilePath &filePath, so const FilePath directory = filePath.parentDir(); std::unique_ptr pluginSpec(new LuaPluginSpec()); - if (!pluginTable.get_or("setup", {})) + if (!pluginTable.get_or("setup"sv, {})) return make_unexpected(QString("Plugin info table did not contain a setup function")); QJsonValue v = toJson(pluginTable); diff --git a/src/plugins/lua/luaqttypes.cpp b/src/plugins/lua/luaqttypes.cpp index 1a5e43db061..57a00a188ad 100644 --- a/src/plugins/lua/luaqttypes.cpp +++ b/src/plugins/lua/luaqttypes.cpp @@ -9,6 +9,8 @@ #include #include +using namespace std::string_view_literals; + // This defines the conversion from QString to lua_string and vice versa bool sol_lua_check(sol::types, lua_State *L, @@ -48,10 +50,10 @@ QRect sol_lua_get(sol::types, lua_State *L, int index, sol::stack::record switch (table.size()) { case 0: return QRect( - table.get("x"), - table.get("y"), - table.get("width"), - table.get("height")); + table.get("x"sv), + table.get("y"sv), + table.get("width"sv), + table.get("height"sv)); case 2: return QRect(table.get(1), table.get(2)); case 4: @@ -87,10 +89,10 @@ QMargins sol_lua_get(sol::types, lua_State *L, int index, sol::stack:: switch (table.size()) { case 0: return QMargins( - table.get("left"), - table.get("top"), - table.get("right"), - table.get("bottom")); + table.get("left"sv), + table.get("top"sv), + table.get("right"sv), + table.get("bottom"sv)); case 4: return QMargins(table.get(1), table.get(2), table.get(3), table.get(4)); default: @@ -123,7 +125,7 @@ QSize sol_lua_get(sol::types, lua_State *L, int index, sol::stack::record const sol::table table = sol::stack::get(L, index, tracking); switch (table.size()) { case 0: - return QSize(table.get("width"), table.get("height")); + return QSize(table.get("width"), table.get("height"sv)); case 2: return QSize(table.get(1), table.get(2)); default: @@ -152,7 +154,7 @@ QPoint sol_lua_get(sol::types, lua_State *L, int index, sol::stack::reco const sol::table table = sol::stack::get(L, index, tracking); switch (table.size()) { case 0: - return QPoint(table.get("x"), table.get("y")); + return QPoint(table.get("x"), table.get("y"sv)); case 2: return QPoint(table.get(1), table.get(2)); default: @@ -183,10 +185,10 @@ QRectF sol_lua_get(sol::types, lua_State *L, int index, sol::stack::reco switch (table.size()) { case 0: return QRectF( - table.get("x"), - table.get("y"), - table.get("width"), - table.get("height")); + table.get("x"sv), + table.get("y"sv), + table.get("width"sv), + table.get("height"sv)); case 2: return QRectF(table.get(1), table.get(2)); case 4: @@ -222,10 +224,10 @@ QMarginsF sol_lua_get(sol::types, lua_State *L, int index, sol::stack switch (table.size()) { case 0: return QMarginsF( - table.get("left"), - table.get("top"), - table.get("right"), - table.get("bottom")); + table.get("left"sv), + table.get("top"sv), + table.get("right"sv), + table.get("bottom"sv)); case 4: return QMarginsF( table.get(1), table.get(2), table.get(3), table.get(4)); @@ -258,7 +260,7 @@ QSizeF sol_lua_get(sol::types, lua_State *L, int index, sol::stack::reco const sol::table table = sol::stack::get(L, index, tracking); switch (table.size()) { case 0: - return QSizeF(table.get("width"), table.get("height")); + return QSizeF(table.get("width"), table.get("height"sv)); case 2: return QSizeF(table.get(1), table.get(2)); default: @@ -287,7 +289,7 @@ QPointF sol_lua_get(sol::types, lua_State *L, int index, sol::stack::re const sol::table table = sol::stack::get(L, index, tracking); switch (table.size()) { case 0: - return QPointF(table.get("x"), table.get("y")); + return QPointF(table.get("x"), table.get("y"sv)); case 2: return QPointF(table.get(1), table.get(2)); default: @@ -317,10 +319,10 @@ QColor sol_lua_get(sol::types, lua_State *L, int index, sol::stack::reco switch (table.size()) { case 0: return QColor( - table.get("red"), - table.get("green"), - table.get("blue"), - table.get("alpha")); + table.get("red"sv), + table.get("green"sv), + table.get("blue"sv), + table.get("alpha"sv)); case 4: return QColor(table.get(1), table.get(2), table.get(3), table.get(4)); default: diff --git a/src/plugins/lua/meta/gui.lua b/src/plugins/lua/meta/gui.lua index 9d9412d2cc5..adfd7676df1 100644 --- a/src/plugins/lua/meta/gui.lua +++ b/src/plugins/lua/meta/gui.lua @@ -42,6 +42,7 @@ gui.baseWidgetOptions = {} ---@field contentMargins? integer[] Four integers represending left, top, right and bottom margins. ---@field cursor? CursorShape The cursor shape for the widget. ---@field minimumWidth? integer The minimum width in pixels. +---@field minimumHeight? integer Minimum height of input gui.widgetOptions = {} ---@param options WidgetOptions @@ -154,7 +155,6 @@ function gui.TextEdit(options) end ---@field rightSideIconPath? FilePath A path to icon ---@field placeHolderText? string A placeholder text for intput ---@field completer? QCompleter A QCompleter object. ----@field minimumHeight? int Minimum height of input ---@field onReturnPressed? function The function to be called when Enter is pressed ---@field onRightSideIconClicked? function The function to be called when right side icon is clicked ---@field text string Current text @@ -226,6 +226,18 @@ function gui.TabWidget(options) end ---@return TabWidget function gui.TabWidget(name, child) end +---@class MarkdownBrowser : Widget +---@field markdown string The markdown content of the MarkdownBrowser. Can be set or retrieved. +local markdownBrowser = {} + +---@class (exact) MarkdownBrowserOptions : WidgetOptions +---@field enableCodeCopyButton? boolean Enable or disable the code copy button +local markdownBrowserOptions = {} + +---@param options MarkdownBrowserOptions +---@return MarkdownBrowser +function gui.MarkdownBrowser(options) end + ---@class Spinner : Widget ---@field running boolean Set spinner visible and display spinning animation ---@field decorated boolean Display spinner with custom styleSheet defined inside control (default true) diff --git a/src/plugins/nim/project/nimbleproject.cpp b/src/plugins/nim/project/nimbleproject.cpp index eac21c26a44..8b6dd9b1173 100644 --- a/src/plugins/nim/project/nimbleproject.cpp +++ b/src/plugins/nim/project/nimbleproject.cpp @@ -136,7 +136,7 @@ NimbleBuildSystem::NimbleBuildSystem(BuildConfiguration *bc) // Workaround for nimble creating temporary files in project root directory // when querying the list of tasks. // See https://github.com/nim-lang/nimble/issues/720 - if (directory != projectDirectory().toUrlishString()) + if (FilePath::fromString(directory) != projectDirectory()) requestDelayedParse(); }); diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.h b/src/plugins/projectexplorer/buildsettingspropertiespage.h index 7451ed43363..5869e4eb06a 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.h +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.h @@ -51,7 +51,6 @@ private: QPushButton *m_removeButton = nullptr; QPushButton *m_renameButton = nullptr; QPushButton *m_cloneButton = nullptr; - QPushButton *m_makeActiveButton = nullptr; QComboBox *m_buildConfigurationComboBox = nullptr; QMenu *m_addButtonMenu = nullptr; diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp index 6e487e28560..7062ab6a28c 100644 --- a/src/plugins/projectexplorer/gcctoolchain.cpp +++ b/src/plugins/projectexplorer/gcctoolchain.cpp @@ -1083,6 +1083,10 @@ void GccToolchain::fromMap(const Store &data) m_platformCodeGenFlags = data.value(compilerPlatformCodeGenFlagsKeyC).toStringList(); m_platformLinkerFlags = data.value(compilerPlatformLinkerFlagsKeyC).toStringList(); m_originalTargetTriple = data.value(originalTargetTripleKeyC).toString(); + // clang 19 is not accepting "--target=unknown-qnx-gnu" anymore + // error: unknown target triple 'unknown-qnx-unknown-gnu' + if (m_originalTargetTriple == "unknown-qnx-gnu") + m_originalTargetTriple.clear(); const QStringList abiList = data.value(supportedAbisKeyC).toStringList(); m_supportedAbis.clear(); for (const QString &a : abiList) diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index d67c636255a..81bcd0c7f07 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -2482,6 +2482,13 @@ FilePairs ProjectExplorerPlugin::renameFiles( = Utils::filtered(nodesAndNewFilePaths, [](const std::pair &elem) { return !elem.first->filePath().equalsCaseSensitive(elem.second); }); + + // The same as above, for use when the nodes might no longer exist. + const QList> oldAndNewFilePathsFiltered + = Utils::transform(nodesAndNewFilePathsFiltered, [](const std::pair &p) { + return std::make_pair(p.first->filePath(), p.second); + }); + FilePaths renamedOnly; FilePaths failedRenamings; const auto renameFile = [&failedRenamings](const Node *node, const FilePath &newFilePath) { @@ -2547,9 +2554,9 @@ FilePairs ProjectExplorerPlugin::renameFiles( } FilePairs allRenamedFiles; - for (const std::pair &candidate : nodesAndNewFilePathsFiltered) { - if (!failedRenamings.contains(candidate.first->filePath())) - allRenamedFiles.emplaceBack(candidate.first->filePath(), candidate.second); + for (const std::pair &candidate : oldAndNewFilePathsFiltered) { + if (!failedRenamings.contains(candidate.first)) + allRenamedFiles.emplaceBack(candidate.first, candidate.second); } emit instance()->filesRenamed(allRenamedFiles); return allRenamedFiles; diff --git a/src/plugins/projectexplorer/runcontrol.cpp b/src/plugins/projectexplorer/runcontrol.cpp index 117483f0ce3..c345afc82a6 100644 --- a/src/plugins/projectexplorer/runcontrol.cpp +++ b/src/plugins/projectexplorer/runcontrol.cpp @@ -1534,11 +1534,13 @@ void ProcessRunnerPrivate::start() m_stopRequested = false; QVariantHash extraData = q->runControl()->extraData(); - if (q->runControl() && q->runControl()->target() - && q->runControl()->target()->activeRunConfiguration()) { - QString shellName = q->runControl()->target()->activeRunConfiguration()->displayName(); - if (BuildConfiguration *buildConfig = q->runControl()->target()->activeBuildConfiguration()) - shellName += " - " + buildConfig->displayName(); + if (const auto rc = q->runControl()) { + QString shellName = rc->displayName(); + + if (rc->target()) { + if (BuildConfiguration *buildConfig = rc->target()->activeBuildConfiguration()) + shellName += " - " + buildConfig->displayName(); + } extraData[TERMINAL_SHELL_NAME] = shellName; } else { @@ -1814,7 +1816,8 @@ void RunWorker::initiateStop() */ void RunWorker::reportStopped() { - d->runControl->d->onWorkerStopped(this); + if (QTC_GUARD(d && d->runControl && d->runControl->d)) + d->runControl->d->onWorkerStopped(this); emit stopped(); } diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 517126c99d8..93859bc7ecf 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -26,7 +26,6 @@ #include #include -#include #include #include #include @@ -38,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -180,15 +180,16 @@ public: return projectExplorerSettings().showAllKits; } - TargetGroupItem *q; + TargetGroupItem * const q; + Project * const m_project; QString m_displayName; - Project *m_project; bool m_rebuildScheduled = false; QPointer m_noKitLabel; QPointer m_configurePage; QPointer m_configuredPage; TargetSetupPageWrapper *m_targetSetupPageWrapper = nullptr; + QList m_connections; }; class ITargetItem : public TypedTreeItem @@ -672,12 +673,6 @@ TargetGroupItem::TargetGroupItem(const QString &displayName, Project *project) : d(std::make_unique(this, project)) { d->m_displayName = displayName; - QObject::connect(project, &Project::addedTarget, - d.get(), &TargetGroupItemPrivate::handleTargetAdded); - QObject::connect(project, &Project::removedTarget, - d.get(), &TargetGroupItemPrivate::handleTargetRemoved); - QObject::connect(project, &Project::activeTargetChanged, - d.get(), &TargetGroupItemPrivate::handleTargetChanged); } TargetGroupItem::~TargetGroupItem() = default; @@ -685,17 +680,27 @@ TargetGroupItem::~TargetGroupItem() = default; TargetGroupItemPrivate::TargetGroupItemPrivate(TargetGroupItem *q, Project *project) : q(q), m_project(project) { + m_connections << QObject::connect(project, &Project::addedTarget, + this, &TargetGroupItemPrivate::handleTargetAdded); + m_connections << QObject::connect(project, &Project::removedTarget, + this, &TargetGroupItemPrivate::handleTargetRemoved); + m_connections << QObject::connect(project, &Project::activeTargetChanged, + this, &TargetGroupItemPrivate::handleTargetChanged); + // force a signal since the index has changed - connect(KitManager::instance(), &KitManager::kitAdded, - this, &TargetGroupItemPrivate::handleAddedKit); - connect(KitManager::instance(), &KitManager::kitRemoved, - this, &TargetGroupItemPrivate::scheduleRebuildContents); - connect(KitManager::instance(), &KitManager::kitUpdated, - this, &TargetGroupItemPrivate::scheduleRebuildContents); - connect(KitManager::instance(), &KitManager::kitsLoaded, - this, &TargetGroupItemPrivate::scheduleRebuildContents); - connect(ProjectExplorerPlugin::instance(), &ProjectExplorerPlugin::settingsChanged, - this, &TargetGroupItemPrivate::scheduleRebuildContents); + m_connections << connect(KitManager::instance(), &KitManager::kitAdded, + this, &TargetGroupItemPrivate::handleAddedKit); + m_connections << connect(KitManager::instance(), &KitManager::kitRemoved, + this, &TargetGroupItemPrivate::scheduleRebuildContents); + m_connections << connect(KitManager::instance(), &KitManager::kitUpdated, + this, &TargetGroupItemPrivate::scheduleRebuildContents); + m_connections << connect(KitManager::instance(), &KitManager::kitsLoaded, + this, &TargetGroupItemPrivate::scheduleRebuildContents); + m_connections << connect( + ProjectExplorerPlugin::instance(), + &ProjectExplorerPlugin::settingsChanged, + this, + &TargetGroupItemPrivate::scheduleRebuildContents); rebuildContents(); } @@ -703,6 +708,8 @@ TargetGroupItemPrivate::TargetGroupItemPrivate(TargetGroupItem *q, Project *proj TargetGroupItemPrivate::~TargetGroupItemPrivate() { disconnect(); + for (const QMetaObject::Connection & c : std::as_const(m_connections)) + disconnect(c); delete m_noKitLabel; delete m_configurePage; @@ -834,6 +841,7 @@ void TargetGroupItemPrivate::handleTargetRemoved(Target *target) if (ITargetItem *item = q->targetItem(target)) item->updateSubItems(); ensureShowMoreItem(); + QTC_ASSERT(q->parent(), qDebug() << m_displayName; return); q->parent()->setData(0, QVariant::fromValue(static_cast(q)), ItemDeactivatedFromBelowRole); } diff --git a/src/plugins/python/pythonsettings.cpp b/src/plugins/python/pythonsettings.cpp index 54f1fc0b869..b6a7208fceb 100644 --- a/src/plugins/python/pythonsettings.cpp +++ b/src/plugins/python/pythonsettings.cpp @@ -858,8 +858,9 @@ QString PythonSettings::pylsConfiguration() static void cacheVenvAndPipUsability(const Interpreter &interpreter) { - Utils::asyncRun(&venvIsUsable, interpreter.command); - Utils::asyncRun(&pipIsUsable, interpreter.command); + static QPointer pool(new QThreadPool(PythonSettings::instance())); + Utils::asyncRun(pool.get(), &venvIsUsable, interpreter.command); + Utils::asyncRun(pool.get(), &pipIsUsable, interpreter.command); } void PythonSettings::addInterpreter(const Interpreter &interpreter, bool isDefault) diff --git a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt index 81ce99bb191..ee1293830f6 100644 --- a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt +++ b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt @@ -1,5 +1,8 @@ if (IS_SUPPORTED_PROJECTSTORAGE_QT) find_package(Qt6 COMPONENTS QmlDomPrivate QmlCompiler REQUIRED) + if (QT_VERSION VERSION_GREATER_EQUAL 6.9.0) + find_package(Qt6 COMPONENTS QmlCompilerPrivate REQUIRED) + endif() endif() add_qtc_library(QmlDesignerCore diff --git a/src/plugins/qmljseditor/qmllsclientsettings.cpp b/src/plugins/qmljseditor/qmllsclientsettings.cpp index 88b1b6f5152..270a237f876 100644 --- a/src/plugins/qmljseditor/qmllsclientsettings.cpp +++ b/src/plugins/qmljseditor/qmllsclientsettings.cpp @@ -65,6 +65,7 @@ QmllsClientSettings::QmllsClientSettings() m_settingsTypeId = Constants::QMLLS_CLIENT_SETTINGS_ID; m_startBehavior = RequiresProject; m_initializationOptions = "{\"qtCreatorHighlighting\": true}"; + m_enabled = false; // disabled by default } static QtVersion *qtVersionFromProject(const Project *project) diff --git a/src/plugins/qnx/qnxdebugsupport.cpp b/src/plugins/qnx/qnxdebugsupport.cpp index 6a90fef38c8..f61fb097776 100644 --- a/src/plugins/qnx/qnxdebugsupport.cpp +++ b/src/plugins/qnx/qnxdebugsupport.cpp @@ -208,6 +208,7 @@ public: rp.setCloseMode(KillAtClose); rp.setUseCtrlCStub(true); rp.setSolibSearchPath(FileUtils::toFilePathList(searchPaths(k))); + rp.setSkipDebugServer(true); if (auto qtVersion = dynamic_cast(QtSupport::QtKitAspect::qtVersion(k))) { rp.setSysRoot(qtVersion->qnxTarget()); rp.modifyDebuggerEnvironment(qtVersion->environment()); diff --git a/src/plugins/qnx/qnxtoolchain.cpp b/src/plugins/qnx/qnxtoolchain.cpp index 30feae7a2c7..8196ef6803d 100644 --- a/src/plugins/qnx/qnxtoolchain.cpp +++ b/src/plugins/qnx/qnxtoolchain.cpp @@ -137,13 +137,22 @@ QStringList QnxToolchain::suggestedMkspecList() const GccToolchain::DetectedAbisResult QnxToolchain::detectSupportedAbis() const { - // "unknown-qnx-gnu"is needed to get the "--target=xxx" parameter sent code model, - // which gets translated as "x86_64-qnx-gnu", which gets Clang to happily parse - // the QNX code. - // - // Without it on Windows Clang defaults to a MSVC mode, which breaks with - // the QNX code, which is mostly GNU based. - return GccToolchain::DetectedAbisResult{detectTargetAbis(sdpPath()), "unknown-qnx-gnu"}; + static const QHash qnxTargets { + {"arm-qnx-gnu", + Abi(Abi::ArmArchitecture, Abi::QnxOS, Abi::GenericFlavor, Abi::ElfFormat, 32)}, + {"i686-qnx-gnu", + Abi(Abi::X86Architecture, Abi::QnxOS, Abi::GenericFlavor, Abi::ElfFormat, 32)}, + {"x86_64-qnx-gnu", + Abi(Abi::X86Architecture, Abi::QnxOS, Abi::GenericFlavor, Abi::ElfFormat, 64)}, + {"aarch64-qnx-gnu", + Abi(Abi::ArmArchitecture, Abi::QnxOS, Abi::GenericFlavor, Abi::ElfFormat, 64)} + }; + + for (auto itr = qnxTargets.constBegin(); itr != qnxTargets.constEnd(); ++itr) { + if (itr.value() == targetAbi()) + return GccToolchain::DetectedAbisResult({targetAbi()}, itr.key()); + } + return GccToolchain::DetectedAbisResult({targetAbi()}, ""); } bool QnxToolchain::operator ==(const Toolchain &other) const diff --git a/src/plugins/qtsupport/QtSupport.json.in b/src/plugins/qtsupport/QtSupport.json.in index fb1571c3302..395c2a6e1d3 100644 --- a/src/plugins/qtsupport/QtSupport.json.in +++ b/src/plugins/qtsupport/QtSupport.json.in @@ -43,6 +43,11 @@ " ", " ", " ", + " ", + " Qt Remote Objects file", + " ", + " ", + " ", "" ] } diff --git a/src/plugins/qtsupport/images/icons/learn-graph.webp b/src/plugins/qtsupport/images/icons/learn-graph.webp new file mode 100644 index 00000000000..78fd4334db4 Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-graph.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-modvd.webp b/src/plugins/qtsupport/images/icons/learn-modvd.webp new file mode 100644 index 00000000000..8f9db5a9f73 Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-modvd.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-modvq.webp b/src/plugins/qtsupport/images/icons/learn-modvq.webp new file mode 100644 index 00000000000..4131fc90fb6 Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-modvq.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-multh.webp b/src/plugins/qtsupport/images/icons/learn-multh.webp new file mode 100644 index 00000000000..917fa1f9d8a Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-multh.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-qmlbp.webp b/src/plugins/qtsupport/images/icons/learn-qmlbp.webp new file mode 100644 index 00000000000..24d2a34e25e Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-qmlbp.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-qmlib.webp b/src/plugins/qtsupport/images/icons/learn-qmlib.webp new file mode 100644 index 00000000000..675935ef48b Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-qmlib.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-qmlii.webp b/src/plugins/qtsupport/images/icons/learn-qmlii.webp new file mode 100644 index 00000000000..be8bdf7c95b Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-qmlii.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-qtwi5.webp b/src/plugins/qtsupport/images/icons/learn-qtwi5.webp new file mode 100644 index 00000000000..9116a28c51a Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-qtwi5.webp differ diff --git a/src/plugins/qtsupport/images/icons/learn-resla.webp b/src/plugins/qtsupport/images/icons/learn-resla.webp new file mode 100644 index 00000000000..1355b37c928 Binary files /dev/null and b/src/plugins/qtsupport/images/icons/learn-resla.webp differ diff --git a/src/plugins/qtsupport/qtcreator_tutorials.xml b/src/plugins/qtsupport/qtcreator_tutorials.xml index 613437cc7e0..6d83fcbe0b2 100644 --- a/src/plugins/qtsupport/qtcreator_tutorials.xml +++ b/src/plugins/qtsupport/qtcreator_tutorials.xml @@ -199,63 +199,63 @@ Learning - dig deeper - + qt,widgets,2025 Learning - dig deeper - + qt,c++,qml,2024 Learning - dig deeper - + qt,c++,qml,2024 Learning - dig deeper - + qt,qml,2024 Learning - dig deeper - + qt,qml,model,2024 Learning - dig deeper - + qt,qml,model,view,2024 Learning - dig deeper - + qt,data visualization,graphs,2024 Learning - dig deeper - + qt,qml,layouts,2024 Learning - dig deeper - + qt,multithreading,2024 diff --git a/src/plugins/qtsupport/qtsupport.qrc b/src/plugins/qtsupport/qtsupport.qrc index dd08f5c2f85..44b4f76427d 100644 --- a/src/plugins/qtsupport/qtsupport.qrc +++ b/src/plugins/qtsupport/qtsupport.qrc @@ -24,6 +24,15 @@ images/icons/learn-expcq.webp images/icons/learn-inqml.webp images/icons/learn-inq3d.webp + images/icons/learn-qmlib.webp + images/icons/learn-qmlii.webp + images/icons/learn-qmlbp.webp + images/icons/learn-modvd.webp + images/icons/learn-modvq.webp + images/icons/learn-graph.webp + images/icons/learn-resla.webp + images/icons/learn-multh.webp + images/icons/learn-qtwi5.webp images/icons/youtube1w0ak9RNNWY.webp images/icons/youtube3o2Wo4YzlII.webp images/icons/youtube9xqhq9nDiOg.webp diff --git a/src/plugins/texteditor/TextEditor.json.in b/src/plugins/texteditor/TextEditor.json.in index d88f141a18f..11da1b42b8c 100644 --- a/src/plugins/texteditor/TextEditor.json.in +++ b/src/plugins/texteditor/TextEditor.json.in @@ -52,10 +52,15 @@ " ", " ", " ", - " Rust souce file", + " Rust source file", " ", " ", " ", + " ", + " Swift source file", + " ", + " ", + " ", "" ] } diff --git a/src/plugins/texteditor/syntaxhighlighter.cpp b/src/plugins/texteditor/syntaxhighlighter.cpp index 05126a67591..5e1d8c6705b 100644 --- a/src/plugins/texteditor/syntaxhighlighter.cpp +++ b/src/plugins/texteditor/syntaxhighlighter.cpp @@ -64,6 +64,7 @@ public: QTextCharFormat whitespaceFormat; QString mimeType; bool syntaxInfoUpToDate = false; + bool continueRehighlightScheduled = false; int highlightStartBlock = 0; int highlightEndBlock = 0; QSet forceRehighlightBlocks; @@ -211,7 +212,9 @@ void SyntaxHighlighterPrivate::reformatBlocks(int from, int charsRemoved, int ch highlightEndBlock = block.blockNumber(); qCDebug(Log) << "reformat blocks from:" << from << "to:" << from + charsAdded - charsRemoved; - reformatBlocks(); + + if (!continueRehighlightScheduled) + reformatBlocks(); } void SyntaxHighlighterPrivate::reformatBlocks() @@ -219,6 +222,7 @@ void SyntaxHighlighterPrivate::reformatBlocks() QElapsedTimer et; et.start(); + continueRehighlightScheduled = false; syntaxInfoUpToDate = false; rehighlightPending = false; @@ -258,6 +262,7 @@ void SyntaxHighlighterPrivate::reformatBlocks() foldValidator.finalize(); if (endBlock.isValid() && block.isValid() && block.blockNumber() < endBlock.blockNumber()) { + continueRehighlightScheduled = true; QMetaObject::invokeMethod(q, &SyntaxHighlighter::continueRehighlight, Qt::QueuedConnection); if (forceHighlightOfNextBlock) forceRehighlightBlocks << block.blockNumber(); diff --git a/src/plugins/texteditor/tabsettings.cpp b/src/plugins/texteditor/tabsettings.cpp index debc9e199ac..ea982bad9ef 100644 --- a/src/plugins/texteditor/tabsettings.cpp +++ b/src/plugins/texteditor/tabsettings.cpp @@ -91,10 +91,13 @@ TabSettings TabSettings::autoDetect(const QTextDocument *document) const }; const int blockCount = document->blockCount(); + bool useDefault = true; if (blockCount < 200) { // check the indentation of all blocks if the document is shorter than 200 lines for (QTextBlock block = document->firstBlock(); block.isValid(); block = block.next()) checkText(block); + // We checked all, so if we find any indented line, it makes sense to use it: + useDefault = totalIndentations == 0; } else { // scanning the first and last 25 lines specifically since those most probably contain // different indentations @@ -115,9 +118,12 @@ TabSettings TabSettings::autoDetect(const QTextDocument *document) const const int blockNummer = gen.bounded(startEndDelta + 1, blockCount - startEndDelta - 2); checkText(document->findBlockByNumber(blockNummer)); } + // Don't determine indentation for the whole file from few actually indented lines that we + // managed to find: + useDefault = totalIndentations < 3; } - if (indentCount.size() < 3) + if (useDefault) return *this; // find the most common indent diff --git a/src/plugins/texteditor/texteditor.cpp b/src/plugins/texteditor/texteditor.cpp index ec61980c657..2560315ad70 100644 --- a/src/plugins/texteditor/texteditor.cpp +++ b/src/plugins/texteditor/texteditor.cpp @@ -4121,7 +4121,8 @@ void TextEditorWidgetPrivate::forceUpdateScrollbarSize() // scrollarea which is a private part of the QPlainTextEdit. // During the resizeEvent the plain text edit will resize its scrollbars. // The TextEditorWidget will also update its scrollbar overlays. - q->resizeEvent(new QResizeEvent(q->size(), q->size())); + QResizeEvent event(q->size(), q->size()); + q->resizeEvent(&event); } std::unique_ptr TextEditorWidgetPrivate::insertWidget( diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index f8f80d1e0a4..59dcf453435 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -360,7 +361,8 @@ public: void extensionsInitialized() { m_modeWidget->initPlugins(); - ModeManager::activateMode(id()); + if (!SessionManager::loadsSessionOrFileAtStartup()) + ModeManager::activateMode(id()); } private: diff --git a/src/share/3rdparty/package-manager/auto-setup.cmake b/src/share/3rdparty/package-manager/auto-setup.cmake index acec58c41cf..29a6a23ed97 100644 --- a/src/share/3rdparty/package-manager/auto-setup.cmake +++ b/src/share/3rdparty/package-manager/auto-setup.cmake @@ -18,7 +18,27 @@ endif() # Set a better default value for CMAKE_INSTALL_PREFIX # function(qtc_modify_default_install_prefix) - if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + # If at configure time the user didn't specify a CMAKE_INSTALL_PREFIX variable + # Modules/CMakeGenericSystem.cmake will set a default value + # to CMAKE_INSTALL_PREFIX and set CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT to ON + + # In practice there are cases when CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT is + # set to ON and a custom CMAKE_INSTALL_PREFIX is set + + # Do the original CMAKE_INSTALL_PREFIX detection + if(CMAKE_HOST_UNIX) + set(original_cmake_install_prefix "/usr/local") + else() + GetDefaultWindowsPrefixBase(CMAKE_GENERIC_PROGRAM_FILES) + set(original_cmake_install_prefix + "${CMAKE_GENERIC_PROGRAM_FILES}/${PROJECT_NAME}") + unset(CMAKE_GENERIC_PROGRAM_FILES) + endif() + + # When the user code didn't modify the CMake set CMAKE_INSTALL_PREFIX + # then set the "/tmp" better value for CMAKE_INSTALL_PREFIX + if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND + CMAKE_INSTALL_PREFIX STREQUAL "${original_cmake_install_prefix}") set_property(CACHE CMAKE_INSTALL_PREFIX PROPERTY VALUE "/tmp") endif() endfunction() diff --git a/src/shared/qbs b/src/shared/qbs index 94681348541..217c7add0ef 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 94681348541c66e66b3db29225352a2156178c63 +Subproject commit 217c7add0efcc8f84d1f80da5d332730af251ffe diff --git a/src/tools/qmlpuppet/CMakeLists.txt b/src/tools/qmlpuppet/CMakeLists.txt index 2c0ff6a1f50..7d239d4adc8 100644 --- a/src/tools/qmlpuppet/CMakeLists.txt +++ b/src/tools/qmlpuppet/CMakeLists.txt @@ -97,16 +97,22 @@ extend_qtc_executable(qmlpuppet ) find_package(Qt6 COMPONENTS Quick3DAssetImport QUIET) +if (QT_VERSION VERSION_GREATER_EQUAL 6.9.0) + find_package(Qt6 COMPONENTS Quick3DAssetImportPrivate QUIET) +endif() extend_qtc_executable(qmlpuppet - CONDITION TARGET Qt::Quick3DAssetImport + CONDITION TARGET Qt::Quick3DAssetImportPrivate FEATURE_INFO "Qt Quick 3D asset import" DEPENDS Qt::Quick3DAssetImportPrivate DEFINES IMPORT_QUICK3D_ASSETS ) find_package(Qt6 COMPONENTS Quick3DParticles QUIET) +if (QT_VERSION VERSION_GREATER_EQUAL 6.9.0) + find_package(Qt6 COMPONENTS Quick3DParticlesPrivate QUIET) +endif() extend_qtc_executable(qmlpuppet - CONDITION TARGET Qt::Quick3DParticles + CONDITION TARGET Qt::Quick3DParticles AND TARGET Qt::Quick3DParticlesPrivate FEATURE_INFO "Qt Quick 3D particles" DEPENDS Qt::Quick3DParticles Qt::Quick3DParticlesPrivate DEFINES QUICK3D_PARTICLES_MODULE @@ -114,8 +120,11 @@ extend_qtc_executable(qmlpuppet # Quick3DAssetUtils optionally depends on QuickTimeline, so find also it to make the CI build work find_package(Qt6 COMPONENTS Quick3DAssetUtils QuickTimeline QUIET) +if (QT_VERSION VERSION_GREATER_EQUAL 6.9.0) + find_package(Qt6 COMPONENTS Quick3DAssetUtilsPrivate QUIET) +endif() extend_qtc_executable(qmlpuppet - CONDITION TARGET Qt::Quick3DAssetUtils + CONDITION TARGET Qt::Quick3DAssetUtilsPrivate FEATURE_INFO "Qt Quick 3D asset utils" DEPENDS Qt::Quick3DAssetUtilsPrivate DEFINES QUICK3D_ASSET_UTILS_MODULE diff --git a/tests/auto/solutions/qprocesstask/testsleep/main.cpp b/tests/auto/solutions/qprocesstask/testsleep/main.cpp index cfe8752e02a..dde7d3b5137 100644 --- a/tests/auto/solutions/qprocesstask/testsleep/main.cpp +++ b/tests/auto/solutions/qprocesstask/testsleep/main.cpp @@ -1,9 +1,11 @@ // Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 +#include #include using namespace std; +using namespace std::literals::chrono_literals; int main() { diff --git a/tests/manual/qml/testfiles_quick2/images/qtcreator.ico b/tests/manual/qml/testfiles_quick2/images/qtcreator.ico index c3ef8ac9c3f..890e4dba4a2 100644 Binary files a/tests/manual/qml/testfiles_quick2/images/qtcreator.ico and b/tests/manual/qml/testfiles_quick2/images/qtcreator.ico differ diff --git a/tests/system/shared/classes.py b/tests/system/shared/classes.py index 755234eacd5..74722c23ad2 100644 --- a/tests/system/shared/classes.py +++ b/tests/system/shared/classes.py @@ -32,7 +32,10 @@ class Targets: @staticmethod def isOnlineInstaller(target): - return target == Targets.DESKTOP_6_2_4 + onlineInstallerTargets = [Targets.DESKTOP_6_2_4] + if os.getenv("SYSTEST_NEW_SETTINGS") == "1": + onlineInstallerTargets.append(Targets.DESKTOP_6_7_3_GCC) + return target in onlineInstallerTargets @staticmethod def availableTargetClasses(ignoreValidity=False): diff --git a/tests/system/shared/project.py b/tests/system/shared/project.py index fa2567f2c05..b9f351aff02 100644 --- a/tests/system/shared/project.py +++ b/tests/system/shared/project.py @@ -437,10 +437,14 @@ def __chooseTargets__(targets, availableTargets=None, additionalFunc=None): checkedTargets.add(current) # perform additional function on detailed kits view - if additionalFunc: + if additionalFunc and detailsButton.enabled: ensureChecked(detailsButton) additionalFunc() - ensureChecked(detailsButton, False) + if detailsButton.enabled: + ensureChecked(detailsButton, False) + else: + test.verify(not detailsButton.checked, + 'A disabled "Details" button should not be expanded.') except LookupError: if mustCheck: test.fail("Failed to check target '%s'." % Targets.getStringForTarget(current)) @@ -526,6 +530,8 @@ def __getSupportedPlatforms__(text, templateName, getAsStrings=False, ignoreVali version = None if templateName in ("Qt Quick 2 Extension Plugin", "Qt Quick Application"): result = set([Targets.DESKTOP_6_2_4]) + elif templateName == "XR Application": + result = set() # we need Qt6.8+ elif 'Supported Platforms' in text: supports = text[text.find('Supported Platforms'):].split(":")[1].strip().split("\n") result = set() diff --git a/tests/system/suite_HELP/tst_HELP02/test.py b/tests/system/suite_HELP/tst_HELP02/test.py index 66ac3c0ea7b..0d55ed20eae 100644 --- a/tests/system/suite_HELP/tst_HELP02/test.py +++ b/tests/system/suite_HELP/tst_HELP02/test.py @@ -73,7 +73,7 @@ def setKeyboardShortcutForAboutQtC(): shortcut = ("{container=%s type='Utils::FancyLineEdit' unnamed='1' visible='1' " "placeholderText='Enter key sequence as text'}" % shortcutGB) clickButton(record) - nativeType(keysToType) + type(waitForObject(shortcut, 1000), keysToType) waitFor(lambda: str(findObject(shortcut).text) == expectedKeys, 5000) clickButton(record) diff --git a/tests/system/suite_WELP/tst_WELP03/test.py b/tests/system/suite_WELP/tst_WELP03/test.py index 8d4fa29a9bb..d73a84e35fa 100644 --- a/tests/system/suite_WELP/tst_WELP03/test.py +++ b/tests/system/suite_WELP/tst_WELP03/test.py @@ -38,8 +38,9 @@ def openExample(examplesLineEdit, input, exampleRegex, exampleName, waitForChild mouseClick(waitForObjectItem(listView, str(example.text))) handlePackagingMessageBoxes() helpWidget = waitForObject(":Help Widget_Help::Internal::HelpWidget") - test.verify(waitFor('exampleName in str(helpWidget.windowTitle)', 5000), - "Verifying: The example application is opened inside Help.") + if not test.verify(waitFor('exampleName in str(helpWidget.windowTitle)', 5000), + "Verifying: The example application is opened inside Help."): + test.log("%s vs %s" % (str(helpWidget.windowTitle), exampleName)) sendEvent("QCloseEvent", helpWidget) # assume the correct kit is selected, hit Configure Project clickButton(waitForObject(":Qt Creator.Configure Project_QPushButton")) @@ -80,8 +81,10 @@ def main(): example = findExampleOrTutorial(listView, ".*", True) test.verify(example is None, "Verifying: No example is shown.") - proFiles = [os.path.join(p, "opengl", "2dpainting", "2dpainting.pro") - for p in QtPath.getPaths(QtPath.EXAMPLES)] + proFiles = [] + for p in QtPath.getPaths(QtPath.EXAMPLES): + proFiles.append(os.path.join(p, "opengl", "2dpainting", "2dpainting.pro")) + proFiles.append(os.path.join(p, "opengl", "2dpainting", "CMakeLists.txt")) cleanUpUserFiles(proFiles) example = openExample(examplesLineEdit, "2d painting", "2D Painting.*", "2D Painting Example") @@ -97,12 +100,16 @@ def main(): # go to "Welcome" page and choose another example switchViewTo(ViewConstants.WELCOME) - proFiles = [os.path.join(p, "widgets", "itemviews", "addressbook", "addressbook.pro") - for p in QtPath.getPaths(QtPath.EXAMPLES)] + + proFiles = [] + for p in QtPath.getPaths(QtPath.EXAMPLES): + proFiles.append(os.path.join(p, "widgets", "itemviews", "addressbook", "addressbook.pro")) + proFiles.append(os.path.join(p, "widgets", "itemviews", "addressbook", "CMakeLists.txt")) + cleanUpUserFiles(proFiles) examplesLineEdit = waitForObject(search %(expect[1][0], expect[1][1])) example = openExample(examplesLineEdit, "address book", "(0000 )?Address Book.*", - "Address Book Example", 3) + "Address Book ", 3) if example is not None: # close second example application test.verify(checkIfObjectExists("{column='0' container=':Qt Creator_Utils::NavigationTreeView'" diff --git a/tests/system/suite_debugger/tst_cli_output_console/test.py b/tests/system/suite_debugger/tst_cli_output_console/test.py index 1d6d7259926..69f0b6a8b0f 100644 --- a/tests/system/suite_debugger/tst_cli_output_console/test.py +++ b/tests/system/suite_debugger/tst_cli_output_console/test.py @@ -58,7 +58,12 @@ def main(): appOutput = str(waitForObject(":Qt Creator_Core::OutputWindow").plainText) verifyOutput(appOutput, outputStdOut, "std::cout", "Application Output") verifyOutput(appOutput, outputStdErr, "std::cerr", "Application Output") - verifyOutput(appOutput, outputQDebug, "qDebug()", "Application Output") + if (os.getenv('SYSTEST_NEW_SETTINGS') != '1' and kit == Targets.DESKTOP_5_4_1_GCC + and platform.system() in ('Windows', 'Microsoft')): + test.log("Skipping qDebug() from %s (unstable, QTCREATORBUG-15067)" + % Targets.getStringForTarget(Targets.DESKTOP_5_4_1_GCC)) + else: + verifyOutput(appOutput, outputQDebug, "qDebug()", "Application Output") clickButton(waitForObject(":Qt Creator_CloseButton")) except: test.fatal("Could not find Application Output Window", diff --git a/tests/system/suite_editors/tst_clean_whitespaces/test.py b/tests/system/suite_editors/tst_clean_whitespaces/test.py index 1f5eb7a255e..a45c8eefa6f 100644 --- a/tests/system/suite_editors/tst_clean_whitespaces/test.py +++ b/tests/system/suite_editors/tst_clean_whitespaces/test.py @@ -78,7 +78,7 @@ def prepareFileExternal(fileName, content): for currentLine in lines: if not emptyLine: - if len(currentLine) == 1: # just the line break + if currentLine in ('\n', '\r\n'): # just the line break currentLine = TripleTab + '\n' emptyLine = True test.log("Replaced empty line by 3 tabs.") diff --git a/tests/system/suite_editors/tst_generic_highlighter/test.py b/tests/system/suite_editors/tst_generic_highlighter/test.py index 13dda9badac..0d96e4e99bf 100644 --- a/tests/system/suite_editors/tst_generic_highlighter/test.py +++ b/tests/system/suite_editors/tst_generic_highlighter/test.py @@ -46,8 +46,9 @@ def getOrModifyFilePatternsFor(mimeType, filter='', toBePresent=None): if result == ['']: test.warning("MIME type '%s' seems to have no file patterns." % mimeType) return result - waitFor('model.rowCount() == 1', 2000) - if model.rowCount() == 1: + waitFor('model.rowCount() == 2', 2000) + if model.rowCount() == 2: + test.log("Checking %s" % dumpItems(model)[0]) patternsLineEd = clickTableGetPatternLineEdit(mimeTypeTable, dumpItems(model)[0]) patterns = str(patternsLineEd.text) if toBePresent: @@ -80,8 +81,8 @@ def getOrModifyFilePatternsFor(mimeType, filter='', toBePresent=None): result = toSuffixArray(patterns) else: result = toSuffixArray(patterns) - elif model.rowCount() > 1: - test.warning("MIME type '%s' has ambiguous results." % mimeType) + elif model.rowCount() > 0: + test.warning("MIME type '%s' has unexpected results." % mimeType) else: test.log("MIME type '%s' seems to be unknown to the system." % mimeType) clickButton(":Options.Cancel_QPushButton") @@ -121,11 +122,9 @@ def hasSuffix(fileName, suffixPatterns): return True return False -def displayHintForHighlighterDefinition(fileName, patterns, lPatterns, added, addedLiterate): +def displayHintForHighlighterDefinition(fileName, patterns, added): if hasSuffix(fileName, patterns): return not added - if hasSuffix(fileName, lPatterns): - return not addedLiterate test.warning("Got an unexpected suffix.", "Filename: %s, Patterns: %s" % (fileName, str(patterns + lPatterns))) return False @@ -138,7 +137,6 @@ def main(): return patterns = getOrModifyFilePatternsFor("text/x-haskell", "x-haskell") - lPatterns = getOrModifyFilePatternsFor("text/x-literate-haskell", "literate-haskell") folder = tempDir() filesToTest = ["Main.lhs", "Main.hs"] @@ -150,7 +148,7 @@ def main(): if editor == None: earlyExit("Something's really wrong! (did the UI change?)") return - expectHint = hasSuffix(current, patterns) or hasSuffix(current, lPatterns) + expectHint = hasSuffix(current, patterns) mssg = "Verifying whether hint for missing highlight definition is present. (expected: %s)" try: waitForObject("{text='%s' type='QLabel' unnamed='1' visible='1' " @@ -166,9 +164,8 @@ def main(): invokeMenuItem("File", "Save All") invokeMenuItem("File", "Close All") - addedHaskell, addedLiterateHaskell = addHighlighterDefinition("haskell", "literate-haskell") - patterns = getOrModifyFilePatternsFor('text/x-haskell', 'x-haskell', ['.hs']) - lPatterns = getOrModifyFilePatternsFor('text/x-literate-haskell', 'literate-haskell', ['.lhs']) + addedHaskell = addHighlighterDefinition("haskell") + patterns = getOrModifyFilePatternsFor('text/x-haskell', 'x-haskell', ['.hs', '.lhs']) home = os.path.expanduser("~") for current in filesToTest: @@ -177,8 +174,7 @@ def main(): recentFile = recentFile.replace(home, "~", 1) invokeMenuItem("File", "Recent Files", "%d | " + recentFile) editor = getEditorForFileSuffix(current) - display = displayHintForHighlighterDefinition(current, patterns, lPatterns, - addedHaskell, addedLiterateHaskell) + display = displayHintForHighlighterDefinition(current, patterns, addedHaskell) try: waitForObject("{text='%s' type='QLabel' unnamed='1' visible='1' " "window=':Qt Creator_Core::Internal::MainWindow'}" % miss, 2000) diff --git a/tests/system/suite_editors/tst_select_all/test.py b/tests/system/suite_editors/tst_select_all/test.py index 5a3814aae9d..cd83ebb3f3b 100644 --- a/tests/system/suite_editors/tst_select_all/test.py +++ b/tests/system/suite_editors/tst_select_all/test.py @@ -18,7 +18,9 @@ def main(): return for currentFile in files: test.log("Opening file %s" % currentFile) - size = len(stringify(readFile(currentFile))) + fileContent = stringify(readFile(currentFile)) + fileContent = fileContent.replace('\r\n', '\n') + size = len(fileContent) invokeMenuItem("File", "Open File or Project...") selectFromFileDialog(currentFile, True) editor = getEditorForFileSuffix(currentFile) @@ -29,6 +31,7 @@ def main(): for key in ["", "", "", ""]: test.log("Selecting everything") type(editor, "") + mouseClick(editor) invokeMenuItem("Edit", "Select All") test.verify(waitFor("editor.textCursor().hasSelection()", 500), "verify selecting") diff --git a/tests/system/suite_general/tst_create_proj_wizard/test.py b/tests/system/suite_general/tst_create_proj_wizard/test.py index daa3eacd398..ee02b72ea2e 100644 --- a/tests/system/suite_general/tst_create_proj_wizard/test.py +++ b/tests/system/suite_general/tst_create_proj_wizard/test.py @@ -72,12 +72,14 @@ def main(): handleBuildSystemVerifyKits(category, template, kits, displayedPlatforms, skipDetails) else: + if template == "XR Application": + clickButton(waitForObject(":Next_QPushButton")) # skip XR features handleBuildSystemVerifyKits(category, template, kits, displayedPlatforms) invokeMenuItem("File", "Exit") def verifyKitCheckboxes(kits, displayedPlatforms): - waitForObject("{type='QLabel' unnamed='1' visible='1' text='Kit Selection'}") + waitForObject("{type='QLabel' unnamed='1' visible='1' text?='Kit Selection*'}") availableCheckboxes = frozenset(filter(enabledCheckBoxExists, kits)) # verification whether expected, found and configured match diff --git a/tests/system/suite_general/tst_default_settings/test.py b/tests/system/suite_general/tst_default_settings/test.py index c9aaf2edb84..a636c8347d4 100644 --- a/tests/system/suite_general/tst_default_settings/test.py +++ b/tests/system/suite_general/tst_default_settings/test.py @@ -39,7 +39,8 @@ def __checkKits__(): expectedCompilers = __getExpectedCompilers__() llvmForBuild = os.getenv("SYSTEST_LLVM_FROM_BUILD", None) if llvmForBuild is not None: - internalClangExe = os.path.join(llvmForBuild, "bin", "clang") + llvmBuildBinFolder = os.path.join(llvmForBuild, "bin") + internalClangExe = os.path.join(llvmBuildBinFolder, "clang") if platform.system() in ("Microsoft", "Windows"): internalClangExe += ".exe" internalClangExe = os.path.realpath(internalClangExe) # clean symlinks @@ -47,6 +48,11 @@ def __checkKits__(): if platform.system() in ("Microsoft", "Windows"): expectedCompilers.append({'^Default LLVM \d{2} bit based on MSVC\d{4}$' : ''}) expectedCompilers.append(internalClangExe) + if platform.system() in ("Microsoft", "Windows"): + clangClExe = os.path.realpath(os.path.join(llvmBuildBinFolder, "clang-cl.exe")) + if os.path.exists(clangClExe): + expectedCompilers.append(clangClExe) + foundCompilers = [] foundCompilerNames = [] clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Compilers") @@ -412,7 +418,7 @@ def __checkCreatedSettings__(settingsFolder, qmakeFound): if qmakeFound: files[os.path.join(creatorFolder, "qtversion.xml")] = 0 for f in folders: - test.verify(os.path.isdir(f), + test.verify(waitFor(lambda : os.path.isdir(f), 2500), "Verifying whether folder '%s' has been created." % os.path.basename(f)) for fName, fMinSize in files.items(): text = "created non-empty" diff --git a/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv b/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv index 553510abe43..2b6d1288ec3 100644 --- a/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv +++ b/tests/system/suite_general/tst_default_settings/testdata/win_compiler_paths.tsv @@ -29,3 +29,6 @@ "ProgramFiles(x86)" "Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Microsoft Visual C\+\+ Compiler 15[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" "ProgramFiles(x86)" "Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Microsoft Visual C\+\+ Compiler 16[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" "ProgramFiles" "Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Microsoft Visual C\+\+ Compiler 17[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" +"ProgramFiles(x86)" "Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Visual Studio Community 2017 15[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" +"ProgramFiles(x86)" "Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Visual Studio Community 2019 16[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" +"ProgramFiles" "Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build" "vcvarsall.bat" "Visual Studio Community 2022 17[.0-9]+" "x86,amd64_x86,amd64,x86_amd64" "x86,amd64_x86,amd64,x86_amd64" "false" "" diff --git a/tests/system/suite_general/tst_remove_kits/test.py b/tests/system/suite_general/tst_remove_kits/test.py index cb1a8e4fe1b..652390e0107 100644 --- a/tests/system/suite_general/tst_remove_kits/test.py +++ b/tests/system/suite_general/tst_remove_kits/test.py @@ -16,8 +16,7 @@ def verifyProjectsMode(expectedKits): hasKits = len(expectedKits) > 0 test.verify(checkIfObjectExists(":scrollArea.Edit build configuration:_QLabel", hasKits), "Verify if build settings are being displayed.") - squishFunct = test.xverify if JIRA.isBugStillOpen(31809) and not hasKits else test.verify - squishFunct(checkIfObjectExists(":No valid kits found._QLabel", not hasKits), + test.verify(checkIfObjectExists(":No valid kits found._QLabel", not hasKits), "Verify if Creator reports missing kits.") kitNameTemplate = "Manual.%s"